<?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>10649</bug_id>
          
          <creation_ts>2006-08-31 01:14:17 -0700</creation_ts>
          <short_desc>WebKit SVG needs SVG Fonts support</short_desc>
          <delta_ts>2007-12-29 10:16:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>10650</dependson>
    
    <dependson>10651</dependson>
    
    <dependson>10652</dependson>
    
    <dependson>10691</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>a.neumann</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54306</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-31 01:14:17 -0700</bug_when>
    <thetext>WebKit SVG needs SVG Fonts support

This is a rather low priority issue.  Although would be incredibly cool to have.  Web authors would love to be able to use custom fonts in their pages, especially if we had @font-face-like CSS/HTML integration of SVG fonts.

This is the master bug, I&apos;ll fill other smaller bugs to outline the various steps.  This bug covers actually turning on some very very minimal font support in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58743</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-17 14:08:58 -0700</bug_when>
    <thetext>I was thinking this weekend, that after all of WildFox&apos;s work on &lt;text&gt; and once the changes for &lt;font-face&gt; land this should be totally within the realm of possibility.  We just need to teach Font how to point off into the SVG DOM for it&apos;s glyphs and the SVG text painting code path how to use them.  Since I don&apos;t plan (initially) to modify the HTML code painting path, we&apos;d have to hack the FontSelector code to avoid selecting SVG fonts for HTML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59304</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-23 21:37:33 -0700</bug_when>
    <thetext>Ok, now that bug 10652 is in, I&apos;m ready to implement a real SVG fonts system.  I waded through the WebCore font system today and have come up with something resembling a plan.

Some background on the CSS @font-face system:
CSSFontFace elements own their CSSFontFaceSource elements, which in turn own a CachedFont object which does the actual loading.  CSSFontFaceSource elements provide the actual FontData objects into the font system (FontCache, etc).  Actual users hold onto Font objects, which build a FontFallbackList object behind the scenes, and try and grab the fonts in that list from the FontCache using the FontSelector.  The FontSelector (actually CSSFontSelector) which holds all the CSSFontFaces under a hash (by family name, weight, etc.) If the font selector has a CSSFontFace in its cache, it will try and grab the FontData from that CSSFontFace (which in turn tries to grab it off the CSSFontFaceSource).  If none of the standard variants for the font family/weight/etc. are found in the CSSFontSelector&apos;s hash, then it gives up, and the FontCache keeps walking down the FontFamily list (held by the FontFallbackList).  If none of those return anything, then there is a last resort font which is pulled from the platform.

So, that&apos;s how font lookup works... more or less, as I understand it.

I see SVG hooking into the system by subclassing from CSSFontFaceSource, an SVGFontFaceSource object, perhaps.  SVGFontFaceSource can handle loading/storing the font data (local or remote) and create the proper FontData subclass (SVGFontData) without calling out to any platform code.

The rest of WebCore is only really exposed to the Font object.  This will remain true in SVG Fonts.

Once a render has a Font object, it will eventually call Font::drawText to do the drawing.  Font::drawText makes a choice (based on the glyphs) as to which font path to go down. The &quot;simple&quot; or &quot;complex&quot; path.  SVG would require adding a 3rd path here.  This 3rd path would look identical to simple text drawing, except that the drawGlyphs call would use the glyph data out of the SVG font instead of the platform font data.

Providing advanced functionality for SVG fonts (like cascading style from current text run onto the actual glyphs) could be done at a later point.  (This, for example is, how SVG Fonts get coloring -- default fill is black, no stroke.  But SVG Fonts might come with their own intrinsic colors.  crazy, eh?)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59309</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-23 22:08:36 -0700</bug_when>
    <thetext>Hum... one problem with this is that currently there is no way to get sources into the CSSFontFace except through CSSPropery values, as CSSFontFace is rebuilt from a CSSFontFaceRule every time the style selector is recalculated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61663</commentid>
    <comment_count>4</comment_count>
      <attachid>17397</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-11-19 05:33:09 -0800</bug_when>
    <thetext>Created attachment 17397
Initial work-in-progress patch

First SVG fonts screenie:
http://flickr.com/photo_zoom.gne?id=2047231824&amp;size=l</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65124</commentid>
    <comment_count>5</comment_count>
      <attachid>18072</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-23 10:13:11 -0800</bug_when>
    <thetext>Created attachment 18072
Updated to ToT

Updating patch to work on ToT. Fixes several other things:
- Proper integration with the new SVG
- no more &quot;// FIXME\n return true;&quot; in Font::canUseGlyphCache, now proper implemented for SVG fonts
- Remove &apos;drawGlyphsWithSVGFont&apos; instead created &apos;drawGlyphsRespectingSVGFont&apos; function, which just calls drawGlyphs() for non-SVG builds, and also for SVG builds, if a non-SVG-font is used to render.

Only patched WebCore.xcodeproj build system, .pro &amp; vcproj/ not updated anymore - will be done once this is commitable. (Wx doesn&apos;t support SVG builds at all)

M      WebKit/mac/MigrateHeaders.make
M      WebCore/DerivedSources.make
M      WebCore/platform/graphics/FontData.cpp
M      WebCore/platform/graphics/FontData.h
M      WebCore/platform/graphics/Font.cpp
M      WebCore/platform/graphics/Font.h
M      WebCore/bindings/js/JSSVGElementWrapperFactory.cpp
M      WebCore/bindings/objc/DOM.mm
M      WebCore/bindings/objc/DOMInternal.h
M      WebCore/bindings/objc/DOMSVG.h
M      WebCore/css/CSSFontFace.h
M      WebCore/css/CSSFontSelector.cpp
A      WebCore/css/SVGCSSFontFace.cpp
A      WebCore/css/SVGCSSFontFace.h
A      WebCore/svg/SVGFontElement.cpp
A      WebCore/svg/SVGFontElement.h
A      WebCore/svg/SVGFontElement.idl
M      WebCore/svg/SVGFontFaceElement.cpp
M      WebCore/svg/SVGFontFaceElement.h
M      WebCore/svg/SVGFontFaceFormatElement.h
A      WebCore/svg/SVGGlyphElement.cpp
A      WebCore/svg/SVGGlyphElement.h
A      WebCore/svg/SVGGlyphElement.idl
A      WebCore/svg/SVGMissingGlyphElement.cpp
A      WebCore/svg/SVGMissingGlyphElement.h
A      WebCore/svg/SVGMissingGlyphElement.idl
M      WebCore/svg/svgtags.in
M      WebCore/WebCore.xcodeproj/project.pbxproj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65125</commentid>
    <comment_count>6</comment_count>
      <attachid>18072</attachid>
    <who name="">mitz</who>
    <bug_when>2007-12-23 12:15:59 -0800</bug_when>
    <thetext>Comment on attachment 18072
Updated to ToT

I realize that the patch is not up for review yet so you may be aware of some of the following, but anyway:

+            fprintf(stderr, &quot;drawGlyphsWithSVGFont !! i=%i, from=%i, to=%i\n&quot;, i, from, to);

Make sure to remove this.

+    // TODO: This is ridicolous. Glyphs shouldn&apos;t be collected when painted. The problem is

Typo: ridicolous

+    void drawGlyphsRespectingSVGFont(GraphicsContext*, const FontData*, const GlyphBuffer&amp;, int from, int to, const FloatPoint&amp;) const;

Seems better to me to keep drawGlyphs as the name of the method drawGlyphBuffer() calls and add whatever #ifdef&apos;ed code needed there to check for the SVG font case and call out to a different function for that case if needed.

+#if PLATFORM(CG)
+            CGContextFillPath(context-&gt;platformContext());
+#endif

Probably not the right way to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65397</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-27 11:17:33 -0800</bug_when>
    <thetext>Hey mitz,

thanks for the pre-review :-)
Going to upload a new patch soon, all wrapped in ENABLE(SVG_FONTS) blocks - not influencing the default build anymore.

&gt; I realize that the patch is not up for review yet so you may be aware of some
&gt; of the following, but anyway:
&gt; 
&gt; +            fprintf(stderr, &quot;drawGlyphsWithSVGFont !! i=%i, from=%i, to=%i\n&quot;,
&gt; i, from, to);
&gt; 
&gt; Make sure to remove this.
I&apos;ve outcommented all fprintfs on my hdd.
 
&gt; +    // TODO: This is ridicolous. Glyphs shouldn&apos;t be collected when painted.
&gt; The problem is
&gt; 
&gt; Typo: ridicolous
Fixed.
 
&gt; +    void drawGlyphsRespectingSVGFont(GraphicsContext*, const FontData*, const
&gt; GlyphBuffer&amp;, int from, int to, const FloatPoint&amp;) const;
&gt; 
&gt; Seems better to me to keep drawGlyphs as the name of the method
&gt; drawGlyphBuffer() calls and add whatever #ifdef&apos;ed code needed there to check
&gt; for the SVG font case and call out to a different function for that case if
&gt; needed.
You were reviewing the first patch, not the updated, as I already fixed it there?
 
&gt; +#if PLATFORM(CG)
&gt; +            CGContextFillPath(context-&gt;platformContext());
&gt; +#endif
&gt; 
&gt; Probably not the right way to do this.
Right it&apos;s a hack, because the SVGPaintServer logic needs a RenderObject/RenderStyle to operate on. I had to choose a rather ugly solution to store a RenderObject pointer in the Font object, identifying the RenderObject which invoked the drawText method (in the SVG case, it will store a RenderText pointer) - you can comment on that once I uploaded the new patch. Maybe we can find a better solution.
 
Greetings,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65504</commentid>
    <comment_count>8</comment_count>
      <attachid>18160</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-28 15:21:47 -0800</bug_when>
    <thetext>Created attachment 18160
Updated patch

Final version of the first SVG Fonts patch. Updated all build systems - wrapped all new code in ENABLE(SVG_FONTS) blocks, so it&apos;s disabled by default (build-wekbit --svg-fonts enables it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65512</commentid>
    <comment_count>9</comment_count>
      <attachid>18160</attachid>
    <who name="">mitz</who>
    <bug_when>2007-12-28 15:41:10 -0800</bug_when>
    <thetext>Comment on attachment 18160
Updated patch

+    mutable RenderObject* m_referencingRenderObject;

I don&apos;t think this transient data belongs in the permanent Font object. You can consider sticking it in TextRun, which may also allow you to get rid of Font::drawSVGText.

+            if (SVGPaintServer* fillPaintServer = SVGPaintServer::fillPaintServer(style, renderObject)) {
+            if (SVGPaintServer* strokePaintServer = SVGPaintServer::strokePaintServer(style, renderObject)) {

Is it really necessary to set up and tear down these every time through the loop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65515</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-28 15:51:36 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 18160 [edit])
&gt; +    mutable RenderObject* m_referencingRenderObject;
&gt; 
&gt; I don&apos;t think this transient data belongs in the permanent Font object. You can
&gt; consider sticking it in TextRun, which may also allow you to get rid of
&gt; Font::drawSVGText.
Ok, will check that.
 
&gt; +            if (SVGPaintServer* fillPaintServer =
&gt; SVGPaintServer::fillPaintServer(style, renderObject)) {
&gt; +            if (SVGPaintServer* strokePaintServer =
&gt; SVGPaintServer::strokePaintServer(style, renderObject)) {
&gt; 
&gt; Is it really necessary to set up and tear down these every time through the
&gt; loop?
Nope, good catch.

Uploading new patch soon, after Eric checked it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65517</commentid>
    <comment_count>11</comment_count>
      <attachid>18160</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 16:33:17 -0800</bug_when>
    <thetext>Comment on attachment 18160
Updated patch

We talked about various fixes over IRC, including some from mitz.  There was also a leak of getFontFace() which I remember.  I look forward to seeing the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65518</commentid>
    <comment_count>12</comment_count>
      <attachid>18161</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-28 17:01:14 -0800</bug_when>
    <thetext>Created attachment 18161
Updated patch v2

Incorporated all comments by Eric &amp; Mitz.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65526</commentid>
    <comment_count>13</comment_count>
      <attachid>18161</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 18:04:11 -0800</bug_when>
    <thetext>Comment on attachment 18161
Updated patch v2

This looks like an OK first-cut to me.

I&apos;m sad to see &lt;font-face&gt; being disabled for the normal build, but I guess it&apos;s OK.  &lt;font-face&gt; isn&apos;t actually that useful w/o &lt;font&gt; anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65527</commentid>
    <comment_count>14</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-28 18:16:05 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 18161 [edit])
&gt; This looks like an OK first-cut to me.
&gt; 
&gt; I&apos;m sad to see &lt;font-face&gt; being disabled for the normal build, but I guess
&gt; it&apos;s OK.  &lt;font-face&gt; isn&apos;t actually that useful w/o &lt;font&gt; anyway.

Thanks - let&apos;s hope we can enable SVG_FONTS by default soon.
Landing soon...

Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65531</commentid>
    <comment_count>15</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-12-28 18:45:11 -0800</bug_when>
    <thetext>Landed in r29012.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65603</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-29 10:16:34 -0800</bug_when>
    <thetext>*** Bug 10691 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17397</attachid>
            <date>2007-11-19 05:33:09 -0800</date>
            <delta_ts>2007-12-23 10:13:11 -0800</delta_ts>
            <desc>Initial work-in-progress patch</desc>
            <filename>AddSVGFonts.patch</filename>
            <type>text/plain</type>
            <size>83116</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IERlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gRGVyaXZlZFNvdXJjZXMu
bWFrZQkocmV2aXNpb24gMjc4NTApCisrKyBEZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0yMDQsNiArMjA0LDcgQEAgYWxsIDogXAogICAgIERPTVNWR0ZFU3BvdExpZ2h0RWxl
bWVudC5oIFwKICAgICBET01TVkdGRVRpbGVFbGVtZW50LmggXAogICAgIERPTVNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQuaCBcCisgICAgRE9NU1ZHRm9udEVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHRm9u
dEZhY2VFbGVtZW50LmggXAogICAgIERPTVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKICAg
ICBET01TVkdGb250RmFjZU5hbWVFbGVtZW50LmggXApAQCAtMjE0LDYgKzIxNSw3IEBAIGFsbCA6
IFwKICAgICBET01TVkdGaXRUb1ZpZXdCb3guaCBcCiAgICAgRE9NU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuaCBcCiAgICAgRE9NU1ZHR0VsZW1lbnQuaCBcCisgICAgRE9NU1ZHR2x5cGhFbGVtZW50
LmggXAogICAgIERPTVNWR0dyYWRpZW50RWxlbWVudC5oIFwKICAgICBET01TVkdJbWFnZUVsZW1l
bnQuaCBcCiAgICAgRE9NU1ZHTGFuZ1NwYWNlLmggXApAQCAtMjI2LDYgKzIyOCw3IEBAIGFsbCA6
IFwKICAgICBET01TVkdNYXNrRWxlbWVudC5oIFwKICAgICBET01TVkdNYXRyaXguaCBcCiAgICAg
RE9NU1ZHTWV0YWRhdGFFbGVtZW50LmggXAorICAgIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aCBcCiAgICAgRE9NU1ZHTnVtYmVyLmggXAogICAgIERPTVNWR051bWJlckxpc3QuaCBcCiAgICAg
RE9NU1ZHUGFpbnQuaCBcCkBAIC01NDMsNiArNTQ2LDcgQEAgYWxsIDogXAogICAgIEpTU1ZHRkVU
aWxlRWxlbWVudC5oIFwKICAgICBKU1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBcCiAgICAgSlNT
VkdGaWx0ZXJFbGVtZW50LmggXAorICAgIEpTU1ZHRm9udEVsZW1lbnQuaCBcCiAgICAgSlNTVkdG
b250RmFjZUVsZW1lbnQuaCBcCiAgICAgSlNTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaCBcCiAg
ICAgSlNTVkdGb250RmFjZU5hbWVFbGVtZW50LmggXApAQCAtNTUwLDYgKzU1NCw3IEBAIGFsbCA6
IFwKICAgICBKU1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIFwKICAgICBKU1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmggXAogICAgIEpTU1ZHR0VsZW1lbnQuaCBcCisgICAgSlNTVkdHbHlwaEVsZW1l
bnQuaCBcCiAgICAgSlNTVkdHcmFkaWVudEVsZW1lbnQuaCBcCiAgICAgSlNTVkdJbWFnZUVsZW1l
bnQuaCBcCiAgICAgSlNTVkdMZW5ndGguaCBcCkBAIC01NTgsNiArNTYzLDcgQEAgYWxsIDogXAog
ICAgIEpTU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggXAogICAgIEpTU1ZHTWFza0VsZW1lbnQu
aCBcCiAgICAgSlNTVkdNYXJrZXJFbGVtZW50LmggXAorICAgIEpTU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5oIFwKICAgICBKU1NWR1RyYW5zZm9ybS5oIFwKICAgICBKU1NWR1pvb21FdmVudC5oIFwK
ICAgICBKU1NjcmVlbi5oIFwKSW5kZXg6IFdlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUucHJvCShyZXZpc2lvbiAyNzg1MCkKKysrIFdlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTIzLDYgKzExMjMsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAg
ICAgICAga3N2ZzIvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmlkbCBcCiAgICAgICAgIGtzdmcyL3N2
Zy9TVkdGRUZ1bmNSRWxlbWVudC5pZGwgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50LmlkbCBcCisgICAgICAgIGtzdmcyL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaWRs
IFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmlkbCBcCiAgICAgICAgIGtz
dmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5pZGwgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHRkVN
ZXJnZU5vZGVFbGVtZW50LmlkbCBcCkBAIC0xMTMzLDYgKzExMzQsNyBAQCBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAga3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQu
aWRsIFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRsIFwKICAg
ICAgICAga3N2ZzIvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaWRsIFwKKyAgICAgICAga3N2ZzIvc3Zn
L1NWR0ZvbnRFbGVtZW50LmlkbCBcCiAgICAgICAgIGtzdmcyL3N2Zy9TVkdGb250RmFjZUVsZW1l
bnQuaWRsIFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5pZGwg
XAogICAgICAgICBrc3ZnMi9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwgXApAQCAtMTE1
MCw2ICsxMTUyLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAg
IGtzdmcyL3N2Zy9TVkdNYXNrRWxlbWVudC5pZGwgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHTWF0
cml4LmlkbCBcCiAgICAgICAgIGtzdmcyL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaWRsIFwKKyAg
ICAgICAga3N2ZzIvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsIFwKICAgICAgICAga3N2
ZzIvc3ZnL1NWR051bWJlci5pZGwgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdC5p
ZGwgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHUGFpbnQuaWRsIFwKQEAgLTEyNzYsNiArMTI3OSw3
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBrc3ZnMi9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcCBcCiAgICAgICAgIGtzdmcyL3N2Zy9TVkdGaXRUb1Zp
ZXdCb3guY3BwIFwKKyAgICAgICAga3N2ZzIvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcCBcCiAgICAg
ICAgIGtzdmcyL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKICAgICAgICAga3N2ZzIvc3Zn
L1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAgXApAQCAtMTI4Myw2ICsxMjg3LDcgQEAgY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgIGtzdmcyL3N2Zy9TVkdGb250RmFjZVVyaUVs
ZW1lbnQuY3BwIFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cCBcCiAgICAgICAgIGtzdmcyL3N2Zy9TVkdHRWxlbWVudC5jcHAgXAorICAgICAgICBrc3ZnMi9z
dmcvU1ZHR2x5cGhFbGVtZW50LmNwcCBcCiAgICAgICAgIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVs
ZW1lbnQuY3BwIFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgXAogICAg
ICAgICBrc3ZnMi9zdmcvU1ZHTGFuZ1NwYWNlLmNwcCBcCkBAIC0xMjk0LDYgKzEyOTksNyBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAga3N2ZzIvc3ZnL1NWR01h
cmtlckVsZW1lbnQuY3BwIFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBc
CiAgICAgICAgIGtzdmcyL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKyAgICAgICAga3N2
ZzIvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwKICAgICAgICAga3N2ZzIvc3ZnL1NW
R01QYXRoRWxlbWVudC5jcHAgXAogICAgICAgICBrc3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdC5jcHAg
XAogICAgICAgICBrc3ZnMi9zdmcvU1ZHUGFpbnQuY3BwIFwKSW5kZXg6IFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI3ODUwKQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOTI3LDYgKzI5MjcsMjYgQEAKIAkJQjI3NTM1
ODIwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTUwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oICovOyB9
OwogCQlCMjc1MzU4RTBCMDUzQTY2MDAyQ0U2NEYgLyogSWNvbk1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNThEMEIwNTNBNjYwMDJDRTY0
RiAvKiBJY29uTWFjLm1tICovOyB9OwogCQlCMjc3QjQwNDBCMjJGMzdDMDAwNEJFQzYgLyogR3Jh
cGhpY3NDb250ZXh0TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjI3N0I0MDMwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5t
bSAqLzsgfTsKKwkJQjI3QjI4MjUwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4
MUYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuY3BwICovOyB9OworCQlCMjdC
MjgyNjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MjAwQ0VGMEMwNzAwRDM5RDU0
IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4MjcwQ0VGMEMwNzAwRDM5RDU0
IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyN0IyODIxMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxl
bWVudC5jcHAgKi87IH07CisJCUIyN0IyODI4MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBo
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjI3QjI4MjIwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CisJ
CUIyN0IyODI5MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MjMw
Q0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJ
CUIyN0IyODJBMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODI0MENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3
QjI4MzYwQ0VGMEMzNjAwRDM5RDU0IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODJCMENFRjBDMzUwMEQz
OUQ1NCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICovOyB9OworCQlCMjdCMjgzNzBDRUYwQzM2MDBE
MzlENTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkMwQ0VGMEMzNTAwRDM5RDU0IC8qIENTU1ZhbHVl
S2V5d29yZHMuaW4gKi87IH07CisJCUIyN0IyODM4MENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdG
b250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggKi87IH07
CisJCUIyN0IyODM5MENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODJFMENFRjBD
MzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5tbSAqLzsgfTsKKwkJQjI3QjI4M0EwQ0VG
MEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODJGMENFRjBDMzUwMEQzOUQ1
NCAvKiBET01TVkdGb250RWxlbWVudEludGVybmFsLmggKi87IH07CisJCUIyN0IyODNCMENFRjBD
MzYwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMwMENFRjBDMzUwMEQzOUQ1NCAvKiBET01T
VkdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4M0MwQ0VGMEMzNjAwRDM5RDU0IC8qIERP
TVNWR0dseXBoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyN0IyODMxMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQu
bW0gKi87IH07CisJCUIyN0IyODNEMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjI3QjI4MzIwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudEludGVybmFs
LmggKi87IH07CisJCUIyN0IyODNFMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjdCMjgzMzBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5o
ICovOyB9OworCQlCMjdCMjgzRjBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyN0IyODM0MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lm1t
ICovOyB9OworCQlCMjdCMjg0MDBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBo
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjdCMjgzNTBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxl
bWVudEludGVybmFsLmggKi87IH07CisJCUIyN0IyODVDMENFRjBENzIwMEQzOUQ1NCAvKiBET01T
VkdGb250RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0Zv
bnRFbGVtZW50LmggKi87IH07CisJCUIyN0IyODVEMENFRjBENzIwMEQzOUQ1NCAvKiBET01TVkdH
bHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMwMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdHbHlw
aEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4NUUwQ0VGMEQ3MjAwRDM5RDU0IC8qIERPTVNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMzMENFRjBDMzUwMEQzOUQ1NCAvKiBET01T
VkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyOTdCQzcwMEIzQzE0Q0YwMDQ1QTU5
MCAvKiBKU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyOTdCQzZGMEIzQzE0Q0YwMDQ1QTU5MCAvKiBKU1NWR1Bh
dGhTZWdMaXN0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQjJBMDE1QTgwQUY2Q0Q1MzAwNkJDRTBFIC8q
IEdyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNw
cCAqLzsgfTsKIAkJQjJBMDE1QTkwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMDE1OTMw
QUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oICovOyB9OwpAQCAtMjk0NCw2ICsy
OTY0LDE1IEBACiAJCUIyQTAxNUJBMEFGNkNENTMwMDZCQ0UwRSAvKiBTVkdSZXNvdXJjZU1hc2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMDE1
QTcwQUY2Q0Q1MzAwNkJDRTBFIC8qIFNWR1Jlc291cmNlTWFza2VyLmggKi87IH07CiAJCUIyQTEw
QjkyMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMTBCOTEwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggKi87IH07CiAJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1
ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyQTEwQjkzMEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNwcCAqLzsgfTsKKwkJ
QjJBMUYyQUEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkExMENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkFCMENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjJBMUYyQTIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50
LmggKi87IH07CisJCUIyQTFGMkFDMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5p
ZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFG
MkEzMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwgKi87IH07CisJCUIyQTFG
MkFEMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTQwQ0VGMEFCRjAwNDQyRjZB
IC8qIFNWR0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkFFMENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyQTFGMkE1MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQu
aCAqLzsgfTsKKwkJQjJBMUYyQUYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5p
ZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFG
MkE2MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsICovOyB9OworCQlCMkEx
RjJCMDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNzBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkIx
MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0NDJG
NkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9OworCQlCMkExRjJCMjBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkE5MENFRjBBQkYwMDQ0MkY2QSAv
KiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCAqLzsgfTsKIAkJQjJBRTlCOUQwQzNBRjI3NDAw
RjIzRjdGIC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAvKiBET01T
VkdUZXh0UGF0aEVsZW1lbnQubW0gKi87IH07CiAJCUIyQjMzQTVGMEI4ODdDRUYwMEMxNTk4NCAv
KiBTVkdDaGFyYWN0ZXJMYXlvdXRJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQjMzQTVEMEI4ODdDRUYwMEMxNTk4NCAvKiBTVkdDaGFyYWN0
ZXJMYXlvdXRJbmZvLmNwcCAqLzsgfTsKIAkJQjJCMzNBNjAwQjg4N0NFRjAwQzE1OTg0IC8qIFNW
R0NoYXJhY3RlckxheW91dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyQjMzQTVFMEI4ODdDRUYwMEMxNTk4NCAvKiBTVkdDaGFyYWN0ZXJMYXlv
dXRJbmZvLmggKi87IH07CkBAIC0yOTYwLDYgKzI5ODksOCBAQAogCQlCMkNCOTI2NDBCNUJEQTAy
MDA5QkFBNzggLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjYwMEI1QkRBMDIwMDlCQUE3OCAv
KiBET01TVkdFbGVtZW50SW5zdGFuY2VMaXN0Lm1tICovOyB9OwogCQlCMkNDRUM0NzBDNkNBOUYx
MDA2QTU0MjQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJDQ0VDNDUwQzZDQTlGMTAwNkE1NDI0
IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcCAqLzsgfTsKIAkJQjJDQ0VDNDgwQzZD
QTlGMTAwNkE1NDI0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkNDRUM0NjBDNkNBOUYxMDA2QTU0
MjQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCAqLzsgfTsKKwkJQjJEMTlBNDgwQ0VG
OURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRDE5QTQ2MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdD
U1NGb250RmFjZS5jcHAgKi87IH07CisJCUIyRDE5QTQ5MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdD
U1NGb250RmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjJEMTlBNDcwQ0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggKi87IH07CiAJ
CUIyRDNGQzhBMEMyMjEyQ0IwMENGMzYxOCAvKiBKU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEM0ZDODkw
QzIyMTJDQjAwQ0YzNjE4IC8qIEpTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAgKi87IH07CiAJ
CUIyRDg3Qzc3MEIxMjRFNzMwMEIwREUxRSAvKiBTVkdQYWludFNlcnZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkQ4N0M2QjBCMTI0RTczMDBC
MERFMUUgLyogU1ZHUGFpbnRTZXJ2ZXIuY3BwICovOyB9OwogCQlCMkQ4N0M3ODBCMTI0RTczMDBC
MERFMUUgLyogU1ZHUGFpbnRTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyRDg3QzZDMEIxMjRFNzMwMEIwREUxRSAvKiBTVkdQYWludFNlcnZl
ci5oICovOyB9OwpAQCAtMzcyMSw2ICszNzUyLDkgQEAKIAkJCWRzdFBhdGggPSBWZXJzaW9ucy9B
L1ByaXZhdGVIZWFkZXJzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDE7CiAJCQlmaWxlcyA9ICgK
KwkJCQlCMjdCMjg1QzBDRUYwRDcyMDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAorCQkJCUIyN0IyODVEMENFRjBENzIwMEQzOUQ1NCAv
KiBET01TVkdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAorCQkJ
CUIyN0IyODVFMENFRjBENzIwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk4NTM4RjAzMDBBRDcxQ0RCMDA2QTgx
RDEgLyogRE9NQWJzdHJhY3RWaWV3LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJ
CQkxQzExQ0NCQzBBQTYwOTM3MDBEQURCMjAgLyogRE9NQXR0ci5oIGluIENvcHkgR2VuZXJhdGVk
IEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQzcwQUE2MDkzNzAwREFEQjIwIC8qIERPTUNEQVRBU2Vj
dGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCkBAIC02NzgyLDYgKzY4MTYsMjMg
QEAKIAkJQjI3NTM1NTUwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIy
NzUzNThEMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEljb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIyNzdCNDAzMEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgxRjBDRUYwQzA3MDBE
MzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTVkdGb250RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUIyN0IyODIwMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0ZvbnRFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODIxMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NW
R0dseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTVkdHbHlwaEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdC
MjgyMjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHR2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUIyN0IyODIzMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdH
bHlwaEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUIyN0IyODI0MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyQjBDRUYwQzM1MDBEMzlE
NTQgLyogQ1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTUHJv
cGVydHlOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkMwQ0VG
MEMzNTAwRDM5RDU0IC8qIENTU1ZhbHVlS2V5d29yZHMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENTU1ZhbHVlS2V5d29yZHMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIy
N0IyODJEMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRm9udEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkUwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRF
bGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNW
R0ZvbnRFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyRjBD
RUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgzMDBDRUYwQzM1MDBEMzlENTQgLyogRE9N
U1ZHR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01T
VkdHbHlwaEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzEw
Q0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdHbHlwaEVsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODMyMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdH
bHlwaEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQjI3QjI4MzMwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzQwQ0VGMEMzNTAw
RDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzUwQ0VGMEMzNTAwRDM5RDU0IC8qIERP
TVNWR01pc3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyOTdCQzZGMEIzQzE0Q0YwMDQ1QTU5MCAvKiBKU1NWR1Bh
dGhTZWdMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjJBMDE1OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBMDE1OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdy
YXBoaWNzQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhp
Y3NDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02Nzk5LDYgKzY4NTAs
MTUgQEAKIAkJQjJBMDE1QTcwQUY2Q0Q1MzAwNkJDRTBFIC8qIFNWR1Jlc291cmNlTWFza2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdSZXNvdXJjZU1hc2tlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkExMEI5MTBCMzgxOEJEMDAwOTlBQTQgLyog
SW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVm
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQTEwQjkzMEIzODE4RDcwMDA5
OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbWFnZUJ1ZmZlckNHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QjJBMUYyQTEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGb250RWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkEyMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRm9udEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTMwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR0ZvbnRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHRm9u
dEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMkExRjJBNDBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdHbHlwaEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCMkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdHbHlwaEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNW
R0dseXBoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0dseXBoRWxlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkE3MENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTkw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjJBRTlCOUMwQzNBRjI3NDAwRjIzRjdGIC8qIERPTVNWR1RleHRQYXRo
RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01T
VkdUZXh0UGF0aEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQjMz
QTVEMEI4ODdDRUYwMEMxNTk4NCAvKiBTVkdDaGFyYWN0ZXJMYXlvdXRJbmZvLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDaGFyYWN0ZXJMYXlvdXRJbmZvLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJCMzNBNUUwQjg4N0NFRjAwQzE1OTg0
IC8qIFNWR0NoYXJhY3RlckxheW91dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0NoYXJhY3RlckxheW91dEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY4OTgsNiArNjk1OCw4IEBACiAJCUIyQ0I5MjYwMEI1QkRBMDIwMDlCQUE3OCAvKiBE
T01TVkdFbGVtZW50SW5zdGFuY2VMaXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERPTVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyQ0NFQzQ1MEM2Q0E5RjEwMDZBNTQyNCAvKiBSZW5kZXJTVkdWaWV3
cG9ydENvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMkNDRUM0NjBDNkNBOUYxMDA2QTU0MjQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1ZpZXdwb3J0
Q29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyRDE5QTQ2MENFRjlE
QzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQ1NTRm9udEZhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCMkQxOUE0NzBDRUY5REMxMDAwRTAzM0IgLyogU1ZHQ1NTRm9udEZhY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0NTU0ZvbnRGYWNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyRDNGQzg5MEMyMjEyQ0IwMENGMzYxOCAvKiBKU1NWR1Ry
YW5zZm9ybUxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIyRDg3QzZCMEIxMjRFNzMwMEIwREUxRSAvKiBTVkdQYWludFNlcnZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGFpbnRTZXJ2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkQ4N0M2QzBCMTI0RTczMDBCMERFMUUgLyog
U1ZHUGFpbnRTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Bh
aW50U2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDU0LDYgKzg1MTYs
MTUgQEAKIAkJODVBMEY5OEUwQUM3MTZGNDAwMTYxRkRDIC8qIFNWRyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0
IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggKi8sCisJCQkJQjI3QjI4MkUwQ0VGMEMzNTAwRDM5RDU0
IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1tICovLAorCQkJCUIyN0IyODJGMENFRjBDMzUwMEQzOUQ1
NCAvKiBET01TVkdGb250RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJQjI3QjI4MzAwQ0VGMEMz
NTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5oICovLAorCQkJCUIyN0IyODMxMENFRjBD
MzUwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQubW0gKi8sCisJCQkJQjI3QjI4MzIwQ0VG
MEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJQjI3
QjI4MzMwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLywK
KwkJCQlCMjdCMjgzNDBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5tbSAqLywKKwkJCQlCMjdCMjgzNTBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0ds
eXBoRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVBQ0VGNzQwQUNEQ0ZDRTAwMTIxNEZGIC8q
IERPTVNWR0FFbGVtZW50LmggKi8sCiAJCQkJODVBQ0VGNzUwQUNEQ0ZDRTAwMTIxNEZGIC8qIERP
TVNWR0FFbGVtZW50Lm1tICovLAogCQkJCUE4RTU0NDE1MENBOUQxQzEwMDk3RDA5QiAvKiBET01T
VkdBRWxlbWVudEludGVybmFsLmggKi8sCkBAIC05MDE4LDYgKzkwODksOCBAQAogCQk4NUIyMzIy
NjBBOEJGM0ExMDBGREY0N0IgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCMjdCMjgyQjBDRUYwQzM1MDBEMzlENTQgLyog
Q1NTUHJvcGVydHlOYW1lcy5pbiAqLywKKwkJCQlCMjdCMjgyQzBDRUYwQzM1MDBEMzlENTQgLyog
Q1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKIAkJCQk4NTk2N0Q5RjBBQThCQjU5MDA1RkVERUUgLyog
Q29yZSAqLywKIAkJCQk4NTk2N0RDQTBBQThCRjBGMDA1RkVERUUgLyogQ1NTICovLAogCQkJCTg1
QUZBN0FCMEFBRjNCQjAwMEU4NDMwNSAvKiBFdmVudHMgKi8sCkBAIC0xMDA1NSw2ICsxMDEyOCwx
MiBAQAogCQkJCUIyRkEzQzk5MEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0ZFRnVuY1JFbGVtZW50
LmggKi8sCiAJCQkJQjJGQTNDOUEwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcCAqLywKIAkJCQlCMkZBM0M5QjBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuaCAqLywKKwkJCQlCMjdCMjgxRjBDRUYwQzA3MDBEMzlENTQg
LyogSlNTVkdGb250RWxlbWVudC5jcHAgKi8sCisJCQkJQjI3QjI4MjAwQ0VGMEMwNzAwRDM5RDU0
IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCAqLywKKwkJCQlCMjdCMjgyMTBDRUYwQzA3MDBEMzlENTQg
LyogSlNTVkdHbHlwaEVsZW1lbnQuY3BwICovLAorCQkJCUIyN0IyODIyMENFRjBDMDcwMEQzOUQ1
NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oICovLAorCQkJCUIyN0IyODIzMENFRjBDMDcwMEQzOUQ1
NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwICovLAorCQkJCUIyN0IyODI0MENFRjBD
MDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLywKIAkJCQlCMkZBM0M5
QzBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdGRUltYWdlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjJG
QTNDOUQwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHRkVJbWFnZUVsZW1lbnQuaCAqLywKIAkJCQlC
MkZBM0M5RTBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdGRU1lcmdlRWxlbWVudC5jcHAgKi8sCkBA
IC0xMDQyNCw2ICsxMDUwMyw4IEBACiAJCUE4QzBGNkYyMDg5NzAxRjEwMEJBNTExNCAvKiBjc3Mg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUIyRDE5QTQ2
MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5jcHAgKi8sCisJCQkJQjJEMTlBNDcw
Q0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggKi8sCiAJCQkJQThDMEY2RjQwODk3
MDFGMTAwQkE1MTE0IC8qIFNWR0NTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCiAJCQkJQThDMEY2RjUw
ODk3MDFGMTAwQkE1MTE0IC8qIFNWR0NTU1ZhbHVlS2V5d29yZHMuaW4gKi8sCiAJCQkJQThDMEY2
RjYwODk3MDFGMTAwQkE1MTE0IC8qIFNWR0NTU1BhcnNlci5jcHAgKi8sCkBAIC0xMDQ1Miw2ICsx
MDUzMywxNSBAQAogCQlBOEMwRjdGQzA4OTcwMUYzMDBCQTUxMTQgLyogc3ZnICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCMkExRjJBMTBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuY3BwICovLAorCQkJCUIyQTFGMkEyMENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdGb250RWxlbWVudC5oICovLAorCQkJCUIyQTFGMkEzMENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdGb250RWxlbWVudC5pZGwgKi8sCisJCQkJQjJBMUYyQTQwQ0VGMEFCRjAwNDQyRjZB
IC8qIFNWR0dseXBoRWxlbWVudC5jcHAgKi8sCisJCQkJQjJBMUYyQTUwQ0VGMEFCRjAwNDQyRjZB
IC8qIFNWR0dseXBoRWxlbWVudC5oICovLAorCQkJCUIyQTFGMkE2MENFRjBBQkYwMDQ0MkY2QSAv
KiBTVkdHbHlwaEVsZW1lbnQuaWRsICovLAorCQkJCUIyQTFGMkE3MENFRjBBQkYwMDQ0MkY2QSAv
KiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcCAqLywKKwkJCQlCMkExRjJBODBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovLAorCQkJCUIyQTFGMkE5MENFRjBB
QkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCAqLywKIAkJCQlBODQ5NDJE
ODBCNjRBOUNBMDA2OUYwMEYgLyogQ29sb3JEaXN0YW5jZS5jcHAgKi8sCiAJCQkJQTg0OTQyRDcw
QjY0QTlDQTAwNjlGMDBGIC8qIENvbG9yRGlzdGFuY2UuaCAqLywKIAkJCQlCMkRERjA2NjBCNDgy
QTAzMDA2NEE0QjEgLyogR3JhZGllbnRBdHRyaWJ1dGVzLmggKi8sCkBAIC0xMzg5Nyw2ICsxMzk4
NywxOSBAQAogCQkJCTkzMzA5REY4MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5RTFFMDk5RTY0OTIwMDU2RTU4MSAvKiB2aXNpYmxlX3VuaXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTM0MTdDOTBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21W
b2lkQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUIyQTFGMkFCMENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJBMUYyQUUwQ0VGMEFC
RjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJBMUYy
QjEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUIyN0IyODI2MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlCMjdCMjgyODBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlw
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODJBMENFRjBDMDcwMEQzOUQ1NCAv
KiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODM4
MENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQjI3QjI4M0EwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODNCMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdH
bHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODNEMENFRjBDMzYwMEQzOUQ1
NCAvKiBET01TVkdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3
QjI4M0UwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUIyN0IyODQwMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5n
R2x5cGhFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyRDE5QTQ5MENFRjlE
QzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMzkzNSw3
ICsxNDAzOCw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJY
Y29kZSAyLjQiOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lv
bnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTE0MDE2LDYgKzE0MTE4LDExIEBACiAJCQkJODUxMzZD
QTgwQUVENjY1OTAwRjkwQTNEIC8qIHdlc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAq
LywKIAkJCQkxQUIxQUU3QTBDMDUxRkRFMDAxMzlGNEYgLyogem9vbUluQ3Vyc29yLnBuZyBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJMUFCMUFFN0IwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJz
b3IucG5nIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkExRjJBQzBDRUYwQUJGMDA0NDJGNkEgLyog
U1ZHRm9udEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkExRjJBRjBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJB
MUYyQjIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlCMjdCMjgzNjBDRUYwQzM2MDBEMzlENTQgLyogQ1NTUHJvcGVydHlO
YW1lcy5pbiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MzcwQ0VGMEMzNjAwRDM5RDU0IC8q
IENTU1ZhbHVlS2V5d29yZHMuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU0NTgsNiArMTU1NjUs
MTYgQEAKIAkJCQk5MzMwOURGNzA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTFEMDk5RTY0OTIwMDU2RTU4MSAvKiB2aXNpYmxlX3VuaXRzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzQxN0NBMENFQ0ZGMjUwMDQ5Q0JERSAvKiBKU0N1c3Rv
bVZvaWRDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCMkExRjJBQTBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjJBMUYyQUQw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCMkExRjJCMDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCMjdCMjgyNTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCMjdCMjgyNzBDRUYwQzA3MDBEMzlENTQg
LyogSlNTVkdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MjkwQ0VG
MEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlCMjdCMjgzOTBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKKwkJCQlCMjdCMjgzQzBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHR2x5
cGhFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4M0YwQ0VGMEMzNjAwRDM5RDU0
IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlCMkQx
OUE0ODBDRUY5REMxMDAwRTAzM0IgLyogU1ZHQ1NTRm9udEZhY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBiaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gYmluZGluZ3MvanMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZp
c2lvbiAyNzg1MCkKKysrIGJpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTggKzU3LDIxIEBACiAjaW5jbHVkZSAiSlNTVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGaWx0ZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNTVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkpTU1ZHRm9udEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR0ZvbnRGYWNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpT
U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb250RmFjZU5hbWVF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb250RmFjZVNyY0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHR0VsZW1lbnQuaCIK
KyNpbmNsdWRlICJKU1NWR0dseXBoRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHSW1hZ2VFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU1NWR0xpbmVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdNYXJrZXJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSlNTVkdNYXNrRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHTWV0YWRhdGFFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SlNTVkdQYXRoRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHUGF0dGVybkVsZW1lbnQuaCIKICNp
bmNsdWRlICJKU1NWR1BvbHlnb25FbGVtZW50LmgiCkBAIC0xMjcsMTggKzEzMCwyMSBAQAogI2lu
Y2x1ZGUgIlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdGb250RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZVNyY0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJTVkdGb250RmFjZVVyaUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ltYWdlRWxlbWVudC5oIgog
I2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0xpbmVF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR01h
c2tFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTWV0YWRhdGFFbGVtZW50LmgiCisjaW5jbHVkZSAi
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHUGF0dGVybkVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdQb2x5Z29uRWxlbWVu
dC5oIgpAQCAtMjA1LDYgKzIxMSw3IEBAIHR5cGVkZWYgSlNOb2RlKiAoKkNyZWF0ZVNWR0VsZW1l
bnRXcmFwcGUKICAgICBtYWNybyhmZVNwb3RMaWdodCwgRkVTcG90TGlnaHQpIFwKICAgICBtYWNy
byhmZVRpbGUsIEZFVGlsZSkgXAogICAgIG1hY3JvKGZlVHVyYnVsZW5jZSwgRkVUdXJidWxlbmNl
KSBcCisgICAgbWFjcm8oZm9udCwgRm9udCkgXAogICAgIG1hY3JvKGZvbnRfZmFjZSwgRm9udEZh
Y2UpIFwKICAgICBtYWNybyhmb250X2ZhY2VfZm9ybWF0LCBGb250RmFjZUZvcm1hdCkgXAogICAg
IG1hY3JvKGZvbnRfZmFjZV9uYW1lLCBGb250RmFjZU5hbWUpIFwKQEAgLTIxMywxMiArMjIwLDE0
IEBAIHR5cGVkZWYgSlNOb2RlKiAoKkNyZWF0ZVNWR0VsZW1lbnRXcmFwcGUKICAgICBtYWNybyhm
aWx0ZXIsIEZpbHRlcikgXAogICAgIG1hY3JvKGZvcmVpZ25PYmplY3QsIEZvcmVpZ25PYmplY3Qp
IFwKICAgICBtYWNybyhnLCBHKSBcCisgICAgbWFjcm8oZ2x5cGgsIEdseXBoKSBcCiAgICAgbWFj
cm8oaW1hZ2UsIEltYWdlKSBcCiAgICAgbWFjcm8obGluZWFyR3JhZGllbnQsIExpbmVhckdyYWRp
ZW50KSBcCiAgICAgbWFjcm8obGluZSwgTGluZSkgXAogICAgIG1hY3JvKG1hcmtlciwgTWFya2Vy
KSBcCiAgICAgbWFjcm8obWFzaywgTWFzaykgXAogICAgIG1hY3JvKG1ldGFkYXRhLCBNZXRhZGF0
YSkgXAorICAgIG1hY3JvKG1pc3NpbmdfZ2x5cGgsIE1pc3NpbmdHbHlwaCkgXAogICAgIG1hY3Jv
KHBhdGgsIFBhdGgpIFwKICAgICBtYWNybyhwYXR0ZXJuLCBQYXR0ZXJuKSBcCiAgICAgbWFjcm8o
cG9seWxpbmUsIFBvbHlsaW5lKSBcCkluZGV4OiBiaW5kaW5ncy9vYmpjL0RPTS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBiaW5kaW5ncy9vYmpjL0RPTS5tbQkocmV2aXNpb24gMjc4NTApCisrKyBiaW5kaW5n
cy9vYmpjL0RPTS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjI1LDE4ICsyMjUsMjEgQEAgc3RhdGlj
IHZvaWQgY3JlYXRlRWxlbWVudENsYXNzTWFwKCkKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFt
ZXM6OmZlVHVyYnVsZW5jZVRhZywgW0RPTVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQgY2xhc3NdKTsK
ICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZpbHRlclRhZywgW0RPTVNWR0ZpbHRlckVs
ZW1lbnQgY2xhc3NdKTsKICNlbmRpZgorICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6Zm9u
dFRhZywgW0RPTVNWR0ZvbnRFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNW
R05hbWVzOjpmb250X2ZhY2VUYWcsIFtET01TVkdGb250RmFjZUVsZW1lbnQgY2xhc3NdKTsKICAg
ICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZvbnRfZmFjZV9mb3JtYXRUYWcsIFtET01TVkdG
b250RmFjZUZvcm1hdEVsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFt
ZXM6OmZvbnRfZmFjZV9uYW1lVGFnLCBbRE9NU1ZHRm9udEZhY2VOYW1lRWxlbWVudCBjbGFzc10p
OwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6Zm9udF9mYWNlX3NyY1RhZywgW0RPTVNW
R0ZvbnRGYWNlU3JjRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1l
czo6Zm9udF9mYWNlX3VyaVRhZywgW0RPTVNWR0ZvbnRGYWNlVXJpRWxlbWVudCBjbGFzc10pOwog
ICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6Z1RhZywgW0RPTVNWR0dFbGVtZW50IGNsYXNz
XSk7CisgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpnbHlwaFRhZywgW0RPTVNWR0dseXBo
RWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6aW1hZ2VUYWcs
IFtET01TVkdJbWFnZUVsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFt
ZXM6OmxpbmVUYWcsIFtET01TVkdMaW5lRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRD
bGFzcyhTVkdOYW1lczo6bGluZWFyR3JhZGllbnRUYWcsIFtET01TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6Om1hcmtlclRhZywg
W0RPTVNWR01hcmtlckVsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFt
ZXM6Om1hc2tUYWcsIFtET01TVkdNYXNrRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRD
bGFzcyhTVkdOYW1lczo6bWV0YWRhdGFUYWcsIFtET01TVkdNZXRhZGF0YUVsZW1lbnQgY2xhc3Nd
KTsKKyAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6Om1pc3NpbmdfZ2x5cGhUYWcsIFtET01T
VkdNaXNzaW5nR2x5cGhFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05h
bWVzOjpwYXRoVGFnLCBbRE9NU1ZHUGF0aEVsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50
Q2xhc3MoU1ZHTmFtZXM6OnBhdHRlcm5UYWcsIFtET01TVkdQYXR0ZXJuRWxlbWVudCBjbGFzc10p
OwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6cG9seWdvblRhZywgW0RPTVNWR1BvbHln
b25FbGVtZW50IGNsYXNzXSk7CkluZGV4OiBiaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5oCShyZXZpc2lvbiAyNzg1MCkK
KysrIGJpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDYg
KzE3MSw3IEBACiAjaW1wb3J0ICJET01TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVu
dEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdDdXJzb3JFbGVtZW50SW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTVNWR0RlZnNFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0RlZmlu
aXRpb25TcmNFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0Rlc2NFbGVtZW50SW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0RvY3VtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TVNWR0VsZW1lbnRJbnRlcm5hbC5oIgpAQCAtMjAwLDggKzIwMSwxNSBAQAogI2ltcG9ydCAiRE9N
U1ZHRkVUaWxlRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0ZpbHRlckVsZW1lbnRJbnRlcm5hbC5o
IgorI2ltcG9ydCAiRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZH
Rm9udEZhY2VFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0ZvbnRGYWNlRm9ybWF0
RWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdGb250RmFjZU5hbWVFbGVtZW50SW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0ZvbnRGYWNlU3JjRWxlbWVudEludGVybmFsLmgiCisj
aW1wb3J0ICJET01TVkdGb250RmFjZVVyaUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9N
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHR0VsZW1l
bnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTVNWR0dyYWRpZW50RWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdJ
bWFnZUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHTGVuZ3RoSW50ZXJuYWwuaCIK
QEAgLTIxMiw2ICsyMjAsNyBAQAogI2ltcG9ydCAiRE9NU1ZHTWFza0VsZW1lbnRJbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NU1ZHTWF0cml4SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR01ldGFk
YXRhRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR051bWJlckludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01TVkdOdW1iZXJMaXN0SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR1BhaW50SW50ZXJuYWwu
aCIKSW5kZXg6IGJpbmRpbmdzL29iamMvRE9NU1ZHLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3Mv
b2JqYy9ET01TVkcuaAkocmV2aXNpb24gMjc4NTApCisrKyBiaW5kaW5ncy9vYmpjL0RPTVNWRy5o
CSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNW
R0ZpbHRlckVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZpdFRvVmlld0Jv
eC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdGb250RWxlbWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9ET01TVkdGb250RmFjZUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRm9u
dEZhY2VGb3JtYXRFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuaD4KQEAgLTkxLDYgKzkyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRm9u
dEZhY2VVcmlFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0dFbGVtZW50Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0RPTVNWR0dseXBoRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdHcmFk
aWVudEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHSW1hZ2VFbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RPTVNWR0xhbmdTcGFjZS5oPgpAQCAtMTAzLDYgKzEwNSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0RPTVNWR01hc2tFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RP
TVNWR01hdHJpeC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdNZXRhZGF0YUVsZW1lbnQuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9ET01TVkdOdW1iZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTnVtYmVyTGlz
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdQYWludC5oPgpJbmRleDogY3NzL0NTU0ZvbnRG
YWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gY3NzL0NTU0ZvbnRGYWNlLmgJKHJldmlzaW9uIDI3ODUwKQor
KysgY3NzL0NTU0ZvbnRGYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE2ICszOSwxNiBAQCBj
bGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBDU1NGb250RmFjZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPENTU0ZvbnRGYWNlPiB7CiBwdWJsaWM6CiAgICAgQ1NTRm9udEZhY2UoQ1NTRm9udFNlbGVj
dG9yKik7Ci0gICAgfkNTU0ZvbnRGYWNlKCk7CisgICAgdmlydHVhbCB+Q1NTRm9udEZhY2UoKTsK
IAogICAgIGJvb2wgaXNMb2FkZWQoKSBjb25zdDsKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRTb3VyY2Uo
Q1NTRm9udEZhY2VTb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkU291cmNlKENTU0ZvbnRG
YWNlU291cmNlKik7CiAKICAgICB2b2lkIGZvbnRMb2FkZWQoQ1NTRm9udEZhY2VTb3VyY2UqKTsK
IAotICAgIEZvbnREYXRhKiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29s
IHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKTsKKyAgICB2aXJ0dWFsIEZvbnRE
YXRhKiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0Jv
bGQsIGJvb2wgc3ludGhldGljSXRhbGljKTsKIAogcHJpdmF0ZToKICAgICBWZWN0b3I8Q1NTRm9u
dEZhY2VTb3VyY2UqPiBtX3NvdXJjZXM7CkluZGV4OiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAkocmV2aXNpb24gMjc4NTApCisr
KyBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogICAgICAgICAgIChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw4ICsyNSw5IEBA
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5o
IgogCisjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgog
I2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmgiCiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCkBAIC00NCw2ICs0NiwxMyBAQAogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKKyNpZiBFTkFCTEUoU1ZHKQor
I2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVkZSAiU1ZHQ1NTRm9udEZhY2UuaCIKKyNpbmNs
dWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ1NTRm9udFNlbGVjdG9yOjpDU1NGb250U2VsZWN0
b3IoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtMTEyLDE3ICsxMjEsMzIgQEAgdm9pZCBDU1NGb250
U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjbwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgfQotICAgIAorCiAgICAgLy8gRWFjaCBpdGVtIGluIHRoZSBzcmMgcHJvcGVy
dHkncyBsaXN0IGlzIGEgc2luZ2xlIENTU0ZvbnRGYWNlU291cmNlLiBQdXQgdGhlbSBhbGwgaW50
byBhIENTU0ZvbnRGYWNlLgotICAgIENTU0ZvbnRGYWNlKiBmb250RmFjZSA9IG5ldyBDU1NGb250
RmFjZSh0aGlzKTsKLSAgICAKKyAgICBDU1NGb250RmFjZSogZm9udEZhY2UgPSAwOworCiAgICAg
aW50IGk7CiAgICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpc3QtPmxlbmd0aCgpOworCiAgICAgYm9v
bCBmb3VuZExvY2FsID0gZmFsc2U7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGJvb2wgaXNTVkdG
b250ID0gZmFsc2U7CisjZW5kaWYKKwogICAgIGZvciAoaSA9IDA7IGkgPCBzcmNMZW5ndGg7IGkr
KykgewogICAgICAgICAvLyBBbiBpdGVtIGluIHRoZSBsaXN0IGVpdGhlciBzcGVjaWZpZXMgYSBz
dHJpbmcgKGxvY2FsIGZvbnQgbmFtZSkgb3IgYSBVUkwgKHJlbW90ZSBmb250IHRvIGRvd25sb2Fk
KS4KICAgICAgICAgQ1NTRm9udEZhY2VTcmNWYWx1ZSogaXRlbSA9IHN0YXRpY19jYXN0PENTU0Zv
bnRGYWNlU3JjVmFsdWUqPihzcmNMaXN0LT5pdGVtKGkpKTsKICAgICAgICAgQ1NTRm9udEZhY2VT
b3VyY2UqIHNvdXJjZSA9IDA7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAvLyBTVkcgRm9u
dHMgc3VwcG9ydCAoaW50ZXJuYWwgZm9udHMsIGxpdmluZyB3aXRoaW4gdGhlIGRvY3VtZW50KQor
ICAgICAgICBpZiAoaXRlbS0+Zm9ybWF0KCkgPT0gIndlYmtpdF9zdmdfaW50ZXJuYWxfZm9udCIp
IHsKKyAgICAgICAgICAgIGlzU1ZHRm9udCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorI2VuZGlmCisKICAgICAgICAgaWYgKCFpdGVtLT5pc0xvY2FsKCkpIHsKICAgICAg
ICAgICAgIGlmIChpdGVtLT5pc1N1cHBvcnRlZEZvcm1hdCgpKSB7CiAgICAgICAgICAgICAgICAg
Q2FjaGVkRm9udCogY2FjaGVkRm9udCA9IG1fZG9jdW1lbnQtPmRvY0xvYWRlcigpLT5yZXF1ZXN0
Rm9udChpdGVtLT5yZXNvdXJjZSgpKTsKQEAgLTEzOSw2ICsxNjMsOSBAQCB2b2lkIENTU0ZvbnRT
ZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAor
ICAgICAgICBpZiAoIWZvbnRGYWNlKQorICAgICAgICAgICAgZm9udEZhY2UgPSBuZXcgQ1NTRm9u
dEZhY2UodGhpcyk7CisKICAgICAgICAgaWYgKHNvdXJjZSkKICAgICAgICAgICAgIGZvbnRGYWNl
LT5hZGRTb3VyY2Uoc291cmNlKTsKICAgICAgICAgCkBAIC0xNDYsOCArMTczLDE0IEBAIHZvaWQg
Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY28KICAgICAgICAgaWYgKGZvdW5kTG9j
YWwpCiAgICAgICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCi0gICAgaWYgKCFmb250RmFjZS0+
aXNWYWxpZCgpKSB7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIEFTU0VSVChmb250RmFjZSB8fCBp
c1NWR0ZvbnQpOworI2Vsc2UKKyAgICBBU1NFUlQoZm9udEZhY2UpOworI2VuZGlmCisKKyAgICBp
ZiAoZm9udEZhY2UgJiYgIWZvbnRGYWNlLT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZGVsZXRlIGZv
bnRGYWNlOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTgzLDkgKzIxNiwzNyBAQCB2b2lk
IENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAo
IWZhbWlseU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9mb250cy5zZXQoaGFzaEZvckZv
bnQoZmFtaWx5TmFtZS5sb3dlcigpLCBmb250RGVzY3JpcHRpb24uYm9sZCgpLCBmb250RGVzY3Jp
cHRpb24uaXRhbGljKCkpLCBmb250RmFjZSk7CisKKyAgICAgICAgaWYgKGZhbWlseU5hbWUuaXNF
bXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAg
ICBpZiAoaXNTVkdGb250KSB7CisgICAgICAgICAgICBTVkdGb250RmFjZUVsZW1lbnQqIHVzZUZv
bnRGYWNlRWxlbWVudCA9IDA7CisKKyAgICAgICAgICAgIC8vIExvb2t1cCBTVkdGb250RmFjZUVs
ZW1lbnQgZm9yIGludGVybmFsIGZvbnQgaW4gRE9NIFRyZWUhCisgICAgICAgICAgICBSZWZQdHI8
Tm9kZUxpc3Q+IGxpc3QgPSBtX2RvY3VtZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKFNWR05h
bWVzOjpzdmdOYW1lc3BhY2VVUkksIFNWR05hbWVzOjpmb250X2ZhY2VUYWcubG9jYWxOYW1lKCkp
OworCisgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgICAgIFNWR0ZvbnRGYWNlRWxlbWVudCogZm9udEZhY2VFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
U1ZHRm9udEZhY2VFbGVtZW50Kj4obGlzdC0+aXRlbShpKSk7CisgICAgICAgICAgICAgICAgaWYg
KCFmb250RmFjZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgICAgICAgICAgaWYgKGZvbnRGYWNlRWxlbWVudC0+Zm9udEZhbWlseSgpID09IGZhbWlseU5h
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgdXNlRm9udEZhY2VFbGVtZW50ID0gZm9udEZhY2VF
bGVtZW50OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdXNlRm9udEZhY2VFbGVtZW50KQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBmb250RmFjZSA9IG5ldyBTVkdD
U1NGb250RmFjZSh0aGlzLCB1c2VGb250RmFjZUVsZW1lbnQpOworICAgICAgICB9CisjZW5kaWYK
KworICAgICAgICBtX2ZvbnRzLnNldChoYXNoRm9yRm9udChmYW1pbHlOYW1lLmxvd2VyKCksIGZv
bnREZXNjcmlwdGlvbi5ib2xkKCksIGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSksIGZvbnRGYWNl
KTsKICAgICB9CiB9CiAKQEAgLTIwOSw3ICsyNzAsNiBAQCBGb250RGF0YSogQ1NTRm9udFNlbGVj
dG9yOjpnZXRGb250RGF0YShjCiAgICAgYm9vbCBzeW50aGV0aWNJdGFsaWMgPSBmYWxzZTsKIAog
ICAgIFN0cmluZyBmYW1pbHkgPSBmYW1pbHlOYW1lLmRvbVN0cmluZygpLmxvd2VyKCk7Ci0gICAg
CiAgICAgUmVmUHRyPENTU0ZvbnRGYWNlPiBmYWNlID0gbV9mb250cy5nZXQoaGFzaEZvckZvbnQo
ZmFtaWx5LCBib2xkLCBpdGFsaWMpKTsKICAgICAvLyBJZiB3ZSBkb24ndCBmaW5kIGEgZmFjZSwg
YW5kIGlmIGJvbGQvaXRhbGljIGFyZSBzZXQsIHdlIHNob3VsZCB0cnkgb3RoZXIgdmFyaWFudHMu
CiAgICAgLy8gQm9sZC9pdGFsaWMgc2hvdWxkIHRyeSBib2xkIGZpcnN0LCB0aGVuIGl0YWxpYywg
dGhlbiBub3JtYWwgKG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgd2UgYXJlIGJldHRlciBhdCBzeW50
aGVzaXppbmcgaXRhbGljIHRoYW4gd2UgYXJlCkluZGV4OiBrc3ZnMi9jc3MvU1ZHQ1NTRm9udEZh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2Nzcy9TVkdDU1NGb250RmFjZS5jcHAJKHJldmlz
aW9uIDApCisrKyBrc3ZnMi9jc3MvU1ZHQ1NTRm9udEZhY2UuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFu
biA8emltbWVybWFubkBrZGUub3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdDU1NGb250
RmFjZS5oIgorCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiU1ZHRm9u
dEZhY2VFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHQ1NTRm9udEZhY2U6
OlNWR0NTU0ZvbnRGYWNlKENTU0ZvbnRTZWxlY3Rvciogc2VsZWN0b3IsIFNWR0ZvbnRGYWNlRWxl
bWVudCogZm9udEZhY2UpCisgICAgOiBDU1NGb250RmFjZShzZWxlY3RvcikKKyAgICAsIG1fZm9u
dEZhY2VFbGVtZW50KGZvbnRGYWNlKQoreworICAgIEFTU0VSVChmb250RmFjZSk7Cit9CisKK1NW
R0NTU0ZvbnRGYWNlOjp+U1ZHQ1NTRm9udEZhY2UoKQoreworfQorCitib29sIFNWR0NTU0ZvbnRG
YWNlOjppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICAvLyBUT0RPOiBXaGF0IHRvIGNoZWNrIGhlcmU/
CisgICAgcmV0dXJuIHRydWU7Cit9CisgICAgCit2b2lkIFNWR0NTU0ZvbnRGYWNlOjphZGRTb3Vy
Y2UoQ1NTRm9udEZhY2VTb3VyY2UqKQoreworICAgIC8vIG5vLW9wCit9CisKK0ZvbnREYXRhKiBT
VkdDU1NGb250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCit7Cisg
ICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fZm9u
dEZhY2VFbGVtZW50LT5jcmVhdGVGb250RGF0YShmb250RGVzY3JpcHRpb24pOworfQorCit9CisK
KyNlbmRpZgpJbmRleDoga3N2ZzIvY3NzL1NWR0NTU0ZvbnRGYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvY3NzL1NWR0NTU0ZvbnRGYWNlLmgJKHJldmlzaW9uIDApCisrKyBrc3ZnMi9jc3MvU1ZH
Q1NTRm9udEZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBTVkdDU1NGb250RmFjZV9oCisjZGVmaW5lIFNWR0NTU0ZvbnRGYWNlX2gK
KworI2luY2x1ZGUgPENTU0ZvbnRGYWNlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU1ZHRm9udEZhY2VFbGVtZW50OworCitjbGFzcyBTVkdDU1NGb250RmFjZSA6IHB1YmxpYyBD
U1NGb250RmFjZSB7CitwdWJsaWM6CisgICAgU1ZHQ1NTRm9udEZhY2UoQ1NTRm9udFNlbGVjdG9y
KiwgU1ZHRm9udEZhY2VFbGVtZW50Kik7CisgICAgdmlydHVhbCB+U1ZHQ1NTRm9udEZhY2UoKTsK
KworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFk
ZFNvdXJjZShDU1NGb250RmFjZVNvdXJjZSopOworCisgICAgdmlydHVhbCBGb250RGF0YSogZ2V0
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY0l0YWxpYyk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFNWR0ZvbnRGYWNlRWxl
bWVudD4gbV9mb250RmFjZUVsZW1lbnQ7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDoga3N2ZzIv
c3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRm9udEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysga3N2ZzIvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA3
IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA3IE5p
a29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUg
IlNWR0ZvbnRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiR2x5cGhQ
YWdlVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJTVkdHbHlwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdNaXNzaW5nR2x5cGhFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRl
ICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBu
YW1lc3BhY2UgU1ZHTmFtZXM7CisKK1NWR0ZvbnRFbGVtZW50OjpTVkdGb250RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQorICAgIDogU1ZHU3R5bGVk
RWxlbWVudCh0YWdOYW1lLCBkb2MpCit7Cit9CisKK1NWR0ZvbnRFbGVtZW50Ojp+U1ZHRm9udEVs
ZW1lbnQoKQoreworfQorCit2b2lkIFNWR0ZvbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgU1ZHU3R5bGVkRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgU1ZHRm9udEVsZW1lbnQ6OmNvbGxlY3RH
bHlwaHMoY29uc3QgRm9udCYgZm9udCkKK3sKKyAgICBWZWN0b3I8U1ZHR2x5cGhFbGVtZW50Kj4g
Z2x5cGhFbGVtZW50czsKKyAgICBTVkdNaXNzaW5nR2x5cGhFbGVtZW50KiBtaXNzaW5nR2x5cGhF
bGVtZW50ID0gMDsKKworICAgIGZvciAoTm9kZSogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+
aGFzVGFnTmFtZShnbHlwaFRhZykpCisgICAgICAgICAgICBnbHlwaEVsZW1lbnRzLmFwcGVuZChz
dGF0aWNfY2FzdDxTVkdHbHlwaEVsZW1lbnQqPihjaGlsZCkpOworICAgICAgICBlbHNlIGlmIChj
aGlsZC0+aGFzVGFnTmFtZShtaXNzaW5nX2dseXBoVGFnKSkKKyAgICAgICAgICAgIG1pc3NpbmdH
bHlwaEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdNaXNzaW5nR2x5cGhFbGVtZW50Kj4oY2hpbGQp
OworICAgIH0KKworICAgIFZlY3RvcjxTVkdHbHlwaEVsZW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBn
bHlwaEVsZW1lbnRzLmJlZ2luKCk7CisgICAgVmVjdG9yPFNWR0dseXBoRWxlbWVudCo+OjppdGVy
YXRvciBlbmQgPSBnbHlwaEVsZW1lbnRzLmVuZCgpOworCisgICAgbV9nbHlwaE1hcC5jbGVhcigp
OworCisgICAgU1ZHR2x5cGhJZGVudGlmaWVyIGlkZW50aWZpZXI7CisKKyAgICAvLyBPbmx5IHN1
cHBvcnRzIHNpbmdsZSBnbHlwaCA8LT4gc2luZ2xlIGNoYXJhY3RlciBzaXR1YXRpb25zICYgZ2x5
cGhzIHJlbmRlcmVkIGJ5IHBhdGhzLgorICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAg
ICAgICAgU3RyaW5nIHBhdGhEYXRhU3RyaW5nID0gKCppdCktPmdldEF0dHJpYnV0ZShkQXR0cik7
CisgICAgICAgIFN0cmluZyBnbHlwaFN0cmluZyA9ICgqaXQpLT5nZXRBdHRyaWJ1dGUodW5pY29k
ZUF0dHIpOworCisgICAgICAgIC8vIFRvIHN1cHBvcnQgZ2x5cGggc3RyaW5ncyBjb25zaXN0aW5n
IG9mIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyIChpZS4gJ2ZmbCcgbGlnYXR1cmVzKSB3ZSBuZWVk
IGFub3RoZXIgaGFzaGluZyBzY2hlbWUuCisgICAgICAgIC8vIEdseXBoIDwtPiBTVkdHbHlwaElk
ZW50aWZpZXIgaXMgbm90IGVub3VnaC4KKyAgICAgICAgaWYgKGdseXBoU3RyaW5nLmxlbmd0aCgp
ICE9IDEgfHwgcGF0aERhdGFTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgY29uc3QgR2x5cGhEYXRhJiBnbHlwaERhdGEgPSBmb250LmdseXBoRGF0YUZv
ckNoYXJhY3RlcihnbHlwaFN0cmluZ1swXSwgZmFsc2UgLyogVE9ETzogbm8gcnRsLCBpcyB0aGlz
IGNvcnJlY3QgaW4gYWxsIGNhc2VzPyAqLyk7CisKKyAgICAgICAgaWRlbnRpZmllci5wYXRoRGF0
YSA9IFBhdGgoKTsKKyAgICAgICAgcGF0aEZyb21TVkdEYXRhKGlkZW50aWZpZXIucGF0aERhdGEs
IHBhdGhEYXRhU3RyaW5nKTsKKworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZPVU5EIE5FVyBH
TFlQSCEgcGF0aERhdGFTdHJpbmc6ICclcycgZ2x5cGhTdHJpbmc6ICclcycgIGNvZGU6ICcldSdc
biIsIHBhdGhEYXRhU3RyaW5nLmxhdGluMSgpLmRhdGEoKSwgZ2x5cGhTdHJpbmcubGF0aW4xKCku
ZGF0YSgpLCBnbHlwaERhdGEuZ2x5cGgpOworICAgICAgICBtX2dseXBoTWFwLmFkZChnbHlwaERh
dGEuZ2x5cGgsIGlkZW50aWZpZXIpOworICAgIH0KK30KKworU1ZHR2x5cGhJZGVudGlmaWVyIFNW
R0ZvbnRFbGVtZW50OjpnbHlwaElkZW50aWZpZXJGb3JHbHlwaENvZGUoY29uc3QgR2x5cGgmIGNv
ZGUpIGNvbnN0Cit7CisgICAgR2x5cGhIYXNoTWFwJiBoYXNoTWFwID0gY29uc3RfY2FzdDxTVkdG
b250RWxlbWVudCo+KHRoaXMpLT5tX2dseXBoTWFwOworCisgICAgR2x5cGhIYXNoTWFwOjppdGVy
YXRvciBpdCA9IGhhc2hNYXAuZmluZChjb2RlKTsKKyAgICBpZiAoaXQgPT0gaGFzaE1hcC5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIFNWR0dseXBoSWRlbnRpZmllcigpOworCisgICAgcmV0dXJuIGl0
LT5zZWNvbmQ7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBrc3ZnMi9z
dmcvU1ZHRm9udEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRm9udEVsZW1l
bnQuaAkocmV2aXNpb24gMCkKKysrIGtzdmcyL3N2Zy9TVkdGb250RWxlbWVudC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc0IEBACisvKgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHRm9udEVsZW1lbnRfaAorI2RlZmluZSBT
VkdGb250RWxlbWVudF9oCisKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR1N0eWxlZEVs
ZW1lbnQuaCIKKworI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisjaW5jbHVkZSAiU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC5oIgorI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBGb250OworCisgICAgc3RydWN0IEdseXBo
SGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEdseXBoJiBnbHlwaCkg
eworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKCg6OlVDaGFyKikg
JmdseXBoLCBzaXplb2YoR2x5cGgpIC8gc2l6ZW9mKDo6VUNoYXIpKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEdseXBoJiBhLCBjb25zdCBHbHlwaCYgYikg
eyByZXR1cm4gYSA9PSBiOyB9CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBh
cmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHN0cnVjdCBHbHlwaEhh
c2hUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPEdseXBoPiB7CisgICAgICAgIHN0YXRp
YyBUcmFpdFR5cGUgZGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gVVNIUlRfTUFYOyB9CisgICAgfTsK
KworICAgIHR5cGVkZWYgSGFzaE1hcDxHbHlwaCwgU1ZHR2x5cGhJZGVudGlmaWVyLCBHbHlwaEhh
c2gsIEdseXBoSGFzaFRyYWl0cz4gR2x5cGhIYXNoTWFwOworCisgICAgY2xhc3MgU1ZHRm9udEVs
ZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudAorICAgICAgICAgICAgICAgICAgICAgICAg
ICwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgU1ZHRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cisg
ICAgICAgIHZpcnR1YWwgflNWR0ZvbnRFbGVtZW50KCk7CisKKyAgICAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgICAgICB2aXJ0dWFs
IGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9ICAg
IAorCisgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiB0aGlzOyB9CisKKyAgICAgICAgdm9pZCBjb2xsZWN0R2x5cGhzKGNvbnN0
IEZvbnQmKTsKKyAgICAgICAgU1ZHR2x5cGhJZGVudGlmaWVyIGdseXBoSWRlbnRpZmllckZvckds
eXBoQ29kZShjb25zdCBHbHlwaCYpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgLy8g
TWFwIGJldHdlZW4gJ3VuaWNvZGUnIHByb3BlcnR5IG9mIDxnbHlwaD4gYW5kIGEgU1ZHR2x5cGhJ
ZGVudGlmaWVyCisgICAgICAgIEdseXBoSGFzaE1hcCBtX2dseXBoTWFwOworICAgIH07CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpCisjZW5kaWYKKwor
Ly8gdmltOnRzPTQ6bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRm9udEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysg
a3N2ZzIvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3Jn
PgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCittb2R1bGUgc3ZnIHsKKworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
XSBTVkdGb250RWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIH07CisKK30KSW5kZXg6IGtzdmcy
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzg1MCkKKysrIGtzdmcyL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICsxLDQzIEBACiAvKgotQ29w
eXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0KLVRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLW1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci1MaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLXZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLQotVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi1idXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLUxpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi1Zb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi1h
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLUJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICAg
Q29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgICBDb3B5
cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Cisg
ICAgCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKwogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VF
bGVtZW50LmgiCiAKICNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NG
b250RmFjZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHkuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRl
ICJGb250Q2FjaGUuaCIKKyNpbmNsdWRlICJGb250RGF0YS5oIgorI2luY2x1ZGUgIkZvbnRQbGF0
Zm9ybURhdGEuaCIKKyNpbmNsdWRlICJTVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdGb250RmFjZVNyY0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdEZWZpbml0aW9uU3JjRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTEyNSwxMiArMTMzLDg2IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHIKICAgICBTVkdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0K
IAordW5zaWduZWQgU1ZHRm9udEZhY2VFbGVtZW50Ojp1bml0c1BlckVtKCkgY29uc3QKK3sKKyAg
ICBpZiAoaGFzQXR0cmlidXRlKHVuaXRzX3Blcl9lbUF0dHIpKQorICAgICAgICByZXR1cm4gZ2V0
QXR0cmlidXRlKHVuaXRzX3Blcl9lbUF0dHIpLnRvSW50KCk7CisgICAgCisgICAgcmV0dXJuIDEw
MDA7Cit9CisKK1N0cmluZyBTVkdGb250RmFjZUVsZW1lbnQ6OmZvbnRGYW1pbHkoKSBjb25zdAor
eworICAgIHJldHVybiBtX3N0eWxlRGVjbGFyYXRpb24tPmdldFByb3BlcnR5VmFsdWUoQ1NTX1BS
T1BfRk9OVF9GQU1JTFkpOworfQorCitGb250RGF0YSogU1ZHRm9udEZhY2VFbGVtZW50OjpjcmVh
dGVGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
K3sKKyAgICAvLyBXZSBvbmx5IGV4cGVjdCB0byBoYXZlIHRoaXMgbWV0aG9kIGNhbGxlZCBieSBh
IHBhcmVudCBmb250IGVsZW1lbnQKKyAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICBBU1NF
UlQocGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpKTsKKyAgICBTVkdGb250RWxlbWVu
dCogZm9udEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KHBhcmVudE5vZGUo
KSk7CisKKyAgICAvLyBVc2UgZGVmYXVsdCBmYWxsYmFjayBwbGF0Zm9ybSBkYXRhIC0gaXQncyBu
b3QgbmVlZGVkIGFueXdheS4uLgorICAgIEZvbnRQbGF0Zm9ybURhdGEqIGNhY2hlZFBsYXRmb3Jt
RGF0YSA9IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRp
b24pOworICAgIGlmICghY2FjaGVkUGxhdGZvcm1EYXRhKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIE93blB0cjxGb250RGF0YT4gZm9udERhdGEobmV3IEZvbnREYXRhKCpjYWNoZWRQbGF0Zm9y
bURhdGEsIHRydWUsIGZhbHNlKSk7CisgICAgZm9udERhdGEtPm1faXNTVkdGb250ID0gdHJ1ZTsK
KyAgICBmb250RGF0YS0+bV9zdmdGb250RmFjZSA9IGNvbnN0X2Nhc3Q8U1ZHRm9udEZhY2VFbGVt
ZW50Kj4odGhpcyk7CisKKyAgICBmb250RGF0YS0+bV94SGVpZ2h0ID0gZm9udEVsZW1lbnQtPmdl
dEF0dHJpYnV0ZSh4X2hlaWdodEF0dHIpLnRvRmxvYXQoKTsKKyAgICBmb250RGF0YS0+bV91bml0
c1BlckVtID0gdW5pdHNQZXJFbSgpOworCisgICAgaWYgKGhhc0F0dHJpYnV0ZShhc2NlbnRBdHRy
KSkKKyAgICAgICAgZm9udERhdGEtPm1fYXNjZW50ID0gZ2V0QXR0cmlidXRlKGFzY2VudEF0dHIp
LnRvSW50KCk7CisgICAgZWxzZSBpZiAoZm9udEVsZW1lbnQtPmhhc0F0dHJpYnV0ZSh2ZXJ0X29y
aWdpbl95QXR0cikpCisgICAgICAgIGZvbnREYXRhLT5tX2FzY2VudCA9IGZvbnREYXRhLT5tX3Vu
aXRzUGVyRW0gLSBmb250RWxlbWVudC0+Z2V0QXR0cmlidXRlKHZlcnRfb3JpZ2luX3lBdHRyKS50
b0ludCgpOworICAgIGVsc2UKKyAgICAgICAgLy8gaW52YWxpZCBmb250LCBzaG91bGQgbG9nCisg
ICAgICAgIGZvbnREYXRhLT5tX2FzY2VudCA9IDA7CisKKyAgICBpZiAoaGFzQXR0cmlidXRlKGRl
c2NlbnRBdHRyKSkKKyAgICAgICAgZm9udERhdGEtPm1fZGVzY2VudCA9IGdldEF0dHJpYnV0ZShk
ZXNjZW50QXR0cikudG9JbnQoKTsKKyAgICBlbHNlIGlmIChmb250RWxlbWVudC0+aGFzQXR0cmli
dXRlKHZlcnRfb3JpZ2luX3lBdHRyKSkKKyAgICAgICAgZm9udERhdGEtPm1fZGVzY2VudCA9IGZv
bnRFbGVtZW50LT5nZXRBdHRyaWJ1dGUodmVydF9vcmlnaW5feUF0dHIpLnRvSW50KCk7CisgICAg
ZWxzZQorICAgICAgICBmb250RGF0YS0+bV9kZXNjZW50ID0gZm9udERhdGEtPm1fYXNjZW50Owor
CisgICAgcmV0dXJuIGZvbnREYXRhLnJlbGVhc2UoKTsKK30KKwogdm9pZCBTVkdGb250RmFjZUVs
ZW1lbnQ6OnJlYnVpbGRGb250RmFjZSgpCiB7CisgICAgLy8gSWdub3JlIGNoYW5nZXMgdW50aWwg
d2UgbGl2ZSBpbiB0aGUgdHJlZQorICAgIGlmICghcGFyZW50Tm9kZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBsb2NhbCBTVkcgZm9udHMgKHRob3Nl
IHdoaWNoIGhhdmUgYSA8Zm9udD4gcGFyZW50LCBhbmQgYXJlIG9ubHkgdXNlZCB3aXRoaW4gdGhl
IGRvY3VtZW50KQorICAgIGlmIChwYXJlbnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5oYXNUYWdO
YW1lKGZvbnRUYWcpKSB7CisgICAgICAgIC8vIFNldHVwIHNwZWNpYWwgJ2ZvbnQtZmFjZS1zcmMn
IHByb3BlcnR5IHRvIGlkZW50aWZ5ICJsb2NhbCBTVkcgZm9udHMiCisgICAgICAgIC8vIFRPRE86
IEZpbmQgYmV0dGVyIHNvbHV0aW9uLCBpdCdzIGEgY3J1ZGUgaGFjay4KKyAgICAgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gbGlzdCA9IG5ldyBDU1NWYWx1ZUxpc3Q7CisKKyAgICAgICAgUmVmUHRy
PENTU0ZvbnRGYWNlU3JjVmFsdWU+IHNyYyA9IG5ldyBDU1NGb250RmFjZVNyY1ZhbHVlKFN0cmlu
Z0ltcGw6OmVtcHR5KCksIGZhbHNlKTsKKyAgICAgICAgc3JjLT5zZXRGb3JtYXQoIndlYmtpdF9z
dmdfaW50ZXJuYWxfZm9udCIpOworICAgICAgICBsaXN0LT5hcHBlbmQoc3JjKTsKKworICAgICAg
ICBDU1NQcm9wZXJ0eSBzcmNQcm9wZXJ0eShDU1NfUFJPUF9TUkMsIGxpc3QpOworICAgICAgICBj
b25zdCBDU1NQcm9wZXJ0eSogc3JjUHJvcGVydHlSZWYgPSAmc3JjUHJvcGVydHk7CisgICAgICAg
IG1fc3R5bGVEZWNsYXJhdGlvbi0+YWRkUGFyc2VkUHJvcGVydGllcygmc3JjUHJvcGVydHlSZWYs
IDEpOworCisgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRPRE86IEV4dGVybmFsIFNWRyBmb250cyBzdXBw
b3J0IC0gcmUgdXNlIGV4aXN0aW5nICJjdXN0b20gZm9udCIgaGFuZGxpbmcgbG9naWMuCisKICAg
ICAvLyB3ZSBjdXJyZW50bHkgaWdub3JlIGFsbCBidXQgdGhlIGZpcnN0IHNyYyBlbGVtZW50LCBh
bHRlcm5hdGl2ZWx5IHdlIGNvdWxkIGNvbmNhdCB0aGVtCiAgICAgU1ZHRm9udEZhY2VTcmNFbGVt
ZW50KiBzcmNFbGVtZW50ID0gMDsKICAgICBTVkdEZWZpbml0aW9uU3JjRWxlbWVudCogZGVmaW5p
dGlvblNyYyA9IDA7Ci0gICAgCisKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoY2hp
bGQtPmhhc1RhZ05hbWUoZm9udF9mYWNlX3NyY1RhZykgJiYgIXNyY0VsZW1lbnQpCiAgICAgICAg
ICAgICBzcmNFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRm9udEZhY2VTcmNFbGVtZW50Kj4oY2hp
bGQpOwpAQCAtMTQzLDI2ICsyMjUsMzggQEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnJlYnVp
bGRGb250RmFjZQogICAgIGlmIChkZWZpbml0aW9uU3JjKQogICAgICAgICBtX3N0eWxlRGVjbGFy
YXRpb24tPnNldFByb3BlcnR5KENTU19QUk9QX0RFRklOSVRJT05fU1JDLCBkZWZpbml0aW9uU3Jj
LT5nZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpLCBmYWxzZSk7CiAjZW5kaWYKLSAg
ICAKLSAgICBpZiAocGFyZW50Tm9kZSgpICYmIHBhcmVudE5vZGUoKS0+bG9jYWxOYW1lKCkgPT0g
ImZvbnQiKSAvLyBTVkdOYW1lczo6Zm9udFRhZyBpc24ndCBnZW5lcmF0ZWQgeWV0Ci0gICAgICAg
IHJldHVybjsgLy8gdGhpcyBmb250LWZhY2UgYXBwbGllcyB0byBpdHMgcGFyZW50IGZvbnQsIHdo
aWNoIHdlIGlnbm9yZS4KLSAgICBlbHNlIGlmIChzcmNFbGVtZW50KSB7CisKKyAgICBpZiAoc3Jj
RWxlbWVudCkgewogICAgICAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IGNsYXNzIChvdGhlciB0aGFu
IENTU1BhcnNlcikgdG8gY3JlYXRlIENTU1ZhbHVlIG9iamVjdHMgYW5kIHNldCB0aGVtIG9uIHRo
ZSBDU1NTdHlsZURlY2xhcmF0aW9uIG1hbnVhbGx5CiAgICAgICAgIC8vIHdlIHVzZSB0aGUgYWRk
UGFyc2VkUHJvcGVydGllcyBtZXRob2QsIGFuZCBmYWtlIGhhdmluZyBhbiBhcnJheSBvZiBDU1NQ
cm9wZXJ0eSBwb2ludGVycy4KICAgICAgICAgQ1NTUHJvcGVydHkgc3JjUHJvcGVydHkoQ1NTX1BS
T1BfU1JDLCBzcmNFbGVtZW50LT5zcmNWYWx1ZSgpKTsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVy
dHkqIHNyY1Byb3BlcnR5UmVmID0gJnNyY1Byb3BlcnR5OwogICAgICAgICBtX3N0eWxlRGVjbGFy
YXRpb24tPmFkZFBhcnNlZFByb3BlcnRpZXMoJnNyY1Byb3BlcnR5UmVmLCAxKTsKICAgICB9Ci0g
ICAgCisKICAgICBkb2N1bWVudCgpLT51cGRhdGVTdHlsZVNlbGVjdG9yKCk7CiB9CiAKK3ZvaWQg
U1ZHRm9udEZhY2VFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgcmVidWls
ZEZvbnRGYWNlKCk7Cit9CisKIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQoKQogewogICAgIHJlYnVpbGRGb250RmFjZSgpOwogfQogCitTVkdHbHlwaElkZW50aWZpZXIg
U1ZHRm9udEZhY2VFbGVtZW50OjpnbHlwaElkZW50aWZpZXJGb3JHbHlwaENvZGUoY29uc3QgR2x5
cGgmIGNvZGUpIGNvbnN0Cit7CisgICAgLy8gV2Ugb25seSBleHBlY3QgdG8gaGF2ZSB0aGlzIG1l
dGhvZCBjYWxsZWQgYnkgYSBwYXJlbnQgZm9udCBlbGVtZW50CisgICAgQVNTRVJUKHBhcmVudE5v
ZGUoKSk7CisgICAgQVNTRVJUKHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShmb250VGFnKSk7CisK
KyAgICBTVkdGb250RWxlbWVudCogZm9udEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RWxl
bWVudCo+KHBhcmVudE5vZGUoKSk7CisgICAgcmV0dXJuIGZvbnRFbGVtZW50LT5nbHlwaElkZW50
aWZpZXJGb3JHbHlwaENvZGUoY29kZSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorfQog
CisjZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGb250RmFjZUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHJldmlz
aW9uIDI3ODUwKQorKysga3N2ZzIvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQzICsxLDU3IEBACiAvKgotIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgotICAgICAgCi0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
IAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCisgICBD
b3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAgIENvcHly
aWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKwor
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwogCiAjaWZuZGVmIFNW
R0ZvbnRGYWNlRWxlbWVudF9oCiAjZGVmaW5lIFNWR0ZvbnRGYWNlRWxlbWVudF9oCi0jaWYgRU5B
QkxFKFNWRykKIAorI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdseXBoQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwogICAgIGNsYXNz
IENTU0ZvbnRGYWNlUnVsZTsKICAgICBjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsK
KyAgICBjbGFzcyBGb250RGF0YTsKKyAgICBjbGFzcyBGb250RGVzY3JpcHRpb247CisgICAgc3Ry
dWN0IFNWR0dseXBoSWRlbnRpZmllcjsKKwogICAgIGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudCA6
IHB1YmxpYyBTVkdFbGVtZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR0ZvbnRGYWNlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHRm9udEZhY2VFbGVtZW50KCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVk
QXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOwotICAgICAgICAKKwogICAgICAgICB2aXJ0dWFs
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgICAgIAorICAgICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKworICAgICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkg
Y29uc3Q7CisgICAgICAgIFN0cmluZyBmb250RmFtaWx5KCkgY29uc3Q7CisKICAgICAgICAgdm9p
ZCByZWJ1aWxkRm9udEZhY2UoKTsKLSAgICAKLSAgICBwcml2YXRlOiAgICAgICAgCisgICAgICAg
IEZvbnREYXRhKiBjcmVhdGVGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsK
KworICAgICAgICBTVkdHbHlwaElkZW50aWZpZXIgZ2x5cGhJZGVudGlmaWVyRm9yR2x5cGhDb2Rl
KGNvbnN0IEdseXBoJikgY29uc3Q7CisKKyAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Q1NT
Rm9udEZhY2VSdWxlPiBtX2ZvbnRGYWNlUnVsZTsKICAgICAgICAgUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBtX3N0eWxlRGVjbGFyYXRpb247CiAgICAgfTsKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgJKHJldmlzaW9uIDI3ODUwKQorKysga3N2ZzIvc3Zn
L1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw4
IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAg
Y2xhc3MgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgeworCitj
bGFzcyBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJs
aWM6CiAgICAgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIGtz
dmcyL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBA
CisvKgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
CisgICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdHbHlw
aEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIlNWR05hbWVzLmgiIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKKworU1ZHR2x5cGhFbGVtZW50OjpTVkdH
bHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYykK
KyAgICA6IFNWR1N0eWxlZEVsZW1lbnQodGFnTmFtZSwgZG9jKQoreworfQorCit2b2lkIFNWR0ds
eXBoRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQor
eworICAgIFNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQor
Cit2b2lkIFNWR0dseXBoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKCkKK3sKK30KKworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IGtzdmcyL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDApCisr
KyBrc3ZnMi9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODYg
QEAKKy8qCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBTVkdHbHlwaEVsZW1lbnRfaAorI2RlZmluZSBTVkdHbHlwaEVsZW1lbnRfaAor
CisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisKKyNpbmNs
dWRlICJQYXRoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKKyAgICBjbGFzcyBTVkdH
bHlwaEVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCB7CisgICAgcHVibGljOgorICAg
ICAgICBTVkdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisK
KyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZSopOworICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgfTsKKworICAgIC8vIERlc2NyaWJlIGEgU1ZHIDxnbHlwaD4gZWxl
bWVudAorICAgIHN0cnVjdCBTVkdHbHlwaElkZW50aWZpZXIgeworICAgICAgICBlbnVtIE9yaWVu
dGF0aW9uIHsgVmVydGljYWwsIEhvcml6b250YWwsIEJvdGggfTsKKyAgICAgICAgZW51bSBBcmFi
aWNGb3JtIHsgSW5pdGlhbCwgTWVkaWFsLCBUZXJtaW5hbCwgSXNvbGFlZCB9OworCisgICAgICAg
IFNWR0dseXBoSWRlbnRpZmllcigpCisgICAgICAgICAgICA6IG9yaWVudGF0aW9uKEJvdGgpCisg
ICAgICAgICAgICAsIGFyYWJpY0Zvcm0oSW5pdGlhbCkKKyAgICAgICAgICAgICwgaG9yaXpvbnRh
bEFkdmFuY2VYKDAuMGYpCisgICAgICAgICAgICAsIHZlcnRpY2FsT3JpZ2luWCgwLjBmKQorICAg
ICAgICAgICAgLCB2ZXJ0aWNhbE9yaWdpblkoMC4wZikKKyAgICAgICAgICAgICwgdmVydGljYWxB
ZHZhbmNlWSgwLjBmKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICAvLyAnb3JpZW50
YXRpb24nIHByb3BlcnR5OworICAgICAgICBPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKKworICAg
ICAgICAvLyAnYXJhYmljLWZvcm0nIHByb3BlcnR5CisgICAgICAgIEFyYWJpY0Zvcm0gYXJhYmlj
Rm9ybTsKKworICAgICAgICAvLyAnaG9yaXotYWR2LXgnIHByb3BlcnR5CisgICAgICAgIGZsb2F0
IGhvcml6b250YWxBZHZhbmNlWDsKKworICAgICAgICAvLyAndmVydC1vcmlnaW4teCcgcHJvcGVy
dHkKKyAgICAgICAgZmxvYXQgdmVydGljYWxPcmlnaW5YOworCisgICAgICAgIC8vICd2ZXJ0LW9y
aWdpbi15JyBwcm9wZXJ0eQorICAgICAgICBmbG9hdCB2ZXJ0aWNhbE9yaWdpblk7CisKKyAgICAg
ICAgLy8gJ3ZlcnQtYWR2LXknIHByb3BlcnR5CisgICAgICAgIGZsb2F0IHZlcnRpY2FsQWR2YW5j
ZVk7CisKKyAgICAgICAgLy8gJ2QnIHByb3BlcnR5CisgICAgICAgIFBhdGggcGF0aERhdGE7CisK
KyAgICAgICAgLy8gJ2xhbmcnIHByb3BlcnR5CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1
YWdlczsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoU1ZHKQorI2VuZGlmCisKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdH
bHlwaEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdHbHlwaEVsZW1lbnQu
aWRsCShyZXZpc2lvbiAwKQorKysga3N2ZzIvc3ZnL1NWR0dseXBoRWxlbWVudC5pZGwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CisKKyAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHR2x5cGhFbGVtZW50IDogU1ZHRWxlbWVudCB7Cisg
ICAgfTsKKworfQpJbmRleDoga3N2ZzIvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAkocmV2aXNp
b24gMCkKKysrIGtzdmcyL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NyBAQAorLyoKK0NvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8
ZXJpY0B3ZWJraXQub3JnPgorCitUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCittb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCit2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKK1RoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKK01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCitMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KK3RoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCitCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBF
TkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCIKKworI2luY2x1
ZGUgIlNWR05hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNl
IFNWR05hbWVzOworCitTVkdNaXNzaW5nR2x5cGhFbGVtZW50OjpTVkdNaXNzaW5nR2x5cGhFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBT
VkdTdHlsZWRFbGVtZW50KHRhZ05hbWUsIGRvYykKK3sKK30KKwordm9pZCBTVkdNaXNzaW5nR2x5
cGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit7
CisgICAgU1ZHU3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisK
K3ZvaWQgU1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKCkKK3sKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykKKwpJbmRleDoga3N2ZzIvc3ZnL1NWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5oCShyZXZpc2lvbiAwKQorKysga3N2ZzIvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMDcg
RXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAgICAgIAorIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgCisgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIFNWR01pc3NpbmdHbHlwaEVsZW1lbnRfaAorI2RlZmluZSBTVkdNaXNz
aW5nR2x5cGhFbGVtZW50X2gKKyNpZiBFTkFCTEUoU1ZHKQorCisjaW5jbHVkZSAiU1ZHU3R5bGVk
RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgU1ZHTWlzc2luZ0ds
eXBoRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSopOworICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZCgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSop
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRpZgorCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysga3N2ZzIvc3Zn
L1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKK21vZHVsZSBzdmcgeworCisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkdd
IFNWR01pc3NpbmdHbHlwaEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICB9OworCit9CkluZGV4
OiBrc3ZnMi9zdmcvc3ZndGFncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvc3ZndGFncy5p
bgkocmV2aXNpb24gMjc4NTApCisrKyBrc3ZnMi9zdmcvc3ZndGFncy5pbgkod29ya2luZyBjb3B5
KQpAQCAtNTEsOSArNTEsNyBAQCBmZVRpbGUKIGZlVHVyYnVsZW5jZQogZmlsdGVyCiAjZW5kaWYK
LSNpZiAwCiBmb250Ci0jZW5kaWYKIGZvbnRfZmFjZQogZm9udF9mYWNlX2Zvcm1hdAogZm9udF9m
YWNlX25hbWUKQEAgLTYxLDggKzU5LDggQEAgZm9udF9mYWNlX3NyYwogZm9udF9mYWNlX3VyaQog
Zm9yZWlnbk9iamVjdAogZwotI2lmIDAKIGdseXBoCisjaWYgMAogZ2x5cGhSZWYKIGhrZXJuCiAj
ZW5kaWYKQEAgLTcyLDkgKzcwLDcgQEAgbGluZWFyR3JhZGllbnQKIG1hcmtlcgogbWFzawogbWV0
YWRhdGEKLSNpZiAwCiBtaXNzaW5nX2dseXBoCi0jZW5kaWYKIG1wYXRoCiBwYXRoCiBwYXR0ZXJu
CkluZGV4OiBwbGF0Zm9ybS9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9Gb250LmNw
cAkocmV2aXNpb24gMjc4NTApCisrKyBwbGF0Zm9ybS9Gb250LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzUsMTEgKzM1LDE4IEBACiAjaW5jbHVkZSAiVGV4dFN0eWxlLmgiCiAjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAKICNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSA8
dW5pY29kZS91bm9ybS5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNW
R0dseXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAi
U1ZHRm9udEZhY2VFbGVtZW50LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVz
aW5nIG5hbWVzcGFjZSBVbmljb2RlOwogCkBAIC01NjEsNiArNTY4LDkgQEAgdm9pZCBGb250Ojpz
ZXRDb2RlUGF0aChDb2RlUGF0aCBwKQogCiBib29sIEZvbnQ6OmNhblVzZUdseXBoQ2FjaGUoY29u
c3QgVGV4dFJ1biYgcnVuKSBjb25zdAogeworICAgIC8vIEZJWE1FIQorICAgIHJldHVybiB0cnVl
OworCiAgICAgc3dpdGNoIChjb2RlUGF0aCkgewogICAgICAgICBjYXNlIEF1dG86CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTY1Myw2ICs2NjMsNTIgQEAgdm9pZCBGb250OjpkcmF3U2ltcGxlVGV4
dChHcmFwaGljc0NvbnRleAogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZl
ciwgcnVuLCBzdHlsZSwgc3RhcnRQb2ludCk7CiB9CiAKKyNpZiBFTkFCTEUoU1ZHKQordm9pZCBG
b250OjpkcmF3R2x5cGhzV2l0aFNWR0ZvbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGb250RGF0YSogZm9udERhdGEsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgaW50
IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAgQVNT
RVJUKGZvbnREYXRhLT5pc0N1c3RvbUZvbnQoKSk7CisgICAgQVNTRVJUKGZvbnREYXRhLT5pc1NW
R0ZvbnQoKSk7CisKKyAgICBTVkdGb250RmFjZUVsZW1lbnQqIGZvbnRGYWNlID0gZm9udERhdGEt
PnN2Z0ZvbnRGYWNlKCk7CisgICAgQVNTRVJUKGZvbnRGYWNlKTsKKworICAgIC8vIFRPRE86IFRo
aXMgaXMgcmlkaWNvbG91cy4gR2x5cGhzIHNob3VsZG4ndCBiZSBjb2xsZWN0ZWQgd2hlbiBwYWlu
dGVkLiBUaGUgcHJvYmxlbSBpcworICAgIC8vIHRoYXQgd2UgbmVlZCB0byBjYWNoZSAnR2x5cGgn
IGluc3RlYWQgb2YgJ1N0cmluZycgaW4gdGhlIEdseXBoSGFzaE1hcCwgdG8gb2J0YWluCisgICAg
Ly8gYSBzZXQgb2YgJ0dseXBoJ3MgZnJvbSBhICdTdHJpbmcnIHdlIG5lZWQgdGhlIGxvY2FsIGZ1
bmN0aW9uIGdseXBoRGF0YUZvckNoYXJhY3Rlci4KKyAgICAvLyBTb21laG93IHRoZSBkZXNpZ24g
bmVlZHMgdG8gYmUgY2hhbmdlZC4gTm90IHlldCBzdXJlIGhvdywgbmVlZHMgZGlzY3Vzc2lvbi4K
KyAgICBpZiAoZm9udEZhY2UtPnBhcmVudE5vZGUoKSAmJiBmb250RmFjZS0+cGFyZW50Tm9kZSgp
LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb250VGFnKSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZH
Rm9udEVsZW1lbnQqPihmb250RmFjZS0+cGFyZW50Tm9kZSgpKS0+Y29sbGVjdEdseXBocygqdGhp
cyk7CisKKyAgICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQgPSBwb2ludDsKKworICAgIGZvciAoaW50
IGkgPSBmcm9tOyBpIDwgdG87ICsraSkgeworICAgICAgICBTVkdHbHlwaElkZW50aWZpZXIgaWRl
bnRpZmllciA9IGZvbnRGYWNlLT5nbHlwaElkZW50aWZpZXJGb3JHbHlwaENvZGUoZ2x5cGhCdWZm
ZXIuZ2x5cGhBdChpKSk7CisKKyAgICAgICAgaWYgKCFpZGVudGlmaWVyLnBhdGhEYXRhLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJkcmF3R2x5cGhzV2l0aFNWR0Zv
bnQgISEgaT0laSwgZnJvbT0laSwgdG89JWlcbiIsIGksIGZyb20sIHRvKTsKKyAgICAgICAgICAg
IGZsb2F0IHNjYWxlID0gc2l6ZSgpIC8gZm9udEZhY2UtPnVuaXRzUGVyRW0oKTsKKworICAgICAg
ICAgICAgQWZmaW5lVHJhbnNmb3JtIGN0bTsKKyAgICAgICAgICAgIGN0bS50cmFuc2xhdGUoc3Rh
cnRQb2ludC54KCksIHN0YXJ0UG9pbnQueSgpKTsKKyAgICAgICAgICAgIGN0bS5zY2FsZShzY2Fs
ZSwgLXNjYWxlKTsKKworICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKGN0bSk7CisKKyAg
ICAgICAgICAgIGNvbnRleHQtPmJlZ2luUGF0aCgpOworICAgICAgICAgICAgY29udGV4dC0+YWRk
UGF0aChpZGVudGlmaWVyLnBhdGhEYXRhKTsKKworI2lmIFBMQVRGT1JNKENHKQorICAgICAgICAg
ICAgQ0dDb250ZXh0RmlsbFBhdGgoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkpOworI2VuZGlm
CisKKyAgICAgICAgICAgIC8vIEZpbmQgYSBiZXR0ZXIgd2F5IGluc3RlYWQgb2YgY3RtIC8gY3Rt
LmludmVyc2UoKSBjb25jYXRpbmcKKyAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShjdG0u
aW52ZXJzZSgpKTsKKyAgICAgICAgICAgIHN0YXJ0UG9pbnQubW92ZShnbHlwaEJ1ZmZlci5hZHZh
bmNlQXQoaSksIDApOworICAgICAgICB9CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQgRm9udDo6
ZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHRS
dW4mIHJ1biwgY29uc3QgVGV4dFN0eWxlJiBzdHlsZSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQp
IGNvbnN0CiB7ICAgCkBAIC02NjcsNyArNzIzLDEzIEBAIHZvaWQgRm9udDo6ZHJhd0dseXBoQnVm
ZmVyKEdyYXBoaWNzQ29udGUKICAgICAgICAgY29uc3QgRm9udERhdGEqIG5leHRGb250RGF0YSA9
IGdseXBoQnVmZmVyLmZvbnREYXRhQXQobmV4dEdseXBoKTsKICAgICAgICAgRmxvYXRTaXplIG5l
eHRPZmZzZXQgPSBnbHlwaEJ1ZmZlci5vZmZzZXRBdChuZXh0R2x5cGgpOwogICAgICAgICBpZiAo
bmV4dEZvbnREYXRhICE9IGZvbnREYXRhIHx8IG5leHRPZmZzZXQgIT0gb2Zmc2V0KSB7Ci0gICAg
ICAgICAgICBkcmF3R2x5cGhzKGNvbnRleHQsIGZvbnREYXRhLCBnbHlwaEJ1ZmZlciwgbGFzdEZy
b20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBzdGFydFBvaW50KTsKKyNpZiBFTkFCTEUoU1ZHKQor
ICAgICAgICAgICAgaWYgKGZvbnREYXRhLT5pc0N1c3RvbUZvbnQoKSAmJiBmb250RGF0YS0+aXNT
VkdGb250KCkpCisgICAgICAgICAgICAgICAgZHJhd0dseXBoc1dpdGhTVkdGb250KGNvbnRleHQs
IGZvbnREYXRhLCBnbHlwaEJ1ZmZlciwgbGFzdEZyb20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBz
dGFydFBvaW50KTsKKyAgICAgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICAgICAgICAgIGRy
YXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEds
eXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOworCiAgICAgICAgICAgICBsYXN0RnJvbSA9IG5l
eHRHbHlwaDsKICAgICAgICAgICAgIGZvbnREYXRhID0gbmV4dEZvbnREYXRhOwogICAgICAgICAg
ICAgb2Zmc2V0ID0gbmV4dE9mZnNldDsKQEAgLTY3Niw3ICs3MzgsMTMgQEAgdm9pZCBGb250Ojpk
cmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZQogICAgICAgICBuZXh0WCArPSBnbHlwaEJ1ZmZl
ci5hZHZhbmNlQXQobmV4dEdseXBoKTsKICAgICAgICAgbmV4dEdseXBoKys7CiAgICAgfQotICAg
IGRyYXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4
dEdseXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOworCisjaWYgRU5BQkxFKFNWRykKKyAgICBp
ZiAoZm9udERhdGEtPmlzQ3VzdG9tRm9udCgpICYmIGZvbnREYXRhLT5pc1NWR0ZvbnQoKSkKKyAg
ICAgICAgZHJhd0dseXBoc1dpdGhTVkdGb250KGNvbnRleHQsIGZvbnREYXRhLCBnbHlwaEJ1ZmZl
ciwgbGFzdEZyb20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBzdGFydFBvaW50KTsKKyAgICBlbHNl
CisjZW5kaWYKKyAgICAgICAgZHJhd0dseXBocyhjb250ZXh0LCBmb250RGF0YSwgZ2x5cGhCdWZm
ZXIsIGxhc3RGcm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwgc3RhcnRQb2ludCk7CiB9CiAKIHZv
aWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVu
JiBydW4sIGNvbnN0IFRleHRTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdApAQCAtNjg0LDExICs3NTIsMTEgQEAgdm9pZCBGb250Ojpk
cmF3VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbgogICAgIC8vIERvbid0IGRyYXcgYW55dGhpbmcg
d2hpbGUgd2UgYXJlIHVzaW5nIGN1c3RvbSBmb250cyB0aGF0IGFyZSBpbiB0aGUgcHJvY2VzcyBv
ZiBsb2FkaW5nLgogICAgIGlmIChtX2ZvbnRMaXN0ICYmIG1fZm9udExpc3QtPmxvYWRpbmdDdXN0
b21Gb250cygpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICB0byA9ICh0byA9PSAtMSA/
IHJ1bi5sZW5ndGgoKSA6IHRvKTsKICAgICBpZiAoY2FuVXNlR2x5cGhDYWNoZShydW4pKQogICAg
ICAgICBkcmF3U2ltcGxlVGV4dChjb250ZXh0LCBydW4sIHN0eWxlLCBwb2ludCwgZnJvbSwgdG8p
OwotICAgIGVsc2UKKyAgICBlbHNlICAgIAogICAgICAgICBkcmF3Q29tcGxleFRleHQoY29udGV4
dCwgcnVuLCBzdHlsZSwgcG9pbnQsIGZyb20sIHRvKTsKIH0KIApJbmRleDogcGxhdGZvcm0vRm9u
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ZvbnQuaAkocmV2aXNpb24gMjc4NTApCisrKyBw
bGF0Zm9ybS9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw2ICsxNTIsOSBAQCBwcml2YXRl
OgogICAgIGJvb2wgY2FuVXNlR2x5cGhDYWNoZShjb25zdCBUZXh0UnVuJikgY29uc3Q7CiAgICAg
dm9pZCBkcmF3U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgVGV4dFN0eWxlJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0
OwogICAgIHZvaWQgZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGb250RGF0YSos
IGNvbnN0IEdseXBoQnVmZmVyJiwgaW50IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2ludCYp
IGNvbnN0OworI2lmIEVOQUJMRShTVkcpCisgICAgdm9pZCBkcmF3R2x5cGhzV2l0aFNWR0ZvbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRm9udERhdGEqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGlu
dCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyNlbmRpZgogICAgIHZv
aWQgZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEdseXBoQnVmZmVyJiwg
Y29uc3QgVGV4dFJ1biYsIGNvbnN0IFRleHRTdHlsZSYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25z
dDsKICAgICB2b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0
UnVuJiwgY29uc3QgVGV4dFN0eWxlJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQg
dG8pIGNvbnN0OwogICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRS
dW4mLCBjb25zdCBUZXh0U3R5bGUmLCBHbHlwaEJ1ZmZlciopIGNvbnN0OwpJbmRleDogcGxhdGZv
cm0vRm9udERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ZvbnREYXRhLmNwcAkocmV2
aXNpb24gMjc4NTApCisrKyBwbGF0Zm9ybS9Gb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9udERhdGEu
aCIKIAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCisj
ZW5kaWYKKwogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTM3LDYgKzQxLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEZvbnREYXRhOjpGb250
RGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmLCBib29sIGN1c3RvbUZvbnQsIGJvb2wgbG9h
ZGluZykKICAgICA6IG1fZm9udChmKQogICAgICwgbV90cmVhdEFzRml4ZWRQaXRjaChmYWxzZSkK
KyNpZiBFTkFCTEUoU1ZHKQorICAgICwgbV9pc1NWR0ZvbnQoZmFsc2UpCisgICAgLCBtX3N2Z0Zv
bnRGYWNlKDApCisjZW5kaWYKICAgICAsIG1faXNDdXN0b21Gb250KGN1c3RvbUZvbnQpCiAgICAg
LCBtX2lzTG9hZGluZyhsb2FkaW5nKQogICAgICwgbV9zbWFsbENhcHNGb250RGF0YSgwKQpJbmRl
eDogcGxhdGZvcm0vRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9Gb250RGF0YS5o
CShyZXZpc2lvbiAyNzg1MCkKKysrIHBsYXRmb3JtL0ZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBTaGFyZWRC
dWZmZXI7CiBjbGFzcyBXaWR0aE1hcDsKIAorI2lmIEVOQUJMRShTVkcpCitjbGFzcyBTVkdGb250
RmFjZUVsZW1lbnQ7CisjZW5kaWYKKwogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQ
aXRjaCwgVmFyaWFibGVQaXRjaCB9OwogCiBjbGFzcyBGb250RGF0YSA6IE5vbmNvcHlhYmxlIHsK
QEAgLTcyLDYgKzc2LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGVybWluZVBpdGNoKCk7CiAg
ICAgUGl0Y2ggcGl0Y2goKSBjb25zdCB7IHJldHVybiBtX3RyZWF0QXNGaXhlZFBpdGNoID8gRml4
ZWRQaXRjaCA6IFZhcmlhYmxlUGl0Y2g7IH0KIAorI2lmIEVOQUJMRShTVkcpCisgICAgYm9vbCBp
c1NWR0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQorICAgIFNWR0ZvbnRGYWNl
RWxlbWVudCogc3ZnRm9udEZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N2Z0ZvbnRGYWNlLmdldCgp
OyB9CisjZW5kaWYKKwogICAgIGJvb2wgaXNDdXN0b21Gb250KCkgY29uc3QgeyByZXR1cm4gbV9p
c0N1c3RvbUZvbnQ7IH0KICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNM
b2FkaW5nOyB9CiAKQEAgLTEyMiw2ICsxMzEsMTEgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX3Ry
ZWF0QXNGaXhlZFBpdGNoOwogCisjaWYgRU5BQkxFKFNWRykKKyAgICBib29sIG1faXNTVkdGb250
OworICAgIFJlZlB0cjxTVkdGb250RmFjZUVsZW1lbnQ+IG1fc3ZnRm9udEZhY2U7IAorI2VuZGlm
CisKICAgICBib29sIG1faXNDdXN0b21Gb250OyAgLy8gV2hldGhlciBvciBub3Qgd2UgYXJlIGN1
c3RvbSBmb250IGxvYWRlZCB2aWEgQGZvbnQtZmFjZQogICAgIGJvb2wgbV9pc0xvYWRpbmc7IC8v
IFdoZXRoZXIgb3Igbm90IHRoaXMgY3VzdG9tIGZvbnQgaXMgc3RpbGwgaW4gdGhlIGFjdCBvZiBs
b2FkaW5nLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18072</attachid>
            <date>2007-12-23 10:13:11 -0800</date>
            <delta_ts>2007-12-28 15:21:47 -0800</delta_ts>
            <desc>Updated to ToT</desc>
            <filename>UpdatedSVGFontsPatch.diff</filename>
            <type>text/plain</type>
            <size>82095</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI4OTY1KQorKysgV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsNiArMjAzLDcgQEAgYWxsIDogXAog
ICAgIERPTVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5oIFwKICAgICBET01TVkdGRVRpbGVFbGVtZW50
LmggXAogICAgIERPTVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBcCisgICAgRE9NU1ZHRm9udEVs
ZW1lbnQuaCBcCiAgICAgRE9NU1ZHRm9udEZhY2VFbGVtZW50LmggXAogICAgIERPTVNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudC5oIFwKICAgICBET01TVkdGb250RmFjZU5hbWVFbGVtZW50LmggXApA
QCAtMjEzLDYgKzIxNCw3IEBAIGFsbCA6IFwKICAgICBET01TVkdGaXRUb1ZpZXdCb3guaCBcCiAg
ICAgRE9NU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHR0VsZW1lbnQuaCBc
CisgICAgRE9NU1ZHR2x5cGhFbGVtZW50LmggXAogICAgIERPTVNWR0dyYWRpZW50RWxlbWVudC5o
IFwKICAgICBET01TVkdJbWFnZUVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHTGFuZ1NwYWNlLmggXApA
QCAtMjI1LDYgKzIyNyw3IEBAIGFsbCA6IFwKICAgICBET01TVkdNYXNrRWxlbWVudC5oIFwKICAg
ICBET01TVkdNYXRyaXguaCBcCiAgICAgRE9NU1ZHTWV0YWRhdGFFbGVtZW50LmggXAorICAgIERP
TVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHTnVtYmVyLmggXAogICAgIERP
TVNWR051bWJlckxpc3QuaCBcCiAgICAgRE9NU1ZHUGFpbnQuaCBcCkBAIC01NDMsNiArNTQ2LDcg
QEAgYWxsIDogXAogICAgIEpTU1ZHRkVUaWxlRWxlbWVudC5oIFwKICAgICBKU1NWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQuaCBcCiAgICAgSlNTVkdGaWx0ZXJFbGVtZW50LmggXAorICAgIEpTU1ZHRm9u
dEVsZW1lbnQuaCBcCiAgICAgSlNTVkdGb250RmFjZUVsZW1lbnQuaCBcCiAgICAgSlNTVkdGb250
RmFjZUZvcm1hdEVsZW1lbnQuaCBcCiAgICAgSlNTVkdGb250RmFjZU5hbWVFbGVtZW50LmggXApA
QCAtNTUwLDYgKzU1NCw3IEBAIGFsbCA6IFwKICAgICBKU1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5o
IFwKICAgICBKU1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAogICAgIEpTU1ZHR0VsZW1lbnQu
aCBcCisgICAgSlNTVkdHbHlwaEVsZW1lbnQuaCBcCiAgICAgSlNTVkdHcmFkaWVudEVsZW1lbnQu
aCBcCiAgICAgSlNTVkdJbWFnZUVsZW1lbnQuaCBcCiAgICAgSlNTVkdMZW5ndGguaCBcCkBAIC01
NTgsNiArNTYzLDcgQEAgYWxsIDogXAogICAgIEpTU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Lmgg
XAogICAgIEpTU1ZHTWFza0VsZW1lbnQuaCBcCiAgICAgSlNTVkdNYXJrZXJFbGVtZW50LmggXAor
ICAgIEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKICAgICBKU1NWR1RyYW5zZm9ybS5oIFwK
ICAgICBKU1NWR1pvb21FdmVudC5oIFwKICAgICBKU1NjcmVlbi5oIFwKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyODk2NSkKKysrIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0zMTQ2LDYgKzMxNDYsMjYgQEAKIAkJQjI3NTM1ODIwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTUw
QjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oICovOyB9OwogCQlCMjc1MzU4RTBCMDUzQTY2MDAyQ0U2
NEYgLyogSWNvbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyNzUzNThEMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tICovOyB9OwogCQlC
Mjc3QjQwNDBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3N0I0MDMwQjIyRjM3QzAw
MDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5tbSAqLzsgfTsKKwkJQjI3QjI4MjUwQ0VGMEMw
NzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MUYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZH
Rm9udEVsZW1lbnQuY3BwICovOyB9OworCQlCMjdCMjgyNjBDRUYwQzA3MDBEMzlENTQgLyogSlNT
VkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjI3QjI4MjAwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCAqLzsg
fTsKKwkJQjI3QjI4MjcwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODIxMENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyN0IyODI4
MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MjIwQ0VGMEMwNzAwRDM5RDU0IC8q
IEpTU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CisJCUIyN0IyODI5MENFRjBDMDcwMEQzOUQ1NCAv
KiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MjMwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyN0IyODJBMENFRjBDMDcwMEQzOUQ1NCAv
KiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODI0MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4MzYwQ0VGMEMzNjAwRDM5RDU0IC8qIENT
U1Byb3BlcnR5TmFtZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyN0IyODJCMENFRjBDMzUwMEQzOUQ1NCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmlu
ICovOyB9OworCQlCMjdCMjgzNzBDRUYwQzM2MDBEMzlENTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5p
biBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4
MkMwQ0VGMEMzNTAwRDM5RDU0IC8qIENTU1ZhbHVlS2V5d29yZHMuaW4gKi87IH07CisJCUIyN0Iy
ODM4MENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0
IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsg
fTsgfTsKKwkJQjI3QjI4MzkwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkUw
Q0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1tICovOyB9OworCQlCMjdCMjgz
QTBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkYwQ0VGMEMzNTAw
RDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJQjI3QjI4M0Iw
Q0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MzAwQ0VGMEMzNTAwRDM5RDU0IC8q
IERPTVNWR0dseXBoRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07
IH07CisJCUIyN0IyODNDMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgzMTBD
RUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50Lm1tICovOyB9OworCQlCMjdCMjgz
RDBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMyMENFRjBDMzUw
MEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlCMjdCMjgz
RTBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MzMwQ0VGMEMzNTAw
RDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9ICgpOyB9OyB9OworCQlCMjdCMjgzRjBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyN0IyODM0MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5
cGhFbGVtZW50Lm1tICovOyB9OworCQlCMjdCMjg0MDBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZH
TWlzc2luZ0dseXBoRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgzNTBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlz
c2luZ0dseXBoRWxlbWVudEludGVybmFsLmggKi87IH07CisJCUIyN0IyODVDMENFRjBENzIwMEQz
OUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0
IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggKi87IH07CisJCUIyN0IyODVEMENFRjBENzIwMEQzOUQ1
NCAvKiBET01TVkdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMwMENFRjBDMzUwMEQzOUQ1NCAv
KiBET01TVkdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4NUUwQ0VGMEQ3MjAwRDM5RDU0
IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMzMENFRjBDMzUwMEQz
OUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyOEJDMzFBMEQx
MzVFNTQwMENEQkEyNyAvKiBKU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyOEJDMzE5MEQxMzVFNTQwMENEQkEyNyAv
KiBKU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCAqLzsgfTsKIAkJQjI4QzZBMjcwRDAwQzQ0ODAwMzM0
QUE0IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjhDNkExRTBEMDBDNDQ4MDAzMzRBQTQgLyogU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmNwcCAqLzsgfTsKIAkJQjI4QzZBMjgwRDAwQzQ0ODAwMzM0QUE0IC8q
IFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjI4QzZBMUYwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0RvY3VtZW50RXh0
ZW5zaW9ucy5oICovOyB9OwpAQCAtMzE2Myw2ICszMTgzLDE1IEBACiAJCUIyQTAxNUFCMEFGNkNE
NTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMkEwMTU5NTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NU
eXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUIyQTEwQjkyMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMTBCOTEwQjM4MThCRDAwMDk5QUE0
IC8qIEltYWdlQnVmZmVyLmggKi87IH07CiAJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAvKiBJ
bWFnZUJ1ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyQTEwQjkzMEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNwcCAqLzsg
fTsKKwkJQjJBMUYyQUEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkExMENFRjBB
QkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkFCMENFRjBB
QkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRF
bGVtZW50LmggKi87IH07CisJCUIyQTFGMkFDMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyQTFGMkEzMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwgKi87IH07CisJ
CUIyQTFGMkFEMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTQwQ0VGMEFCRjAw
NDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkFFMENFRjBBQkYw
MDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkE1MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVs
ZW1lbnQuaCAqLzsgfTsKKwkJQjJBMUYyQUYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyQTFGMkE2MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsICovOyB9Owor
CQlCMkExRjJCMDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNzBD
RUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIy
QTFGMkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBODBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9OworCQlCMkExRjJCMjBD
RUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkE5MENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCAqLzsgfTsKIAkJQjJBRTlCOUQwQzNB
RjI3NDAwRjIzRjdGIC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAv
KiBET01TVkdUZXh0UGF0aEVsZW1lbnQubW0gKi87IH07CiAJCUIyQUZGQzdDMEQwMEE1QzEwMDMw
MDc0RCAvKiBGb250Q2FjaGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMkFGRkM3NDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1t
ICovOyB9OwogCQlCMkFGRkM3RDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MkFGRkM3NTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi87
IH07CkBAIC0zMjYzLDYgKzMyOTIsOCBAQAogCQlCMkNCOTI2NDBCNUJEQTAyMDA5QkFBNzggLyog
RE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjYwMEI1QkRBMDIwMDlCQUE3OCAvKiBET01TVkdFbGVt
ZW50SW5zdGFuY2VMaXN0Lm1tICovOyB9OwogCQlCMkNDRUM0NzBDNkNBOUYxMDA2QTU0MjQgLyog
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjJDQ0VDNDUwQzZDQTlGMTAwNkE1NDI0IC8qIFJlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyLmNwcCAqLzsgfTsKIAkJQjJDQ0VDNDgwQzZDQTlGMTAwNkE1NDI0
IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkNDRUM0NjBDNkNBOUYxMDA2QTU0MjQgLyogUmVuZGVy
U1ZHVmlld3BvcnRDb250YWluZXIuaCAqLzsgfTsKKwkJQjJEMTlBNDgwQ0VGOURDMTAwMEUwMzNC
IC8qIFNWR0NTU0ZvbnRGYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyRDE5QTQ2MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5j
cHAgKi87IH07CisJCUIyRDE5QTQ5MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEMTlBNDcw
Q0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggKi87IH07CiAJCUIyRDNGQzhBMEMy
MjEyQ0IwMENGMzYxOCAvKiBKU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEM0ZDODkwQzIyMTJDQjAwQ0Yz
NjE4IC8qIEpTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCUIyRTI3QzlGMEIw
RjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFMjdDOUQwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0
UG9pbnQzRC5jcHAgKi87IH07CiAJCUIyRTI3Q0EwMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBv
aW50M0QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
RTI3QzlFMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuaCAqLzsgfTsKQEAgLTM4ODcs
NiArMzkxOCw5IEBACiAJCQlkc3RQYXRoID0gVmVyc2lvbnMvQS9Qcml2YXRlSGVhZGVyczsKIAkJ
CWRzdFN1YmZvbGRlclNwZWMgPSAxOwogCQkJZmlsZXMgPSAoCisJCQkJQjI3QjI4NUMwQ0VGMEQ3
MjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLywKKwkJCQlCMjdCMjg1RDBDRUYwRDcyMDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKKwkJCQlCMjdCMjg1RTBDRUYwRDcyMDBE
MzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8sCiAJCQkJODUzOEYwMzAwQUQ3MUNEQjAwNkE4MUQxIC8qIERPTUFic3RyYWN0Vmll
dy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQkMwQUE2MDkzNzAw
REFEQjIwIC8qIERPTUF0dHIuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFD
MTFDQ0M3MEFBNjA5MzcwMERBREIyMCAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovLApAQCAtNzE0OSw2ICs3MTgzLDIzIEBACiAJCUIyNzUzNTU1MEIwNTM4
MTQwMDJDRTY0RiAvKiBQZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBl
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU4RDBCMDUzQTY2MDAyQ0U2
NEYgLyogSWNvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBJY29uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc3QjQwMzBCMjJG
MzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dE1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MUYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHRm9u
dEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyMDBDRUYw
QzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNTVkdGb250RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCMjdCMjgyMTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHR2x5cGhFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MjIwQ0VGMEMwNzAwRDM5RDU0
IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1NWR0dseXBoRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdC
MjgyMzBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR01pc3NpbmdHbHlwaEVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyNDBDRUYwQzA3MDBE
MzlENTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkIwQ0VGMEMzNTAwRDM5RDU0IC8qIENTU1Byb3BlcnR5TmFt
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODJDMENFRjBDMzUwMEQzOUQ1NCAvKiBDU1NW
YWx1ZUtleXdvcmRzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NWYWx1ZUtleXdvcmRz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyRDBDRUYwQzM1MDBEMzlE
NTQgLyogRE9NU1ZHRm9udEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVNWR0ZvbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIy
N0IyODJFMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdGb250RWxlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkYwQ0VGMEMzNTAwRDM5RDU0IC8qIERP
TVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQjI3QjI4MzAwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHR2x5cGhFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODMxMENFRjBDMzUwMEQzOUQ1NCAvKiBE
T01TVkdHbHlwaEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRE9NU1ZHR2x5cGhFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCMjdCMjgzMjBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0dseXBoRWxlbWVudElu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODMzMENFRjBDMzUw
MEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODM0MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNz
aW5nR2x5cGhFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUIyN0IyODM1MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR01p
c3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMjhCQzMxOTBEMTM1RTU0MDBDREJBMjcgLyogSlNFdmVudFRhcmdldEJhc2UubHV0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI4QzZBMUUwRDAwQzQ0ODAwMzM0QUE0IC8q
IFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjI4QzZBMUYwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRG9jdW1lbnRFeHRlbnNp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MTY2LDYgKzcyMTcsMTUgQEAK
IAkJQjJBMDE1OTUwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjJBMTBCOTEwQjM4MThCRDAwMDk5QUE0IC8qIEltYWdlQnVmZmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCMkExMEI5MzBCMzgxOEQ3MDAwOTlBQTQgLyogSW1hZ2VC
dWZmZXJDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VC
dWZmZXJDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkExMENFRjBB
QkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHRm9udEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCMkExRjJBMjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZvbnRFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkEzMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250
RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZvbnRFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTQwQ0VGMEFCRjAwNDQyRjZBIC8q
IFNWR0dseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHR2x5cGhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJB
MUYyQTUwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHR2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUIyQTFGMkE2MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdHbHlwaEVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCMkExRjJBNzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUIyQTFGMkE4MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkE5MENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAvKiBET01TVkdUZXh0UGF0aEVsZW1lbnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NU1ZHVGV4dFBhdGhFbGVt
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkFGRkM3NDBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udENhY2hlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEZvbnRDYWNoZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjJBRkZDNzUwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzI2Niw2ICs3MzI2LDggQEAK
IAkJQjJDQjkyNjAwQjVCREEwMjAwOUJBQTc4IC8qIERPTVNWR0VsZW1lbnRJbnN0YW5jZUxpc3Qu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NU1ZHRWxlbWVu
dEluc3RhbmNlTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDQ0VDNDUw
QzZDQTlGMTAwNkE1NDI0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQ0NFQzQ2MEM2Q0E5RjEwMDZB
NTQyNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjJEMTlBNDYwQ0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRG
YWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDU1NGb250
RmFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyRDE5QTQ3MENFRjlEQzEw
MDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHQ1NTRm9udEZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJE
M0ZDODkwQzIyMTJDQjAwQ0YzNjE4IC8qIEpTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdUcmFuc2Zvcm1MaXN0Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJFMjdDOUQwQjBGMkIwOTAw
RjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRmxvYXRQb2ludDNELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjJFMjdDOUUwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRQb2ludDNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04NjMwLDYgKzg2OTIsMTUgQEAKIAkJODVBMEY5OEUwQUM3MTZGNDAwMTYxRkRD
IC8qIFNWRyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggKi8sCisJCQkJ
QjI3QjI4MkUwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1tICovLAorCQkJ
CUIyN0IyODJGMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudEludGVybmFsLmgg
Ki8sCisJCQkJQjI3QjI4MzAwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5o
ICovLAorCQkJCUIyN0IyODMxMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQu
bW0gKi8sCisJCQkJQjI3QjI4MzIwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVu
dEludGVybmFsLmggKi8sCisJCQkJQjI3QjI4MzMwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaCAqLywKKwkJCQlCMjdCMjgzNDBDRUYwQzM1MDBEMzlENTQgLyog
RE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5tbSAqLywKKwkJCQlCMjdCMjgzNTBDRUYwQzM1MDBE
MzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVB
Q0VGNzQwQUNEQ0ZDRTAwMTIxNEZGIC8qIERPTVNWR0FFbGVtZW50LmggKi8sCiAJCQkJODVBQ0VG
NzUwQUNEQ0ZDRTAwMTIxNEZGIC8qIERPTVNWR0FFbGVtZW50Lm1tICovLAogCQkJCUE4RTU0NDE1
MENBOUQxQzEwMDk3RDA5QiAvKiBET01TVkdBRWxlbWVudEludGVybmFsLmggKi8sCkBAIC05MTk0
LDYgKzkyNjUsOCBAQAogCQk4NUIyMzIyNjBBOEJGM0ExMDBGREY0N0IgLyogRGVyaXZlZCBTb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCMjdC
MjgyQjBDRUYwQzM1MDBEMzlENTQgLyogQ1NTUHJvcGVydHlOYW1lcy5pbiAqLywKKwkJCQlCMjdC
MjgyQzBDRUYwQzM1MDBEMzlENTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKIAkJCQk4NTk2
N0Q5RjBBQThCQjU5MDA1RkVERUUgLyogQ29yZSAqLywKIAkJCQk4NTk2N0RDQTBBQThCRjBGMDA1
RkVERUUgLyogQ1NTICovLAogCQkJCTg1QUZBN0FCMEFBRjNCQjAwMEU4NDMwNSAvKiBFdmVudHMg
Ki8sCkBAIC0xMDIzMiw2ICsxMDMwNSwxMiBAQAogCQkJCUIyRkEzQzk5MEFCNzVBNkUwMDBFNUFD
NCAvKiBKU1NWR0ZFRnVuY1JFbGVtZW50LmggKi8sCiAJCQkJQjJGQTNDOUEwQUI3NUE2RTAwMEU1
QUM0IC8qIEpTU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCAqLywKIAkJCQlCMkZBM0M5QjBB
Qjc1QTZFMDAwRTVBQzQgLyogSlNTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCAqLywKKwkJCQlC
MjdCMjgxRjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgKi8sCisJCQkJ
QjI3QjI4MjAwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCAqLywKKwkJCQlC
MjdCMjgyMTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuY3BwICovLAorCQkJ
CUIyN0IyODIyMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oICovLAorCQkJ
CUIyN0IyODIzMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3Bw
ICovLAorCQkJCUIyN0IyODI0MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaCAqLywKIAkJCQlCMkZBM0M5QzBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdGRUltYWdl
RWxlbWVudC5jcHAgKi8sCiAJCQkJQjJGQTNDOUQwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHRkVJ
bWFnZUVsZW1lbnQuaCAqLywKIAkJCQlCMkZBM0M5RTBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdG
RU1lcmdlRWxlbWVudC5jcHAgKi8sCkBAIC0xMDU2NSw2ICsxMDY0NCwxNSBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCMjU1OTg4NjBEMDBEOEI4MDBCQjgyNUMg
LyogZ3JhcGhpY3MgKi8sCisJCQkJQjJBMUYyQTEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRF
bGVtZW50LmNwcCAqLywKKwkJCQlCMkExRjJBMjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVs
ZW1lbnQuaCAqLywKKwkJCQlCMkExRjJBMzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1l
bnQuaWRsICovLAorCQkJCUIyQTFGMkE0MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1l
bnQuY3BwICovLAorCQkJCUIyQTFGMkE1MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1l
bnQuaCAqLywKKwkJCQlCMkExRjJBNjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50
LmlkbCAqLywKKwkJCQlCMkExRjJBNzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5jcHAgKi8sCisJCQkJQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaCAqLywKKwkJCQlCMkExRjJBOTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5pZGwgKi8sCiAJCQkJQjIyMjc3Q0IwRDAwQkYxRjAwNzFCNzgy
IC8qIENvbG9yRGlzdGFuY2UuY3BwICovLAogCQkJCUIyMjI3N0NDMEQwMEJGMUYwMDcxQjc4MiAv
KiBDb2xvckRpc3RhbmNlLmggKi8sCiAJCQkJQjIyMjc3Q0QwRDAwQkYxRjAwNzFCNzgyIC8qIEdy
YWRpZW50QXR0cmlidXRlcy5oICovLApAQCAtMTE5MjYsNiArMTIwMTQsOCBAQAogCQkJCTkzQ0E0
Q0EyMDlERjkzRkEwMERGODY3NyAvKiBzdmcuY3NzICovLAogCQkJCUIyMjI3QjAwMEQwMEJGRjEw
MDcxQjc4MiAvKiBTVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovLAogCQkJCUIy
MjI3QjAxMEQwMEJGRjEwMDcxQjc4MiAvKiBTVkdDU1NQYXJzZXIuY3BwICovLAorCQkJCUIyRDE5
QTQ2MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5jcHAgKi8sCisJCQkJQjJEMTlB
NDcwQ0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggKi8sCiAJCQkJQjIyMjdCMDIw
RDAwQkZGMTAwNzFCNzgyIC8qIFNWR0NTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCiAJCQkJQjIyMjdC
MDMwRDAwQkZGMTAwNzFCNzgyIC8qIFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwICovLAogCQkJCUIy
MjI3QjA0MEQwMEJGRjEwMDcxQjc4MiAvKiBTVkdDU1NWYWx1ZUtleXdvcmRzLmluICovLApAQCAt
MTQxMTYsNiArMTQyMDYsMTkgQEAKIAkJCQlCQ0IxNkMyRDA5NzlDM0JEMDA0Njc3NDEgLyogbG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1ODEgLyogbWFy
a3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxRTA5OUU2NDkyMDA1NkU1ODEgLyogdmlz
aWJsZV91bml0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJBMUYyQUIwQ0VGMEFCRjAwNDQyRjZB
IC8qIFNWR0ZvbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMkExRjJBRTBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMkExRjJC
MTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQjI3QjI4MjYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCUIyN0IyODI4MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBo
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4MkEwQ0VGMEMwNzAwRDM5RDU0IC8q
IEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4Mzgw
Q0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCMjdCMjgzQTBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4M0IwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ds
eXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4M0QwQ0VGMEMzNjAwRDM5RDU0
IC8qIERPTVNWR0dseXBoRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlCMjdC
MjgzRTBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQjI3QjI4NDAwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdH
bHlwaEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJEMTlBNDkwQ0VGOURD
MTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EzNzkx
NTBEMTYzRTU1MDBCNzkzRDYgLyogSlNMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNB
Mzc5M0YwRDE2NDdFMDAwQjc5M0Q2IC8qIEpTTG9jYXRpb24ubHV0LmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CkBAIC0xNDE1Niw3ICsxNDI1OSw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMw
NyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQljb21wYXRp
YmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9
IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTE0Mzc5LDYgKzE0NDgx
LDExIEBACiAJCQkJQjI4QzZBMkYwRDAwQzQ0ODAwMzM0QUE0IC8qIHhsaW5rYXR0cnMuaW4gaW4g
UmVzb3VyY2VzICovLAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJz
b3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyog
em9vbU91dEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyQTFGMkFDMENFRjBBQkYw
MDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyQTFG
MkFGMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlCMkExRjJCMjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyN0IyODM2MENFRjBDMzYwMEQzOUQ1NCAvKiBD
U1NQcm9wZXJ0eU5hbWVzLmluIGluIFJlc291cmNlcyAqLywKKwkJCQlCMjdCMjgzNzBDRUYwQzM2
MDBEMzlENTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNTgz
Miw2ICsxNTkzOSwxNiBAQAogCQkJCTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMUQwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2li
bGVfdW5pdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMzc5MTQwRDE2M0U1NTAwQjc5M0Q2
IC8qIEpTTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjJBMUYyQUEwQ0VGMEFCRjAw
NDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIyQTFGMkFE
MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQjJBMUYyQjAwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MjUwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9u
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MjcwQ0VGMEMwNzAwRDM5RDU0
IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIyN0IyODI5MENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQjI3QjI4MzkwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4M0MwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ds
eXBoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUIyN0IyODNGMENFRjBDMzYwMEQzOUQ1
NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQjJE
MTlBNDgwQ0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVy
RmFjdG9yeS5jcHAJKHJldmlzaW9uIDI4OTY1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NW
R0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDE4ICs1Nywy
MSBAQAogI2luY2x1ZGUgIkpTU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpT
U1ZHRmlsdGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJKU1NWR0ZvbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb250RmFj
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkpTU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRm9udEZh
Y2VTcmNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb250RmFjZVVyaUVsZW1lbnQuaCIKICNp
bmNsdWRlICJKU1NWR0dFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNTVkdHbHlwaEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU1NWR0ltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdMaW5lRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTU1ZHTWFya2VyRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHTWFza0VsZW1lbnQuaCIKICNp
bmNsdWRlICJKU1NWR01ldGFkYXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTU1ZHTWlzc2luZ0ds
eXBoRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHUGF0aEVsZW1lbnQuaCIKICNpbmNsdWRlICJK
U1NWR1BhdHRlcm5FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdQb2x5Z29uRWxlbWVudC5oIgpA
QCAtMTI3LDE4ICsxMzAsMjEgQEAKICNpbmNsdWRlICJTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHRmlsdGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdG
b250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdGb250RmFjZU5hbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZh
Y2VTcmNFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdHbHlwaEVsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdMaW5lRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR01hcmtlckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJTVkdNYXNrRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR01ldGFk
YXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdQYXRoRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdHRlcm5FbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHUG9seWdvbkVsZW1lbnQuaCIKQEAgLTE4NSwxMSArMTkxLDE0IEBAIHR5cGVk
ZWYgSlNOb2RlKiAoKkNyZWF0ZVNWR0VsZW1lbnRXcmFwcGUKICNpZiBFTkFCTEUoU1ZHX0ZPTlRT
KQogI2RlZmluZSBGT1JfRUFDSF9GT05UX1RBRyhtYWNybykgXAogICAgIG1hY3JvKGRlZmluaXRp
b25fc3JjLCBEZWZpbml0aW9uU3JjKSBcCisgICAgbWFjcm8oZm9udCwgRm9udCkgXAogICAgIG1h
Y3JvKGZvbnRfZmFjZSwgRm9udEZhY2UpIFwKICAgICBtYWNybyhmb250X2ZhY2VfZm9ybWF0LCBG
b250RmFjZUZvcm1hdCkgXAogICAgIG1hY3JvKGZvbnRfZmFjZV9uYW1lLCBGb250RmFjZU5hbWUp
IFwKICAgICBtYWNybyhmb250X2ZhY2Vfc3JjLCBGb250RmFjZVNyYykgXAogICAgIG1hY3JvKGZv
bnRfZmFjZV91cmksIEZvbnRGYWNlVXJpKSBcCisgICAgbWFjcm8oZ2x5cGgsIEdseXBoKSBcCisg
ICAgbWFjcm8obWlzc2luZ19nbHlwaCwgTWlzc2luZ0dseXBoKQogICAgIC8vIGVuZCBvZiBtYWNy
bwogICAgIAogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQkocmV2aXNpb24gMjg5NjUpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsMTEg
KzIyOCwxMyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVFbGVtZW50Q2xhc3NNYXAoKQogICAgIGFkZEVs
ZW1lbnRDbGFzcyhTVkdOYW1lczo6ZmlsdGVyVGFnLCBbRE9NU1ZHRmlsdGVyRWxlbWVudCBjbGFz
c10pOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBhZGRFbGVtZW50Q2xhc3Mo
U1ZHTmFtZXM6OmZvbnRUYWcsIFtET01TVkdGb250RWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVs
ZW1lbnRDbGFzcyhTVkdOYW1lczo6Zm9udF9mYWNlVGFnLCBbRE9NU1ZHRm9udEZhY2VFbGVtZW50
IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpmb250X2ZhY2VfZm9ybWF0
VGFnLCBbRE9NU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVu
dENsYXNzKFNWR05hbWVzOjpmb250X2ZhY2VfbmFtZVRhZywgW0RPTVNWR0ZvbnRGYWNlTmFtZUVs
ZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZvbnRfZmFjZV9z
cmNUYWcsIFtET01TVkdGb250RmFjZVNyY0VsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50
Q2xhc3MoU1ZHTmFtZXM6OmZvbnRfZmFjZV91cmlUYWcsIFtET01TVkdGb250RmFjZVVyaUVsZW1l
bnQgY2xhc3NdKTsKKyAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmdseXBoVGFnLCBbRE9N
U1ZHR2x5cGhFbGVtZW50IGNsYXNzXSk7CiAjZW5kaWYKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZH
TmFtZXM6OmdUYWcsIFtET01TVkdHRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFz
cyhTVkdOYW1lczo6aW1hZ2VUYWcsIFtET01TVkdJbWFnZUVsZW1lbnQgY2xhc3NdKTsKQEAgLTI0
MSw2ICsyNDMsOSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVFbGVtZW50Q2xhc3NNYXAoKQogICAgIGFk
ZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6bWFya2VyVGFnLCBbRE9NU1ZHTWFya2VyRWxlbWVudCBj
bGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6bWFza1RhZywgW0RPTVNWR01h
c2tFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjptZXRhZGF0
YVRhZywgW0RPTVNWR01ldGFkYXRhRWxlbWVudCBjbGFzc10pOworI2lmIEVOQUJMRShTVkdfRk9O
VFMpCisgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjptaXNzaW5nX2dseXBoVGFnLCBbRE9N
U1ZHTWlzc2luZ0dseXBoRWxlbWVudCBjbGFzc10pOworI2VuZGlmCiAgICAgYWRkRWxlbWVudENs
YXNzKFNWR05hbWVzOjpwYXRoVGFnLCBbRE9NU1ZHUGF0aEVsZW1lbnQgY2xhc3NdKTsKICAgICBh
ZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OnBhdHRlcm5UYWcsIFtET01TVkdQYXR0ZXJuRWxlbWVu
dCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6cG9seWdvblRhZywgW0RP
TVNWR1BvbHlnb25FbGVtZW50IGNsYXNzXSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50
ZXJuYWwuaAkocmV2aXNpb24gMjg5NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50
ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBACiAjaW1wb3J0ICJET01T
VkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01TVkdDdXJzb3JFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0RlZnNFbGVtZW50
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0RlZmluaXRpb25TcmNFbGVtZW50SW50ZXJuYWwu
aCIKICNpbXBvcnQgIkRPTVNWR0Rlc2NFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNW
R0RvY3VtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0VsZW1lbnRJbnRlcm5hbC5oIgpA
QCAtMjAwLDggKzIwMSwxNSBAQAogI2ltcG9ydCAiRE9NU1ZHRkVUaWxlRWxlbWVudEludGVybmFs
LmgiCiAjaW1wb3J0ICJET01TVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBv
cnQgIkRPTVNWR0ZpbHRlckVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHRm9udEVs
ZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHRm9udEZhY2VFbGVtZW50SW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkRPTVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudEludGVybmFsLmgiCisjaW1w
b3J0ICJET01TVkdGb250RmFjZU5hbWVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNW
R0ZvbnRGYWNlU3JjRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdGb250RmFjZVVy
aUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHR0VsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0dyYWRpZW50RWxl
bWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdJbWFnZUVsZW1lbnRJbnRlcm5hbC5oIgog
I2ltcG9ydCAiRE9NU1ZHTGVuZ3RoSW50ZXJuYWwuaCIKQEAgLTIxMiw2ICsyMjAsNyBAQAogI2lt
cG9ydCAiRE9NU1ZHTWFza0VsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHTWF0cml4
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR01ldGFkYXRhRWxlbWVudEludGVybmFsLmgiCisj
aW1wb3J0ICJET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TVNWR051bWJlckludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdOdW1iZXJMaXN0SW50ZXJuYWwu
aCIKICNpbXBvcnQgIkRPTVNWR1BhaW50SW50ZXJuYWwuaCIKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01TVkcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
U1ZHLmgJKHJldmlzaW9uIDI4OTY1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWRy5o
CSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNW
R0ZpbHRlckVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZpdFRvVmlld0Jv
eC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdGb250RWxlbWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9ET01TVkdGb250RmFjZUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRm9u
dEZhY2VGb3JtYXRFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuaD4KQEAgLTkxLDYgKzkyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRm9u
dEZhY2VVcmlFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0dFbGVtZW50Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0RPTVNWR0dseXBoRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdHcmFk
aWVudEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHSW1hZ2VFbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RPTVNWR0xhbmdTcGFjZS5oPgpAQCAtMTAzLDYgKzEwNSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0RPTVNWR01hc2tFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RP
TVNWR01hdHJpeC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdNZXRhZGF0YUVsZW1lbnQuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9ET01TVkdOdW1iZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTnVtYmVyTGlz
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdQYWludC5oPgpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCShy
ZXZpc2lvbiAyODk2NSkKKysrIFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDE2ICszOSwxNiBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBDU1NG
b250RmFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU0ZvbnRGYWNlPiB7CiBwdWJsaWM6CiAgICAg
Q1NTRm9udEZhY2UoQ1NTRm9udFNlbGVjdG9yKik7Ci0gICAgfkNTU0ZvbnRGYWNlKCk7CisgICAg
dmlydHVhbCB+Q1NTRm9udEZhY2UoKTsKIAogICAgIGJvb2wgaXNMb2FkZWQoKSBjb25zdDsKLSAg
ICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0
OwogCi0gICAgdm9pZCBhZGRTb3VyY2UoQ1NTRm9udEZhY2VTb3VyY2UqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkU291cmNlKENTU0ZvbnRGYWNlU291cmNlKik7CiAKICAgICB2b2lkIGZvbnRMb2Fk
ZWQoQ1NTRm9udEZhY2VTb3VyY2UqKTsKIAotICAgIEZvbnREYXRhKiBnZXRGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRh
bGljKTsKKyAgICB2aXJ0dWFsIEZvbnREYXRhKiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKTsKIAogcHJp
dmF0ZToKICAgICBWZWN0b3I8Q1NTRm9udEZhY2VTb3VyY2UqPiBtX3NvdXJjZXM7CkluZGV4OiBX
ZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDI4OTY1KQorKysgV2ViQ29yZS9jc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAg
ICAgICAgIChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw4ICsyNSw5IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogCisjaW5j
bHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUg
IkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmgiCiAjaW5jbHVkZSAiQ1NT
Rm9udEZhY2VSdWxlLmgiCkBAIC00NCw2ICs0NiwxMyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUg
Ik5vZGVMaXN0LmgiCisjaW5jbHVkZSAiU1ZHQ1NTRm9udEZhY2UuaCIKKyNpbmNsdWRlICJTVkdG
b250RmFjZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogQ1NTRm9udFNlbGVjdG9yOjpDU1NGb250U2VsZWN0b3IoRG9jdW1l
bnQqIGRvY3VtZW50KQpAQCAtMTEyLDE3ICsxMjEsMzIgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6
OmFkZEZvbnRGYWNlUnVsZShjbwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgfQotICAgIAorCiAgICAgLy8gRWFjaCBpdGVtIGluIHRoZSBzcmMgcHJvcGVydHkncyBsaXN0
IGlzIGEgc2luZ2xlIENTU0ZvbnRGYWNlU291cmNlLiBQdXQgdGhlbSBhbGwgaW50byBhIENTU0Zv
bnRGYWNlLgotICAgIENTU0ZvbnRGYWNlKiBmb250RmFjZSA9IG5ldyBDU1NGb250RmFjZSh0aGlz
KTsKLSAgICAKKyAgICBDU1NGb250RmFjZSogZm9udEZhY2UgPSAwOworCiAgICAgaW50IGk7CiAg
ICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpc3QtPmxlbmd0aCgpOworCiAgICAgYm9vbCBmb3VuZExv
Y2FsID0gZmFsc2U7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGJvb2wgaXNTVkdGb250ID0gZmFs
c2U7CisjZW5kaWYKKwogICAgIGZvciAoaSA9IDA7IGkgPCBzcmNMZW5ndGg7IGkrKykgewogICAg
ICAgICAvLyBBbiBpdGVtIGluIHRoZSBsaXN0IGVpdGhlciBzcGVjaWZpZXMgYSBzdHJpbmcgKGxv
Y2FsIGZvbnQgbmFtZSkgb3IgYSBVUkwgKHJlbW90ZSBmb250IHRvIGRvd25sb2FkKS4KICAgICAg
ICAgQ1NTRm9udEZhY2VTcmNWYWx1ZSogaXRlbSA9IHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlU3Jj
VmFsdWUqPihzcmNMaXN0LT5pdGVtKGkpKTsKICAgICAgICAgQ1NTRm9udEZhY2VTb3VyY2UqIHNv
dXJjZSA9IDA7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAvLyBTVkcgRm9udHMgc3VwcG9y
dCAoaW50ZXJuYWwgZm9udHMsIGxpdmluZyB3aXRoaW4gdGhlIGRvY3VtZW50KQorICAgICAgICBp
ZiAoaXRlbS0+Zm9ybWF0KCkgPT0gIndlYmtpdF9zdmdfaW50ZXJuYWxfZm9udCIpIHsKKyAgICAg
ICAgICAgIGlzU1ZHRm9udCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
I2VuZGlmCisKICAgICAgICAgaWYgKCFpdGVtLT5pc0xvY2FsKCkpIHsKICAgICAgICAgICAgIGlm
IChpdGVtLT5pc1N1cHBvcnRlZEZvcm1hdCgpKSB7CiAgICAgICAgICAgICAgICAgQ2FjaGVkRm9u
dCogY2FjaGVkRm9udCA9IG1fZG9jdW1lbnQtPmRvY0xvYWRlcigpLT5yZXF1ZXN0Rm9udChpdGVt
LT5yZXNvdXJjZSgpKTsKQEAgLTEzOSw2ICsxNjMsOSBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6
YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAoIWZvbnRGYWNlKQorICAgICAgICAgICAgZm9udEZhY2UgPSBuZXcgQ1NTRm9udEZhY2UodGhp
cyk7CisKICAgICAgICAgaWYgKHNvdXJjZSkKICAgICAgICAgICAgIGZvbnRGYWNlLT5hZGRTb3Vy
Y2Uoc291cmNlKTsKICAgICAgICAgCkBAIC0xNDYsOCArMTczLDE0IEBAIHZvaWQgQ1NTRm9udFNl
bGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY28KICAgICAgICAgaWYgKGZvdW5kTG9jYWwpCiAgICAg
ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCi0gICAgaWYgKCFmb250RmFjZS0+aXNWYWxpZCgp
KSB7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIEFTU0VSVChmb250RmFjZSB8fCBpc1NWR0ZvbnQp
OworI2Vsc2UKKyAgICBBU1NFUlQoZm9udEZhY2UpOworI2VuZGlmCisKKyAgICBpZiAoZm9udEZh
Y2UgJiYgIWZvbnRGYWNlLT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZGVsZXRlIGZvbnRGYWNlOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTgzLDkgKzIxNiwzNyBAQCB2b2lkIENTU0ZvbnRT
ZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoIWZhbWlseU5h
bWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9mb250cy5zZXQoaGFzaEZvckZvbnQoZmFtaWx5
TmFtZS5sb3dlcigpLCBmb250RGVzY3JpcHRpb24uYm9sZCgpLCBmb250RGVzY3JpcHRpb24uaXRh
bGljKCkpLCBmb250RmFjZSk7CisKKyAgICAgICAgaWYgKGZhbWlseU5hbWUuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBpZiAoaXNT
VkdGb250KSB7CisgICAgICAgICAgICBTVkdGb250RmFjZUVsZW1lbnQqIHVzZUZvbnRGYWNlRWxl
bWVudCA9IDA7CisKKyAgICAgICAgICAgIC8vIExvb2t1cCBTVkdGb250RmFjZUVsZW1lbnQgZm9y
IGludGVybmFsIGZvbnQgaW4gRE9NIFRyZWUhCisgICAgICAgICAgICBSZWZQdHI8Tm9kZUxpc3Q+
IGxpc3QgPSBtX2RvY3VtZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKFNWR05hbWVzOjpzdmdO
YW1lc3BhY2VVUkksIFNWR05hbWVzOjpmb250X2ZhY2VUYWcubG9jYWxOYW1lKCkpOworCisgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFNW
R0ZvbnRGYWNlRWxlbWVudCogZm9udEZhY2VFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRm9udEZh
Y2VFbGVtZW50Kj4obGlzdC0+aXRlbShpKSk7CisgICAgICAgICAgICAgICAgaWYgKCFmb250RmFj
ZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAg
ICAgaWYgKGZvbnRGYWNlRWxlbWVudC0+Zm9udEZhbWlseSgpID09IGZhbWlseU5hbWUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdXNlRm9udEZhY2VFbGVtZW50ID0gZm9udEZhY2VFbGVtZW50Owor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICghdXNlRm9udEZhY2VFbGVtZW50KQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBmb250RmFjZSA9IG5ldyBTVkdDU1NGb250RmFj
ZSh0aGlzLCB1c2VGb250RmFjZUVsZW1lbnQpOworICAgICAgICB9CisjZW5kaWYKKworICAgICAg
ICBtX2ZvbnRzLnNldChoYXNoRm9yRm9udChmYW1pbHlOYW1lLmxvd2VyKCksIGZvbnREZXNjcmlw
dGlvbi5ib2xkKCksIGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSksIGZvbnRGYWNlKTsKICAgICB9
CiB9CiAKQEAgLTIwOSw3ICsyNzAsNiBAQCBGb250RGF0YSogQ1NTRm9udFNlbGVjdG9yOjpnZXRG
b250RGF0YShjCiAgICAgYm9vbCBzeW50aGV0aWNJdGFsaWMgPSBmYWxzZTsKIAogICAgIFN0cmlu
ZyBmYW1pbHkgPSBmYW1pbHlOYW1lLmRvbVN0cmluZygpLmxvd2VyKCk7Ci0gICAgCiAgICAgUmVm
UHRyPENTU0ZvbnRGYWNlPiBmYWNlID0gbV9mb250cy5nZXQoaGFzaEZvckZvbnQoZmFtaWx5LCBi
b2xkLCBpdGFsaWMpKTsKICAgICAvLyBJZiB3ZSBkb24ndCBmaW5kIGEgZmFjZSwgYW5kIGlmIGJv
bGQvaXRhbGljIGFyZSBzZXQsIHdlIHNob3VsZCB0cnkgb3RoZXIgdmFyaWFudHMuCiAgICAgLy8g
Qm9sZC9pdGFsaWMgc2hvdWxkIHRyeSBib2xkIGZpcnN0LCB0aGVuIGl0YWxpYywgdGhlbiBub3Jt
YWwgKG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgd2UgYXJlIGJldHRlciBhdCBzeW50aGVzaXppbmcg
aXRhbGljIHRoYW4gd2UgYXJlCkluZGV4OiBXZWJDb3JlL2Nzcy9TVkdDU1NGb250RmFjZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvU1ZHQ1NTRm9udEZhY2UuY3BwCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9jc3MvU1ZHQ1NTRm9udEZhY2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ1N0cmluZy5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdDU1NGb250RmFj
ZS5oIgorCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiU1ZHRm9udEZh
Y2VFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHQ1NTRm9udEZhY2U6OlNW
R0NTU0ZvbnRGYWNlKENTU0ZvbnRTZWxlY3Rvciogc2VsZWN0b3IsIFNWR0ZvbnRGYWNlRWxlbWVu
dCogZm9udEZhY2UpCisgICAgOiBDU1NGb250RmFjZShzZWxlY3RvcikKKyAgICAsIG1fZm9udEZh
Y2VFbGVtZW50KGZvbnRGYWNlKQoreworICAgIEFTU0VSVChmb250RmFjZSk7Cit9CisKK1NWR0NT
U0ZvbnRGYWNlOjp+U1ZHQ1NTRm9udEZhY2UoKQoreworfQorCitib29sIFNWR0NTU0ZvbnRGYWNl
Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICAvLyBUT0RPOiBXaGF0IHRvIGNoZWNrIGhlcmU/Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisgICAgCit2b2lkIFNWR0NTU0ZvbnRGYWNlOjphZGRTb3VyY2Uo
Q1NTRm9udEZhY2VTb3VyY2UqKQoreworICAgIC8vIG5vLW9wCit9CisKK0ZvbnREYXRhKiBTVkdD
U1NGb250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCit7CisgICAg
aWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fZm9udEZh
Y2VFbGVtZW50LT5jcmVhdGVGb250RGF0YShmb250RGVzY3JpcHRpb24pOworfQorCit9CisKKyNl
bmRpZgpJbmRleDogV2ViQ29yZS9jc3MvU1ZHQ1NTRm9udEZhY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2Nzcy9TVkdDU1NGb250RmFjZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9jc3Mv
U1ZHQ1NTRm9udEZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBTVkdDU1NGb250RmFjZV9oCisjZGVmaW5lIFNWR0NTU0ZvbnRGYWNl
X2gKKworI2luY2x1ZGUgPENTU0ZvbnRGYWNlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50OworCitjbGFzcyBTVkdDU1NGb250RmFjZSA6IHB1Ymxp
YyBDU1NGb250RmFjZSB7CitwdWJsaWM6CisgICAgU1ZHQ1NTRm9udEZhY2UoQ1NTRm9udFNlbGVj
dG9yKiwgU1ZHRm9udEZhY2VFbGVtZW50Kik7CisgICAgdmlydHVhbCB+U1ZHQ1NTRm9udEZhY2Uo
KTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lk
IGFkZFNvdXJjZShDU1NGb250RmFjZVNvdXJjZSopOworCisgICAgdmlydHVhbCBGb250RGF0YSog
Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBi
b29sIHN5bnRoZXRpY0l0YWxpYyk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFNWR0ZvbnRGYWNl
RWxlbWVudD4gbV9mb250RmFjZUVsZW1lbnQ7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiAyODk2NSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICszNCwxOCBA
QAogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAKICNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSA8dW5pY29kZS91bm9ybS5o
PgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5o
IgorI2luY2x1ZGUgIlNWR0ZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVt
ZW50LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBV
bmljb2RlOwogCkBAIC01NDgsNiArNTU1LDEzIEBAIHZvaWQgRm9udDo6c2V0Q29kZVBhdGgoQ29k
ZVBhdGggcCkKIAogYm9vbCBGb250OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRleHRSdW4mIHJ1
bikgY29uc3QKIHsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWRyBmb250cyBkb24ndCBzdXBw
b3J0IGFueSBjYWNoaW5nIGZvciBub3csIHdlIHByZXRlbmQgaXQgaGVyZSB0byBhc3N1cmUgU1ZH
CisgICAgLy8gZm9udCBkcmF3aW5nIGFsd2F5cyBlbmRzIHVwIGluIHRoZSAnc2ltcGxlIGNvZGUg
cGF0aCcsIHdoZW4gU1ZHIGZvbnRzIGFyZSB1c2VkLgorICAgIGlmIChwcmltYXJ5Rm9udCgpICYm
IHByaW1hcnlGb250KCktPmlzQ3VzdG9tRm9udCgpICYmIHByaW1hcnlGb250KCktPmlzU1ZHRm9u
dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCiAgICAgc3dpdGNoIChjb2RlUGF0
aCkgewogICAgICAgICBjYXNlIEF1dG86CiAgICAgICAgICAgICBicmVhazsKQEAgLTY0MCw2ICs2
NTQsNjEgQEAgdm9pZCBGb250OjpkcmF3U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleAogICAgIGRy
YXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0K
IAordm9pZCBGb250OjpkcmF3R2x5cGhzUmVzcGVjdGluZ1NWR0ZvbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGb250RGF0YSogZm9udERhdGEsIGNvbnN0IEdseXBoQnVmZmVyJiBn
bHlwaEJ1ZmZlciwgaW50IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNv
bnN0Cit7CisjaWYgRU5BQkxFKFNWRykKKyAgICBpZiAoIWZvbnREYXRhLT5pc0N1c3RvbUZvbnQo
KSAmJiAhZm9udERhdGEtPmlzU1ZHRm9udCgpKSB7CisjZW5kaWYKKworICAgICAgICBkcmF3R2x5
cGhzKGNvbnRleHQsIGZvbnREYXRhLCBnbHlwaEJ1ZmZlciwgZnJvbSwgdG8sIHBvaW50KTsKKyAg
ICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKFNWRykKKyAgICB9CisKKyAgICBBU1NFUlQoZm9u
dERhdGEtPmlzQ3VzdG9tRm9udCgpKTsKKyAgICBBU1NFUlQoZm9udERhdGEtPmlzU1ZHRm9udCgp
KTsKKworICAgIFNWR0ZvbnRGYWNlRWxlbWVudCogZm9udEZhY2UgPSBmb250RGF0YS0+c3ZnRm9u
dEZhY2UoKTsKKyAgICBBU1NFUlQoZm9udEZhY2UpOworCisgICAgLy8gVE9ETzogVGhpcyBpcyBy
aWRpY29sb3VzLiBHbHlwaHMgc2hvdWxkbid0IGJlIGNvbGxlY3RlZCB3aGVuIHBhaW50ZWQuIFRo
ZSBwcm9ibGVtIGlzCisgICAgLy8gdGhhdCB3ZSBuZWVkIHRvIGNhY2hlICdHbHlwaCcgaW5zdGVh
ZCBvZiAnU3RyaW5nJyBpbiB0aGUgR2x5cGhIYXNoTWFwLCB0byBvYnRhaW4KKyAgICAvLyBhIHNl
dCBvZiAnR2x5cGgncyBmcm9tIGEgJ1N0cmluZycgd2UgbmVlZCB0aGUgbG9jYWwgZnVuY3Rpb24g
Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyLgorICAgIC8vIFNvbWVob3cgdGhlIGRlc2lnbiBuZWVkcyB0
byBiZSBjaGFuZ2VkLiBOb3QgeWV0IHN1cmUgaG93LCBuZWVkcyBkaXNjdXNzaW9uLgorICAgIGlm
IChmb250RmFjZS0+cGFyZW50Tm9kZSgpICYmIGZvbnRGYWNlLT5wYXJlbnROb2RlKCktPmhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmZvbnRUYWcpKQorICAgICAgICBzdGF0aWNfY2FzdDxTVkdGb250RWxl
bWVudCo+KGZvbnRGYWNlLT5wYXJlbnROb2RlKCkpLT5jb2xsZWN0R2x5cGhzKCp0aGlzKTsKKwor
ICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9IHBvaW50OworCisgICAgZm9yIChpbnQgaSA9IGZy
b207IGkgPCB0bzsgKytpKSB7CisgICAgICAgIFNWR0dseXBoSWRlbnRpZmllciBpZGVudGlmaWVy
ID0gZm9udEZhY2UtPmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShnbHlwaEJ1ZmZlci5nbHlw
aEF0KGkpKTsKKworICAgICAgICBpZiAoIWlkZW50aWZpZXIucGF0aERhdGEuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRyYXdHbHlwaHNXaXRoU1ZHRm9udCAhISBp
PSVpLCBmcm9tPSVpLCB0bz0laVxuIiwgaSwgZnJvbSwgdG8pOworICAgICAgICAgICAgZmxvYXQg
c2NhbGUgPSBzaXplKCkgLyBmb250RmFjZS0+dW5pdHNQZXJFbSgpOworCisgICAgICAgICAgICBB
ZmZpbmVUcmFuc2Zvcm0gY3RtOworICAgICAgICAgICAgY3RtLnRyYW5zbGF0ZShzdGFydFBvaW50
LngoKSwgc3RhcnRQb2ludC55KCkpOworICAgICAgICAgICAgY3RtLnNjYWxlKHNjYWxlLCAtc2Nh
bGUpOworCisgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0oY3RtKTsKKworICAgICAgICAg
ICAgY29udGV4dC0+YmVnaW5QYXRoKCk7CisgICAgICAgICAgICBjb250ZXh0LT5hZGRQYXRoKGlk
ZW50aWZpZXIucGF0aERhdGEpOworCisjaWYgUExBVEZPUk0oQ0cpCisgICAgICAgICAgICBDR0Nv
bnRleHRGaWxsUGF0aChjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSk7CisjZW5kaWYKKworICAg
ICAgICAgICAgLy8gRmluZCBhIGJldHRlciB3YXkgaW5zdGVhZCBvZiBjdG0gLyBjdG0uaW52ZXJz
ZSgpIGNvbmNhdGluZworICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKGN0bS5pbnZlcnNl
KCkpOworICAgICAgICAgICAgc3RhcnRQb2ludC5tb3ZlKGdseXBoQnVmZmVyLmFkdmFuY2VBdChp
KSwgMCk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKK30KKwogdm9pZCBGb250OjpkcmF3R2x5
cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5
cGhCdWZmZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGV4dFJ1biYgcnVu
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKIHsgICAKQEAgLTY1NCw3ICs3MjMsNyBA
QCB2b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRlCiAgICAgICAgIGNvbnN0
IEZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KG5leHRHbHlw
aCk7CiAgICAgICAgIEZsb2F0U2l6ZSBuZXh0T2Zmc2V0ID0gZ2x5cGhCdWZmZXIub2Zmc2V0QXQo
bmV4dEdseXBoKTsKICAgICAgICAgaWYgKG5leHRGb250RGF0YSAhPSBmb250RGF0YSB8fCBuZXh0
T2Zmc2V0ICE9IG9mZnNldCkgewotICAgICAgICAgICAgZHJhd0dseXBocyhjb250ZXh0LCBmb250
RGF0YSwgZ2x5cGhCdWZmZXIsIGxhc3RGcm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwgc3RhcnRQ
b2ludCk7CisgICAgICAgICAgICBkcmF3R2x5cGhzUmVzcGVjdGluZ1NWR0ZvbnQoY29udGV4dCwg
Zm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0
YXJ0UG9pbnQpOwogICAgICAgICAgICAgbGFzdEZyb20gPSBuZXh0R2x5cGg7CiAgICAgICAgICAg
ICBmb250RGF0YSA9IG5leHRGb250RGF0YTsKICAgICAgICAgICAgIG9mZnNldCA9IG5leHRPZmZz
ZXQ7CkBAIC02NjMsNyArNzMyLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhp
Y3NDb250ZQogICAgICAgICBuZXh0WCArPSBnbHlwaEJ1ZmZlci5hZHZhbmNlQXQobmV4dEdseXBo
KTsKICAgICAgICAgbmV4dEdseXBoKys7CiAgICAgfQotICAgIGRyYXdHbHlwaHMoY29udGV4dCwg
Zm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0
YXJ0UG9pbnQpOworICAgIGRyYXdHbHlwaHNSZXNwZWN0aW5nU1ZHRm9udChjb250ZXh0LCBmb250
RGF0YSwgZ2x5cGhCdWZmZXIsIGxhc3RGcm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwgc3RhcnRQ
b2ludCk7CiB9CiAKIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwg
aW50IHRvKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHJldmlzaW9uIDI4
OTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE5OSw2ICsxOTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuVXNlR2x5cGhDYWNoZShj
b25zdCBUZXh0UnVuJikgY29uc3Q7CiAgICAgdm9pZCBkcmF3U2ltcGxlVGV4dChHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQg
dG8pIGNvbnN0OwogICAgIHZvaWQgZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
b250RGF0YSosIGNvbnN0IEdseXBoQnVmZmVyJiwgaW50IGZyb20sIGludCB0bywgY29uc3QgRmxv
YXRQb2ludCYpIGNvbnN0OworICAgIHZvaWQgZHJhd0dseXBoc1Jlc3BlY3RpbmdTVkdGb250KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQg
ZnJvbSwgaW50IHRvLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgdm9pZCBkcmF3R2x5
cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBUZXh0
UnVuJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogICAgIHZvaWQgZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50
IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQo
Y29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKikgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREYXRhLmNwcAkocmV2aXNpb24gMjg5NjUpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTAg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250RGF0YS5oIgogCisjaWYgRU5B
QkxFKFNWRykKKyNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKKyNlbmRpZgorCiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzcsNiAr
NDEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRm9udERhdGE6OkZvbnREYXRhKGNvbnN0IEZv
bnRQbGF0Zm9ybURhdGEmIGYsIGJvb2wgY3VzdG9tRm9udCwgYm9vbCBsb2FkaW5nKQogICAgIDog
bV9mb250KGYpCiAgICAgLCBtX3RyZWF0QXNGaXhlZFBpdGNoKGZhbHNlKQorI2lmIEVOQUJMRShT
VkcpCisgICAgLCBtX2lzU1ZHRm9udChmYWxzZSkKKyAgICAsIG1fc3ZnRm9udEZhY2UoMCkKKyNl
bmRpZgogICAgICwgbV9pc0N1c3RvbUZvbnQoY3VzdG9tRm9udCkKICAgICAsIG1faXNMb2FkaW5n
KGxvYWRpbmcpCiAgICAgLCBtX3NtYWxsQ2Fwc0ZvbnREYXRhKDApCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGF0YS5oCShyZXZpc2lvbiAyODk2NSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTAgQEAg
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFdpZHRo
TWFwOwogCisjaWYgRU5BQkxFKFNWRykKK2NsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudDsKKyNlbmRp
ZgorCiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNo
IH07CiAKIGNsYXNzIEZvbnREYXRhIDogTm9uY29weWFibGUgewpAQCAtNzIsNiArNzYsMTEgQEAg
cHVibGljOgogICAgIHZvaWQgZGV0ZXJtaW5lUGl0Y2goKTsKICAgICBQaXRjaCBwaXRjaCgpIGNv
bnN0IHsgcmV0dXJuIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPyBGaXhlZFBpdGNoIDogVmFyaWFibGVQ
aXRjaDsgfQogCisjaWYgRU5BQkxFKFNWRykKKyAgICBib29sIGlzU1ZHRm9udCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNTVkdGb250OyB9CisgICAgU1ZHRm9udEZhY2VFbGVtZW50KiBzdmdGb250RmFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnRm9udEZhY2UuZ2V0KCk7IH0KKyNlbmRpZgorCiAgICAg
Ym9vbCBpc0N1c3RvbUZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzQ3VzdG9tRm9udDsgfQogICAg
IGJvb2wgaXNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRpbmc7IH0KIApAQCAtMTI0
LDYgKzEzMywxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIG1fdHJlYXRBc0ZpeGVkUGl0Y2g7CiAK
KyNpZiBFTkFCTEUoU1ZHKQorICAgIGJvb2wgbV9pc1NWR0ZvbnQ7CisgICAgUmVmUHRyPFNWR0Zv
bnRGYWNlRWxlbWVudD4gbV9zdmdGb250RmFjZTsgCisjZW5kaWYKKwogICAgIGJvb2wgbV9pc0N1
c3RvbUZvbnQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBhcmUgY3VzdG9tIGZvbnQgbG9hZGVkIHZp
YSBAZm9udC1mYWNlCiAgICAgYm9vbCBtX2lzTG9hZGluZzsgLy8gV2hldGhlciBvciBub3QgdGhp
cyBjdXN0b20gZm9udCBpcyBzdGlsbCBpbiB0aGUgYWN0IG9mIGxvYWRpbmcuCiAKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdGb250RWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RWxl
bWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICAgIENvcHlyaWdo
dCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICAgIENvcHlyaWdodCAo
QykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorCisjaWYgRU5BQkxFKFNWRykK
KyNpbmNsdWRlICJTVkdGb250RWxlbWVudC5oIgorCisjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1
ZGUgIkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaW5jbHVkZSAiU1ZHR2x5cGhFbGVtZW50LmgiCisj
aW5jbHVkZSAiU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgi
CisjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOworCitTVkdGb250RWxlbWVudDo6U1ZHRm9udEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYykKKyAgICA6
IFNWR1N0eWxlZEVsZW1lbnQodGFnTmFtZSwgZG9jKQoreworfQorCitTVkdGb250RWxlbWVudDo6
flNWR0ZvbnRFbGVtZW50KCkKK3sKK30KKwordm9pZCBTVkdGb250RWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAgIFNWR1N0eWxlZEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQorCit2b2lkIFNWR0ZvbnRFbGVtZW50
Ojpjb2xsZWN0R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQpCit7CisgICAgVmVjdG9yPFNWR0dseXBo
RWxlbWVudCo+IGdseXBoRWxlbWVudHM7CisgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCogbWlz
c2luZ0dseXBoRWxlbWVudCA9IDA7CisKKyAgICBmb3IgKE5vZGUqIGNoaWxkID0gbGFzdENoaWxk
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkgeworICAgICAgICBp
ZiAoY2hpbGQtPmhhc1RhZ05hbWUoZ2x5cGhUYWcpKQorICAgICAgICAgICAgZ2x5cGhFbGVtZW50
cy5hcHBlbmQoc3RhdGljX2Nhc3Q8U1ZHR2x5cGhFbGVtZW50Kj4oY2hpbGQpKTsKKyAgICAgICAg
ZWxzZSBpZiAoY2hpbGQtPmhhc1RhZ05hbWUobWlzc2luZ19nbHlwaFRhZykpCisgICAgICAgICAg
ICBtaXNzaW5nR2x5cGhFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHTWlzc2luZ0dseXBoRWxlbWVu
dCo+KGNoaWxkKTsKKyAgICB9CisKKyAgICBWZWN0b3I8U1ZHR2x5cGhFbGVtZW50Kj46Oml0ZXJh
dG9yIGl0ID0gZ2x5cGhFbGVtZW50cy5iZWdpbigpOworICAgIFZlY3RvcjxTVkdHbHlwaEVsZW1l
bnQqPjo6aXRlcmF0b3IgZW5kID0gZ2x5cGhFbGVtZW50cy5lbmQoKTsKKworICAgIG1fZ2x5cGhN
YXAuY2xlYXIoKTsKKworICAgIFNWR0dseXBoSWRlbnRpZmllciBpZGVudGlmaWVyOworCisgICAg
Ly8gT25seSBzdXBwb3J0cyBzaW5nbGUgZ2x5cGggPC0+IHNpbmdsZSBjaGFyYWN0ZXIgc2l0dWF0
aW9ucyAmIGdseXBocyByZW5kZXJlZCBieSBwYXRocy4KKyAgICBmb3IgKDsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIFN0cmluZyBwYXRoRGF0YVN0cmluZyA9ICgqaXQpLT5nZXRBdHRyaWJ1
dGUoZEF0dHIpOworICAgICAgICBTdHJpbmcgZ2x5cGhTdHJpbmcgPSAoKml0KS0+Z2V0QXR0cmli
dXRlKHVuaWNvZGVBdHRyKTsKKworICAgICAgICAvLyBUbyBzdXBwb3J0IGdseXBoIHN0cmluZ3Mg
Y29uc2lzdGluZyBvZiBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciAoaWUuICdmZmwnIGxpZ2F0dXJl
cykgd2UgbmVlZCBhbm90aGVyIGhhc2hpbmcgc2NoZW1lLgorICAgICAgICAvLyBHbHlwaCA8LT4g
U1ZHR2x5cGhJZGVudGlmaWVyIGlzIG5vdCBlbm91Z2guCisgICAgICAgIGlmIChnbHlwaFN0cmlu
Zy5sZW5ndGgoKSAhPSAxIHx8IHBhdGhEYXRhU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGNvbnN0IEdseXBoRGF0YSYgZ2x5cGhEYXRhID0gZm9udC5n
bHlwaERhdGFGb3JDaGFyYWN0ZXIoZ2x5cGhTdHJpbmdbMF0sIGZhbHNlIC8qIFRPRE86IG5vIHJ0
bCwgaXMgdGhpcyBjb3JyZWN0IGluIGFsbCBjYXNlcz8gKi8pOworCisgICAgICAgIGlkZW50aWZp
ZXIucGF0aERhdGEgPSBQYXRoKCk7CisgICAgICAgIHBhdGhGcm9tU1ZHRGF0YShpZGVudGlmaWVy
LnBhdGhEYXRhLCBwYXRoRGF0YVN0cmluZyk7CisKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJG
T1VORCBORVcgR0xZUEghIHBhdGhEYXRhU3RyaW5nOiAnJXMnIGdseXBoU3RyaW5nOiAnJXMnICBj
b2RlOiAnJXUnXG4iLCBwYXRoRGF0YVN0cmluZy5sYXRpbjEoKS5kYXRhKCksIGdseXBoU3RyaW5n
LmxhdGluMSgpLmRhdGEoKSwgZ2x5cGhEYXRhLmdseXBoKTsKKyAgICAgICAgbV9nbHlwaE1hcC5h
ZGQoZ2x5cGhEYXRhLmdseXBoLCBpZGVudGlmaWVyKTsKKyAgICB9Cit9CisKK1NWR0dseXBoSWRl
bnRpZmllciBTVkdGb250RWxlbWVudDo6Z2x5cGhJZGVudGlmaWVyRm9yR2x5cGhDb2RlKGNvbnN0
IEdseXBoJiBjb2RlKSBjb25zdAoreworICAgIEdseXBoSGFzaE1hcCYgaGFzaE1hcCA9IGNvbnN0
X2Nhc3Q8U1ZHRm9udEVsZW1lbnQqPih0aGlzKS0+bV9nbHlwaE1hcDsKKworICAgIEdseXBoSGFz
aE1hcDo6aXRlcmF0b3IgaXQgPSBoYXNoTWFwLmZpbmQoY29kZSk7CisgICAgaWYgKGl0ID09IGhh
c2hNYXAuZW5kKCkpCisgICAgICAgIHJldHVybiBTVkdHbHlwaElkZW50aWZpZXIoKTsKKworICAg
IHJldHVybiBpdC0+c2Vjb25kOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdGb250RWxlbWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEVs
ZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAgIENvcHlyaWdodCAo
QykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICAgQ29weXJpZ2h0IChDKSAy
MDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorCisgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFNWR0ZvbnRFbGVt
ZW50X2gKKyNkZWZpbmUgU1ZHRm9udEVsZW1lbnRfaAorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNs
dWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKKyNpbmNsdWRlICJTVkdHbHlw
aEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgRm9udDsKKwor
ICAgIHN0cnVjdCBHbHlwaEhhc2ggeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBHbHlwaCYgZ2x5cGgpIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpjb21wdXRl
SGFzaCgoOjpVQ2hhciopICZnbHlwaCwgc2l6ZW9mKEdseXBoKSAvIHNpemVvZig6OlVDaGFyKSk7
CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBHbHlwaCYgYSwg
Y29uc3QgR2x5cGgmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAg
ICBzdHJ1Y3QgR2x5cGhIYXNoVHJhaXRzIDogV1RGOjpHZW5lcmljSGFzaFRyYWl0czxHbHlwaD4g
eworICAgICAgICBzdGF0aWMgVHJhaXRUeXBlIGRlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIFVTSFJU
X01BWDsgfQorICAgIH07CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8R2x5cGgsIFNWR0dseXBoSWRl
bnRpZmllciwgR2x5cGhIYXNoLCBHbHlwaEhhc2hUcmFpdHM+IEdseXBoSGFzaE1hcDsKKworICAg
IGNsYXNzIFNWR0ZvbnRFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFNWR0ZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworICAgICAgICB2aXJ0dWFsIH5TVkdGb250RWxlbWVudCgpOworCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsK
KyAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJl
dHVybiBmYWxzZTsgfSAgICAKKworICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQorCisgICAgICAgIHZvaWQgY29s
bGVjdEdseXBocyhjb25zdCBGb250Jik7CisgICAgICAgIFNWR0dseXBoSWRlbnRpZmllciBnbHlw
aElkZW50aWZpZXJGb3JHbHlwaENvZGUoY29uc3QgR2x5cGgmKSBjb25zdDsKKworICAgIHByaXZh
dGU6CisgICAgICAgIC8vIE1hcCBiZXR3ZWVuICd1bmljb2RlJyBwcm9wZXJ0eSBvZiA8Z2x5cGg+
IGFuZCBhIFNWR0dseXBoSWRlbnRpZmllcgorICAgICAgICBHbHlwaEhhc2hNYXAgbV9nbHlwaE1h
cDsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1ZHKQorI2VuZGlmCisKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0Zv
bnRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5p
ZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5pZGwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CisKKyAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHRm9udEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAg
ICB9OworCit9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDI4
OTY1KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSwzNSArMSw0MyBAQAogLyoKLUNvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8
ZXJpY0B3ZWJraXQub3JnPgotCi1UaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi1tb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi12ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLVRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi1MaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLQotWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLXRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi1Cb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgorICAgQ29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgorICAgIAorICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpZiBFTkFCTEUo
U1ZHKQogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTRm9u
dEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9u
dERhdGEuaCIKKyNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCisjaW5jbHVkZSAiU1ZHRGVm
aW5pdGlvblNyY0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNW
R0ZvbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgiCi0jaW5j
bHVkZSAiU1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdHbHlwaEVsZW1l
bnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjUsMTIgKzEzMyw4NiBAQCB2b2lk
IFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyCiAgICAgU1ZHRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CiAKK3Vuc2lnbmVkIFNWR0ZvbnRGYWNlRWxlbWVu
dDo6dW5pdHNQZXJFbSgpIGNvbnN0Cit7CisgICAgaWYgKGhhc0F0dHJpYnV0ZSh1bml0c19wZXJf
ZW1BdHRyKSkKKyAgICAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZSh1bml0c19wZXJfZW1BdHRyKS50
b0ludCgpOworICAgIAorICAgIHJldHVybiAxMDAwOworfQorCitTdHJpbmcgU1ZHRm9udEZhY2VF
bGVtZW50Ojpmb250RmFtaWx5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHlsZURlY2xhcmF0
aW9uLT5nZXRQcm9wZXJ0eVZhbHVlKENTU19QUk9QX0ZPTlRfRkFNSUxZKTsKK30KKworRm9udERh
dGEqIFNWR0ZvbnRGYWNlRWxlbWVudDo6Y3JlYXRlRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgLy8gV2Ugb25seSBleHBlY3QgdG8g
aGF2ZSB0aGlzIG1ldGhvZCBjYWxsZWQgYnkgYSBwYXJlbnQgZm9udCBlbGVtZW50CisgICAgQVNT
RVJUKHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShm
b250VGFnKSk7CisgICAgU1ZHRm9udEVsZW1lbnQqIGZvbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
U1ZHRm9udEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOworCisgICAgLy8gVXNlIGRlZmF1bHQgZmFs
bGJhY2sgcGxhdGZvcm0gZGF0YSAtIGl0J3Mgbm90IG5lZWRlZCBhbnl3YXkuLi4KKyAgICBGb250
UGxhdGZvcm1EYXRhKiBjYWNoZWRQbGF0Zm9ybURhdGEgPSBGb250Q2FjaGU6OmdldExhc3RSZXNv
cnRGYWxsYmFja0ZvbnQoZm9udERlc2NyaXB0aW9uKTsKKyAgICBpZiAoIWNhY2hlZFBsYXRmb3Jt
RGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBPd25QdHI8Rm9udERhdGE+IGZvbnREYXRh
KG5ldyBGb250RGF0YSgqY2FjaGVkUGxhdGZvcm1EYXRhLCB0cnVlLCBmYWxzZSkpOworICAgIGZv
bnREYXRhLT5tX2lzU1ZHRm9udCA9IHRydWU7CisgICAgZm9udERhdGEtPm1fc3ZnRm9udEZhY2Ug
PSBjb25zdF9jYXN0PFNWR0ZvbnRGYWNlRWxlbWVudCo+KHRoaXMpOworCisgICAgZm9udERhdGEt
Pm1feEhlaWdodCA9IGZvbnRFbGVtZW50LT5nZXRBdHRyaWJ1dGUoeF9oZWlnaHRBdHRyKS50b0Zs
b2F0KCk7CisgICAgZm9udERhdGEtPm1fdW5pdHNQZXJFbSA9IHVuaXRzUGVyRW0oKTsKKworICAg
IGlmIChoYXNBdHRyaWJ1dGUoYXNjZW50QXR0cikpCisgICAgICAgIGZvbnREYXRhLT5tX2FzY2Vu
dCA9IGdldEF0dHJpYnV0ZShhc2NlbnRBdHRyKS50b0ludCgpOworICAgIGVsc2UgaWYgKGZvbnRF
bGVtZW50LT5oYXNBdHRyaWJ1dGUodmVydF9vcmlnaW5feUF0dHIpKQorICAgICAgICBmb250RGF0
YS0+bV9hc2NlbnQgPSBmb250RGF0YS0+bV91bml0c1BlckVtIC0gZm9udEVsZW1lbnQtPmdldEF0
dHJpYnV0ZSh2ZXJ0X29yaWdpbl95QXR0cikudG9JbnQoKTsKKyAgICBlbHNlCisgICAgICAgIC8v
IGludmFsaWQgZm9udCwgc2hvdWxkIGxvZworICAgICAgICBmb250RGF0YS0+bV9hc2NlbnQgPSAw
OworCisgICAgaWYgKGhhc0F0dHJpYnV0ZShkZXNjZW50QXR0cikpCisgICAgICAgIGZvbnREYXRh
LT5tX2Rlc2NlbnQgPSBnZXRBdHRyaWJ1dGUoZGVzY2VudEF0dHIpLnRvSW50KCk7CisgICAgZWxz
ZSBpZiAoZm9udEVsZW1lbnQtPmhhc0F0dHJpYnV0ZSh2ZXJ0X29yaWdpbl95QXR0cikpCisgICAg
ICAgIGZvbnREYXRhLT5tX2Rlc2NlbnQgPSBmb250RWxlbWVudC0+Z2V0QXR0cmlidXRlKHZlcnRf
b3JpZ2luX3lBdHRyKS50b0ludCgpOworICAgIGVsc2UKKyAgICAgICAgZm9udERhdGEtPm1fZGVz
Y2VudCA9IGZvbnREYXRhLT5tX2FzY2VudDsKKworICAgIHJldHVybiBmb250RGF0YS5yZWxlYXNl
KCk7Cit9CisKIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UoKQogewor
ICAgIC8vIElnbm9yZSBjaGFuZ2VzIHVudGlsIHdlIGxpdmUgaW4gdGhlIHRyZWUKKyAgICBpZiAo
IXBhcmVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU3BlY2lhbCBoYW5kbGlu
ZyBmb3IgbG9jYWwgU1ZHIGZvbnRzICh0aG9zZSB3aGljaCBoYXZlIGEgPGZvbnQ+IHBhcmVudCwg
YW5kIGFyZSBvbmx5IHVzZWQgd2l0aGluIHRoZSBkb2N1bWVudCkKKyAgICBpZiAocGFyZW50Tm9k
ZSgpICYmIHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShmb250VGFnKSkgeworICAgICAgICAvLyBT
ZXR1cCBzcGVjaWFsICdmb250LWZhY2Utc3JjJyBwcm9wZXJ0eSB0byBpZGVudGlmeSAibG9jYWwg
U1ZHIGZvbnRzIgorICAgICAgICAvLyBUT0RPOiBGaW5kIGJldHRlciBzb2x1dGlvbiwgaXQncyBh
IGNydWRlIGhhY2suCisgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBuZXcgQ1NT
VmFsdWVMaXN0OworCisgICAgICAgIFJlZlB0cjxDU1NGb250RmFjZVNyY1ZhbHVlPiBzcmMgPSBu
ZXcgQ1NTRm9udEZhY2VTcmNWYWx1ZShTdHJpbmdJbXBsOjplbXB0eSgpLCBmYWxzZSk7CisgICAg
ICAgIHNyYy0+c2V0Rm9ybWF0KCJ3ZWJraXRfc3ZnX2ludGVybmFsX2ZvbnQiKTsKKyAgICAgICAg
bGlzdC0+YXBwZW5kKHNyYyk7CisKKyAgICAgICAgQ1NTUHJvcGVydHkgc3JjUHJvcGVydHkoQ1NT
X1BST1BfU1JDLCBsaXN0KTsKKyAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkqIHNyY1Byb3BlcnR5
UmVmID0gJnNyY1Byb3BlcnR5OworICAgICAgICBtX3N0eWxlRGVjbGFyYXRpb24tPmFkZFBhcnNl
ZFByb3BlcnRpZXMoJnNyY1Byb3BlcnR5UmVmLCAxKTsKKworICAgICAgICBkb2N1bWVudCgpLT51
cGRhdGVTdHlsZVNlbGVjdG9yKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBU
T0RPOiBFeHRlcm5hbCBTVkcgZm9udHMgc3VwcG9ydCAtIHJlIHVzZSBleGlzdGluZyAiY3VzdG9t
IGZvbnQiIGhhbmRsaW5nIGxvZ2ljLgorCiAgICAgLy8gd2UgY3VycmVudGx5IGlnbm9yZSBhbGwg
YnV0IHRoZSBmaXJzdCBzcmMgZWxlbWVudCwgYWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBjb25jYXQg
dGhlbQogICAgIFNWR0ZvbnRGYWNlU3JjRWxlbWVudCogc3JjRWxlbWVudCA9IDA7CiAgICAgU1ZH
RGVmaW5pdGlvblNyY0VsZW1lbnQqIGRlZmluaXRpb25TcmMgPSAwOwotICAgIAorCiAgICAgZm9y
IChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKGZvbnRfZmFjZV9zcmNU
YWcpICYmICFzcmNFbGVtZW50KQogICAgICAgICAgICAgc3JjRWxlbWVudCA9IHN0YXRpY19jYXN0
PFNWR0ZvbnRGYWNlU3JjRWxlbWVudCo+KGNoaWxkKTsKQEAgLTE0MywyNiArMjI1LDM4IEBAIHZv
aWQgU1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UKICAgICBpZiAoZGVmaW5pdGlv
blNyYykKICAgICAgICAgbV9zdHlsZURlY2xhcmF0aW9uLT5zZXRQcm9wZXJ0eShDU1NfUFJPUF9E
RUZJTklUSU9OX1NSQywgZGVmaW5pdGlvblNyYy0+Z2V0QXR0cmlidXRlKFhMaW5rTmFtZXM6Omhy
ZWZBdHRyKSwgZmFsc2UpOwogI2VuZGlmCi0gICAgCi0gICAgaWYgKHBhcmVudE5vZGUoKSAmJiBw
YXJlbnROb2RlKCktPmxvY2FsTmFtZSgpID09ICJmb250IikgLy8gU1ZHTmFtZXM6OmZvbnRUYWcg
aXNuJ3QgZ2VuZXJhdGVkIHlldAotICAgICAgICByZXR1cm47IC8vIHRoaXMgZm9udC1mYWNlIGFw
cGxpZXMgdG8gaXRzIHBhcmVudCBmb250LCB3aGljaCB3ZSBpZ25vcmUuCi0gICAgZWxzZSBpZiAo
c3JjRWxlbWVudCkgeworCisgICAgaWYgKHNyY0VsZW1lbnQpIHsKICAgICAgICAgLy8gVGhpcyBp
cyB0aGUgb25seSBjbGFzcyAob3RoZXIgdGhhbiBDU1NQYXJzZXIpIHRvIGNyZWF0ZSBDU1NWYWx1
ZSBvYmplY3RzIGFuZCBzZXQgdGhlbSBvbiB0aGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBtYW51YWxs
eQogICAgICAgICAvLyB3ZSB1c2UgdGhlIGFkZFBhcnNlZFByb3BlcnRpZXMgbWV0aG9kLCBhbmQg
ZmFrZSBoYXZpbmcgYW4gYXJyYXkgb2YgQ1NTUHJvcGVydHkgcG9pbnRlcnMuCiAgICAgICAgIENT
U1Byb3BlcnR5IHNyY1Byb3BlcnR5KENTU19QUk9QX1NSQywgc3JjRWxlbWVudC0+c3JjVmFsdWUo
KSk7CiAgICAgICAgIGNvbnN0IENTU1Byb3BlcnR5KiBzcmNQcm9wZXJ0eVJlZiA9ICZzcmNQcm9w
ZXJ0eTsKICAgICAgICAgbV9zdHlsZURlY2xhcmF0aW9uLT5hZGRQYXJzZWRQcm9wZXJ0aWVzKCZz
cmNQcm9wZXJ0eVJlZiwgMSk7CiAgICAgfQotICAgIAorCiAgICAgZG9jdW1lbnQoKS0+dXBkYXRl
U3R5bGVTZWxlY3RvcigpOwogfQogCit2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvRG9jdW1lbnQoKQoreworICAgIHJlYnVpbGRGb250RmFjZSgpOworfQorCiB2b2lkIFNWR0Zv
bnRGYWNlRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKCkKIHsKICAgICByZWJ1aWxkRm9udEZhY2Uo
KTsKIH0KIAorU1ZHR2x5cGhJZGVudGlmaWVyIFNWR0ZvbnRGYWNlRWxlbWVudDo6Z2x5cGhJZGVu
dGlmaWVyRm9yR2x5cGhDb2RlKGNvbnN0IEdseXBoJiBjb2RlKSBjb25zdAoreworICAgIC8vIFdl
IG9ubHkgZXhwZWN0IHRvIGhhdmUgdGhpcyBtZXRob2QgY2FsbGVkIGJ5IGEgcGFyZW50IGZvbnQg
ZWxlbWVudAorICAgIEFTU0VSVChwYXJlbnROb2RlKCkpOworICAgIEFTU0VSVChwYXJlbnROb2Rl
KCktPmhhc1RhZ05hbWUoZm9udFRhZykpOworCisgICAgU1ZHRm9udEVsZW1lbnQqIGZvbnRFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRm9udEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOworICAgIHJl
dHVybiBmb250RWxlbWVudC0+Z2x5cGhJZGVudGlmaWVyRm9yR2x5cGhDb2RlKGNvZGUpOwogfQog
Ci0jZW5kaWYgLy8gRU5BQkxFKFNWRykKK30KIAorI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAkocmV2aXNpb24gMjg5NjUpCisrKyBXZWJDb3JlL3N2
Zy9TVkdGb250RmFjZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0MyArMSw1NyBAQAog
LyoKLSBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAg
ICAgIAotIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAKLSBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gCi0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLworICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KIAogI2lmbmRlZiBTVkdGb250RmFjZUVsZW1lbnRfaAogI2Rl
ZmluZSBTVkdGb250RmFjZUVsZW1lbnRfaAotI2lmIEVOQUJMRShTVkcpCiAKKyNpZiBFTkFCTEUo
U1ZHKQogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBjbGFzcyBDU1NGb250RmFjZVJ1bGU7CiAgICAg
Y2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb247CisgICAgY2xhc3MgRm9udERhdGE7Cisg
ICAgY2xhc3MgRm9udERlc2NyaXB0aW9uOworICAgIHN0cnVjdCBTVkdHbHlwaElkZW50aWZpZXI7
CisKICAgICBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiAg
ICAgcHVibGljOgogICAgICAgICBTVkdGb250RmFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZvbnRGYWNlRWxlbWVudCgpOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1
dGUqKTsKLSAgICAgICAgCisKICAgICAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgp
OwotICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7
CisKKyAgICAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSgpIGNvbnN0OworICAgICAgICBTdHJpbmcg
Zm9udEZhbWlseSgpIGNvbnN0OworCiAgICAgICAgIHZvaWQgcmVidWlsZEZvbnRGYWNlKCk7Ci0g
ICAgCi0gICAgcHJpdmF0ZTogICAgICAgIAorICAgICAgICBGb250RGF0YSogY3JlYXRlRm9udERh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisKKyAgICAgICAgU1ZHR2x5cGhJZGVu
dGlmaWVyIGdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShjb25zdCBHbHlwaCYpIGNvbnN0Owor
CisgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gbV9mb250RmFj
ZVJ1bGU7CiAgICAgICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV9zdHls
ZURlY2xhcmF0aW9uOwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1h
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVs
ZW1lbnQuaAkocmV2aXNpb24gMjg5NjUpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1h
dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsOCBAQAogI2luY2x1ZGUgIlNW
R0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFNWR0ZvbnRGYWNl
Rm9ybWF0RWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKKworY2xhc3MgU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgogICAgIFNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZH
R2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAgIENv
cHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICAgQ29weXJp
Z2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorCisg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHR2x5cGhFbGVtZW50Lmgi
CisKKyNpbmNsdWRlICJTVkdOYW1lcy5oIiIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2lu
ZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CisKK1NWR0dseXBoRWxlbWVudDo6U1ZHR2x5cGhFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBTVkdT
dHlsZWRFbGVtZW50KHRhZ05hbWUsIGRvYykKK3sKK30KKwordm9pZCBTVkdHbHlwaEVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKK3sKKyAgICBTVkdT
dHlsZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKK30KKwordm9pZCBTVkdH
bHlwaEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCgpCit7Cit9CisKK30KKworI2VuZGlmIC8vIEVO
QUJMRShTVkcpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg2IEBACisv
KgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Cisg
ICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
Zm5kZWYgU1ZHR2x5cGhFbGVtZW50X2gKKyNkZWZpbmUgU1ZHR2x5cGhFbGVtZW50X2gKKworI2lm
IEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorCisjaW5jbHVkZSAi
UGF0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisgICAgY2xhc3MgU1ZHR2x5cGhF
bGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAg
U1ZHR2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsK
KyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIH07CisKKyAgICAvLyBEZXNjcmliZSBhIFNWRyA8Z2x5cGg+IGVsZW1lbnQK
KyAgICBzdHJ1Y3QgU1ZHR2x5cGhJZGVudGlmaWVyIHsKKyAgICAgICAgZW51bSBPcmllbnRhdGlv
biB7IFZlcnRpY2FsLCBIb3Jpem9udGFsLCBCb3RoIH07CisgICAgICAgIGVudW0gQXJhYmljRm9y
bSB7IEluaXRpYWwsIE1lZGlhbCwgVGVybWluYWwsIElzb2xhZWQgfTsKKworICAgICAgICBTVkdH
bHlwaElkZW50aWZpZXIoKQorICAgICAgICAgICAgOiBvcmllbnRhdGlvbihCb3RoKQorICAgICAg
ICAgICAgLCBhcmFiaWNGb3JtKEluaXRpYWwpCisgICAgICAgICAgICAsIGhvcml6b250YWxBZHZh
bmNlWCgwLjBmKQorICAgICAgICAgICAgLCB2ZXJ0aWNhbE9yaWdpblgoMC4wZikKKyAgICAgICAg
ICAgICwgdmVydGljYWxPcmlnaW5ZKDAuMGYpCisgICAgICAgICAgICAsIHZlcnRpY2FsQWR2YW5j
ZVkoMC4wZikKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgLy8gJ29yaWVudGF0aW9u
JyBwcm9wZXJ0eTsKKyAgICAgICAgT3JpZW50YXRpb24gb3JpZW50YXRpb247CisKKyAgICAgICAg
Ly8gJ2FyYWJpYy1mb3JtJyBwcm9wZXJ0eQorICAgICAgICBBcmFiaWNGb3JtIGFyYWJpY0Zvcm07
CisKKyAgICAgICAgLy8gJ2hvcml6LWFkdi14JyBwcm9wZXJ0eQorICAgICAgICBmbG9hdCBob3Jp
em9udGFsQWR2YW5jZVg7CisKKyAgICAgICAgLy8gJ3ZlcnQtb3JpZ2luLXgnIHByb3BlcnR5Cisg
ICAgICAgIGZsb2F0IHZlcnRpY2FsT3JpZ2luWDsKKworICAgICAgICAvLyAndmVydC1vcmlnaW4t
eScgcHJvcGVydHkKKyAgICAgICAgZmxvYXQgdmVydGljYWxPcmlnaW5ZOworCisgICAgICAgIC8v
ICd2ZXJ0LWFkdi15JyBwcm9wZXJ0eQorICAgICAgICBmbG9hdCB2ZXJ0aWNhbEFkdmFuY2VZOwor
CisgICAgICAgIC8vICdkJyBwcm9wZXJ0eQorICAgICAgICBQYXRoIHBhdGhEYXRhOworCisgICAg
ICAgIC8vICdsYW5nJyBwcm9wZXJ0eQorICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7
CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNW
RykKKyNlbmRpZgorCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlw
aEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcgeworCisgICAgaW50
ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0dseXBoRWxlbWVudCA6IFNWR0VsZW1lbnQgewor
ICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJp
YyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZH
KQorI2luY2x1ZGUgIlNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIlNWR05h
bWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFNWR05hbWVz
OworCitTVkdNaXNzaW5nR2x5cGhFbGVtZW50OjpTVkdNaXNzaW5nR2x5cGhFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBTVkdTdHlsZWRF
bGVtZW50KHRhZ05hbWUsIGRvYykKK3sKK30KKwordm9pZCBTVkdNaXNzaW5nR2x5cGhFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgU1ZH
U3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgU1ZH
TWlzc2luZ0dseXBoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKCkKK3sKK30KKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKFNWRykKKwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAgIENvcHlyaWdodCAoQykgMjAwNyBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFNWR01pc3NpbmdHbHlwaEVsZW1lbnRfaAor
I2RlZmluZSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50X2gKKworI2lmIEVOQUJMRShTVkcpCisjaW5j
bHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xh
c3MgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0
cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lk
IGNoaWxkcmVuQ2hhbmdlZCgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRpZgorCisvLyB2aW06dHM9
NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcgeworCisgICAgaW50ZXJm
YWNlIFtDb25kaXRpb25hbD1TVkddIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQgOiBTVkdFbGVtZW50
IHsKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL3N2Zy9zdmd0YWdzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4JKHJldmlzaW9uIDI4OTY1KQorKysgV2ViQ29yZS9z
dmcvc3ZndGFncy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTEsOSArNTEsNyBAQCBmZVRpbGUKIGZl
VHVyYnVsZW5jZQogZmlsdGVyCiAjZW5kaWYKLSNpZiAwCiBmb250Ci0jZW5kaWYKIGZvbnRfZmFj
ZQogZm9udF9mYWNlX2Zvcm1hdAogZm9udF9mYWNlX25hbWUKQEAgLTYxLDggKzU5LDggQEAgZm9u
dF9mYWNlX3NyYwogZm9udF9mYWNlX3VyaQogZm9yZWlnbk9iamVjdAogZwotI2lmIDAKIGdseXBo
CisjaWYgMAogZ2x5cGhSZWYKIGhrZXJuCiAjZW5kaWYKQEAgLTcyLDkgKzcwLDcgQEAgbGluZWFy
R3JhZGllbnQKIG1hcmtlcgogbWFzawogbWV0YWRhdGEKLSNpZiAwCiBtaXNzaW5nX2dseXBoCi0j
ZW5kaWYKIG1wYXRoCiBwYXRoCiBwYXR0ZXJuCkluZGV4OiBXZWJLaXQvbWFjL01pZ3JhdGVIZWFk
ZXJzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCShy
ZXZpc2lvbiAyODk2MikKKysrIFdlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQkod29ya2lu
ZyBjb3B5KQpAQCAtMzI2LDYgKzMyNiw3IEBAIGFsbCA6IFwKICAgICAkKElOVEVSTkFMX0hFQURF
UlNfRElSKS9ET01TVkdGaWx0ZXJFbGVtZW50SW50ZXJuYWwuaCBcCiAgICAgJChQUklWQVRFX0hF
QURFUlNfRElSKS9ET01TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBcCiAg
ICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01TVkdGaXRUb1ZpZXdCb3guaCBcCisgICAgJChQ
UklWQVRFX0hFQURFUlNfRElSKS9ET01TVkdGb250RWxlbWVudC5oIFwKICAgICAkKFBSSVZBVEVf
SEVBREVSU19ESVIpL0RPTVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKICAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL0RPTVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKICAgICAkKFBSSVZBVEVf
SEVBREVSU19ESVIpL0RPTVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCkBAIC0zMzUsNiArMzM2
LDcgQEAgYWxsIDogXAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50SW50ZXJuYWwuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01T
VkdHRWxlbWVudC5oIFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNfRElSKS9ET01TVkdHRWxlbWVu
dEludGVybmFsLmggXAorICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHR2x5cGhFbGVt
ZW50LmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHR3JhZGllbnRFbGVtZW50
LmggXAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR0dyYWRpZW50RWxlbWVudElu
dGVybmFsLmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHSW1hZ2VFbGVtZW50
LmggXApAQCAtMzU3LDYgKzM1OSw3IEBAIGFsbCA6IFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNf
RElSKS9ET01TVkdNYXRyaXhJbnRlcm5hbC5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIp
L0RPTVNWR01ldGFkYXRhRWxlbWVudC5oIFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNfRElSKS9E
T01TVkdNZXRhZGF0YUVsZW1lbnRJbnRlcm5hbC5oIFwKKyAgICAkKFBSSVZBVEVfSEVBREVSU19E
SVIpL0RPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNf
RElSKS9ET01TVkdOdW1iZXIuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01TVkdO
dW1iZXJMaXN0LmggXAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR051bWJlckxp
c3RJbnRlcm5hbC5oIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18160</attachid>
            <date>2007-12-28 15:21:47 -0800</date>
            <delta_ts>2007-12-28 17:01:14 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>AddSVGFontsSupport.diff</filename>
            <type>text/plain</type>
            <size>125039</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTE4IEBACisyMDA3LTEyLTI4ICBOaWtvbGFzIFppbW1lcm1hbm4gIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRml4ZXM6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5
IChXZWJLaXQgU1ZHIG5lZWRzIFNWRyBGb250cyBzdXBwb3J0KQorCisgICAgICAgIEJlZ2luIGlt
cGxlbWVudGF0aW9uIG9mIFNWRyBGb250cyBtb2R1bGUuIEJhc2ljIGRvY3VtZW50cyB1c2luZyBT
VkcgRm9udHMgYWxyZWFkeSB3b3JrLgorICAgICAgICBPbmx5IGxvY2FsLCBpbi1kb2N1bWVudCBm
b250cyB3aG8gZGVjbGFyZSB0aGVpciBnbHlwaHMgdXNpbmcgdGhlIDxnbHlwaCBkPSIuLi4iPiBw
YXRoIHN5bnRheAorICAgICAgICBhcmUgc3VwcG9ydGVkLiAoPGdseXBoPiBjb250YWluaW5nIGFy
Yml0YXJ5IFNWRyBjb250ZW50IGFzIGNoaWxkIGVsZW1lbnRzLCBub3Qgc3VwcG9ydGVkIHlldCku
CisKKyAgICAgICAgTGltaXRlZCB0byBzaW5nbGUgY2hhciA8LT4gZ2x5cGggbWFwcGluZywgbm8g
bGlnYXR1cmVzIHN1cHBvcnRlZCB5ZXQuCisgICAgICAgIChpZS4gPGdseXBoIHVuaWNvZGU9J0En
Lz4gPGdseXBoIHVuaWNvZGU9J0FCJy8+IC0gaXQgaWdub3JlcyB0aGUgJ0FCJyBnbHlwaCBkZWZp
bml0aW9uIGZvciBub3cpCisKKyAgICAgICAgTWFyayBhbGwgU1ZHIEZvbnQgcmVsYXRlZCBjbGFz
c2VzICYgdXNhZ2VzIGluIEVOQUJMRShTVkdfRk9OVFMpIGJsb2Nrcy4KKworICAgICAgICBObyBs
YXlvdXQgdGVzdCBjaGFuZ2VzIGZvciBhIC0tbm8tc3ZnLWZvbnRzIGJ1aWxkLCBoZWF2eSBjaGFu
Z2VzIGlmIGVuYWJsZWQuIEJlY2F1c2UgYSBsb3Qgb2YgU1ZHIEZvbnQKKyAgICAgICAgYXR0cmli
dXRlcyBhcmUgbm90IHByb2Nlc3NlZCB5ZXQsIHRoZSByZW5kZXJpbmcgbG9va3Mgd3JvbmcgLSBo
ZW5jZSBkaXNhYmxlZCBieSBkZWZhdWx0LikKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6IEFkZCBTVkdGb250RWxlbWVudC9TVkdHbHlwaEVsZW1lbnQvU1ZHTWlzc2luZ0dseXBoRWxl
bWVudAorICAgICAgICAqIFdlYkNvcmUucHJvOiBVcGRhdGVkIGJ1aWxkIHN5c3RlbS4KKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IEFkZCBKU1NWR0ZvbnRFbGVtZW50
L0pTU1ZHR2x5cGhFbGVtZW50L0pTU1ZHTWlzc2luZ0dseXBoRWxlbWVudAorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NLm1tOiBEaXR0byAoZm9yIERPTVNWRyopLgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlRWxlbWVudENsYXNzTWFwKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUlu
dGVybmFsLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NU1ZHLmg6IERpdHRv
LgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5oOiBNYXJrIHRocmVlIGZ1bmN0aW9ucyAndmly
dHVhbCcsIHRvIGJlIG92ZXJyaWRlbiBieSBTVkdDU1NGb250RmFjZQorICAgICAgICAqIGNzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmg6IEFkZCBmdW5jdGlvbmFsaXR5IHRvIGlkZW50aWZ5IGFzIFNW
RyBDU1MgZm9udCBmYWNlIHNvdXJjZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3Jj
VmFsdWU6Om1faXNTVkcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6
aXNTVkdGb250RmFjZVNyYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVl
OjpzZXRTVkdGb250RmFjZVNyYyk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6
IEJ1aWxkICdTVkdDU1NGb250RmFjZScgb2JqZWN0cyBmb3IgbG9jYWwsIGluLWRvY3VtZW50IFNW
RyBmb250cy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VS
dWxlKToKKyAgICAgICAgKiBjc3MvU1ZHQ1NTRm9udEZhY2UuY3BwOiBBZGRlZC4gKFNpbXBsaWZp
ZWQgaW1wbGVtZW50YXRpb24gZm9yIFNWRyBGb250cykKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NT
U0ZvbnRGYWNlOjpTVkdDU1NGb250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdDU1NGb250
RmFjZTo6flNWR0NTU0ZvbnRGYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NTU0ZvbnRGYWNl
Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NTU0ZvbnRGYWNlOjphZGRTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ1NTRm9udEZhY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBjc3MvU1ZHQ1NTRm9udEZhY2UuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvUGF0aENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmNsb3NlU3VicGF0
aCk6IFNpbGVuY2UgYSBDRyB3YXJuaW5nIHdoZW4gY2FsbGluZyBjbG9zZVN1YnBhdGgoKSBvbiBl
bXB0eSBwYXRoLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOiBBZGQgc29t
ZSBsb2dpYyB0byBjYWxsIGludG8gU1ZHIEZvbnQgY29kZSB3aGVuIG9wZXJhdGluZyBvbiBTVkcg
Rm9udHMuCisgICAgICAgIChXZWJDb3JlOjpGb250OjpGb250KToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojphc2NlbnQpOiBQYXNz
IGZvbnQgc2l6ZSB0byBGb250RGF0YTo6YXNjZW50KCkgY2FsbAorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6ZGVzY2VudCk6IFBhc3MgZm9udCBzaXplIHRvIEZvbnREYXRhOjpkZXNjZW50KCkgY2Fs
bAorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Y2FuVXNlR2x5cGhDYWNoZSk6IEFsd2F5cyByZXR1
cm4gdHJ1ZSBmb3IgU1ZHIGZvbnRzIGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3
R2x5cGhCdWZmZXIpOiBDYWxsIGRyYXdHbHlwaHNXaXRoU1ZHRm9udCAoaW5zdGVhZCBvZiBkcmF3
R2x5cGhzKSBpZiB0aGUgcHJpbWFyeSBmb250IGlzIGEgU1ZHIGZvbnQuCisgICAgICAgIChXZWJD
b3JlOjpGb250OjpkcmF3U1ZHVGV4dCk6IEFkZCBuZXcgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYSBS
ZW5kZXJPYmplY3QqIHBhcmFtZXRlciwgb25seSB1c2VkIHRvIGRyYXcgU1ZHIGZvbnRzLiAKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6IEFkZCAoU1ZHLW9ubHkhKSBhYmlsaXR5
IHRvIHN0b3JlIGEgUmVuZGVyT2JqZWN0IHBvaW50ZXIsIHRvIHRoZSBlbGVtZW50IHdoaWNoIGlu
dm9rZWQgdGhlIGRyYXdUZXh0KCkgY2FsbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YTo6Rm9udERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERhdGE6OmFzY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpGb250
RGF0YTo6ZGVzY2VudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERhdGEuaDog
U3RvcmUgYSBwb2ludGVyIHRvIHRoZSBTVkdGb250RmFjZUVsZW1lbnQsIHdoaWNoIGNyZWF0ZWQg
dGhpcyBGb250RGF0YSBvYmplY3QgLSBuZWVkZWQgZm9yIGRyYXdHbHlwaHNXaXRoU1ZHRm9udCgp
LgorICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGE6OmlzU1ZHRm9udCk6IE9mZmVyIGEgd2F5IHRv
IGRldGVybWluZSB3aGV0ZXIgdGhpcyBpcyBhIEZvbnREYXRhIG9iamVjdCwgY3JlYXRlZCBieSBh
IFNWR0ZvbnRGYWNlRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhOjpzdmdGb250
RmFjZSk6CisgICAgICAgICogcmVuZGVyaW5nL1NWR0lubGluZVRleHRCb3guY3BwOiBBbHdheXMg
Y2FsbCAnc2V0UmVmZXJlbmNpbmdSZW5kZXJPYmplY3QobXlSZW5kZXJUZXh0KScgb24gdGhlIEZv
bnQgb2JqZWN0IHdoaWNoIGlzIHVzZWQgdG8gcGFpbnQgdGhlIGNoYXJhY3RlcnMuCisgICAgICAg
IChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpjYWxjdWxhdGVHbHlwaFdpZHRoKTogKGRyYXdH
bHlwaHNXaXRoU1ZHRm9udCBuZWVkcyB0aGlzLCBzZWUgJ3JlZmVyZW5jaW5nUmVuZGVyT2JqZWN0
JyBjb21tZW50KQorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6cGFpbnRDaGFy
YWN0ZXJzKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6ZHJhd0dseXBoc1dpdGhTVkdGb250KTogT3V0c291cmNlZCBpbXBsZW1lbnRh
dGlvbiBvZiBTVkcgRm9udHMgaW50byBpdCdzIG93biBmaWxlLgorICAgICAgICAqIHN2Zy9TVkdG
b250RWxlbWVudC5jcHA6IEFkZGVkLiAoTm90ZTogdGhpcyBob2xkcyB0aGUgR2x5cGhIYXNoTWFw
IHdoaWNoIGFzc29jaWF0ZXMgY2VydGFpbiA8Z2x5cGg+IG9iamVjdHMgd2l0aCB1bmljb2RlIHZh
bHVlcykKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRFbGVtZW50OjpTVkdGb250RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6flNWR0ZvbnRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6Y29sbGVjdEdseXBocyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6Z2x5cGhJZGVudGlmaWVyRm9yR2x5cGhDb2RlKToK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHbHlwaEhhc2g6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhIYXNoOjplcXVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEhhc2hUcmFpdHM6OmRlbGV0ZWRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdGb250RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuY3BwOiBCdWlsZCBTVkcgc3BlY2lmaWMgJ0ZvbnREYXRhJyBvYmplY3QKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZvbnRGYWNlRWxlbWVudDo6dW5pdHNQZXJFbSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OmZvbnRGYW1pbHkpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRm9udEZhY2VFbGVtZW50OjpjcmVhdGVGb250RGF0YSk6IEJ1aWxkcyBTVkcgc3BlY2lmaWVk
ICdGb250RGF0YScgb2JqZWN0IHdpdGggdGhlIG1hcmt1cCBzcGVjaWZpZWQgYXNjZW50L2Rlc2Nl
bnQgdmFsdWVzIGV0Yy4uCisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OnJl
YnVpbGRGb250RmFjZSk6IENvbnN0cnVjdCBDU1NGb250RmFjZVNyYyBvYmplY3QgKG1hcmtlZCBh
cyAnaXNTVkdGb250RmFjZVNyYycpIHRvIHNhdGlzZnkgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250
RmFjZVJ1bGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6Omluc2VydGVk
SW50b0RvY3VtZW50KTogUmVidWlsZCBmb250IGZhY2UuCisgICAgICAgIChXZWJDb3JlOjpTVkdG
b250RmFjZUVsZW1lbnQ6OmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZSk6IEFsbG93cyBkcmF3
R2x5cGhzV2l0aFNWR0ZvbnQgdG8gYWNjZXNzIHRoZSBnbHlwaCBoYXNoIG1hcCBsaXZpbmcgaW4g
dGhlIFNWR0ZvbnRFbGVtZW50LgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuaDog
Rml4ZWQgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyAmIHdyYXAgaW4gRU5BQkxFKFNWR19GT05UUykg
YmxvY2tzLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsOiBEaXR0by4KKyAg
ICAgICAgKiBzdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAg
ICogc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcv
U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmlkbDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0Zv
bnRGYWNlTmFtZUVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVu
dC5pZGw6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmg6IERpdHRvLgorICAg
ICAgICAqIHN2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaWRsOiBEaXR0by4KKyAgICAgICAgKiBz
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OlNWR0dseXBo
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dseXBoRWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHR2x5cGhFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0dseXBoSWRlbnRpZmllcjo6KTogU3RydWN0dXJlIGhvbGRpbmcgYWxsIGRh
dGEgdG8gcmVwcmVzZW50IGEgU1ZHIGdseXBoIChvcmlnaW4sIGFkdmFuY2UsIG9yaWVudGF0aW9u
IGV0Yy4uKQorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhJZGVudGlmaWVyOjpTVkdHbHlwaElk
ZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHA6IEFkZGVkLiAoc3R1YiBpbXBs
ZW1lbnRhdGlvbikKKyAgICAgICAgKFdlYkNvcmU6OlNWR01pc3NpbmdHbHlwaEVsZW1lbnQ6OlNW
R01pc3NpbmdHbHlwaEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWlzc2luZ0dseXBo
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWlz
c2luZ0dseXBoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01pc3NpbmdH
bHlwaEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIHN2Zy9TVkdNaXNzaW5n
R2x5cGhFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICogc3ZnL3N2Z3RhZ3MuaW46IFdyYXAg
YWxsIFNWR0ZvbnQqIGVsZW1lbnRzIGluIEVOQUJMRShTVkdfRk9OVFMpIGJsb2NrIC0gdG8gYXNz
dXJlIC0tbm8tc3ZnLWZvbnRzIGNvbXBpbGF0aW9uIHdvcmtzICh3aGljaCBpcyB0aGUgZGVmYXVs
dCBmb3Igbm93ISkuCisKIDIwMDctMTItMjcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw2ICsyMDMsNyBAQCBhbGwgOiBcCiAgICAgRE9NU1ZH
RkVTcG90TGlnaHRFbGVtZW50LmggXAogICAgIERPTVNWR0ZFVGlsZUVsZW1lbnQuaCBcCiAgICAg
RE9NU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oIFwKKyAgICBET01TVkdGb250RWxlbWVudC5oIFwK
ICAgICBET01TVkdGb250RmFjZUVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50LmggXAogICAgIERPTVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCkBAIC0yMTMsNiAr
MjE0LDcgQEAgYWxsIDogXAogICAgIERPTVNWR0ZpdFRvVmlld0JveC5oIFwKICAgICBET01TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5oIFwKICAgICBET01TVkdHRWxlbWVudC5oIFwKKyAgICBET01T
VkdHbHlwaEVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHR3JhZGllbnRFbGVtZW50LmggXAogICAgIERP
TVNWR0ltYWdlRWxlbWVudC5oIFwKICAgICBET01TVkdMYW5nU3BhY2UuaCBcCkBAIC0yMjUsNiAr
MjI3LDcgQEAgYWxsIDogXAogICAgIERPTVNWR01hc2tFbGVtZW50LmggXAogICAgIERPTVNWR01h
dHJpeC5oIFwKICAgICBET01TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisgICAgRE9NU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5oIFwKICAgICBET01TVkdOdW1iZXIuaCBcCiAgICAgRE9NU1ZHTnVtYmVy
TGlzdC5oIFwKICAgICBET01TVkdQYWludC5oIFwKQEAgLTU0Myw2ICs1NDYsNyBAQCBhbGwgOiBc
CiAgICAgSlNTVkdGRVRpbGVFbGVtZW50LmggXAogICAgIEpTU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5oIFwKICAgICBKU1NWR0ZpbHRlckVsZW1lbnQuaCBcCisgICAgSlNTVkdGb250RWxlbWVudC5o
IFwKICAgICBKU1NWR0ZvbnRGYWNlRWxlbWVudC5oIFwKICAgICBKU1NWR0ZvbnRGYWNlRm9ybWF0
RWxlbWVudC5oIFwKICAgICBKU1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCkBAIC01NTAsNiAr
NTU0LDcgQEAgYWxsIDogXAogICAgIEpTU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAogICAgIEpT
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBcCiAgICAgSlNTVkdHRWxlbWVudC5oIFwKKyAgICBK
U1NWR0dseXBoRWxlbWVudC5oIFwKICAgICBKU1NWR0dyYWRpZW50RWxlbWVudC5oIFwKICAgICBK
U1NWR0ltYWdlRWxlbWVudC5oIFwKICAgICBKU1NWR0xlbmd0aC5oIFwKQEAgLTU1OCw2ICs1NjMs
NyBAQCBhbGwgOiBcCiAgICAgSlNTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBcCiAgICAgSlNT
VkdNYXNrRWxlbWVudC5oIFwKICAgICBKU1NWR01hcmtlckVsZW1lbnQuaCBcCisgICAgSlNTVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmggXAogICAgIEpTU1ZHVHJhbnNmb3JtLmggXAogICAgIEpTU1ZH
Wm9vbUV2ZW50LmggXAogICAgIEpTU2NyZWVuLmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiAyOTAxMSkKKysr
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEyMzYsNiArMTIzNiw3IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBzdmcvU1ZHRkVUaWxl
RWxlbWVudC5pZGwgXAogICAgICAgICBzdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5pZGwgXAog
ICAgICAgICBzdmcvU1ZHRmlsdGVyRWxlbWVudC5pZGwgXAorICAgICAgICBzdmcvU1ZHRm9udEVs
ZW1lbnQuaWRsIFwKICAgICAgICAgc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5pZGwgXAogICAgICAg
ICBzdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdGb250
RmFjZU5hbWVFbGVtZW50LmlkbCBcCkBAIC0xMjQzLDYgKzEyNDQsNyBAQCBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAgc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5p
ZGwgXAogICAgICAgICBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaWRsIFwKICAgICAgICAg
c3ZnL1NWR0dFbGVtZW50LmlkbCBcCisgICAgICAgIHN2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsIFwK
ICAgICAgICAgc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5pZGwgXAogICAgICAgICBzdmcvU1ZHSW1h
Z2VFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdMZW5ndGguaWRsIFwKQEAgLTEyNTMsNiAr
MTI1NSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBzdmcv
U1ZHTWFza0VsZW1lbnQuaWRsIFwKICAgICAgICAgc3ZnL1NWR01hdHJpeC5pZGwgXAogICAgICAg
ICBzdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmlkbCBcCisgICAgICAgIHN2Zy9TVkdNaXNzaW5nR2x5
cGhFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdOdW1iZXIuaWRsIFwKICAgICAgICAgc3Zn
L1NWR051bWJlckxpc3QuaWRsIFwKICAgICAgICAgc3ZnL1NWR1BhaW50LmlkbCBcCkBAIC0xMzIw
LDYgKzEzMjMsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAg
Y3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAogICAgICAgICBjc3MvU1ZH
Q1NTUGFyc2VyLmNwcCBcCiAgICAgICAgIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBcCisg
ICAgICAgIGNzcy9TVkdDU1NGb250RmFjZS5jcHAgXAogICAgICAgICByZW5kZXJpbmcvU1ZHUmVu
ZGVyU3R5bGUuY3BwIFwKICAgICAgICAgcmVuZGVyaW5nL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAg
XAogICAgICAgICBiaW5kaW5ncy9qcy9KU1NWR0xhenlFdmVudExpc3RlbmVyLmNwcCBcCkBAIC0x
Mzc5LDYgKzEzODMsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAg
ICAgc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAgXAogICAgICAgICBzdmcvU1ZHRml0VG9WaWV3Qm94
LmNwcCBcCisgICAgICAgIHN2Zy9TVkdGb250LmNwcCBcCisgICAgICAgIHN2Zy9TVkdGb250RWxl
bWVudC5jcHAgXAogICAgICAgICBzdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBcCiAgICAgICAg
IHN2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0ZvbnRG
YWNlTmFtZUVsZW1lbnQuY3BwIFwKQEAgLTEzODYsNiArMTM5Miw3IEBAIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cCBcCiAgICAgICAgIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAogICAgICAgICBz
dmcvU1ZHR0VsZW1lbnQuY3BwIFwKKyAgICAgICAgc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAgXAog
ICAgICAgICBzdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdJbWFn
ZUVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0xhbmdTcGFjZS5jcHAgXApAQCAtMTM5Nyw2
ICsxNDA0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgIHN2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHAg
XAogICAgICAgICBzdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisgICAgICAgIHN2Zy9TVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdNUGF0aEVsZW1lbnQuY3Bw
IFwKICAgICAgICAgc3ZnL1NWR051bWJlckxpc3QuY3BwIFwKICAgICAgICAgc3ZnL1NWR1BhaW50
LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9u
IDI5MDExKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTc4NSw2ICsxNzg1LDMwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTVkdGb250RWxlbWVudC5jcHAiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU1ZHRm9udEVsZW1lbnQuaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTVkdHbHlwaEVs
ZW1lbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU1NWR0dseXBoRWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNT
VkdGb250RmFjZUVsZW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTQ4MzgsNiAr
NDg2MiwxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxjc3NcU1ZHQ1NTRm9udEZhY2UuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFNWR0NTU1BhcnNlci5jcHAiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQpAQCAtODMwOSw2ICs4MzM3LDIyIEBACiAJCQkJPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdGb250LmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xT
VkdGb250LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxzdmdcU1ZHRm9udEVsZW1lbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0ZvbnRFbGVtZW50LmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC04MzY1LDYgKzg0
MDksMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cc3ZnXFNWR0dseXBoRWxlbWVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHR2x5cGhFbGVtZW50LmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZH
R3JhZGllbnRFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC04NDY5LDYgKzg1
MjEsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cc3ZnXFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHN2Z1xTVkdNUGF0aEVsZW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
OTAxMSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMDk1LDYgKzMwOTUsNyBAQAogCQlCMjVCRTUxMDBEMDZCNzA4MDBCNTI0
QzYgLyogSlNFdmVudFRhcmdldEJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI1QkU1MEUwRDA2QjcwODAwQjUyNEM2IC8qIEpTRXZlbnRUYXJn
ZXRCYXNlLmNwcCAqLzsgfTsKIAkJQjI1QkU1MTEwRDA2QjcwODAwQjUyNEM2IC8qIEpTRXZlbnRU
YXJnZXRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjVCRTUwRjBEMDZCNzA4MDBCNTI0QzYgLyogSlNFdmVudFRhcmdldEJhc2UuaCAqLzsgfTsK
IAkJQjI1REZBQUYwQjJFMjkyOTAwMEU2NTEwIC8qIEpTU1ZHTWF0cml4Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNURGQUFFMEIyRTI5
MjkwMDBFNjUxMCAvKiBKU1NWR01hdHJpeEN1c3RvbS5jcHAgKi87IH07CisJCUIyNjJCODA0MEQx
RjMyRDAwMDE1OEYwOSAvKiBTVkdGb250LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyNjJCODAzMEQxRjMyRDAwMDE1OEYwOSAvKiBTVkdGb250LmNw
cCAqLzsgfTsKIAkJQjI2NTU0RUEwQjgwRDc0OTAwQTUwRUMzIC8qIFJlbmRlclNWR1RleHRQYXRo
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNjU1
NEU4MEI4MEQ3NDkwMEE1MEVDMyAvKiBSZW5kZXJTVkdUZXh0UGF0aC5jcHAgKi87IH07CiAJCUIy
NjU1NEVCMEI4MEQ3NDkwMEE1MEVDMyAvKiBSZW5kZXJTVkdUZXh0UGF0aC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI2NTU0RTkwQjgwRDc0OTAwQTUw
RUMzIC8qIFJlbmRlclNWR1RleHRQYXRoLmggKi87IH07CiAJCUIyNjZDRDREMEMzQUVDNjUwMEVC
MDhEMiAvKiBKU1NWR0V4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjY2Q0Q0QjBDM0FFQzY1MDBFQjA4RDIgLyogSlNTVkdFeGNlcHRp
b24uY3BwICovOyB9OwpAQCAtMzE0NSw2ICszMTQ2LDI2IEBACiAJCUIyNzUzNTgyMEIwNTM4MTQw
MDJDRTY0RiAvKiBQZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyNzUzNTU1MEIwNTM4MTQwMDJDRTY0RiAvKiBQZW4uaCAqLzsgfTsKIAkJQjI3NTM1
OEUwQjA1M0E2NjAwMkNFNjRGIC8qIEljb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU4RDBCMDUzQTY2MDAyQ0U2NEYgLyogSWNvbk1h
Yy5tbSAqLzsgfTsKIAkJQjI3N0I0MDQwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4
dE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
NzdCNDAzMEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi87IH07CisJ
CUIyN0IyODI1MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODFGMENFRjBDMDcw
MEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCAqLzsgfTsKKwkJQjI3QjI4MjYwQ0VGMEMw
NzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODIwMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0Zv
bnRFbGVtZW50LmggKi87IH07CisJCUIyN0IyODI3MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ds
eXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjdCMjgyMTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuY3BwICov
OyB9OworCQlCMjdCMjgyODBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODIyMENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oICovOyB9OworCQlCMjdCMjgyOTBD
RUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODIzMENFRjBDMDcwMEQz
OUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwICovOyB9OworCQlCMjdCMjgyQTBD
RUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgyNDBDRUYwQzA3MDBEMzlE
NTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi87IH07CisJCUIyN0IyODM2MENFRjBD
MzYwMEQzOUQ1NCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgyQjBDRUYwQzM1MDBEMzlENTQgLyogQ1NT
UHJvcGVydHlOYW1lcy5pbiAqLzsgfTsKKwkJQjI3QjI4MzcwQ0VGMEMzNjAwRDM5RDU0IC8qIENT
U1ZhbHVlS2V5d29yZHMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyN0IyODJDMENFRjBDMzUwMEQzOUQ1NCAvKiBDU1NWYWx1ZUtleXdvcmRzLmlu
ICovOyB9OworCQlCMjdCMjgzODBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODJE
MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKCk7IH07IH07CisJCUIyN0IyODM5MENFRjBDMzYwMEQzOUQ1NCAvKiBET01T
VkdGb250RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyN0IyODJFMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5tbSAq
LzsgfTsKKwkJQjI3QjI4M0EwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
N0IyODJGMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudEludGVybmFsLmggKi87
IH07CisJCUIyN0IyODNCMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMwMENF
RjBDMzUwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9ICgpOyB9OyB9OworCQlCMjdCMjgzQzBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZH
R2x5cGhFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjI3QjI4MzEwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5tbSAq
LzsgfTsKKwkJQjI3QjI4M0QwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjdCMjgzMjBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJQjI3QjI4M0UwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
N0IyODMzMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKKwkJQjI3QjI4M0YwQ0VGMEMzNjAw
RDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgzNDBDRUYwQzM1MDBEMzlENTQgLyog
RE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5tbSAqLzsgfTsKKwkJQjI3QjI4NDAwQ0VGMEMzNjAw
RDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MzUwQ0VGMEMzNTAwRDM5
RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlCMjdC
Mjg1QzBDRUYwRDcyMDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODJE
MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oICovOyB9OworCQlCMjdCMjg1
RDBDRUYwRDcyMDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0
ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgzMDBD
RUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CisJCUIyN0IyODVF
MENFRjBENzIwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gQ29weSBH
ZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdC
MjgzMzBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9
OwogCQlCMjhCQzMxQTBEMTM1RTU0MDBDREJBMjcgLyogSlNFdmVudFRhcmdldEJhc2UubHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjhCQzMxOTBE
MTM1RTU0MDBDREJBMjcgLyogSlNFdmVudFRhcmdldEJhc2UubHV0LmggKi87IH07CiAJCUIyOEM2
QTI3MEQwMEM0NDgwMDMzNEFBNCAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI4QzZBMUUwRDAwQzQ0ODAw
MzM0QUE0IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgKi87IH07CiAJCUIyOEM2QTI4MEQw
MEM0NDgwMDMzNEFBNCAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyOEM2QTFGMEQwMEM0NDgwMDMzNEFBNCAv
KiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCAqLzsgfTsKQEAgLTMxNjIsNiArMzE4MywxNSBAQAog
CQlCMkEwMTVBQjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMDE1OTUwQUY2Q0Q1MzAwNkJD
RTBFIC8qIEdyYXBoaWNzVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCMkExMEI5MjBCMzgxOEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTEwQjkx
MEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlci5oICovOyB9OwogCQlCMkExMEI5NDBCMzgx
OEQ3MDAwOTlBQTQgLyogSW1hZ2VCdWZmZXJDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExMEI5MzBCMzgxOEQ3MDAwOTlBQTQgLyogSW1hZ2VC
dWZmZXJDRy5jcHAgKi87IH07CisJCUIyQTFGMkFBMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkExRjJBMTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuY3BwICovOyB9Owor
CQlCMkExRjJBQjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdGb250RWxlbWVudC5oICovOyB9OworCQlCMkExRjJBQzBDRUYwQUJGMDA0NDJG
NkEgLyogU1ZHRm9udEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBMzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1l
bnQuaWRsICovOyB9OworCQlCMkExRjJBRDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
QTFGMkE0MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwICovOyB9OworCQlC
MkExRjJBRTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNTBDRUYwQUJGMDA0NDJG
NkEgLyogU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CisJCUIyQTFGMkFGMENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVt
ZW50LmlkbCAqLzsgfTsKKwkJQjJBMUYyQjAwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdH
bHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJBMUYyQTcwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
Y3BwICovOyB9OworCQlCMkExRjJCMTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsg
fTsKKwkJQjJBMUYyQjIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkEx
RjJBOTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwgKi87IH07
CiAJCUIyQUU5QjlEMEMzQUYyNzQwMEYyM0Y3RiAvKiBET01TVkdUZXh0UGF0aEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFFOUI5QzBD
M0FGMjc0MDBGMjNGN0YgLyogRE9NU1ZHVGV4dFBhdGhFbGVtZW50Lm1tICovOyB9OwogCQlCMkFG
RkM3QzBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZDNzQwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRDYWNoZU1hYy5tbSAqLzsgfTsKIAkJQjJBRkZDN0QwRDAwQTVDMTAwMzAwNzREIC8qIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjJBRkZDNzUwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwICovOyB9OwpAQCAtMzI2Miw2ICszMjkyLDggQEAKIAkJQjJDQjkyNjQwQjVC
REEwMjAwOUJBQTc4IC8qIERPTVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkNCOTI2MDBCNUJEQTAyMDA5QkFB
NzggLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5tbSAqLzsgfTsKIAkJQjJDQ0VDNDcwQzZD
QTlGMTAwNkE1NDI0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0NFQzQ1MEM2Q0E5RjEwMDZB
NTQyNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAgKi87IH07CiAJCUIyQ0NFQzQ4
MEM2Q0E5RjEwMDZBNTQyNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJDQ0VDNDYwQzZDQTlGMTAw
NkE1NDI0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggKi87IH07CisJCUIyRDE5QTQ4
MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkQxOUE0NjBDRUY5REMxMDAwRTAzM0IgLyog
U1ZHQ1NTRm9udEZhY2UuY3BwICovOyB9OworCQlCMkQxOUE0OTBDRUY5REMxMDAwRTAzM0IgLyog
U1ZHQ1NTRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyRDE5QTQ3MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oICovOyB9
OwogCQlCMkQzRkM4QTBDMjIxMkNCMDBDRjM2MTggLyogSlNTVkdUcmFuc2Zvcm1MaXN0Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRDNG
Qzg5MEMyMjEyQ0IwMENGMzYxOCAvKiBKU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3BwICovOyB9
OwogCQlCMkUyN0M5RjBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTI3QzlEMEIwRjJCMDkw
MEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuY3BwICovOyB9OwogCQlCMkUyN0NBMDBCMEYyQjA5MDBG
MTdDN0IgLyogRmxvYXRQb2ludDNELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMkUyN0M5RTBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmgg
Ki87IH07CkBAIC0zODk0LDYgKzM5MjYsOSBAQAogCQkJZHN0UGF0aCA9IFZlcnNpb25zL0EvUHJp
dmF0ZUhlYWRlcnM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAorCQkJ
CUIyN0IyODVDMENFRjBENzIwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIENvcHkg
R2VuZXJhdGVkIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4NUQwQ0VGMEQ3MjAwRDM5RDU0IC8qIERP
TVNWR0dseXBoRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCisJCQkJQjI3
QjI4NUUwQ0VGMEQ3MjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTg1MzhGMDMwMEFENzFDREIwMDZBODFEMSAv
KiBET01BYnN0cmFjdFZpZXcuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFD
MTFDQ0JDMEFBNjA5MzcwMERBREIyMCAvKiBET01BdHRyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLywKIAkJCQkxQzExQ0NDNzBBQTYwOTM3MDBEQURCMjAgLyogRE9NQ0RBVEFTZWN0aW9u
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKQEAgLTcxMDUsNiArNzE0MCw3IEBACiAJ
CUIyNUJFNTBFMEQwNkI3MDgwMEI1MjRDNiAvKiBKU0V2ZW50VGFyZ2V0QmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudFRhcmdldEJhc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjVCRTUwRjBEMDZCNzA4MDBCNTI0QzYgLyog
SlNFdmVudFRhcmdldEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RXZlbnRUYXJnZXRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNURGQUFF
MEIyRTI5MjkwMDBFNjUxMCAvKiBKU1NWR01hdHJpeEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdNYXRyaXhDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMjYyQjgwMzBEMUYzMkQwMDAxNThGMDkgLyogU1ZHRm9udC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRm9udC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNjU1NEU4MEI4MEQ3NDkwMEE1MEVDMyAvKiBS
ZW5kZXJTVkdUZXh0UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyU1ZHVGV4dFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
MjY1NTRFOTBCODBENzQ5MDBBNTBFQzMgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1RleHRQYXRoLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUIyNjZDRDRCMEMzQUVDNjUwMEVCMDhEMiAvKiBKU1NWR0V4Y2Vw
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFeGNl
cHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzE1NSw2ICs3MTkxLDIz
IEBACiAJCUIyNzUzNTU1MEIwNTM4MTQwMDJDRTY0RiAvKiBQZW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Mjc1MzU4RDBCMDUzQTY2MDAyQ0U2NEYgLyogSWNvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJY29uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCMjc3QjQwMzBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MUYwQ0VGMEMwNzAw
RDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU1ZHRm9udEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCMjdCMjgyMDBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdGb250RWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyMTBDRUYwQzA3MDBEMzlENTQgLyogSlNT
VkdHbHlwaEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTU1ZHR2x5cGhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3
QjI4MjIwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0dseXBoRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCMjdCMjgyMzBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5n
R2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCMjdCMjgyNDBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkIwQ0VGMEMzNTAwRDM5
RDU0IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1By
b3BlcnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODJDMENF
RjBDMzUwMEQzOUQ1NCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBDU1NWYWx1ZUtleXdvcmRzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
MjdCMjgyRDBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZvbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODJFMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdGb250
RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01T
VkdGb250RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkYw
Q0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzAwQ0VGMEMzNTAwRDM5RDU0IC8qIERP
TVNWR0dseXBoRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
U1ZHR2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODMx
MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NU1ZHR2x5cGhFbGVtZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgzMjBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZH
R2x5cGhFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTVNWR0dseXBoRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUIyN0IyODMzMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TVkdNaXNzaW5nR2x5cGhF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODM0MENFRjBDMzUw
MEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODM1MENFRjBDMzUwMEQzOUQ1NCAvKiBE
T01TVkdNaXNzaW5nR2x5cGhFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCMjhCQzMxOTBEMTM1RTU0MDBDREJBMjcgLyogSlNFdmVu
dFRhcmdldEJhc2UubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2
ZW50VGFyZ2V0QmFzZS5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI4QzZB
MUUwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI4QzZBMUYwRDAwQzQ0ODAwMzM0QUE0IC8q
IFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MTcyLDYgKzcyMjUsMTUgQEAKIAkJQjJBMDE1OTUwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBo
aWNzVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzVHlw
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBMTBCOTEwQjM4MThCRDAwMDk5
QUE0IC8qIEltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkExMEI5MzBCMzgx
OEQ3MDAwOTlBQTQgLyogSW1hZ2VCdWZmZXJDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUIyQTFGMkExMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRm9udEVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMkExRjJBMjBDRUYwQUJGMDA0NDJGNkEgLyog
U1ZHRm9udEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0Zv
bnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkEzMENFRjBB
QkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNWR0ZvbnRFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYy
QTQwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHR2x5cGhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTUwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHR2x5cGhFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkE2MENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdHbHlw
aEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMkExRjJBNzBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkE4MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIy
QTFGMkE5MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAvKiBET01TVkdU
ZXh0UGF0aEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NU1ZHVGV4dFBhdGhFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMkFGRkM3NDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRDYWNoZU1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBRkZDNzUwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNzI3Miw2ICs3MzM0LDggQEAKIAkJQjJDQjkyNjAwQjVCREEwMjAwOUJBQTc4IC8qIERPTVNW
R0VsZW1lbnRJbnN0YW5jZUxpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjJDQ0VDNDUwQzZDQTlGMTAwNkE1NDI0IC8qIFJlbmRlclNWR1ZpZXdwb3J0
Q29udGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIyQ0NFQzQ2MEM2Q0E5RjEwMDZBNTQyNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJEMTlBNDYwQ0VGOURDMTAw
MEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdDU1NGb250RmFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUIyRDE5QTQ3MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ1NTRm9udEZhY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQjJEM0ZDODkwQzIyMTJDQjAwQ0YzNjE4IC8qIEpTU1ZHVHJhbnNm
b3JtTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTVkdUcmFuc2Zvcm1MaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjJFMjdDOUQwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRQb2ludDNELmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJFMjdDOUUwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9p
bnQzRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRQb2ludDNELmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NjQ0LDYgKzg3MDgsMTUgQEAKIAkJODVB
MEY5OEUwQUM3MTZGNDAwMTYxRkRDIC8qIFNWRyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0Zv
bnRFbGVtZW50LmggKi8sCisJCQkJQjI3QjI4MkUwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0Zv
bnRFbGVtZW50Lm1tICovLAorCQkJCUIyN0IyODJGMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdG
b250RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJQjI3QjI4MzAwQ0VGMEMzNTAwRDM5RDU0IC8q
IERPTVNWR0dseXBoRWxlbWVudC5oICovLAorCQkJCUIyN0IyODMxMENFRjBDMzUwMEQzOUQ1NCAv
KiBET01TVkdHbHlwaEVsZW1lbnQubW0gKi8sCisJCQkJQjI3QjI4MzIwQ0VGMEMzNTAwRDM5RDU0
IC8qIERPTVNWR0dseXBoRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJQjI3QjI4MzMwQ0VGMEMz
NTAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLywKKwkJCQlCMjdCMjgz
NDBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5tbSAqLywKKwkJ
CQlCMjdCMjgzNTBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudElu
dGVybmFsLmggKi8sCiAJCQkJODVBQ0VGNzQwQUNEQ0ZDRTAwMTIxNEZGIC8qIERPTVNWR0FFbGVt
ZW50LmggKi8sCiAJCQkJODVBQ0VGNzUwQUNEQ0ZDRTAwMTIxNEZGIC8qIERPTVNWR0FFbGVtZW50
Lm1tICovLAogCQkJCUE4RTU0NDE1MENBOUQxQzEwMDk3RDA5QiAvKiBET01TVkdBRWxlbWVudElu
dGVybmFsLmggKi8sCkBAIC05MjA4LDYgKzkyODEsOCBAQAogCQk4NUIyMzIyNjBBOEJGM0ExMDBG
REY0N0IgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlCMjdCMjgyQjBDRUYwQzM1MDBEMzlENTQgLyogQ1NTUHJvcGVydHlO
YW1lcy5pbiAqLywKKwkJCQlCMjdCMjgyQzBDRUYwQzM1MDBEMzlENTQgLyogQ1NTVmFsdWVLZXl3
b3Jkcy5pbiAqLywKIAkJCQk4NTk2N0Q5RjBBQThCQjU5MDA1RkVERUUgLyogQ29yZSAqLywKIAkJ
CQk4NTk2N0RDQTBBQThCRjBGMDA1RkVERUUgLyogQ1NTICovLAogCQkJCTg1QUZBN0FCMEFBRjNC
QjAwMEU4NDMwNSAvKiBFdmVudHMgKi8sCkBAIC0xMDI0Niw2ICsxMDMyMSwxMiBAQAogCQkJCUIy
RkEzQzk5MEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0ZFRnVuY1JFbGVtZW50LmggKi8sCiAJCQkJ
QjJGQTNDOUEwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNw
cCAqLywKIAkJCQlCMkZBM0M5QjBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuaCAqLywKKwkJCQlCMjdCMjgxRjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250
RWxlbWVudC5jcHAgKi8sCisJCQkJQjI3QjI4MjAwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9u
dEVsZW1lbnQuaCAqLywKKwkJCQlCMjdCMjgyMTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlw
aEVsZW1lbnQuY3BwICovLAorCQkJCUIyN0IyODIyMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ds
eXBoRWxlbWVudC5oICovLAorCQkJCUIyN0IyODIzMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01p
c3NpbmdHbHlwaEVsZW1lbnQuY3BwICovLAorCQkJCUIyN0IyODI0MENFRjBDMDcwMEQzOUQ1NCAv
KiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLywKIAkJCQlCMkZBM0M5QzBBQjc1QTZFMDAw
RTVBQzQgLyogSlNTVkdGRUltYWdlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjJGQTNDOUQwQUI3NUE2
RTAwMEU1QUM0IC8qIEpTU1ZHRkVJbWFnZUVsZW1lbnQuaCAqLywKIAkJCQlCMkZBM0M5RTBBQjc1
QTZFMDAwRTVBQzQgLyogSlNTVkdGRU1lcmdlRWxlbWVudC5jcHAgKi8sCkBAIC0xMDU3OCw3ICsx
MDY1OSwxNyBAQAogCQlCMjIyNzdDQTBEMDBCRjFFMDA3MUI3ODIgLyogc3ZnICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCMjYyQjgwMzBEMUYzMkQwMDAx
NThGMDkgLyogU1ZHRm9udC5jcHAgKi8sCiAJCQkJQjI1NTk4ODYwRDAwRDhCODAwQkI4MjVDIC8q
IGdyYXBoaWNzICovLAorCQkJCUIyQTFGMkExMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxl
bWVudC5jcHAgKi8sCisJCQkJQjJBMUYyQTIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVt
ZW50LmggKi8sCisJCQkJQjJBMUYyQTMwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50
LmlkbCAqLywKKwkJCQlCMkExRjJBNDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50
LmNwcCAqLywKKwkJCQlCMkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50
LmggKi8sCisJCQkJQjJBMUYyQTYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5p
ZGwgKi8sCisJCQkJQjJBMUYyQTcwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuY3BwICovLAorCQkJCUIyQTFGMkE4MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5n
R2x5cGhFbGVtZW50LmggKi8sCisJCQkJQjJBMUYyQTkwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaWRsICovLAogCQkJCUIyMjI3N0NCMEQwMEJGMUYwMDcxQjc4MiAv
KiBDb2xvckRpc3RhbmNlLmNwcCAqLywKIAkJCQlCMjIyNzdDQzBEMDBCRjFGMDA3MUI3ODIgLyog
Q29sb3JEaXN0YW5jZS5oICovLAogCQkJCUIyMjI3N0NEMEQwMEJGMUYwMDcxQjc4MiAvKiBHcmFk
aWVudEF0dHJpYnV0ZXMuaCAqLywKQEAgLTExOTQwLDYgKzEyMDMxLDggQEAKIAkJCQk5M0NBNENB
MjA5REY5M0ZBMDBERjg2NzcgLyogc3ZnLmNzcyAqLywKIAkJCQlCMjIyN0IwMDBEMDBCRkYxMDA3
MUI3ODIgLyogU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAqLywKIAkJCQlCMjIy
N0IwMTBEMDBCRkYxMDA3MUI3ODIgLyogU1ZHQ1NTUGFyc2VyLmNwcCAqLywKKwkJCQlCMkQxOUE0
NjBDRUY5REMxMDAwRTAzM0IgLyogU1ZHQ1NTRm9udEZhY2UuY3BwICovLAorCQkJCUIyRDE5QTQ3
MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oICovLAogCQkJCUIyMjI3QjAyMEQw
MEJGRjEwMDcxQjc4MiAvKiBTVkdDU1NQcm9wZXJ0eU5hbWVzLmluICovLAogCQkJCUIyMjI3QjAz
MEQwMEJGRjEwMDcxQjc4MiAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCAqLywKIAkJCQlCMjIy
N0IwNDBEMDBCRkYxMDA3MUI3ODIgLyogU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKQEAgLTE0
MTM3LDYgKzE0MjMwLDE5IEBACiAJCQkJQkNCMTZDMkQwOTc5QzNCRDAwNDY3NzQxIC8qIGxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1hcmt1
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMUUwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2li
bGVfdW5pdHMuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyQTFGMkFCMENFRjBBQkYwMDQ0MkY2QSAv
KiBTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJBMUYyQUUwQ0VGMEFCRjAw
NDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJBMUYyQjEw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUIyN0IyODI2MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlCMjdCMjgyODBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODJBMENFRjBDMDcwMEQzOUQ1NCAvKiBK
U1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODM4MENF
RjBDMzYwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QjI3QjI4M0EwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCUIyN0IyODNCMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdHbHlw
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyN0IyODNEMENFRjBDMzYwMEQzOUQ1NCAv
KiBET01TVkdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4
M0UwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUIyN0IyODQwMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5
cGhFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyRDE5QTQ5MENFRjlEQzEw
MDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMzc5MTUw
RDE2M0U1NTAwQjc5M0Q2IC8qIEpTTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTM3
OTNGMEQxNjQ3RTAwMEI3OTNENiAvKiBKU0xvY2F0aW9uLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM3RkE2MjEwRDFGMENCRDAwREIyMkE5IC8qIER5bmFtaWNOb2RlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNDE4MSw3ICsxNDI4Nyw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMw
NyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQljb21wYXRp
YmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9
IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTE0NDA0LDYgKzE0NTA5
LDExIEBACiAJCQkJQjI4QzZBMkYwRDAwQzQ0ODAwMzM0QUE0IC8qIHhsaW5rYXR0cnMuaW4gaW4g
UmVzb3VyY2VzICovLAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJz
b3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyog
em9vbU91dEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyQTFGMkFDMENFRjBBQkYw
MDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyQTFG
MkFGMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlCMkExRjJCMjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyN0IyODM2MENFRjBDMzYwMEQzOUQ1NCAvKiBD
U1NQcm9wZXJ0eU5hbWVzLmluIGluIFJlc291cmNlcyAqLywKKwkJCQlCMjdCMjgzNzBDRUYwQzM2
MDBEMzlENTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNTg1
Niw2ICsxNTk2NiwxNyBAQAogCQkJCTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMUQwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2li
bGVfdW5pdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMzc5MTQwRDE2M0U1NTAwQjc5M0Q2
IC8qIEpTTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjJBMUYyQUEwQ0VGMEFCRjAw
NDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIyQTFGMkFE
MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQjJBMUYyQjAwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MjUwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9u
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MjcwQ0VGMEMwNzAwRDM5RDU0
IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIyN0IyODI5MENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQjI3QjI4MzkwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4M0MwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ds
eXBoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUIyN0IyODNGMENFRjBDMzYwMEQzOUQ1
NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQjJE
MTlBNDgwQ0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUIyNjJCODA0MEQxRjMyRDAwMDE1OEYwOSAvKiBTVkdGb250LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDN0ZBNjIwMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05v
ZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDN0ZBNjgyMEQxRjE2NzkwMERCMjJBOSAv
KiBTZWxlY3Rvck5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9u
IDI5MDExKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9y
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDE4ICs1NywyMSBAQAogI2luY2x1ZGUgIkpTU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRmlsdGVyRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU1NWR0Zv
bnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNTVkdGb250RmFjZVVyaUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR0dFbGVtZW50
LmgiCisjaW5jbHVkZSAiSlNTVkdHbHlwaEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR0ltYWdl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNTVkdMaW5lRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHTWFya2VyRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTU1ZHTWFza0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR01ldGFkYXRh
RWxlbWVudC5oIgorI2luY2x1ZGUgIkpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIgogI2luY2x1
ZGUgIkpTU1ZHUGF0aEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR1BhdHRlcm5FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSlNTVkdQb2x5Z29uRWxlbWVudC5oIgpAQCAtMTI3LDE4ICsxMzAsMjEgQEAK
ICNpbmNsdWRlICJTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRmlsdGVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgiCisjaW5jbHVk
ZSAiU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFj
ZU5hbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHR0VsZW1lbnQuaCIK
KyNpbmNsdWRlICJTVkdHbHlwaEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdJbWFnZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdM
aW5lRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR01hcmtlckVsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdNYXNrRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR01ldGFkYXRhRWxlbWVudC5oIgorI2luY2x1
ZGUgIlNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdQYXRoRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNWR1BhdHRlcm5FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUG9seWdvbkVs
ZW1lbnQuaCIKQEAgLTE4NSwxMSArMTkxLDE0IEBAIHR5cGVkZWYgSlNOb2RlKiAoKkNyZWF0ZVNW
R0VsZW1lbnRXcmFwcGUKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogI2RlZmluZSBGT1JfRUFDSF9G
T05UX1RBRyhtYWNybykgXAogICAgIG1hY3JvKGRlZmluaXRpb25fc3JjLCBEZWZpbml0aW9uU3Jj
KSBcCisgICAgbWFjcm8oZm9udCwgRm9udCkgXAogICAgIG1hY3JvKGZvbnRfZmFjZSwgRm9udEZh
Y2UpIFwKICAgICBtYWNybyhmb250X2ZhY2VfZm9ybWF0LCBGb250RmFjZUZvcm1hdCkgXAogICAg
IG1hY3JvKGZvbnRfZmFjZV9uYW1lLCBGb250RmFjZU5hbWUpIFwKICAgICBtYWNybyhmb250X2Zh
Y2Vfc3JjLCBGb250RmFjZVNyYykgXAogICAgIG1hY3JvKGZvbnRfZmFjZV91cmksIEZvbnRGYWNl
VXJpKSBcCisgICAgbWFjcm8oZ2x5cGgsIEdseXBoKSBcCisgICAgbWFjcm8obWlzc2luZ19nbHlw
aCwgTWlzc2luZ0dseXBoKQogICAgIC8vIGVuZCBvZiBtYWNybwogICAgIAogI2Vsc2UKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTS5tbQkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsMTEgKzIyOCwxMyBAQCBzdGF0aWMgdm9p
ZCBjcmVhdGVFbGVtZW50Q2xhc3NNYXAoKQogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6
ZmlsdGVyVGFnLCBbRE9NU1ZHRmlsdGVyRWxlbWVudCBjbGFzc10pOwogI2VuZGlmCiAjaWYgRU5B
QkxFKFNWR19GT05UUykKKyAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZvbnRUYWcsIFtE
T01TVkdGb250RWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6
Zm9udF9mYWNlVGFnLCBbRE9NU1ZHRm9udEZhY2VFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxl
bWVudENsYXNzKFNWR05hbWVzOjpmb250X2ZhY2VfZm9ybWF0VGFnLCBbRE9NU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpmb250
X2ZhY2VfbmFtZVRhZywgW0RPTVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQgY2xhc3NdKTsKICAgICBh
ZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZvbnRfZmFjZV9zcmNUYWcsIFtET01TVkdGb250RmFj
ZVNyY0VsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZvbnRf
ZmFjZV91cmlUYWcsIFtET01TVkdGb250RmFjZVVyaUVsZW1lbnQgY2xhc3NdKTsKKyAgICBhZGRF
bGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmdseXBoVGFnLCBbRE9NU1ZHR2x5cGhFbGVtZW50IGNsYXNz
XSk7CiAjZW5kaWYKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmdUYWcsIFtET01TVkdH
RWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6aW1hZ2VUYWcs
IFtET01TVkdJbWFnZUVsZW1lbnQgY2xhc3NdKTsKQEAgLTI0MSw2ICsyNDMsOSBAQCBzdGF0aWMg
dm9pZCBjcmVhdGVFbGVtZW50Q2xhc3NNYXAoKQogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1l
czo6bWFya2VyVGFnLCBbRE9NU1ZHTWFya2VyRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1l
bnRDbGFzcyhTVkdOYW1lczo6bWFza1RhZywgW0RPTVNWR01hc2tFbGVtZW50IGNsYXNzXSk7CiAg
ICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjptZXRhZGF0YVRhZywgW0RPTVNWR01ldGFkYXRh
RWxlbWVudCBjbGFzc10pOworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgYWRkRWxlbWVudENs
YXNzKFNWR05hbWVzOjptaXNzaW5nX2dseXBoVGFnLCBbRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dCBjbGFzc10pOworI2VuZGlmCiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpwYXRoVGFn
LCBbRE9NU1ZHUGF0aEVsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFt
ZXM6OnBhdHRlcm5UYWcsIFtET01TVkdQYXR0ZXJuRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVs
ZW1lbnRDbGFzcyhTVkdOYW1lczo6cG9seWdvblRhZywgW0RPTVNWR1BvbHlnb25FbGVtZW50IGNs
YXNzXSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwuaAkocmV2aXNpb24gMjkw
MTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwuaAkod29ya2luZyBjb3B5
KQpAQCAtMTcxLDYgKzE3MSw3IEBACiAjaW1wb3J0ICJET01TVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdDdXJzb3JFbGVtZW50SW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0RlZnNFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTVNWR0RlZmluaXRpb25TcmNFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0Rl
c2NFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0RvY3VtZW50SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIkRPTVNWR0VsZW1lbnRJbnRlcm5hbC5oIgpAQCAtMjAwLDggKzIwMSwxNSBAQAog
I2ltcG9ydCAiRE9NU1ZHRkVUaWxlRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdG
RVR1cmJ1bGVuY2VFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0ZpbHRlckVsZW1l
bnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oIgorI2lt
cG9ydCAiRE9NU1ZHRm9udEZhY2VFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0Zv
bnRGYWNlRm9ybWF0RWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdGb250RmFjZU5h
bWVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0ZvbnRGYWNlU3JjRWxlbWVudElu
dGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdGb250RmFjZVVyaUVsZW1lbnRJbnRlcm5hbC5oIgog
I2ltcG9ydCAiRE9NU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NU1ZHR0VsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHR2x5cGhFbGVtZW50SW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0dyYWRpZW50RWxlbWVudEludGVybmFsLmgiCiAjaW1w
b3J0ICJET01TVkdJbWFnZUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHTGVuZ3Ro
SW50ZXJuYWwuaCIKQEAgLTIxMiw2ICsyMjAsNyBAQAogI2ltcG9ydCAiRE9NU1ZHTWFza0VsZW1l
bnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHTWF0cml4SW50ZXJuYWwuaCIKICNpbXBvcnQg
IkRPTVNWR01ldGFkYXRhRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdNaXNzaW5n
R2x5cGhFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR051bWJlckludGVybmFsLmgi
CiAjaW1wb3J0ICJET01TVkdOdW1iZXJMaXN0SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR1Bh
aW50SW50ZXJuYWwuaCIKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01TVkcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NU1ZHLmgJKHJldmlzaW9uIDI5MDEx
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWRy5oCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw2ICs4NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZpbHRlckVsZW1lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRE9NU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZpdFRvVmlld0JveC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9ET01TVkdGb250RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdGb250RmFjZUVs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaD4KQEAgLTkxLDYg
KzkyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHRm9udEZhY2VVcmlFbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0RPTVNWR0dFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0dseXBoRWxl
bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdHcmFkaWVudEVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRE9NU1ZHSW1hZ2VFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNW
R0xhbmdTcGFjZS5oPgpAQCAtMTAzLDYgKzEwNSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNW
R01hc2tFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR01hdHJpeC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9ET01TVkdNZXRhZGF0YUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9N
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdOdW1iZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTnVtYmVyTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9ET01TVkdQYWludC5oPgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCShyZXZpc2lvbiAyOTAxMSkKKysrIFdl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE2ICszOSwxNiBA
QCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBDU1NGb250RmFjZSA6IHB1YmxpYyBSZWZD
b3VudGVkPENTU0ZvbnRGYWNlPiB7CiBwdWJsaWM6CiAgICAgQ1NTRm9udEZhY2UoQ1NTRm9udFNl
bGVjdG9yKik7Ci0gICAgfkNTU0ZvbnRGYWNlKCk7CisgICAgdmlydHVhbCB+Q1NTRm9udEZhY2Uo
KTsKIAogICAgIGJvb2wgaXNMb2FkZWQoKSBjb25zdDsKLSAgICBib29sIGlzVmFsaWQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRTb3Vy
Y2UoQ1NTRm9udEZhY2VTb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkU291cmNlKENTU0Zv
bnRGYWNlU291cmNlKik7CiAKICAgICB2b2lkIGZvbnRMb2FkZWQoQ1NTRm9udEZhY2VTb3VyY2Uq
KTsKIAotICAgIEZvbnREYXRhKiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKTsKKyAgICB2aXJ0dWFsIEZv
bnREYXRhKiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKTsKIAogcHJpdmF0ZToKICAgICBWZWN0b3I8Q1NT
Rm9udEZhY2VTb3VyY2UqPiBtX3NvdXJjZXM7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5oCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ1NTRm9udEZhY2VTcmNWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6CiAg
ICAgQ1NTRm9udEZhY2VTcmNWYWx1ZShjb25zdCBTdHJpbmcmIHJlc291cmNlLCBib29sIGxvY2Fs
KQotICAgIDptX3Jlc291cmNlKHJlc291cmNlKSwgbV9pc0xvY2FsKGxvY2FsKSB7fQorICAgIDpt
X3Jlc291cmNlKHJlc291cmNlKSwgbV9pc0xvY2FsKGxvY2FsKQorI2lmIEVOQUJMRShTVkdfRk9O
VFMpCisgICAgLCBtX2lzU1ZHKGZhbHNlKQorI2VuZGlmICAgIAorICAgIHt9CiAgICAgdmlydHVh
bCB+Q1NTRm9udEZhY2VTcmNWYWx1ZSgpIHt9OwogCiAgICAgY29uc3QgU3RyaW5nJiByZXNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2U7IH0KQEAgLTQ0LDEzICs0OCwyMSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQpIHsgbV9mb3JtYXQg
PSBmb3JtYXQ7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRGb3JtYXQoKSBjb25zdDsKLSAgICAK
KworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgYm9vbCBpc1NWR0ZvbnRGYWNlU3JjKCkgY29u
c3QgeyByZXR1cm4gbV9pc1NWRzsgfQorICAgIHZvaWQgc2V0U1ZHRm9udEZhY2VTcmMoKSB7IG1f
aXNTVkcgPSB0cnVlOyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBj
b25zdDsKIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9yZXNvdXJjZTsKICAgICBTdHJpbmcgbV9m
b3JtYXQ7CiAgICAgYm9vbCBtX2lzTG9jYWw7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBi
b29sIG1faXNTVkc7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0ZvbnRT
ZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgKEMpIDIwMDcgTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI0LDkgKzI1LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogCisjaW5jbHVkZSAiQ1NTRm9udFNlbGVj
dG9yLmgiCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgog
I2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCiAj
aW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKQEAgLTQ0LDYgKzQ2LDEzIEBACiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAorI2lmIEVOQUJMRShT
VkdfRk9OVFMpCisjaW5jbHVkZSAiTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJTVkdDU1NGb250RmFj
ZS5oIgorI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR05hbWVz
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDU1NGb250U2VsZWN0b3I6OkNT
U0ZvbnRTZWxlY3RvcihEb2N1bWVudCogZG9jdW1lbnQpCkBAIC0xMTIsMTcgKzEyMSwzMiBAQCB2
b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKICAgICAvLyBFYWNoIGl0ZW0gaW4gdGhl
IHNyYyBwcm9wZXJ0eSdzIGxpc3QgaXMgYSBzaW5nbGUgQ1NTRm9udEZhY2VTb3VyY2UuIFB1dCB0
aGVtIGFsbCBpbnRvIGEgQ1NTRm9udEZhY2UuCi0gICAgQ1NTRm9udEZhY2UqIGZvbnRGYWNlID0g
bmV3IENTU0ZvbnRGYWNlKHRoaXMpOwotICAgIAorICAgIENTU0ZvbnRGYWNlKiBmb250RmFjZSA9
IDA7CisKICAgICBpbnQgaTsKICAgICBpbnQgc3JjTGVuZ3RoID0gc3JjTGlzdC0+bGVuZ3RoKCk7
CisKICAgICBib29sIGZvdW5kTG9jYWwgPSBmYWxzZTsKKworI2lmIEVOQUJMRShTVkdfRk9OVFMp
CisgICAgYm9vbCBpc1NWR0ZvbnQgPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgZm9yIChpID0gMDsg
aSA8IHNyY0xlbmd0aDsgaSsrKSB7CiAgICAgICAgIC8vIEFuIGl0ZW0gaW4gdGhlIGxpc3QgZWl0
aGVyIHNwZWNpZmllcyBhIHN0cmluZyAobG9jYWwgZm9udCBuYW1lKSBvciBhIFVSTCAocmVtb3Rl
IGZvbnQgdG8gZG93bmxvYWQpLgogICAgICAgICBDU1NGb250RmFjZVNyY1ZhbHVlKiBpdGVtID0g
c3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VTcmNWYWx1ZSo+KHNyY0xpc3QtPml0ZW0oaSkpOwogICAg
ICAgICBDU1NGb250RmFjZVNvdXJjZSogc291cmNlID0gMDsKKworI2lmIEVOQUJMRShTVkdfRk9O
VFMpCisgICAgICAgIC8vIFNWRyBGb250cyBzdXBwb3J0IChpbnRlcm5hbCBmb250cywgbGl2aW5n
IHdpdGhpbiB0aGUgZG9jdW1lbnQpCisgICAgICAgIGlmIChpdGVtLT5pc1NWR0ZvbnRGYWNlU3Jj
KCkpIHsKKyAgICAgICAgICAgIGlzU1ZHRm9udCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorI2VuZGlmCisKICAgICAgICAgaWYgKCFpdGVtLT5pc0xvY2FsKCkpIHsKICAg
ICAgICAgICAgIGlmIChpdGVtLT5pc1N1cHBvcnRlZEZvcm1hdCgpKSB7CiAgICAgICAgICAgICAg
ICAgQ2FjaGVkRm9udCogY2FjaGVkRm9udCA9IG1fZG9jdW1lbnQtPmRvY0xvYWRlcigpLT5yZXF1
ZXN0Rm9udChpdGVtLT5yZXNvdXJjZSgpKTsKQEAgLTEzOSw2ICsxNjMsOSBAQCB2b2lkIENTU0Zv
bnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAorICAgICAgICBpZiAoIWZvbnRGYWNlKQorICAgICAgICAgICAgZm9udEZhY2UgPSBuZXcgQ1NT
Rm9udEZhY2UodGhpcyk7CisKICAgICAgICAgaWYgKHNvdXJjZSkKICAgICAgICAgICAgIGZvbnRG
YWNlLT5hZGRTb3VyY2Uoc291cmNlKTsKICAgICAgICAgCkBAIC0xNDYsOCArMTczLDE0IEBAIHZv
aWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY28KICAgICAgICAgaWYgKGZvdW5k
TG9jYWwpCiAgICAgICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCi0gICAgaWYgKCFmb250RmFj
ZS0+aXNWYWxpZCgpKSB7CisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIEFTU0VSVChmb250
RmFjZSB8fCBpc1NWR0ZvbnQpOworI2Vsc2UKKyAgICBBU1NFUlQoZm9udEZhY2UpOworI2VuZGlm
CisKKyAgICBpZiAoZm9udEZhY2UgJiYgIWZvbnRGYWNlLT5pc1ZhbGlkKCkpIHsKICAgICAgICAg
ZGVsZXRlIGZvbnRGYWNlOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTgzLDkgKzIxNiwz
NyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvCiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBpZiAoIWZhbWlseU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9mb250cy5zZXQo
aGFzaEZvckZvbnQoZmFtaWx5TmFtZS5sb3dlcigpLCBmb250RGVzY3JpcHRpb24uYm9sZCgpLCBm
b250RGVzY3JpcHRpb24uaXRhbGljKCkpLCBmb250RmFjZSk7CisKKyAgICAgICAgaWYgKGZhbWls
eU5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyNpZiBFTkFCTEUoU1ZH
X0ZPTlRTKQorICAgICAgICBpZiAoaXNTVkdGb250KSB7CisgICAgICAgICAgICBTVkdGb250RmFj
ZUVsZW1lbnQqIHVzZUZvbnRGYWNlRWxlbWVudCA9IDA7CisKKyAgICAgICAgICAgIC8vIExvb2t1
cCBTVkdGb250RmFjZUVsZW1lbnQgZm9yIGludGVybmFsIGZvbnQgaW4gRE9NIFRyZWUhCisgICAg
ICAgICAgICBSZWZQdHI8Tm9kZUxpc3Q+IGxpc3QgPSBtX2RvY3VtZW50LT5nZXRFbGVtZW50c0J5
VGFnTmFtZU5TKFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkksIFNWR05hbWVzOjpmb250X2ZhY2VU
YWcubG9jYWxOYW1lKCkpOworCisgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5s
ZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgICAgIFNWR0ZvbnRGYWNlRWxlbWVudCogZm9udEZhY2VFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8U1ZHRm9udEZhY2VFbGVtZW50Kj4obGlzdC0+aXRlbShpKSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFmb250RmFjZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKGZvbnRGYWNlRWxlbWVudC0+Zm9udEZhbWls
eSgpID09IGZhbWlseU5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgdXNlRm9udEZhY2VFbGVt
ZW50ID0gZm9udEZhY2VFbGVtZW50OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdXNlRm9udEZh
Y2VFbGVtZW50KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBmb250
RmFjZSA9IG5ldyBTVkdDU1NGb250RmFjZSh0aGlzLCB1c2VGb250RmFjZUVsZW1lbnQpOworICAg
ICAgICB9CisjZW5kaWYKKworICAgICAgICBtX2ZvbnRzLnNldChoYXNoRm9yRm9udChmYW1pbHlO
YW1lLmxvd2VyKCksIGZvbnREZXNjcmlwdGlvbi5ib2xkKCksIGZvbnREZXNjcmlwdGlvbi5pdGFs
aWMoKSksIGZvbnRGYWNlKTsKICAgICB9CiB9CiAKSW5kZXg6IFdlYkNvcmUvY3NzL1NWR0NTU0Zv
bnRGYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9TVkdDU1NGb250RmFjZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Nzcy9TVkdDU1NGb250RmFjZS5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisjaW5jbHVkZSAiU1ZHQ1NTRm9udEZhY2UuaCIK
KworI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxl
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NWR0NTU0ZvbnRGYWNlOjpTVkdDU1NG
b250RmFjZShDU1NGb250U2VsZWN0b3IqIHNlbGVjdG9yLCBTVkdGb250RmFjZUVsZW1lbnQqIGZv
bnRGYWNlKQorICAgIDogQ1NTRm9udEZhY2Uoc2VsZWN0b3IpCisgICAgLCBtX2ZvbnRGYWNlRWxl
bWVudChmb250RmFjZSkKK3sKKyAgICBBU1NFUlQoZm9udEZhY2UpOworfQorCitTVkdDU1NGb250
RmFjZTo6flNWR0NTU0ZvbnRGYWNlKCkKK3sKK30KKworYm9vbCBTVkdDU1NGb250RmFjZTo6aXNW
YWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisgICAgCit2b2lkIFNWR0NTU0Zv
bnRGYWNlOjphZGRTb3VyY2UoQ1NTRm9udEZhY2VTb3VyY2UqKQoreworICAgIC8vIG5vLW9wCit9
CisKK0ZvbnREYXRhKiBTVkdDU1NGb250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNJdGFsaWMpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIG1fZm9udEZhY2VFbGVtZW50LT5jcmVhdGVGb250RGF0YShmb250RGVzY3JpcHRp
b24pOworfQorCit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9jc3MvU1ZHQ1NTRm9udEZhY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9TVkdDU1NGb250RmFjZS5oCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9jc3MvU1ZHQ1NTRm9udEZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBTVkdDU1NGb250RmFjZV9oCisjZGVm
aW5lIFNWR0NTU0ZvbnRGYWNlX2gKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisjaW5jbHVkZSAi
Q1NTRm9udEZhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdGb250RmFj
ZUVsZW1lbnQ7CisKK2NsYXNzIFNWR0NTU0ZvbnRGYWNlIDogcHVibGljIENTU0ZvbnRGYWNlIHsK
K3B1YmxpYzoKKyAgICBTVkdDU1NGb250RmFjZShDU1NGb250U2VsZWN0b3IqLCBTVkdGb250RmFj
ZUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5TVkdDU1NGb250RmFjZSgpOworCisgICAgdmlydHVh
bCBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkU291cmNlKENTU0Zv
bnRGYWNlU291cmNlKik7CisKKyAgICB2aXJ0dWFsIEZvbnREYXRhKiBnZXRGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRh
bGljKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8U1ZHRm9udEZhY2VFbGVtZW50PiBtX2ZvbnRG
YWNlRWxlbWVudDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCisjZW5k
aWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gMjkwMTEpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzgsNiArMjc4LDkgQEAgRm9udDo6Rm9udCgpCiAgICAgLCBtX2xldHRlclNwYWNpbmcoMCkKICAg
ICAsIG1fd29yZFNwYWNpbmcoMCkKICAgICAsIG1faXNQbGF0Zm9ybUZvbnQoZmFsc2UpCisjaWYg
RU5BQkxFKFNWR19GT05UUykKKyAgICAsIG1fcmVmZXJlbmNpbmdSZW5kZXJPYmplY3QoMCkKKyNl
bmRpZgogewogfQogCkBAIC0yODcsNiArMjkwLDkgQEAgRm9udDo6Rm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZkLCBzaAogICAgICwgbV9sZXR0ZXJTcGFjaW5nKGxldHRlclNwYWNpbmcpCiAg
ICAgLCBtX3dvcmRTcGFjaW5nKHdvcmRTcGFjaW5nKQogICAgICwgbV9pc1BsYXRmb3JtRm9udChm
YWxzZSkKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgICwgbV9yZWZlcmVuY2luZ1JlbmRlck9i
amVjdCgwKQorI2VuZGlmCiB7CiB9CiAKQEAgLTI5Niw2ICszMDIsOSBAQCBGb250OjpGb250KGNv
bnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZvbnRECiAgICAgLCBtX2xldHRlclNwYWNpbmcoMCkKICAg
ICAsIG1fd29yZFNwYWNpbmcoMCkKICAgICAsIG1faXNQbGF0Zm9ybUZvbnQodHJ1ZSkKKyNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQorICAgICwgbV9yZWZlcmVuY2luZ1JlbmRlck9iamVjdCgwKQorI2Vu
ZGlmCiB7CiAgICAgbV9mb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQoaXNQcmludGVy
Rm9udCk7CiAgICAgbV9mb250TGlzdC0+c2V0UGxhdGZvcm1Gb250KGZvbnREYXRhKTsKQEAgLTMw
OSw2ICszMTgsOSBAQCBGb250OjpGb250KGNvbnN0IEZvbnQmIG90aGVyKQogICAgICwgbV9sZXR0
ZXJTcGFjaW5nKG90aGVyLm1fbGV0dGVyU3BhY2luZykKICAgICAsIG1fd29yZFNwYWNpbmcob3Ro
ZXIubV93b3JkU3BhY2luZykKICAgICAsIG1faXNQbGF0Zm9ybUZvbnQob3RoZXIubV9pc1BsYXRm
b3JtRm9udCkKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgICwgbV9yZWZlcmVuY2luZ1JlbmRl
ck9iamVjdCgwKSAvLyBEb24ndCBjb3B5IQorI2VuZGlmCiB7CiB9CiAKQEAgLTMyMSw2ICszMzMs
OSBAQCBGb250JiBGb250OjpvcGVyYXRvcj0oY29uc3QgRm9udCYgb3RoZXIpCiAgICAgbV9sZXR0
ZXJTcGFjaW5nID0gb3RoZXIubV9sZXR0ZXJTcGFjaW5nOwogICAgIG1fd29yZFNwYWNpbmcgPSBv
dGhlci5tX3dvcmRTcGFjaW5nOwogICAgIG1faXNQbGF0Zm9ybUZvbnQgPSBvdGhlci5tX2lzUGxh
dGZvcm1Gb250OworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgbV9yZWZlcmVuY2luZ1JlbmRl
ck9iamVjdCA9IDA7IC8vIERvbid0IGNvcHkhCisjZW5kaWYKICAgICByZXR1cm4gKnRoaXM7CiB9
CiAKQEAgLTUwNywxMiArNTIyLDEyIEBAIGludCBGb250Ojp3aWR0aChjb25zdCBUZXh0UnVuJiBy
dW4pIGNvbnMKIAogaW50IEZvbnQ6OmFzY2VudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHByaW1h
cnlGb250KCktPmFzY2VudCgpOworICAgIHJldHVybiBwcmltYXJ5Rm9udCgpLT5hc2NlbnQoc2l6
ZSgpKTsKIH0KIAogaW50IEZvbnQ6OmRlc2NlbnQoKSBjb25zdAogewotICAgIHJldHVybiBwcmlt
YXJ5Rm9udCgpLT5kZXNjZW50KCk7CisgICAgcmV0dXJuIHByaW1hcnlGb250KCktPmRlc2NlbnQo
c2l6ZSgpKTsKIH0KIAogaW50IEZvbnQ6OmxpbmVTcGFjaW5nKCkgY29uc3QKQEAgLTU0OCw2ICs1
NjMsMTMgQEAgdm9pZCBGb250OjpzZXRDb2RlUGF0aChDb2RlUGF0aCBwKQogCiBib29sIEZvbnQ6
OmNhblVzZUdseXBoQ2FjaGUoY29uc3QgVGV4dFJ1biYgcnVuKSBjb25zdAogeworI2lmIEVOQUJM
RShTVkdfRk9OVFMpCisgICAgLy8gU1ZHIGZvbnRzIGRvbid0IHN1cHBvcnQgYW55IGNhY2hpbmcg
Zm9yIG5vdywgd2UgcHJldGVuZCBpdCBoZXJlIHRvIGFzc3VyZSBTVkcKKyAgICAvLyBmb250IGRy
YXdpbmcgYWx3YXlzIGVuZHMgdXAgaW4gdGhlICdzaW1wbGUgY29kZSBwYXRoJywgd2hlbiBTVkcg
Zm9udHMgYXJlIHVzZWQuCisgICAgaWYgKHByaW1hcnlGb250KCkgJiYgcHJpbWFyeUZvbnQoKS0+
aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKICAgICBzd2l0Y2gg
KGNvZGVQYXRoKSB7CiAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NjU0LDcgKzY3NiwxMyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRl
CiAgICAgICAgIGNvbnN0IEZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBnbHlwaEJ1ZmZlci5mb250
RGF0YUF0KG5leHRHbHlwaCk7CiAgICAgICAgIEZsb2F0U2l6ZSBuZXh0T2Zmc2V0ID0gZ2x5cGhC
dWZmZXIub2Zmc2V0QXQobmV4dEdseXBoKTsKICAgICAgICAgaWYgKG5leHRGb250RGF0YSAhPSBm
b250RGF0YSB8fCBuZXh0T2Zmc2V0ICE9IG9mZnNldCkgeworI2lmIEVOQUJMRShTVkdfRk9OVFMp
CisgICAgICAgICAgICBpZiAoZm9udERhdGEtPmlzU1ZHRm9udCgpKQorICAgICAgICAgICAgICAg
IGRyYXdHbHlwaHNXaXRoU1ZHRm9udChjb250ZXh0LCBtX3JlZmVyZW5jaW5nUmVuZGVyT2JqZWN0
LCBmb250RGF0YSwgZ2x5cGhCdWZmZXIsIGxhc3RGcm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwg
c3RhcnRQb2ludCk7CisgICAgICAgICAgICBlbHNlCisjZW5kaWYKICAgICAgICAgICAgIGRyYXdH
bHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBo
IC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOworCiAgICAgICAgICAgICBsYXN0RnJvbSA9IG5leHRH
bHlwaDsKICAgICAgICAgICAgIGZvbnREYXRhID0gbmV4dEZvbnREYXRhOwogICAgICAgICAgICAg
b2Zmc2V0ID0gbmV4dE9mZnNldDsKQEAgLTY2Myw2ICs2OTEsMTIgQEAgdm9pZCBGb250OjpkcmF3
R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZQogICAgICAgICBuZXh0WCArPSBnbHlwaEJ1ZmZlci5h
ZHZhbmNlQXQobmV4dEdseXBoKTsKICAgICAgICAgbmV4dEdseXBoKys7CiAgICAgfQorCisjaWYg
RU5BQkxFKFNWR19GT05UUykKKyAgICBpZiAoZm9udERhdGEtPmlzU1ZHRm9udCgpKQorICAgICAg
ICBkcmF3R2x5cGhzV2l0aFNWR0ZvbnQoY29udGV4dCwgbV9yZWZlcmVuY2luZ1JlbmRlck9iamVj
dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20s
IHN0YXJ0UG9pbnQpOworICAgIGVsc2UKKyNlbmRpZgogICAgIGRyYXdHbHlwaHMoY29udGV4dCwg
Zm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0
YXJ0UG9pbnQpOwogfQogCkBAIC02NzksNiArNzEzLDE5IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQo
R3JhcGhpY3NDb250ZXh0KiBjb24KICAgICAgICAgZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1
biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KIAorI2lmIEVOQUJMRShTVkcpCit2b2lkIEZvbnQ6OmRy
YXdTVkdUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBp
bnQgdG8pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAvLyBkcmF3R2x5cGhz
V2l0aFNWR0ZvbnQgbmVlZHMgdG8gYWNjZXNzIHRoaXMgcmVuZGVyIG9iamVjdC4KKyAgICAvLyBJ
dCdzIHNhZmUgdG8gZG8gdGhpcywgYXMgdGhlIFJlbmRlck9iamVjdCBpdHNlbGYgY2FsbGVkIHVz
LgorICAgIG1fcmVmZXJlbmNpbmdSZW5kZXJPYmplY3QgPSBvYmplY3Q7CisjZW5kaWYKKworICAg
IGRyYXdUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsKK30KKyNlbmRpZgorCiBm
bG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1bikgY29uc3QKIHsKICAgICBp
ZiAoY2FuVXNlR2x5cGhDYWNoZShydW4pKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJ
KHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgR2x5cGhCdWZmZXI7CiBjbGFzcyBH
bHlwaFBhZ2VUcmVlTm9kZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFBvaW50
OworY2xhc3MgUmVuZGVyT2JqZWN0OwogCiBzdHJ1Y3QgR2x5cGhEYXRhOwogCkBAIC0xNDQsNiAr
MTQ1LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9
IC0xKSBjb25zdDsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgLy8gU1ZHIEZvbnRzIHN1cHBvcnQg
cmVxdWlyZXMgRm9udDo6ZHJhd0dseXBoc1dpdGhTVkdGb250IHRvIGFjcXVpcmUgcGFpbnQgc2Vy
dmVycworICAgIC8vIFNWR1BhaW50U2VydmVyIG5lZWRzIGEgUmVuZGVyT2JqZWN0LCBhbmQgYSBS
ZW5kZXJTdHlsZSBvYmplY3QgYXMgaW5wdXQgcGFyYW1ldGVycy4KKyAgICB2b2lkIGRyYXdTVkdU
ZXh0KEdyYXBoaWNzQ29udGV4dCosIFJlbmRlck9iamVjdCosIGNvbnN0IFRleHRSdW4mLCBjb25z
dCBGbG9hdFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSkgY29uc3Q7CisjZW5kaWYK
KwogICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRX
aWR0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CiAgICAgCkBAIC0xOTksNiArMjA2LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIGNhblVzZUdseXBoQ2FjaGUoY29uc3QgVGV4dFJ1biYpIGNvbnN0Owog
ICAgIHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYs
IGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRy
YXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRm9udERhdGEqLCBjb25zdCBHbHlwaEJ1
ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQorICAgIHZvaWQgZHJhd0dseXBoc1dpdGhTVkdGb250KEdyYXBoaWNz
Q29udGV4dCosIFJlbmRlck9iamVjdCosIGNvbnN0IEZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZm
ZXImLCBpbnQgZnJvbSwgaW50IHRvLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CisjZW5kaWYK
ICAgICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1
ZmZlciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgdm9p
ZCBkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0
IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdp
ZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgR2x5cGhCdWZmZXIqKSBjb25zdDsKQEAg
LTI0MSw2ICsyNTEsOSBAQCBwcml2YXRlOgogICAgIFFGb250IG1fc2NGb250OwogICAgIGludCBt
X3NwYWNlV2lkdGg7CiAjZW5kaWYKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIG11dGFibGUg
UmVuZGVyT2JqZWN0KiBtX3JlZmVyZW5jaW5nUmVuZGVyT2JqZWN0OworI2VuZGlmCiB9OwogCiB9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcAkocmV2aXNpb24gMjkw
MTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsMTEgKzMyLDE5IEBACiAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgog
CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnREYXRhOjpGb250RGF0YShjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBmLCBib29sIGN1c3RvbUZvbnQsIGJvb2wgbG9hZGluZykKICAg
ICA6IG1fZm9udChmKQogICAgICwgbV90cmVhdEFzRml4ZWRQaXRjaChmYWxzZSkKKyNpZiBFTkFC
TEUoU1ZHX0ZPTlRTKQorICAgICwgbV9pc1NWR0ZvbnQoZmFsc2UpCisgICAgLCBtX3N2Z0ZvbnRG
YWNlKDApCisjZW5kaWYKICAgICAsIG1faXNDdXN0b21Gb250KGN1c3RvbUZvbnQpCiAgICAgLCBt
X2lzTG9hZGluZyhsb2FkaW5nKQogICAgICwgbV9zbWFsbENhcHNGb250RGF0YSgwKQpAQCAtODks
NiArOTcsMzAgQEAgRm9udERhdGE6On5Gb250RGF0YSgpCiAgICAgLy8gaXQgd2lsbCBiZSBkZWxl
dGVkIHRoZW4sIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZS4KIH0KIAoraW50
IEZvbnREYXRhOjphc2NlbnQoZmxvYXQgZm9udFNpemUpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFNW
R19GT05UUykKKyAgICBpZiAobV9pc1NWR0ZvbnQpIHsKKyAgICAgICAgQVNTRVJUKG1fdW5pdHNQ
ZXJFbSA+IDApOworICAgICAgICByZXR1cm4gbV9hc2NlbnQgKiBmb250U2l6ZSAvIG1fdW5pdHNQ
ZXJFbTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBtX2FzY2VudDsKK30KKworaW50IEZv
bnREYXRhOjpkZXNjZW50KGZsb2F0IGZvbnRTaXplKSBjb25zdAoreworI2lmIEVOQUJMRShTVkdf
Rk9OVFMpCisgICAgaWYgKG1faXNTVkdGb250KSB7CisgICAgICAgIEFTU0VSVChtX3VuaXRzUGVy
RW0gPiAwKTsKKyAgICAgICAgcmV0dXJuIG1fZGVzY2VudCAqIGZvbnRTaXplIC8gbV91bml0c1Bl
ckVtOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIG1fZGVzY2VudDsKK30KKwogZmxvYXQg
Rm9udERhdGE6OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7CiAgICAgZmxvYXQg
d2lkdGggPSBtX2dseXBoVG9XaWR0aE1hcC53aWR0aEZvckdseXBoKGdseXBoKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmgJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0
NSwxMCBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xh
c3MgV2lkdGhNYXA7CiAKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorY2xhc3MgU1ZHRm9udEZhY2VF
bGVtZW50OworI2VuZGlmCisKIGVudW0gUGl0Y2ggeyBVbmtub3duUGl0Y2gsIEZpeGVkUGl0Y2gs
IFZhcmlhYmxlUGl0Y2ggfTsKIAogY2xhc3MgRm9udERhdGEgOiBOb25jb3B5YWJsZSB7CkBAIC01
Nyw4ICs2MSw4IEBAIHB1YmxpYzoKICAgICBGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0OwogCiAgICAgLy8gdmVy
dGljYWwgbWV0cmljcwotICAgIGludCBhc2NlbnQoKSBjb25zdCB7IHJldHVybiBtX2FzY2VudDsg
fQotICAgIGludCBkZXNjZW50KCkgY29uc3QgeyByZXR1cm4gbV9kZXNjZW50OyB9CisgICAgaW50
IGFzY2VudChmbG9hdCBmb250U2l6ZSkgY29uc3Q7CisgICAgaW50IGRlc2NlbnQoZmxvYXQgZm9u
dFNpemUpIGNvbnN0OwogICAgIGludCBsaW5lU3BhY2luZygpIGNvbnN0IHsgcmV0dXJuIG1fbGlu
ZVNwYWNpbmc7IH0KICAgICBpbnQgbGluZUdhcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUdhcDsg
fQogICAgIGZsb2F0IHhIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3hIZWlnaHQ7IH0KQEAgLTcy
LDYgKzc2LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGVybWluZVBpdGNoKCk7CiAgICAgUGl0
Y2ggcGl0Y2goKSBjb25zdCB7IHJldHVybiBtX3RyZWF0QXNGaXhlZFBpdGNoID8gRml4ZWRQaXRj
aCA6IFZhcmlhYmxlUGl0Y2g7IH0KIAorI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgYm9vbCBp
c1NWR0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQorICAgIFNWR0ZvbnRGYWNl
RWxlbWVudCogc3ZnRm9udEZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N2Z0ZvbnRGYWNlLmdldCgp
OyB9CisjZW5kaWYKKwogICAgIGJvb2wgaXNDdXN0b21Gb250KCkgY29uc3QgeyByZXR1cm4gbV9p
c0N1c3RvbUZvbnQ7IH0KICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNM
b2FkaW5nOyB9CiAKQEAgLTEyNCw2ICsxMzMsMTEgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX3Ry
ZWF0QXNGaXhlZFBpdGNoOwogCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBib29sIG1faXNT
VkdGb250OworICAgIFJlZlB0cjxTVkdGb250RmFjZUVsZW1lbnQ+IG1fc3ZnRm9udEZhY2U7IAor
I2VuZGlmCisKICAgICBib29sIG1faXNDdXN0b21Gb250OyAgLy8gV2hldGhlciBvciBub3Qgd2Ug
YXJlIGN1c3RvbSBmb250IGxvYWRlZCB2aWEgQGZvbnQtZmFjZQogICAgIGJvb2wgbV9pc0xvYWRp
bmc7IC8vIFdoZXRoZXIgb3Igbm90IHRoaXMgY3VzdG9tIGZvbnQgaXMgc3RpbGwgaW4gdGhlIGFj
dCBvZiBsb2FkaW5nLgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhD
Ry5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cu
Y3BwCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0
aENHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUwLDcgKzE1MCw4IEBAIHZvaWQgUGF0aDo6YWRk
QXJjVG8oY29uc3QgRmxvYXRQb2ludCYgcDEKIAogdm9pZCBQYXRoOjpjbG9zZVN1YnBhdGgoKQog
ewotICAgIENHUGF0aENsb3NlU3VicGF0aChtX3BhdGgpOworICAgIGlmICghQ0dQYXRoSXNFbXB0
eShtX3BhdGgpKSAvLyB0byBzaWxlbmNlIGEgd2FybmluZyB3aGVuIHRyeWluZyB0byBjbG9zZSBh
biBlbXB0eSBwYXRoCisgICAgICAgIENHUGF0aENsb3NlU3VicGF0aChtX3BhdGgpOwogfQogCiB2
b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwg
ZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNlKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5s
aW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5l
VGV4dEJveC5jcHAJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5s
aW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDcgQEAgU1ZHUm9vdElu
bGluZUJveCogU1ZHSW5saW5lVGV4dEJveDo6c3ZnUgogCiBmbG9hdCBTVkdJbmxpbmVUZXh0Qm94
OjpjYWxjdWxhdGVHbHlwaFdpZHRoKFJlbmRlclN0eWxlKiBzdHlsZSwgaW50IG9mZnNldCkgY29u
c3QKIHsKKyAgICBBU1NFUlQoc3R5bGUpOwogICAgIHJldHVybiBzdHlsZS0+Zm9udCgpLmZsb2F0
V2lkdGgoc3ZnVGV4dFJ1bkZvcklubGluZVRleHRCb3godGV4dE9iamVjdCgpLT50ZXh0KCktPmNo
YXJhY3RlcnMoKSArIG9mZnNldCwgMSwgc3R5bGUsIHRoaXMsIDApKTsKIH0KIApAQCAtMzg3LDcg
KzM4OCwxMCBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50Q2hhcmFjdGVycyhSCiAgICAg
SW50UG9pbnQgb3JpZ2luKChpbnQpIHN2Z0NoYXIueCwgKGludCkgc3ZnQ2hhci55KTsKICAgICBU
ZXh0UnVuIHJ1biA9IHN2Z1RleHRSdW5Gb3JJbmxpbmVUZXh0Qm94KGNoYXJzLCBsZW5ndGgsIHN0
eWxlVG9Vc2UsIHRoaXMsIHN2Z0NoYXIueCk7CiAKLSAgICBwYWludEluZm8uY29udGV4dC0+ZHJh
d1RleHQocnVuLCBvcmlnaW4pOworICAgIGlmICghcGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5n
RGlzYWJsZWQoKSkgeworICAgICAgICBjb25zdCBGb250JiBhY3R1YWxGb250ID0gcGFpbnRJbmZv
LmNvbnRleHQtPmZvbnQoKTsKKyAgICAgICAgYWN0dWFsRm9udC5kcmF3U1ZHVGV4dChwYWludElu
Zm8uY29udGV4dCwgdGV4dC0+cGFyZW50KCksIHJ1biwgb3JpZ2luKTsKKyAgICB9CiAKICAgICBp
ZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxlY3Rpb24pIHsKICAgICAgICAgcGFp
bnREb2N1bWVudE1hcmtlcnMocGFpbnRJbmZvLmNvbnRleHQsIHR4LCB0eSwgc3R5bGVUb1VzZSwg
Zm9udCwgZmFsc2UpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHRm9udC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N2Zy9T
VkdGb250LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NCBAQAorLyoqCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIkZv
bnQuaCIKKworI2luY2x1ZGUgIkZvbnREYXRhLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU1ZHR2x5cGhFbGVtZW50
LmgiCisjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdGb250RmFjZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdQYWludFNlcnZlci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgRm9udDo6ZHJhd0dseXBoc1dpdGhTVkdGb250KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBGb250RGF0YSogZm9udERhdGEsIGNvbnN0IEdseXBoQnVmZmVy
JiBnbHlwaEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmcm9t
LCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIEFTU0VSVChy
ZW5kZXJPYmplY3QpOworCisgICAgQVNTRVJUKCFmb250RGF0YS0+aXNDdXN0b21Gb250KCkpOwor
ICAgIEFTU0VSVChmb250RGF0YS0+aXNTVkdGb250KCkpOworCisgICAgU1ZHRm9udEZhY2VFbGVt
ZW50KiBmb250RmFjZSA9IGZvbnREYXRhLT5zdmdGb250RmFjZSgpOworICAgIEFTU0VSVChmb250
RmFjZSk7CisKKyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJPYmplY3QtPnN0eWxlKCk7
CisgICAgQVNTRVJUKHN0eWxlKTsKKworICAgIC8vIFRPRE86IFRoaXMgaXMgcmlkaWN1bG91cy4g
R2x5cGhzIHNob3VsZG4ndCBiZSBjb2xsZWN0ZWQgd2hlbiBwYWludGVkLiBUaGUgcHJvYmxlbSBp
cworICAgIC8vIHRoYXQgd2UgbmVlZCB0byBjYWNoZSAnR2x5cGgnIGluc3RlYWQgb2YgJ1N0cmlu
ZycgaW4gdGhlIEdseXBoSGFzaE1hcCwgdG8gb2J0YWluCisgICAgLy8gYSBzZXQgb2YgJ0dseXBo
J3MgZnJvbSBhICdTdHJpbmcnIHdlIG5lZWQgdGhlIGxvY2FsIGZ1bmN0aW9uIGdseXBoRGF0YUZv
ckNoYXJhY3Rlci4KKyAgICAvLyBTb21laG93IHRoZSBkZXNpZ24gbmVlZHMgdG8gYmUgY2hhbmdl
ZC4gTm90IHlldCBzdXJlIGhvdywgbmVlZHMgZGlzY3Vzc2lvbi4KKyAgICBpZiAoZm9udEZhY2Ut
PnBhcmVudE5vZGUoKSAmJiBmb250RmFjZS0+cGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKFNWR05h
bWVzOjpmb250VGFnKSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHRm9udEVsZW1lbnQqPihmb250
RmFjZS0+cGFyZW50Tm9kZSgpKS0+Y29sbGVjdEdseXBocygqdGhpcyk7CisKKyAgICBGbG9hdFBv
aW50IHN0YXJ0UG9pbnQgPSBwb2ludDsKKworICAgIGZvciAoaW50IGkgPSBmcm9tOyBpIDwgdG87
ICsraSkgeworICAgICAgICBTVkdHbHlwaElkZW50aWZpZXIgaWRlbnRpZmllciA9IGZvbnRGYWNl
LT5nbHlwaElkZW50aWZpZXJGb3JHbHlwaENvZGUoZ2x5cGhCdWZmZXIuZ2x5cGhBdChpKSk7CisK
KyAgICAgICAgaWYgKCFpZGVudGlmaWVyLnBhdGhEYXRhLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgZmxvYXQgc2NhbGUgPSBzaXplKCkgLyBmb250RmFjZS0+dW5pdHNQZXJFbSgpOworICAgICAg
ICAgICAgLy9mcHJpbnRmKHN0ZGVyciwgImRyYXdHbHlwaHNXaXRoU1ZHRm9udCAhISBpPSVpLCBm
cm9tPSVpLCB0bz0laSwgc3RhcnR4PSVmLCBzdGFydHk9JWYsIHNjYWxlPSVmXG4iLCBpLCBmcm9t
LCB0bywgc3RhcnRQb2ludC54KCksIHN0YXJ0UG9pbnQueSgpLCBzY2FsZSk7CisKKyAgICAgICAg
ICAgIEFmZmluZVRyYW5zZm9ybSBjdG07CisgICAgICAgICAgICBjdG0udHJhbnNsYXRlKHN0YXJ0
UG9pbnQueCgpLCBzdGFydFBvaW50LnkoKSk7CisgICAgICAgICAgICBjdG0uc2NhbGUoc2NhbGUs
IC1zY2FsZSk7CisKKyAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICAgICAgICAgIGNv
bnRleHQtPmNvbmNhdENUTShjdG0pOworCisgICAgICAgICAgICBjb250ZXh0LT5iZWdpblBhdGgo
KTsKKworICAgICAgICAgICAgaWYgKFNWR1BhaW50U2VydmVyKiBmaWxsUGFpbnRTZXJ2ZXIgPSBT
VkdQYWludFNlcnZlcjo6ZmlsbFBhaW50U2VydmVyKHN0eWxlLCByZW5kZXJPYmplY3QpKSB7Cisg
ICAgICAgICAgICAgICAgY29udGV4dC0+YWRkUGF0aChpZGVudGlmaWVyLnBhdGhEYXRhKTsKKyAg
ICAgICAgICAgICAgICBmaWxsUGFpbnRTZXJ2ZXItPmRyYXcoY29udGV4dCwgcmVuZGVyT2JqZWN0
LCBBcHBseVRvRmlsbFRhcmdldFR5cGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoU1ZHUGFpbnRTZXJ2ZXIqIHN0cm9rZVBhaW50U2VydmVyID0gU1ZHUGFpbnRTZXJ2ZXI6OnN0
cm9rZVBhaW50U2VydmVyKHN0eWxlLCByZW5kZXJPYmplY3QpKSB7CisgICAgICAgICAgICAgICAg
Y29udGV4dC0+YWRkUGF0aChpZGVudGlmaWVyLnBhdGhEYXRhKTsgLy8gcGF0aCBpcyBjbGVhcmVk
IHdoZW4gZmlsbGVkLgorICAgICAgICAgICAgICAgIHN0cm9rZVBhaW50U2VydmVyLT5kcmF3KGNv
bnRleHQsIHJlbmRlck9iamVjdCwgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAgICBzdGFy
dFBvaW50Lm1vdmUoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KGkpLCAwKTsKKyAgICAgICAgfQorICAg
IH0KK30KKworfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTAzIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJp
Y0B3ZWJraXQub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIlNWR0ZvbnRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJG
b250LmgiCisjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJTVkdHbHlw
aEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgiCisjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CisKK1NWR0ZvbnRFbGVt
ZW50OjpTVkdGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jKQorICAgIDogU1ZHU3R5bGVkRWxlbWVudCh0YWdOYW1lLCBkb2MpCit7Cit9CisKK1NW
R0ZvbnRFbGVtZW50Ojp+U1ZHRm9udEVsZW1lbnQoKQoreworfQorCit2b2lkIFNWR0ZvbnRFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAg
U1ZHU3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQg
U1ZHRm9udEVsZW1lbnQ6OmNvbGxlY3RHbHlwaHMoY29uc3QgRm9udCYgZm9udCkKK3sKKyAgICBW
ZWN0b3I8U1ZHR2x5cGhFbGVtZW50Kj4gZ2x5cGhFbGVtZW50czsKKyAgICBTVkdNaXNzaW5nR2x5
cGhFbGVtZW50KiBtaXNzaW5nR2x5cGhFbGVtZW50ID0gMDsKKworICAgIGZvciAoTm9kZSogY2hp
bGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygp
KSB7CisgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShnbHlwaFRhZykpCisgICAgICAgICAg
ICBnbHlwaEVsZW1lbnRzLmFwcGVuZChzdGF0aWNfY2FzdDxTVkdHbHlwaEVsZW1lbnQqPihjaGls
ZCkpOworICAgICAgICBlbHNlIGlmIChjaGlsZC0+aGFzVGFnTmFtZShtaXNzaW5nX2dseXBoVGFn
KSkKKyAgICAgICAgICAgIG1pc3NpbmdHbHlwaEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdNaXNz
aW5nR2x5cGhFbGVtZW50Kj4oY2hpbGQpOworICAgIH0KKworICAgIFZlY3RvcjxTVkdHbHlwaEVs
ZW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBnbHlwaEVsZW1lbnRzLmJlZ2luKCk7CisgICAgVmVjdG9y
PFNWR0dseXBoRWxlbWVudCo+OjppdGVyYXRvciBlbmQgPSBnbHlwaEVsZW1lbnRzLmVuZCgpOwor
CisgICAgbV9nbHlwaE1hcC5jbGVhcigpOworCisgICAgU1ZHR2x5cGhJZGVudGlmaWVyIGlkZW50
aWZpZXI7CisKKyAgICAvLyBPbmx5IHN1cHBvcnRzIHNpbmdsZSBnbHlwaCA8LT4gc2luZ2xlIGNo
YXJhY3RlciBzaXR1YXRpb25zICYgZ2x5cGhzIHJlbmRlcmVkIGJ5IHBhdGhzLgorICAgIGZvciAo
OyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgU3RyaW5nIHBhdGhEYXRhU3RyaW5nID0gKCpp
dCktPmdldEF0dHJpYnV0ZShkQXR0cik7CisgICAgICAgIFN0cmluZyBnbHlwaFN0cmluZyA9ICgq
aXQpLT5nZXRBdHRyaWJ1dGUodW5pY29kZUF0dHIpOworCisgICAgICAgIC8vIFRvIHN1cHBvcnQg
Z2x5cGggc3RyaW5ncyBjb25zaXN0aW5nIG9mIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyIChpZS4g
J2ZmbCcgbGlnYXR1cmVzKSB3ZSBuZWVkIGFub3RoZXIgaGFzaGluZyBzY2hlbWUuCisgICAgICAg
IC8vIEdseXBoIDwtPiBTVkdHbHlwaElkZW50aWZpZXIgaXMgbm90IGVub3VnaC4KKyAgICAgICAg
aWYgKGdseXBoU3RyaW5nLmxlbmd0aCgpICE9IDEgfHwgcGF0aERhdGFTdHJpbmcuaXNFbXB0eSgp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgY29uc3QgR2x5cGhEYXRhJiBnbHlw
aERhdGEgPSBmb250LmdseXBoRGF0YUZvckNoYXJhY3RlcihnbHlwaFN0cmluZ1swXSwgZmFsc2Ug
LyogVE9ETzogbm8gcnRsLCBpcyB0aGlzIGNvcnJlY3QgaW4gYWxsIGNhc2VzPyAqLyk7CisKKyAg
ICAgICAgaWRlbnRpZmllci5wYXRoRGF0YSA9IFBhdGgoKTsKKyAgICAgICAgcGF0aEZyb21TVkdE
YXRhKGlkZW50aWZpZXIucGF0aERhdGEsIHBhdGhEYXRhU3RyaW5nKTsKKworICAgICAgICAvL2Zw
cmludGYoc3RkZXJyLCAiRk9VTkQgTkVXIEdMWVBIISBwYXRoRGF0YVN0cmluZzogJyVzJyBnbHlw
aFN0cmluZzogJyVzJyAgY29kZTogJyV1J1xuIiwgcGF0aERhdGFTdHJpbmcubGF0aW4xKCkuZGF0
YSgpLCBnbHlwaFN0cmluZy5sYXRpbjEoKS5kYXRhKCksIGdseXBoRGF0YS5nbHlwaCk7CisgICAg
ICAgIG1fZ2x5cGhNYXAuYWRkKGdseXBoRGF0YS5nbHlwaCwgaWRlbnRpZmllcik7CisgICAgfQor
fQorCitTVkdHbHlwaElkZW50aWZpZXIgU1ZHRm9udEVsZW1lbnQ6OmdseXBoSWRlbnRpZmllckZv
ckdseXBoQ29kZShjb25zdCBHbHlwaCYgY29kZSkgY29uc3QKK3sKKyAgICBHbHlwaEhhc2hNYXAm
IGhhc2hNYXAgPSBjb25zdF9jYXN0PFNWR0ZvbnRFbGVtZW50Kj4odGhpcyktPm1fZ2x5cGhNYXA7
CisKKyAgICBHbHlwaEhhc2hNYXA6Oml0ZXJhdG9yIGl0ID0gaGFzaE1hcC5maW5kKGNvZGUpOwor
ICAgIGlmIChpdCA9PSBoYXNoTWFwLmVuZCgpKQorICAgICAgICByZXR1cm4gU1ZHR2x5cGhJZGVu
dGlmaWVyKCk7CisKKyAgICByZXR1cm4gaXQtPnNlY29uZDsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKFNWR19GT05UUykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQg
QEAKKy8qCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBTVkdGb250RWxlbWVudF9oCisjZGVmaW5lIFNWR0ZvbnRFbGVtZW50X2gKKwor
I2lmIEVOQUJMRShTVkdfRk9OVFMpCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorCisj
aW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKyNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmgiCisjaW5jbHVkZSAiU1ZHR2x5cGhFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworICAgIGNsYXNzIEZvbnQ7CisKKyAgICBzdHJ1Y3QgR2x5cGhIYXNoIHsKKyAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgR2x5cGgmIGdseXBoKSB7CisgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhhc2goKDo6VUNoYXIqKSAmZ2x5cGgsIHNpemVv
ZihHbHlwaCkgLyBzaXplb2YoOjpVQ2hhcikpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGlj
IGJvb2wgZXF1YWwoY29uc3QgR2x5cGgmIGEsIGNvbnN0IEdseXBoJiBiKSB7IHJldHVybiBhID09
IGI7IH0KKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSBmYWxzZTsKKyAgICB9OworCisgICAgc3RydWN0IEdseXBoSGFzaFRyYWl0cyA6IFdU
Rjo6R2VuZXJpY0hhc2hUcmFpdHM8R2x5cGg+IHsKKyAgICAgICAgc3RhdGljIFRyYWl0VHlwZSBk
ZWxldGVkVmFsdWUoKSB7IHJldHVybiBVU0hSVF9NQVg7IH0KKyAgICB9OworCisgICAgdHlwZWRl
ZiBIYXNoTWFwPEdseXBoLCBTVkdHbHlwaElkZW50aWZpZXIsIEdseXBoSGFzaCwgR2x5cGhIYXNo
VHJhaXRzPiBHbHlwaEhhc2hNYXA7CisKKyAgICBjbGFzcyBTVkdGb250RWxlbWVudCA6IHB1Ymxp
YyBTVkdTdHlsZWRFbGVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CisgICAgcHVibGljOgorICAgICAgICBTVkdGb250
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICAgICAgdmlydHVh
bCB+U1ZHRm9udEVsZW1lbnQoKTsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CisgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyByZXR1cm4gZmFsc2U7IH0gICAgCisKKyAgICAgICAg
dmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRoaXM7IH0KKworICAgICAgICB2b2lkIGNvbGxlY3RHbHlwaHMoY29uc3QgRm9udCYpOworICAg
ICAgICBTVkdHbHlwaElkZW50aWZpZXIgZ2x5cGhJZGVudGlmaWVyRm9yR2x5cGhDb2RlKGNvbnN0
IEdseXBoJikgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICAvLyBNYXAgYmV0d2VlbiAn
dW5pY29kZScgcHJvcGVydHkgb2YgPGdseXBoPiBhbmQgYSBTVkdHbHlwaElkZW50aWZpZXIKKyAg
ICAgICAgR2x5cGhIYXNoTWFwIG1fZ2x5cGhNYXA7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKKyNlbmRpZgorCisvLyB2aW06
dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKK21vZHVsZSBzdmcgeworCisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcm
U1ZHX0ZPTlRTXSBTVkdGb250RWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIH07CisKK30KSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJD
b3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICsx
LDQzIEBACiAvKgotQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+Ci0KLVRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLW1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi1MaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLXZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi1idXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LUxpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi1Zb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi1hbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLUJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CisgICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisgICAgCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK
KyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpZiBFTkFCTEUoU1ZHKQorCisjaWYgRU5B
QkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKIAogI2luY2x1
ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5o
IgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2lu
Y2x1ZGUgIkZvbnREYXRhLmgiCisjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgorI2luY2x1
ZGUgIlNWR0RlZmluaXRpb25TcmNFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNp
bmNsdWRlICJTVkdGb250RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlU3JjRWxlbWVu
dC5oIgotI2luY2x1ZGUgIlNWR0RlZmluaXRpb25TcmNFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZH
R2x5cGhFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTI1LDEyICsxMzMs
ODQgQEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cgogICAgIFNWR0Vs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogfQogCit1bnNpZ25lZCBTVkdGb250
RmFjZUVsZW1lbnQ6OnVuaXRzUGVyRW0oKSBjb25zdAoreworICAgIGlmIChoYXNBdHRyaWJ1dGUo
dW5pdHNfcGVyX2VtQXR0cikpCisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGUodW5pdHNfcGVy
X2VtQXR0cikudG9JbnQoKTsKKyAgICAKKyAgICByZXR1cm4gMTAwMDsKK30KKworU3RyaW5nIFNW
R0ZvbnRGYWNlRWxlbWVudDo6Zm9udEZhbWlseSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3R5
bGVEZWNsYXJhdGlvbi0+Z2V0UHJvcGVydHlWYWx1ZShDU1NfUFJPUF9GT05UX0ZBTUlMWSk7Cit9
CisKK0ZvbnREYXRhKiBTVkdGb250RmFjZUVsZW1lbnQ6OmNyZWF0ZUZvbnREYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIC8vIFdlIG9ubHkg
ZXhwZWN0IHRvIGhhdmUgdGhpcyBtZXRob2QgY2FsbGVkIGJ5IGEgcGFyZW50IGZvbnQgZWxlbWVu
dAorICAgIEFTU0VSVChwYXJlbnROb2RlKCkpOworICAgIEFTU0VSVChwYXJlbnROb2RlKCktPmhh
c1RhZ05hbWUoZm9udFRhZykpOworICAgIFNWR0ZvbnRFbGVtZW50KiBmb250RWxlbWVudCA9IHN0
YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4ocGFyZW50Tm9kZSgpKTsKKworICAgIC8vIFVzZSBk
ZWZhdWx0IGZhbGxiYWNrIHBsYXRmb3JtIGRhdGEgLSBpdCdzIG5vdCBuZWVkZWQgYW55d2F5Li4u
CisgICAgRm9udFBsYXRmb3JtRGF0YSogY2FjaGVkUGxhdGZvcm1EYXRhID0gRm9udENhY2hlOjpn
ZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGZvbnREZXNjcmlwdGlvbik7CisgICAgaWYgKCFjYWNo
ZWRQbGF0Zm9ybURhdGEpCisgICAgICAgIHJldHVybiAwOworCisgICAgT3duUHRyPEZvbnREYXRh
PiBmb250RGF0YShuZXcgRm9udERhdGEoKmNhY2hlZFBsYXRmb3JtRGF0YSkpOworICAgIGZvbnRE
YXRhLT5tX2lzU1ZHRm9udCA9IHRydWU7CisgICAgZm9udERhdGEtPm1fc3ZnRm9udEZhY2UgPSBj
b25zdF9jYXN0PFNWR0ZvbnRGYWNlRWxlbWVudCo+KHRoaXMpOworCisgICAgZm9udERhdGEtPm1f
eEhlaWdodCA9IGZvbnRFbGVtZW50LT5nZXRBdHRyaWJ1dGUoeF9oZWlnaHRBdHRyKS50b0Zsb2F0
KCk7CisgICAgZm9udERhdGEtPm1fdW5pdHNQZXJFbSA9IHVuaXRzUGVyRW0oKTsKKworICAgIGlm
IChoYXNBdHRyaWJ1dGUoYXNjZW50QXR0cikpCisgICAgICAgIGZvbnREYXRhLT5tX2FzY2VudCA9
IGdldEF0dHJpYnV0ZShhc2NlbnRBdHRyKS50b0ludCgpOworICAgIGVsc2UgaWYgKGZvbnRFbGVt
ZW50LT5oYXNBdHRyaWJ1dGUodmVydF9vcmlnaW5feUF0dHIpKQorICAgICAgICBmb250RGF0YS0+
bV9hc2NlbnQgPSBmb250RGF0YS0+bV91bml0c1BlckVtIC0gZm9udEVsZW1lbnQtPmdldEF0dHJp
YnV0ZSh2ZXJ0X29yaWdpbl95QXR0cikudG9JbnQoKTsKKyAgICBlbHNlCisgICAgICAgIC8vIGlu
dmFsaWQgZm9udCwgc2hvdWxkIGxvZworICAgICAgICBmb250RGF0YS0+bV9hc2NlbnQgPSAwOwor
CisgICAgaWYgKGhhc0F0dHJpYnV0ZShkZXNjZW50QXR0cikpCisgICAgICAgIGZvbnREYXRhLT5t
X2Rlc2NlbnQgPSBnZXRBdHRyaWJ1dGUoZGVzY2VudEF0dHIpLnRvSW50KCk7CisgICAgZWxzZSBp
ZiAoZm9udEVsZW1lbnQtPmhhc0F0dHJpYnV0ZSh2ZXJ0X29yaWdpbl95QXR0cikpCisgICAgICAg
IGZvbnREYXRhLT5tX2Rlc2NlbnQgPSBmb250RWxlbWVudC0+Z2V0QXR0cmlidXRlKHZlcnRfb3Jp
Z2luX3lBdHRyKS50b0ludCgpOworICAgIGVsc2UKKyAgICAgICAgZm9udERhdGEtPm1fZGVzY2Vu
dCA9IGZvbnREYXRhLT5tX2FzY2VudDsKKworICAgIHJldHVybiBmb250RGF0YS5yZWxlYXNlKCk7
Cit9CisKIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UoKQogeworICAg
IC8vIElnbm9yZSBjaGFuZ2VzIHVudGlsIHdlIGxpdmUgaW4gdGhlIHRyZWUKKyAgICBpZiAoIXBh
cmVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBm
b3IgbG9jYWwgU1ZHIGZvbnRzICh0aG9zZSB3aGljaCBoYXZlIGEgPGZvbnQ+IHBhcmVudCwgYW5k
IGFyZSBvbmx5IHVzZWQgd2l0aGluIHRoZSBkb2N1bWVudCkKKyAgICBpZiAocGFyZW50Tm9kZSgp
ICYmIHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShmb250VGFnKSkgeworICAgICAgICBSZWZQdHI8
Q1NTVmFsdWVMaXN0PiBsaXN0ID0gbmV3IENTU1ZhbHVlTGlzdDsKKworICAgICAgICBSZWZQdHI8
Q1NTRm9udEZhY2VTcmNWYWx1ZT4gc3JjID0gbmV3IENTU0ZvbnRGYWNlU3JjVmFsdWUoU3RyaW5n
SW1wbDo6ZW1wdHkoKSwgZmFsc2UpOworICAgICAgICBzcmMtPnNldFNWR0ZvbnRGYWNlU3JjKCk7
CisgICAgICAgIGxpc3QtPmFwcGVuZChzcmMpOworCisgICAgICAgIENTU1Byb3BlcnR5IHNyY1By
b3BlcnR5KENTU19QUk9QX1NSQywgbGlzdCk7CisgICAgICAgIGNvbnN0IENTU1Byb3BlcnR5KiBz
cmNQcm9wZXJ0eVJlZiA9ICZzcmNQcm9wZXJ0eTsKKyAgICAgICAgbV9zdHlsZURlY2xhcmF0aW9u
LT5hZGRQYXJzZWRQcm9wZXJ0aWVzKCZzcmNQcm9wZXJ0eVJlZiwgMSk7CisKKyAgICAgICAgZG9j
dW1lbnQoKS0+dXBkYXRlU3R5bGVTZWxlY3RvcigpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgLy8gVE9ETzogRXh0ZXJuYWwgU1ZHIGZvbnRzIHN1cHBvcnQgLSByZSB1c2UgZXhpc3Rp
bmcgImN1c3RvbSBmb250IiBoYW5kbGluZyBsb2dpYy4KKwogICAgIC8vIHdlIGN1cnJlbnRseSBp
Z25vcmUgYWxsIGJ1dCB0aGUgZmlyc3Qgc3JjIGVsZW1lbnQsIGFsdGVybmF0aXZlbHkgd2UgY291
bGQgY29uY2F0IHRoZW0KICAgICBTVkdGb250RmFjZVNyY0VsZW1lbnQqIHNyY0VsZW1lbnQgPSAw
OwogICAgIFNWR0RlZmluaXRpb25TcmNFbGVtZW50KiBkZWZpbml0aW9uU3JjID0gMDsKLSAgICAK
KwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShmb250
X2ZhY2Vfc3JjVGFnKSAmJiAhc3JjRWxlbWVudCkKICAgICAgICAgICAgIHNyY0VsZW1lbnQgPSBz
dGF0aWNfY2FzdDxTVkdGb250RmFjZVNyY0VsZW1lbnQqPihjaGlsZCk7CkBAIC0xNDMsMjYgKzIy
MywzOCBAQCB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cmVidWlsZEZvbnRGYWNlCiAgICAgaWYg
KGRlZmluaXRpb25TcmMpCiAgICAgICAgIG1fc3R5bGVEZWNsYXJhdGlvbi0+c2V0UHJvcGVydHko
Q1NTX1BST1BfREVGSU5JVElPTl9TUkMsIGRlZmluaXRpb25TcmMtPmdldEF0dHJpYnV0ZShYTGlu
a05hbWVzOjpocmVmQXR0ciksIGZhbHNlKTsKICNlbmRpZgotICAgIAotICAgIGlmIChwYXJlbnRO
b2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5sb2NhbE5hbWUoKSA9PSAiZm9udCIpIC8vIFNWR05hbWVz
Ojpmb250VGFnIGlzbid0IGdlbmVyYXRlZCB5ZXQKLSAgICAgICAgcmV0dXJuOyAvLyB0aGlzIGZv
bnQtZmFjZSBhcHBsaWVzIHRvIGl0cyBwYXJlbnQgZm9udCwgd2hpY2ggd2UgaWdub3JlLgotICAg
IGVsc2UgaWYgKHNyY0VsZW1lbnQpIHsKKworICAgIGlmIChzcmNFbGVtZW50KSB7CiAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIG9ubHkgY2xhc3MgKG90aGVyIHRoYW4gQ1NTUGFyc2VyKSB0byBjcmVh
dGUgQ1NTVmFsdWUgb2JqZWN0cyBhbmQgc2V0IHRoZW0gb24gdGhlIENTU1N0eWxlRGVjbGFyYXRp
b24gbWFudWFsbHkKICAgICAgICAgLy8gd2UgdXNlIHRoZSBhZGRQYXJzZWRQcm9wZXJ0aWVzIG1l
dGhvZCwgYW5kIGZha2UgaGF2aW5nIGFuIGFycmF5IG9mIENTU1Byb3BlcnR5IHBvaW50ZXJzLgog
ICAgICAgICBDU1NQcm9wZXJ0eSBzcmNQcm9wZXJ0eShDU1NfUFJPUF9TUkMsIHNyY0VsZW1lbnQt
PnNyY1ZhbHVlKCkpOwogICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSogc3JjUHJvcGVydHlSZWYg
PSAmc3JjUHJvcGVydHk7CiAgICAgICAgIG1fc3R5bGVEZWNsYXJhdGlvbi0+YWRkUGFyc2VkUHJv
cGVydGllcygmc3JjUHJvcGVydHlSZWYsIDEpOwogICAgIH0KLSAgICAKKwogICAgIGRvY3VtZW50
KCktPnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKIH0KIAordm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6
Omluc2VydGVkSW50b0RvY3VtZW50KCkKK3sKKyAgICByZWJ1aWxkRm9udEZhY2UoKTsKK30KKwog
dm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCgpCiB7CiAgICAgcmVidWls
ZEZvbnRGYWNlKCk7CiB9CiAKK1NWR0dseXBoSWRlbnRpZmllciBTVkdGb250RmFjZUVsZW1lbnQ6
OmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShjb25zdCBHbHlwaCYgY29kZSkgY29uc3QKK3sK
KyAgICAvLyBXZSBvbmx5IGV4cGVjdCB0byBoYXZlIHRoaXMgbWV0aG9kIGNhbGxlZCBieSBhIHBh
cmVudCBmb250IGVsZW1lbnQKKyAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQo
cGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpKTsKKworICAgIFNWR0ZvbnRFbGVtZW50
KiBmb250RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4ocGFyZW50Tm9kZSgp
KTsKKyAgICByZXR1cm4gZm9udEVsZW1lbnQtPmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShj
b2RlKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShTVkcpCit9CiAKKyNlbmRpZiAvLyBFTkFCTEUo
U1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHJldmlzaW9uIDI5MDEx
KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNTAgKzEsNjQgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmlj
QHdlYmtpdC5vcmc+Ci0gICAgICAKLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gCi0gVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KKyAgIENvcHlyaWdo
dCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICAgQ29weXJpZ2h0IChD
KSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorCisgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCiAKICNpZm5kZWYgU1ZHRm9udEZh
Y2VFbGVtZW50X2gKICNkZWZpbmUgU1ZHRm9udEZhY2VFbGVtZW50X2gKLSNpZiBFTkFCTEUoU1ZH
KQogCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2x5cGhCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3Mg
Q1NTRm9udEZhY2VSdWxlOwogICAgIGNsYXNzIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOwor
ICAgIGNsYXNzIEZvbnREYXRhOworICAgIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKKyAgICBzdHJ1
Y3QgU1ZHR2x5cGhJZGVudGlmaWVyOworCiAgICAgY2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50IDog
cHVibGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHRm9udEZhY2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5T
VkdGb250RmFjZUVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7Ci0gICAgICAgIAorCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoKTsKLSAgICAgICAgCisgICAgICAgIHZpcnR1YWwgdm9pZCBp
bnNlcnRlZEludG9Eb2N1bWVudCgpOworCisgICAgICAgIHVuc2lnbmVkIHVuaXRzUGVyRW0oKSBj
b25zdDsKKyAgICAgICAgU3RyaW5nIGZvbnRGYW1pbHkoKSBjb25zdDsKKwogICAgICAgICB2b2lk
IHJlYnVpbGRGb250RmFjZSgpOwotICAgIAotICAgIHByaXZhdGU6ICAgICAgICAKKyAgICAgICAg
Rm9udERhdGEqIGNyZWF0ZUZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Owor
CisgICAgICAgIFNWR0dseXBoSWRlbnRpZmllciBnbHlwaElkZW50aWZpZXJGb3JHbHlwaENvZGUo
Y29uc3QgR2x5cGgmKSBjb25zdDsKKworICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDU1NG
b250RmFjZVJ1bGU+IG1fZm9udEZhY2VSdWxlOwogICAgICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24+IG1fc3R5bGVEZWNsYXJhdGlvbjsKICAgICB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmIC8vIEVOQUJMRShT
VkdfRk9OVFMpCiAjZW5kaWYKIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuaWRsCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogbW9kdWxl
IHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHRm9udEZhY2VFbGVt
ZW50IDogU1ZHRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcmU1ZHX0ZP
TlRTXSBTVkdGb250RmFjZUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCiB9CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAJKHJldmlzaW9uIDI5MDEx
KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSwyNCArMSwyNSBAQAogLyoKLSBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlk
ZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotIAot
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICAgQ29weXJpZ2h0
IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNp
ZiBFTkFCTEUoU1ZHKQorCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdGb250
RmFjZUZvcm1hdEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgpA
QCAtNDksNSArNTAsNCBAQCB2b2lkIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudDo6Y2hpbGRyZW5D
CiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShTVkcpCi0KKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZP
TlRTKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgJKHJldmlzaW9u
IDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzAgKzEsMzEgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gIAotIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAKLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gCi0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAgIENvcHly
aWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorCisgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaWZuZGVmIFNWR0ZvbnRGYWNl
Rm9ybWF0RWxlbWVudF9oCiAjZGVmaW5lIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudF9oCi0jaWYg
RU5BQkxFKFNWRykKIAorI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgU1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgeworCitjbGFzcyBTVkdGb250RmFjZUZvcm1hdEVs
ZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCkBAIC0zMyw3ICsz
NCw3IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5B
QkxFKFNWRykKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQogI2VuZGlmCiAKIC8vIHZpbTp0
cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmlkbAko
cmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKIG1vZHVsZSBzdmcgewogCi0g
ICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudCA6
IFNWR0VsZW1lbnQgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UU10g
U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50IDogU1ZHRWxlbWVudCB7CiAgICAgfTsKIAogfQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDI5MDExKQor
KysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjQgKzEsMjUgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxl
cmljQHdlYmtpdC5vcmc+Ci0gIAotIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAKLSBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gCi0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAgIENvcHlyaWdodCAoQykg
MjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorCisgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaWYgRU5B
QkxFKFNWRykKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJD
b3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYg
KzEsMjYgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+Ci0gIAotIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAKLSBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gCi0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBFcmlj
IFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCiAjaWZuZGVmIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnRfaAogI2Rl
ZmluZSBTVkdGb250RmFjZU5hbWVFbGVtZW50X2gKLSNpZiBFTkFCTEUoU1ZHKQogCisjaWYgRU5B
QkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmIC8vIEVOQUJMRShT
VkdfRk9OVFMpCiAjZW5kaWYKIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VOYW1lRWxlbWVudC5pZGwJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZH
Rm9udEZhY2VOYW1lRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9U1ZHJlNWR19GT05UU10gU1ZHRm9udEZhY2VOYW1lRWxlbWVudCA6IFNWR0VsZW1lbnQg
ewogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcAko
cmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI0ICsxLDI1IEBACiAvKgotIENvcHlyaWdodCAoQykgMjAw
NyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICAKLSBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
ICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKworICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2lmIEVOQUJMRShTVkcpCisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogI2luY2x1
ZGUgIlNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0Lmgi
CkBAIC01Nyw1ICs1OCw0IEBAIHZvaWQgU1ZHRm9udEZhY2VTcmNFbGVtZW50OjpjaGlsZHJlbkNo
YW4KIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKLQorI2VuZGlmIC8vIEVOQUJMRShTVkdf
Rk9OVFMpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAkocmV2aXNpb24gMjkw
MTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSwyNiArMSwyNiBAQAogLyoKLSBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotIAotIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICAgQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpZm5kZWYgU1ZHRm9udEZhY2VTcmNFbGVt
ZW50X2gKICNkZWZpbmUgU1ZHRm9udEZhY2VTcmNFbGVtZW50X2gKLSNpZiBFTkFCTEUoU1ZHKQog
CisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmIC8v
IEVOQUJMRShTVkdfRk9OVFMpCiAjZW5kaWYKIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaWRsCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcg
KzI1LDcgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNW
R10gU1ZHRm9udEZhY2VTcmNFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIFtD
b25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTXSBTVkdGb250RmFjZVNyY0VsZW1lbnQgOiBTVkdFbGVt
ZW50IHsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHAJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyNCArMSwyNSBAQAogLyoKLSBDb3B5cmlnaHQgKEMp
IDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisK
KyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpZiBFTkFCTEUoU1ZHKQorCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNp
bmNsdWRlICJTVkdGb250RmFjZVVyaUVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU0ZvbnRGYWNl
U3JjVmFsdWUuaCIKQEAgLTU0LDUgKzU1LDQgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6
OmNoaWxkcmVuQ2hhbgogCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQotCisjZW5kaWYgLy8g
RU5BQkxFKFNWR19GT05UUykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCShy
ZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI2ICsxLDI2IEBACiAvKgotIENvcHlyaWdodCAoQykgMjAwNyBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICAKLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgICBD
b3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAogI2lmbmRlZiBTVkdGb250
RmFjZVVyaUVsZW1lbnRfaAogI2RlZmluZSBTVkdGb250RmFjZVVyaUVsZW1lbnRfaAotI2lmIEVO
QUJMRShTVkcpCiAKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogI2luY2x1ZGUgIlNWR0VsZW1lbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShTVkcp
CisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKICNlbmRpZgogCiAvLyB2aW06dHM9NDpub2V0
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N2
Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACisvKgor
ICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgICBD
b3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyNpbmNsdWRlICJTVkdHbHlw
aEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIlNWR05hbWVzLmgiIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKKworU1ZHR2x5cGhFbGVtZW50OjpTVkdH
bHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYykK
KyAgICA6IFNWR1N0eWxlZEVsZW1lbnQodGFnTmFtZSwgZG9jKQoreworfQorCit2b2lkIFNWR0ds
eXBoRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQor
eworICAgIFNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQor
Cit2b2lkIFNWR0dseXBoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKCkKK3sKK30KKworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsODYgQEAKKy8qCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdHbHlwaEVsZW1lbnRfaAorI2RlZmluZSBTVkdHbHlw
aEVsZW1lbnRfaAorCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyNpbmNsdWRlICJTVkdTdHlsZWRF
bGVtZW50LmgiCisKKyNpbmNsdWRlICJQYXRoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKKyAgICBjbGFzcyBTVkdHbHlwaEVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCB7
CisgICAgcHVibGljOgorICAgICAgICBTVkdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNo
aWxkcmVuQ2hhbmdlZCgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChS
ZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgfTsKKworICAgIC8vIERlc2NyaWJl
IGEgU1ZHIDxnbHlwaD4gZWxlbWVudAorICAgIHN0cnVjdCBTVkdHbHlwaElkZW50aWZpZXIgewor
ICAgICAgICBlbnVtIE9yaWVudGF0aW9uIHsgVmVydGljYWwsIEhvcml6b250YWwsIEJvdGggfTsK
KyAgICAgICAgZW51bSBBcmFiaWNGb3JtIHsgSW5pdGlhbCwgTWVkaWFsLCBUZXJtaW5hbCwgSXNv
bGF0ZWQgfTsKKworICAgICAgICBTVkdHbHlwaElkZW50aWZpZXIoKQorICAgICAgICAgICAgOiBv
cmllbnRhdGlvbihCb3RoKQorICAgICAgICAgICAgLCBhcmFiaWNGb3JtKEluaXRpYWwpCisgICAg
ICAgICAgICAsIGhvcml6b250YWxBZHZhbmNlWCgwLjBmKQorICAgICAgICAgICAgLCB2ZXJ0aWNh
bE9yaWdpblgoMC4wZikKKyAgICAgICAgICAgICwgdmVydGljYWxPcmlnaW5ZKDAuMGYpCisgICAg
ICAgICAgICAsIHZlcnRpY2FsQWR2YW5jZVkoMC4wZikKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgLy8gJ29yaWVudGF0aW9uJyBwcm9wZXJ0eTsKKyAgICAgICAgT3JpZW50YXRpb24g
b3JpZW50YXRpb247CisKKyAgICAgICAgLy8gJ2FyYWJpYy1mb3JtJyBwcm9wZXJ0eQorICAgICAg
ICBBcmFiaWNGb3JtIGFyYWJpY0Zvcm07CisKKyAgICAgICAgLy8gJ2hvcml6LWFkdi14JyBwcm9w
ZXJ0eQorICAgICAgICBmbG9hdCBob3Jpem9udGFsQWR2YW5jZVg7CisKKyAgICAgICAgLy8gJ3Zl
cnQtb3JpZ2luLXgnIHByb3BlcnR5CisgICAgICAgIGZsb2F0IHZlcnRpY2FsT3JpZ2luWDsKKwor
ICAgICAgICAvLyAndmVydC1vcmlnaW4teScgcHJvcGVydHkKKyAgICAgICAgZmxvYXQgdmVydGlj
YWxPcmlnaW5ZOworCisgICAgICAgIC8vICd2ZXJ0LWFkdi15JyBwcm9wZXJ0eQorICAgICAgICBm
bG9hdCB2ZXJ0aWNhbEFkdmFuY2VZOworCisgICAgICAgIC8vICdkJyBwcm9wZXJ0eQorICAgICAg
ICBQYXRoIHBhdGhEYXRhOworCisgICAgICAgIC8vICdsYW5nJyBwcm9wZXJ0eQorICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKKyNlbmRpZgorCisvLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3N2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Cisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKK21vZHVsZSBzdmcgeworCisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcmU1ZH
X0ZPTlRTXSBTVkdHbHlwaEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICB9OworCit9CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ3IEBACisvKgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyNpbmNsdWRl
ICJTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgiCisKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKKworU1ZHTWlz
c2luZ0dseXBoRWxlbWVudDo6U1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQorICAgIDogU1ZHU3R5bGVkRWxlbWVudCh0YWdO
YW1lLCBkb2MpCit7Cit9CisKK3ZvaWQgU1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAgIFNWR1N0eWxlZEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQorCit2b2lkIFNWR01pc3NpbmdHbHlw
aEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCgpCit7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJM
RShTVkdfRk9OVFMpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQyIEBACisvKgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHTWlzc2luZ0dseXBoRWxlbWVudF9oCisjZGVmaW5l
IFNWR01pc3NpbmdHbHlwaEVsZW1lbnRfaAorCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyNpbmNs
dWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFz
cyBTVkdNaXNzaW5nR2x5cGhFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQgeworICAg
IHB1YmxpYzoKKyAgICAgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KFJlbmRlclN0eWxlKikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQorI2VuZGlmCisKKy8vIHZp
bTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJp
YyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CisKKyAgICBp
bnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFNdIFNWR01pc3NpbmdHbHlwaEVsZW1l
bnQgOiBTVkdFbGVtZW50IHsKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL3N2Zy9zdmd0YWdz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4JKHJldmlzaW9uIDI5MDEx
KQorKysgV2ViQ29yZS9zdmcvc3ZndGFncy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTYsNyArMTYs
OSBAQCBjbGlwUGF0aAogY29sb3JfcHJvZmlsZQogI2VuZGlmCiBjdXJzb3IKKyNpZiBFTkFCTEVf
U1ZHX0ZPTlRTCiBkZWZpbml0aW9uX3NyYworI2VuZGlmCiBkZWZzCiBkZXNjCiBlbGxpcHNlCkBA
IC01MSwxOCArNTMsMjAgQEAgZmVUaWxlCiBmZVR1cmJ1bGVuY2UKIGZpbHRlcgogI2VuZGlmCi0j
aWYgMAorI2lmZGVmIEVOQUJMRV9TVkdfRk9OVFMKIGZvbnQKLSNlbmRpZgogZm9udF9mYWNlCiBm
b250X2ZhY2VfZm9ybWF0CiBmb250X2ZhY2VfbmFtZQogZm9udF9mYWNlX3NyYwogZm9udF9mYWNl
X3VyaQorI2VuZGlmCiBmb3JlaWduT2JqZWN0CiBnCi0jaWYgMAorI2lmZGVmIEVOQUJMRV9TVkdf
Rk9OVFMKIGdseXBoCisjZW5kaWYKKyNpZiAwCiBnbHlwaFJlZgogaGtlcm4KICNlbmRpZgpAQCAt
NzIsNyArNzYsNyBAQCBsaW5lYXJHcmFkaWVudAogbWFya2VyCiBtYXNrCiBtZXRhZGF0YQotI2lm
IDAKKyNpZmRlZiBFTkFCTEVfU1ZHX0ZPTlRTCiBtaXNzaW5nX2dseXBoCiAjZW5kaWYKIG1wYXRo
CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0No
YW5nZUxvZwkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDExIEBACisyMDA3LTEyLTI4ICBOaWtvbGFzIFppbW1lcm1hbm4g
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIERPTVNWR0ZvbnRFbGVtZW50L0RPTVNWR0dseXBoRWxlbWVudC9E
T01TVkdNaXNzaW5nR2x5cGhFbGVtZW50IHRvIE1pZ3JhdGVIZWFkZXJzLm1ha2UKKworICAgICAg
ICAqIE1pZ3JhdGVIZWFkZXJzLm1ha2U6CisKIDIwMDctMTItMjUgIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6
IFdlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFj
L01pZ3JhdGVIZWFkZXJzLm1ha2UJKHJldmlzaW9uIDI5MDExKQorKysgV2ViS2l0L21hYy9NaWdy
YXRlSGVhZGVycy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zMjYsNiArMzI2LDcgQEAgYWxsIDog
XAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR0ZpbHRlckVsZW1lbnRJbnRlcm5h
bC5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVNWR0Zp
dFRvVmlld0JveC5oIFwKKyAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVNWR0ZvbnRFbGVt
ZW50LmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHRm9udEZhY2VFbGVtZW50
LmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHRm9udEZhY2VGb3JtYXRFbGVt
ZW50LmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHRm9udEZhY2VOYW1lRWxl
bWVudC5oIFwKQEAgLTMzNSw2ICszMzYsNyBAQCBhbGwgOiBcCiAgICAgJChJTlRFUk5BTF9IRUFE
RVJTX0RJUikvRE9NU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbnRlcm5hbC5oIFwKICAgICAkKFBS
SVZBVEVfSEVBREVSU19ESVIpL0RPTVNWR0dFbGVtZW50LmggXAogICAgICQoSU5URVJOQUxfSEVB
REVSU19ESVIpL0RPTVNWR0dFbGVtZW50SW50ZXJuYWwuaCBcCisgICAgJChQUklWQVRFX0hFQURF
UlNfRElSKS9ET01TVkdHbHlwaEVsZW1lbnQuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElS
KS9ET01TVkdHcmFkaWVudEVsZW1lbnQuaCBcCiAgICAgJChJTlRFUk5BTF9IRUFERVJTX0RJUikv
RE9NU1ZHR3JhZGllbnRFbGVtZW50SW50ZXJuYWwuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNf
RElSKS9ET01TVkdJbWFnZUVsZW1lbnQuaCBcCkBAIC0zNTcsNiArMzU5LDcgQEAgYWxsIDogXAog
ICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR01hdHJpeEludGVybmFsLmggXAogICAg
ICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHTWV0YWRhdGFFbGVtZW50LmggXAogICAgICQo
SU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR01ldGFkYXRhRWxlbWVudEludGVybmFsLmggXAor
ICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwK
ICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVNWR051bWJlci5oIFwKICAgICAkKFBSSVZB
VEVfSEVBREVSU19ESVIpL0RPTVNWR051bWJlckxpc3QuaCBcCiAgICAgJChJTlRFUk5BTF9IRUFE
RVJTX0RJUikvRE9NU1ZHTnVtYmVyTGlzdEludGVybmFsLmggXAo=
</data>
<flag name="review"
          id="7891"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18161</attachid>
            <date>2007-12-28 17:01:14 -0800</date>
            <delta_ts>2007-12-28 18:04:11 -0800</delta_ts>
            <desc>Updated patch v2</desc>
            <filename>AddSVGFontSupport.diff</filename>
            <type>text/plain</type>
            <size>128946</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIzIEBACisyMDA3LTEyLTI5ICBOaWtvbGFzIFppbW1lcm1hbm4gIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KKworICAgICAgICBGaXhl
czogaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NDkgKFdlYktpdCBT
VkcgbmVlZHMgU1ZHIEZvbnRzIHN1cHBvcnQpCisKKyAgICAgICAgQmVnaW4gaW1wbGVtZW50YXRp
b24gb2YgU1ZHIEZvbnRzIG1vZHVsZS4gQmFzaWMgZG9jdW1lbnRzIHVzaW5nIFNWRyBGb250cyBh
bHJlYWR5IHdvcmsuCisgICAgICAgIE9ubHkgbG9jYWwsIGluLWRvY3VtZW50IGZvbnRzIHdobyBk
ZWNsYXJlIHRoZWlyIGdseXBocyB1c2luZyB0aGUgPGdseXBoIGQ9Ii4uLiI+IHBhdGggc3ludGF4
CisgICAgICAgIGFyZSBzdXBwb3J0ZWQuICg8Z2x5cGg+IGNvbnRhaW5pbmcgYXJiaXRhcnkgU1ZH
IGNvbnRlbnQgYXMgY2hpbGQgZWxlbWVudHMsIG5vdCBzdXBwb3J0ZWQgeWV0KS4KKworICAgICAg
ICBMaW1pdGVkIHRvIHNpbmdsZSBjaGFyIDwtPiBnbHlwaCBtYXBwaW5nLCBubyBsaWdhdHVyZXMg
c3VwcG9ydGVkIHlldC4KKyAgICAgICAgKGllLiA8Z2x5cGggdW5pY29kZT0nQScvPiA8Z2x5cGgg
dW5pY29kZT0nQUInLz4gLSBpdCBpZ25vcmVzIHRoZSAnQUInIGdseXBoIGRlZmluaXRpb24gZm9y
IG5vdykKKworICAgICAgICBNYXJrIGFsbCBTVkcgRm9udCByZWxhdGVkIGNsYXNzZXMgJiB1c2Fn
ZXMgaW4gRU5BQkxFKFNWR19GT05UUykgYmxvY2tzLgorCisgICAgICAgIE5vIGxheW91dCB0ZXN0
IGNoYW5nZXMgZm9yIGEgLS1uby1zdmctZm9udHMgYnVpbGQsIGhlYXZ5IGNoYW5nZXMgaWYgZW5h
YmxlZC4gQmVjYXVzZSBhIGxvdCBvZiBTVkcgRm9udAorICAgICAgICBhdHRyaWJ1dGVzIGFyZSBu
b3QgcHJvY2Vzc2VkIHlldCwgdGhlIHJlbmRlcmluZyBsb29rcyB3cm9uZyAtIGhlbmNlIGRpc2Fi
bGVkIGJ5IGRlZmF1bHQuKQorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIFNW
R0ZvbnRFbGVtZW50L1NWR0dseXBoRWxlbWVudC9TVkdNaXNzaW5nR2x5cGhFbGVtZW50CisgICAg
ICAgICogV2ViQ29yZS5wcm86IFVwZGF0ZWQgYnVpbGQgc3lzdGVtLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogQWRkIEpTU1ZHRm9udEVsZW1lbnQvSlNTVkdHbHlw
aEVsZW1lbnQvSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50CisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET00ubW06IERpdHRvIChmb3IgRE9NU1ZHKikuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVF
bGVtZW50Q2xhc3NNYXApOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwuaDog
RGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01TVkcuaDogRGl0dG8uCisgICAgICAg
ICogY3NzL0NTU0ZvbnRGYWNlLmg6IE1hcmsgdGhyZWUgZnVuY3Rpb25zICd2aXJ0dWFsJywgdG8g
YmUgb3ZlcnJpZGVuIGJ5IFNWR0NTU0ZvbnRGYWNlCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNl
U3JjVmFsdWUuaDogQWRkIGZ1bmN0aW9uYWxpdHkgdG8gaWRlbnRpZnkgYXMgU1ZHIENTUyBmb250
IGZhY2Ugc291cmNlLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6bV9m
b250RmFjZUVsZW1lbnQpOiBIb2xkIGEgcG9pbnRlciB0byB0aGUgZm9udCBmYWNlIHdoaWNoIGNy
ZWF0ZWQgaXQuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpzdmdGb250
RmFjZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6c2V0
U1ZHRm9udEZhY2VFbGVtZW50KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDog
QnVpbGQgJ1NWR0NTU0ZvbnRGYWNlJyBvYmplY3RzIGZvciBsb2NhbCwgaW4tZG9jdW1lbnQgU1ZH
IGZvbnRzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1
bGUpOgorICAgICAgICAqIGNzcy9TVkdDU1NGb250RmFjZS5jcHA6IEFkZGVkLiAoU2ltcGxpZmll
ZCBpbXBsZW1lbnRhdGlvbiBmb3IgU1ZHIEZvbnRzKQorICAgICAgICAoV2ViQ29yZTo6U1ZHQ1NT
Rm9udEZhY2U6OlNWR0NTU0ZvbnRGYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NTU0ZvbnRG
YWNlOjp+U1ZHQ1NTRm9udEZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ1NTRm9udEZhY2U6
OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ1NTRm9udEZhY2U6OmFkZFNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdDU1NGb250RmFjZTo6Z2V0Rm9udERhdGEpOgorICAgICAg
ICAqIGNzcy9TVkdDU1NGb250RmFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y2xvc2VTdWJwYXRo
KTogU2lsZW5jZSBhIENHIHdhcm5pbmcgd2hlbiBjYWxsaW5nIGNsb3NlU3VicGF0aCgpIG9uIGVt
cHR5IHBhdGguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6IEFkZCBzb21l
IGxvZ2ljIHRvIGNhbGwgaW50byBTVkcgRm9udCBjb2RlIHdoZW4gb3BlcmF0aW5nIG9uIFNWRyBG
b250cy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmFzY2VudCk6IFBhc3MgZm9udCBzaXplIHRv
IEZvbnREYXRhOjphc2NlbnQoKSBjYWxsCisgICAgICAgIChXZWJDb3JlOjpGb250OjpkZXNjZW50
KTogUGFzcyBmb250IHNpemUgdG8gRm9udERhdGE6OmRlc2NlbnQoKSBjYWxsCisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpjYW5Vc2VHbHlwaENhY2hlKTogQWx3YXlzIHJldHVybiB0cnVlIGZvciBT
VkcgZm9udHMgaGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcik6
IENhbGwgZHJhd0dseXBoc1dpdGhTVkdGb250IChpbnN0ZWFkIG9mIGRyYXdHbHlwaHMpIGlmIHRo
ZSBwcmltYXJ5IGZvbnQgaXMgYSBTVkcgZm9udC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Lmg6IEFkZCAoU1ZHLW9ubHkhKSBhYmlsaXR5IHRvIHN0b3JlIGEgUmVuZGVyT2JqZWN0
IHBvaW50ZXIsIHRvIHRoZSBlbGVtZW50IHdoaWNoIGludm9rZWQgdGhlIGRyYXdUZXh0KCkgY2Fs
bC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4pOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFJ1bjo6cmVmZXJlbmNpbmdSZW5kZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFJ1bjo6c2V0UmVmZXJlbmNpbmdSZW5kZXJPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhOjpGb250
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YTo6YXNjZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREYXRhOjpkZXNjZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250RGF0YS5oOiBTdG9yZSBhIHBvaW50ZXIgdG8gdGhlIFNWR0ZvbnRGYWNlRWxlbWVudCwgd2hp
Y2ggY3JlYXRlZCB0aGlzIEZvbnREYXRhIG9iamVjdCAtIG5lZWRlZCBmb3IgZHJhd0dseXBoc1dp
dGhTVkdGb250KCkuCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YTo6aXNTVkdGb250KTogT2Zm
ZXIgYSB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRlciB0aGlzIGlzIGEgRm9udERhdGEgb2JqZWN0LCBj
cmVhdGVkIGJ5IGEgU1ZHRm9udEZhY2VFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6Rm9udERh
dGE6OnN2Z0ZvbnRGYWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvU1ZHSW5saW5lVGV4dEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpjYWxjdWxhdGVHbHlwaFdp
ZHRoKTogQWRkIGFzc2VydGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvU1ZHUm9vdElubGluZUJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdmdUZXh0UnVuRm9ySW5saW5lVGV4dEJveCk6IEFs
d2F5cyBjYWxsICdzZXRSZWZlcmVuY2luZ1JlbmRlck9iamVjdChteVJlbmRlclNWR1RleHQpJyBv
biB0aGUgbmV3IFRleHRSdW4KKyAgICAgICAgKiBzdmcvU1ZHRm9udC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBoc1dpdGhTVkdGb250KTogT3V0c291cmNlZCBp
bXBsZW1lbnRhdGlvbiBvZiBTVkcgRm9udHMgaW50byBpdCdzIG93biBmaWxlLgorICAgICAgICAq
IHN2Zy9TVkdGb250RWxlbWVudC5jcHA6IEFkZGVkLiAoTm90ZTogdGhpcyBob2xkcyB0aGUgR2x5
cGhIYXNoTWFwIHdoaWNoIGFzc29jaWF0ZXMgY2VydGFpbiA8Z2x5cGg+IG9iamVjdHMgd2l0aCB1
bmljb2RlIHZhbHVlcykKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRFbGVtZW50OjpTVkdGb250
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6flNWR0ZvbnRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6Y29sbGVjdEdseXBocyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6Z2x5cGhJZGVudGlmaWVyRm9yR2x5
cGhDb2RlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHbHlwaEhhc2g6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhIYXNo
OjplcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEhhc2hUcmFpdHM6OmRlbGV0ZWRWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAg
ICAgICAqIHN2Zy9TVkdGb250RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdG
b250RmFjZUVsZW1lbnQuY3BwOiBCdWlsZCBTVkcgc3BlY2lmaWMgJ0ZvbnREYXRhJyBvYmplY3QK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlRWxlbWVudDo6dW5pdHNQZXJFbSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OmZvbnRGYW1pbHkpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRm9udEZhY2VFbGVtZW50OjpjcmVhdGVGb250RGF0YSk6IEJ1aWxkcyBTVkcg
c3BlY2lmaWVkICdGb250RGF0YScgb2JqZWN0IHdpdGggdGhlIG1hcmt1cCBzcGVjaWZpZWQgYXNj
ZW50L2Rlc2NlbnQgdmFsdWVzIGV0Yy4uCisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVs
ZW1lbnQ6OnJlYnVpbGRGb250RmFjZSk6IENvbnN0cnVjdCBDU1NGb250RmFjZVNyYyBvYmplY3Qg
KG1hcmtlZCBhcyAnaXNTVkdGb250RmFjZVNyYycpIHRvIHNhdGlzZnkgQ1NTRm9udFNlbGVjdG9y
OjphZGRGb250RmFjZVJ1bGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6
Omluc2VydGVkSW50b0RvY3VtZW50KTogUmVidWlsZCBmb250IGZhY2UuCisgICAgICAgIChXZWJD
b3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZSk6IEFs
bG93cyBkcmF3R2x5cGhzV2l0aFNWR0ZvbnQgdG8gYWNjZXNzIHRoZSBnbHlwaCBoYXNoIG1hcCBs
aXZpbmcgaW4gdGhlIFNWR0ZvbnRFbGVtZW50LgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuaDogRml4ZWQgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyAmIHdyYXAgaW4gRU5BQkxFKFNW
R19GT05UUykgYmxvY2tzLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsOiBE
aXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcDogRGl0dG8u
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oOiBEaXR0by4KKyAgICAg
ICAgKiBzdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmlkbDogRGl0dG8uCisgICAgICAgICog
c3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZH
Rm9udEZhY2VOYW1lRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5pZGw6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVNyY0VsZW1l
bnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmg6IERp
dHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaWRsOiBEaXR0by4KKyAg
ICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICog
c3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRm9u
dEZhY2VVcmlFbGVtZW50LmlkbDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0RlZmluaXRpb25T
cmNFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0RlZmluaXRpb25TcmNFbGVt
ZW50Lmg6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5pZGw6
IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0dseXBoRWxlbWVudDo6U1ZHR2x5cGhFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0dseXBoRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHR2x5cGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAq
IHN2Zy9TVkdHbHlwaEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlw
aEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhJ
ZGVudGlmaWVyOjopOiBTdHJ1Y3R1cmUgaG9sZGluZyBhbGwgZGF0YSB0byByZXByZXNlbnQgYSBT
VkcgZ2x5cGggKG9yaWdpbiwgYWR2YW5jZSwgb3JpZW50YXRpb24gZXRjLi4pCisgICAgICAgIChX
ZWJDb3JlOjpTVkdHbHlwaElkZW50aWZpZXI6OlNWR0dseXBoSWRlbnRpZmllcik6CisgICAgICAg
ICogc3ZnL1NWR0dseXBoRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmNwcDogQWRkZWQuIChzdHViIGltcGxlbWVudGF0aW9uKQorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6U1ZHTWlzc2luZ0dseXBoRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNaXNzaW5nR2x5cGhFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNaXNzaW5nR2x5cGhFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6cmVuZGVy
ZXJJc05lZWRlZCk6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvc3ZndGFncy5pbjogV3JhcCBhbGwgU1ZHRm9udCogZWxlbWVu
dHMgaW4gRU5BQkxFKFNWR19GT05UUykgYmxvY2sgLSB0byBhc3N1cmUgLS1uby1zdmctZm9udHMg
Y29tcGlsYXRpb24gd29ya3MgKHdoaWNoIGlzIHRoZSBkZWZhdWx0IGZvciBub3chKS4KKwogMjAw
Ny0xMi0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAyOTAxMSkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMjAzLDYgKzIwMyw3IEBAIGFsbCA6IFwKICAgICBET01TVkdGRVNwb3RMaWdodEVsZW1lbnQu
aCBcCiAgICAgRE9NU1ZHRkVUaWxlRWxlbWVudC5oIFwKICAgICBET01TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmggXAorICAgIERPTVNWR0ZvbnRFbGVtZW50LmggXAogICAgIERPTVNWR0ZvbnRGYWNl
RWxlbWVudC5oIFwKICAgICBET01TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaCBcCiAgICAgRE9N
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIFwKQEAgLTIxMyw2ICsyMTQsNyBAQCBhbGwgOiBcCiAg
ICAgRE9NU1ZHRml0VG9WaWV3Qm94LmggXAogICAgIERPTVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmggXAogICAgIERPTVNWR0dFbGVtZW50LmggXAorICAgIERPTVNWR0dseXBoRWxlbWVudC5oIFwK
ICAgICBET01TVkdHcmFkaWVudEVsZW1lbnQuaCBcCiAgICAgRE9NU1ZHSW1hZ2VFbGVtZW50Lmgg
XAogICAgIERPTVNWR0xhbmdTcGFjZS5oIFwKQEAgLTIyNSw2ICsyMjcsNyBAQCBhbGwgOiBcCiAg
ICAgRE9NU1ZHTWFza0VsZW1lbnQuaCBcCiAgICAgRE9NU1ZHTWF0cml4LmggXAogICAgIERPTVNW
R01ldGFkYXRhRWxlbWVudC5oIFwKKyAgICBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggXAog
ICAgIERPTVNWR051bWJlci5oIFwKICAgICBET01TVkdOdW1iZXJMaXN0LmggXAogICAgIERPTVNW
R1BhaW50LmggXApAQCAtNTQzLDYgKzU0Niw3IEBAIGFsbCA6IFwKICAgICBKU1NWR0ZFVGlsZUVs
ZW1lbnQuaCBcCiAgICAgSlNTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggXAogICAgIEpTU1ZHRmls
dGVyRWxlbWVudC5oIFwKKyAgICBKU1NWR0ZvbnRFbGVtZW50LmggXAogICAgIEpTU1ZHRm9udEZh
Y2VFbGVtZW50LmggXAogICAgIEpTU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmggXAogICAgIEpT
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIFwKQEAgLTU1MCw2ICs1NTQsNyBAQCBhbGwgOiBcCiAg
ICAgSlNTVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCiAgICAgSlNTVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5oIFwKICAgICBKU1NWR0dFbGVtZW50LmggXAorICAgIEpTU1ZHR2x5cGhFbGVtZW50Lmgg
XAogICAgIEpTU1ZHR3JhZGllbnRFbGVtZW50LmggXAogICAgIEpTU1ZHSW1hZ2VFbGVtZW50Lmgg
XAogICAgIEpTU1ZHTGVuZ3RoLmggXApAQCAtNTU4LDYgKzU2Myw3IEBAIGFsbCA6IFwKICAgICBK
U1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKICAgICBKU1NWR01hc2tFbGVtZW50LmggXAog
ICAgIEpTU1ZHTWFya2VyRWxlbWVudC5oIFwKKyAgICBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aCBcCiAgICAgSlNTVkdUcmFuc2Zvcm0uaCBcCiAgICAgSlNTVkdab29tRXZlbnQuaCBcCiAgICAg
SlNTY3JlZW4uaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9XZWJDb3JlLnBy
bwkod29ya2luZyBjb3B5KQpAQCAtMTIzNiw2ICsxMjM2LDcgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX1NWRz0xKSB7CiAgICAgICAgIHN2Zy9TVkdGRVRpbGVFbGVtZW50LmlkbCBcCiAgICAg
ICAgIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdGaWx0
ZXJFbGVtZW50LmlkbCBcCisgICAgICAgIHN2Zy9TVkdGb250RWxlbWVudC5pZGwgXAogICAgICAg
ICBzdmcvU1ZHRm9udEZhY2VFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaWRsIFwKICAgICAgICAgc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaWRs
IFwKQEAgLTEyNDMsNiArMTI0NCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkg
ewogICAgICAgICBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5pZGwgXAogICAgICAgICBzdmcvU1ZHR0VsZW1lbnQuaWRs
IFwKKyAgICAgICAgc3ZnL1NWR0dseXBoRWxlbWVudC5pZGwgXAogICAgICAgICBzdmcvU1ZHR3Jh
ZGllbnRFbGVtZW50LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdJbWFnZUVsZW1lbnQuaWRsIFwKICAg
ICAgICAgc3ZnL1NWR0xlbmd0aC5pZGwgXApAQCAtMTI1Myw2ICsxMjU1LDcgQEAgY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgIHN2Zy9TVkdNYXNrRWxlbWVudC5pZGwg
XAogICAgICAgICBzdmcvU1ZHTWF0cml4LmlkbCBcCiAgICAgICAgIHN2Zy9TVkdNZXRhZGF0YUVs
ZW1lbnQuaWRsIFwKKyAgICAgICAgc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsIFwKICAg
ICAgICAgc3ZnL1NWR051bWJlci5pZGwgXAogICAgICAgICBzdmcvU1ZHTnVtYmVyTGlzdC5pZGwg
XAogICAgICAgICBzdmcvU1ZHUGFpbnQuaWRsIFwKQEAgLTEzMjAsNiArMTMyMyw3IEBAIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBjc3MvU1ZHQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBcCiAgICAgICAgIGNzcy9TVkdDU1NQYXJzZXIuY3BwIFwKICAg
ICAgICAgY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIFwKKyAgICAgICAgY3NzL1NWR0NTU0Zv
bnRGYWNlLmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9TVkdSZW5kZXJTdHlsZS5jcHAgXAogICAg
ICAgICByZW5kZXJpbmcvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L2pzL0pTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuY3BwIFwKQEAgLTEzNzksNiArMTM4Myw4IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBzdmcvU1ZHRmlsdGVyRWxl
bWVudC5jcHAgXAogICAgICAgICBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcCBcCiAgICAgICAgIHN2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwIFwKKyAgICAgICAgc3Zn
L1NWR0ZvbnQuY3BwIFwKKyAgICAgICAgc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcCBcCiAgICAgICAg
IHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudC5jcHAgXAogICAgICAgICBzdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAg
XApAQCAtMTM4Niw2ICsxMzkyLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7
CiAgICAgICAgIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdHRWxlbWVudC5jcHAg
XAorICAgICAgICBzdmcvU1ZHR2x5cGhFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgXAogICAg
ICAgICBzdmcvU1ZHTGFuZ1NwYWNlLmNwcCBcCkBAIC0xMzk3LDYgKzE0MDQsNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAgc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwIFwKICAgICAgICAgc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdN
ZXRhZGF0YUVsZW1lbnQuY3BwIFwKKyAgICAgICAgc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQu
Y3BwIFwKICAgICAgICAgc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAgXAogICAgICAgICBzdmcvU1ZH
TnVtYmVyTGlzdC5jcHAgXAogICAgICAgICBzdmcvU1ZHUGFpbnQuY3BwIFwKSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNzg1LDYg
KzE3ODUsMzAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU1NWR0ZvbnRFbGVtZW50LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNTVkdGb250RWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NWR0dseXBoRWxlbWVudC5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1
dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU1ZHR2x5cGhFbGVtZW50
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NWR0ZvbnRGYWNlRWxlbWVudC5j
cHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtNDgzOCw2ICs0ODYyLDEwIEBACiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xTVkdDU1NG
b250RmFjZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxjc3NcU1ZHQ1NTUGFyc2VyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBA
IC04MzA5LDYgKzgzMzcsMjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0ZvbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0ZvbnQuaCINCisJCQkJPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdGb250
RWxlbWVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdmdcU1ZHRm9udEVsZW1lbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdGb250RmFjZUVsZW1lbnQuY3Bw
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTgzNjUsNiArODQwOSwxNCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHR2x5cGhF
bGVtZW50LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHN2Z1xTVkdHbHlwaEVsZW1lbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdHcmFkaWVudEVsZW1lbnQuY3Bw
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTg0NjksNiArODUyMSwxNCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR01QYXRo
RWxlbWVudC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMwOTUs
NiArMzA5NSw3IEBACiAJCUIyNUJFNTEwMEQwNkI3MDgwMEI1MjRDNiAvKiBKU0V2ZW50VGFyZ2V0
QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjVCRTUwRTBEMDZCNzA4MDBCNTI0QzYgLyogSlNFdmVudFRhcmdldEJhc2UuY3BwICovOyB9Owog
CQlCMjVCRTUxMTBEMDZCNzA4MDBCNTI0QzYgLyogSlNFdmVudFRhcmdldEJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNUJFNTBGMEQwNkI3MDgw
MEI1MjRDNiAvKiBKU0V2ZW50VGFyZ2V0QmFzZS5oICovOyB9OwogCQlCMjVERkFBRjBCMkUyOTI5
MDAwRTY1MTAgLyogSlNTVkdNYXRyaXhDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI1REZBQUUwQjJFMjkyOTAwMEU2NTEwIC8qIEpTU1ZH
TWF0cml4Q3VzdG9tLmNwcCAqLzsgfTsKKwkJQjI2MkI4MDQwRDFGMzJEMDAwMTU4RjA5IC8qIFNW
R0ZvbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjI2MkI4MDMwRDFGMzJEMDAwMTU4RjA5IC8qIFNWR0ZvbnQuY3BwICovOyB9OwogCQlCMjY1NTRF
QTBCODBENzQ5MDBBNTBFQzMgLyogUmVuZGVyU1ZHVGV4dFBhdGguY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI2NTU0RTgwQjgwRDc0OTAwQTUwRUMz
IC8qIFJlbmRlclNWR1RleHRQYXRoLmNwcCAqLzsgfTsKIAkJQjI2NTU0RUIwQjgwRDc0OTAwQTUw
RUMzIC8qIFJlbmRlclNWR1RleHRQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjY1NTRFOTBCODBENzQ5MDBBNTBFQzMgLyogUmVuZGVyU1ZHVGV4
dFBhdGguaCAqLzsgfTsKIAkJQjI2NkNENEQwQzNBRUM2NTAwRUIwOEQyIC8qIEpTU1ZHRXhjZXB0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
NjZDRDRCMEMzQUVDNjUwMEVCMDhEMiAvKiBKU1NWR0V4Y2VwdGlvbi5jcHAgKi87IH07CkBAIC0z
MTQ1LDYgKzMxNDYsMjYgQEAKIAkJQjI3NTM1ODIwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTUwQjA1
MzgxNDAwMkNFNjRGIC8qIFBlbi5oICovOyB9OwogCQlCMjc1MzU4RTBCMDUzQTY2MDAyQ0U2NEYg
LyogSWNvbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyNzUzNThEMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tICovOyB9OwogCQlCMjc3
QjQwNDBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3N0I0MDMwQjIyRjM3QzAwMDRC
RUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5tbSAqLzsgfTsKKwkJQjI3QjI4MjUwQ0VGMEMwNzAw
RDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MUYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9u
dEVsZW1lbnQuY3BwICovOyB9OworCQlCMjdCMjgyNjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdG
b250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjI3QjI4MjAwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCAqLzsgfTsK
KwkJQjI3QjI4MjcwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODIxMENFRjBD
MDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyN0IyODI4MENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MjIwQ0VGMEMwNzAwRDM5RDU0IC8qIEpT
U1ZHR2x5cGhFbGVtZW50LmggKi87IH07CisJCUIyN0IyODI5MENFRjBDMDcwMEQzOUQ1NCAvKiBK
U1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MjMwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyN0IyODJBMENFRjBDMDcwMEQzOUQ1NCAvKiBK
U1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyN0IyODI0MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4MzYwQ0VGMEMzNjAwRDM5RDU0IC8qIENTU1By
b3BlcnR5TmFtZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyN0IyODJCMENFRjBDMzUwMEQzOUQ1NCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICov
OyB9OworCQlCMjdCMjgzNzBDRUYwQzM2MDBEMzlENTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkMw
Q0VGMEMzNTAwRDM5RDU0IC8qIENTU1ZhbHVlS2V5d29yZHMuaW4gKi87IH07CisJCUIyN0IyODM4
MENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0IC8q
IERPTVNWR0ZvbnRFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsg
fTsKKwkJQjI3QjI4MzkwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkUwQ0VG
MEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1tICovOyB9OworCQlCMjdCMjgzQTBD
RUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkYwQ0VGMEMzNTAwRDM5
RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJQjI3QjI4M0IwQ0VG
MEMzNjAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MzAwQ0VGMEMzNTAwRDM5RDU0IC8qIERP
TVNWR0dseXBoRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07
CisJCUIyN0IyODNDMENFRjBDMzYwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgzMTBDRUYw
QzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50Lm1tICovOyB9OworCQlCMjdCMjgzRDBD
RUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMyMENFRjBDMzUwMEQz
OUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlCMjdCMjgzRTBD
RUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MzMwQ0VGMEMzNTAwRDM5
RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9ICgpOyB9OyB9OworCQlCMjdCMjgzRjBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyN0IyODM0MENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhF
bGVtZW50Lm1tICovOyB9OworCQlCMjdCMjg0MDBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHTWlz
c2luZ0dseXBoRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgzNTBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudEludGVybmFsLmggKi87IH07CisJCUIyN0IyODVDMENFRjBENzIwMEQzOUQ1
NCAvKiBET01TVkdGb250RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3QjI4MkQwQ0VGMEMzNTAwRDM5RDU0IC8q
IERPTVNWR0ZvbnRFbGVtZW50LmggKi87IH07CisJCUIyN0IyODVEMENFRjBENzIwMEQzOUQ1NCAv
KiBET01TVkdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMwMENFRjBDMzUwMEQzOUQ1NCAvKiBE
T01TVkdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJQjI3QjI4NUUwQ0VGMEQ3MjAwRDM5RDU0IC8q
IERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMzMENFRjBDMzUwMEQzOUQ1
NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyOEJDMzFBMEQxMzVF
NTQwMENEQkEyNyAvKiBKU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyOEJDMzE5MEQxMzVFNTQwMENEQkEyNyAvKiBK
U0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCAqLzsgfTsKIAkJQjI4QzZBMjcwRDAwQzQ0ODAwMzM0QUE0
IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjhDNkExRTBEMDBDNDQ4MDAzMzRBQTQgLyogU1ZHRG9jdW1l
bnRFeHRlbnNpb25zLmNwcCAqLzsgfTsKIAkJQjI4QzZBMjgwRDAwQzQ0ODAwMzM0QUE0IC8qIFNW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjI4QzZBMUYwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0RvY3VtZW50RXh0ZW5z
aW9ucy5oICovOyB9OwpAQCAtMzE2Miw2ICszMTgzLDE1IEBACiAJCUIyQTAxNUFCMEFGNkNENTMw
MDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkEwMTU5NTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
QTEwQjkyMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMTBCOTEwQjM4MThCRDAwMDk5QUE0IC8q
IEltYWdlQnVmZmVyLmggKi87IH07CiAJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAvKiBJbWFn
ZUJ1ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQTEwQjkzMEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNwcCAqLzsgfTsK
KwkJQjJBMUYyQUEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkExMENFRjBBQkYw
MDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkFCMENFRjBBQkYw
MDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVt
ZW50LmggKi87IH07CisJCUIyQTFGMkFDMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVu
dC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
QTFGMkEzMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwgKi87IH07CisJCUIy
QTFGMkFEMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTQwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFGMkFFMENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQTFGMkE1MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1l
bnQuaCAqLzsgfTsKKwkJQjJBMUYyQUYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVu
dC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
QTFGMkE2MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaWRsICovOyB9OworCQlC
MkExRjJCMDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNzBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgKi87IH07CisJCUIyQTFG
MkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9OworCQlCMkExRjJCMjBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkE5MENFRjBBQkYwMDQ0MkY2
QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCAqLzsgfTsKIAkJQjJBRTlCOUQwQzNBRjI3
NDAwRjIzRjdGIC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAvKiBE
T01TVkdUZXh0UGF0aEVsZW1lbnQubW0gKi87IH07CiAJCUIyQUZGQzdDMEQwMEE1QzEwMDMwMDc0
RCAvKiBGb250Q2FjaGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMkFGRkM3NDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1tICov
OyB9OwogCQlCMkFGRkM3RDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFG
RkM3NTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi87IH07
CkBAIC0zMjYyLDYgKzMyOTIsOCBAQAogCQlCMkNCOTI2NDBCNUJEQTAyMDA5QkFBNzggLyogRE9N
U1ZHRWxlbWVudEluc3RhbmNlTGlzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjYwMEI1QkRBMDIwMDlCQUE3OCAvKiBET01TVkdFbGVtZW50
SW5zdGFuY2VMaXN0Lm1tICovOyB9OwogCQlCMkNDRUM0NzBDNkNBOUYxMDA2QTU0MjQgLyogUmVu
ZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjJDQ0VDNDUwQzZDQTlGMTAwNkE1NDI0IC8qIFJlbmRlclNWR1Zp
ZXdwb3J0Q29udGFpbmVyLmNwcCAqLzsgfTsKIAkJQjJDQ0VDNDgwQzZDQTlGMTAwNkE1NDI0IC8q
IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMkNDRUM0NjBDNkNBOUYxMDA2QTU0MjQgLyogUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIuaCAqLzsgfTsKKwkJQjJEMTlBNDgwQ0VGOURDMTAwMEUwMzNCIC8q
IFNWR0NTU0ZvbnRGYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyRDE5QTQ2MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5jcHAg
Ki87IH07CisJCUIyRDE5QTQ5MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEMTlBNDcwQ0VG
OURDMTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggKi87IH07CiAJCUIyRDNGQzhBMEMyMjEy
Q0IwMENGMzYxOCAvKiBKU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEM0ZDODkwQzIyMTJDQjAwQ0YzNjE4
IC8qIEpTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCUIyRTI3QzlGMEIwRjJC
MDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFMjdDOUQwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9p
bnQzRC5jcHAgKi87IH07CiAJCUIyRTI3Q0EwMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50
M0QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTI3
QzlFMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuaCAqLzsgfTsKQEAgLTM4OTQsNiAr
MzkyNiw5IEBACiAJCQlkc3RQYXRoID0gVmVyc2lvbnMvQS9Qcml2YXRlSGVhZGVyczsKIAkJCWRz
dFN1YmZvbGRlclNwZWMgPSAxOwogCQkJZmlsZXMgPSAoCisJCQkJQjI3QjI4NUMwQ0VGMEQ3MjAw
RDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LywKKwkJCQlCMjdCMjg1RDBDRUYwRDcyMDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKKwkJCQlCMjdCMjg1RTBDRUYwRDcyMDBEMzlE
NTQgLyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8sCiAJCQkJODUzOEYwMzAwQUQ3MUNEQjAwNkE4MUQxIC8qIERPTUFic3RyYWN0Vmlldy5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQkMwQUE2MDkzNzAwREFE
QjIwIC8qIERPTUF0dHIuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFD
Q0M3MEFBNjA5MzcwMERBREIyMCAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovLApAQCAtNzEwNSw2ICs3MTQwLDcgQEAKIAkJQjI1QkU1MEUwRDA2QjcwODAw
QjUyNEM2IC8qIEpTRXZlbnRUYXJnZXRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0V2ZW50VGFyZ2V0QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUIyNUJFNTBGMEQwNkI3MDgwMEI1MjRDNiAvKiBKU0V2ZW50VGFyZ2V0QmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudFRhcmdldEJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI1REZBQUUwQjJFMjkyOTAwMEU2NTEwIC8q
IEpTU1ZHTWF0cml4Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NWR01hdHJpeEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUIyNjJCODAzMEQxRjMyRDAwMDE1OEYwOSAvKiBTVkdGb250LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGb250LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjI2NTU0RTgwQjgwRDc0OTAwQTUwRUMzIC8qIFJlbmRlclNWR1RleHRQYXRoLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdUZXh0UGF0
aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNjU1NEU5MEI4MEQ3NDkwMEE1
MEVDMyAvKiBSZW5kZXJTVkdUZXh0UGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyU1ZHVGV4dFBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjI2NkNENEIwQzNBRUM2NTAwRUIwOEQyIC8qIEpTU1ZHRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0V4Y2VwdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MTU1LDYgKzcxOTEsMjMgQEAKIAkJQjI3NTM1NTUwQjA1
MzgxNDAwMkNFNjRGIC8qIFBlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNThEMEIwNTNBNjYwMDJD
RTY0RiAvKiBJY29uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEljb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzdCNDAzMEIy
MkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0TWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgxRjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdG
b250RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODIwMENF
RjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1NWR0ZvbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUIyN0IyODIxMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdHbHlwaEVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyMjBDRUYwQzA3MDBEMzlE
NTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU1ZHR2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIy
N0IyODIzMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODI0MENFRjBDMDcw
MEQzOUQ1NCAvKiBKU1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCMjdCMjgyQjBDRUYwQzM1MDBEMzlENTQgLyogQ1NTUHJvcGVydHlO
YW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MkMwQ0VGMEMzNTAwRDM5RDU0IC8qIENT
U1ZhbHVlS2V5d29yZHMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1ZhbHVlS2V5d29y
ZHMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyN0IyODJEMENFRjBDMzUwMEQz
OUQ1NCAvKiBET01TVkdGb250RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NU1ZHRm9udEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QjI3QjI4MkUwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR0ZvbnRFbGVtZW50Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjdCMjgyRjBDRUYwQzM1MDBEMzlENTQgLyog
RE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCMjdCMjgzMDBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TVkdHbHlwaEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzEwQ0VGMEMzNTAwRDM5RDU0IC8q
IERPTVNWR0dseXBoRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01TVkdHbHlwaEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUIyN0IyODMyMENFRjBDMzUwMEQzOUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnRJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHR2x5cGhFbGVtZW50
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzMwQ0VGMEMz
NTAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3QjI4MzQwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR01p
c3NpbmdHbHlwaEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQjI3QjI4MzUwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVs
ZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZH
TWlzc2luZ0dseXBoRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIyOEJDMzE5MEQxMzVFNTQwMENEQkEyNyAvKiBKU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRCYXNlLmx1dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjhDNkExRTBEMDBDNDQ4MDAzMzRBQTQg
LyogU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMjhDNkExRjBEMDBDNDQ4MDAzMzRBQTQgLyogU1ZHRG9jdW1lbnRFeHRlbnNp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdEb2N1bWVudEV4dGVu
c2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcxNzIsNiArNzIyNSwxNSBA
QAogCQlCMkEwMTU5NTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NUeXBlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMkExMEI5MTBCMzgxOEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQTEwQjkzMEIzODE4RDcwMDA5OUFBNCAvKiBJbWFn
ZUJ1ZmZlckNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFn
ZUJ1ZmZlckNHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTEwQ0VG
MEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdGb250RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUIyQTFGMkEyMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRm9udEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTMwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0Zv
bnRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHRm9udEVsZW1lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMkExRjJBNDBDRUYwQUJGMDA0NDJGNkEg
LyogU1ZHR2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdHbHlwaEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
MkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdHbHlwaEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0dseXBoRWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyQTFGMkE3MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJBMUYyQTkwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjJBRTlCOUMwQzNBRjI3NDAwRjIzRjdGIC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdUZXh0UGF0aEVs
ZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzc0MEQwMEE1QzEw
MDMwMDc0RCAvKiBGb250Q2FjaGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRm9udENhY2hlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMkFGRkM3NTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjcyLDYgKzczMzQsOCBA
QAogCQlCMkNCOTI2MDBCNUJEQTAyMDA5QkFBNzggLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlz
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdFbGVt
ZW50SW5zdGFuY2VMaXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkNDRUM0
NTBDNkNBOUYxMDA2QTU0MjQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFp
bmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDQ0VDNDYwQzZDQTlGMTAw
NkE1NDI0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMkQxOUE0NjBDRUY5REMxMDAwRTAzM0IgLyogU1ZHQ1NTRm9u
dEZhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0NTU0Zv
bnRGYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJEMTlBNDcwQ0VGOURD
MTAwMEUwMzNCIC8qIFNWR0NTU0ZvbnRGYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdDU1NGb250RmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
MkQzRkM4OTBDMjIxMkNCMDBDRjM2MTggLyogSlNTVkdUcmFuc2Zvcm1MaXN0Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1RyYW5zZm9ybUxpc3RD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkUyN0M5RDBCMEYyQjA5
MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGbG9hdFBvaW50M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMkUyN0M5RTBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFBvaW50M0QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTg2NDQsNiArODcwOCwxNSBAQAogCQk4NUEwRjk4RTBBQzcxNkY0MDAxNjFG
REMgLyogU1ZHICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQlCMjdCMjgyRDBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQuaCAqLywKKwkJ
CQlCMjdCMjgyRTBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQubW0gKi8sCisJ
CQkJQjI3QjI4MkYwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0ZvbnRFbGVtZW50SW50ZXJuYWwu
aCAqLywKKwkJCQlCMjdCMjgzMDBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50
LmggKi8sCisJCQkJQjI3QjI4MzEwQ0VGMEMzNTAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVu
dC5tbSAqLywKKwkJCQlCMjdCMjgzMjBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVt
ZW50SW50ZXJuYWwuaCAqLywKKwkJCQlCMjdCMjgzMzBDRUYwQzM1MDBEMzlENTQgLyogRE9NU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5oICovLAorCQkJCUIyN0IyODM0MENFRjBDMzUwMEQzOUQ1NCAv
KiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lm1tICovLAorCQkJCUIyN0IyODM1MENFRjBDMzUw
MEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50SW50ZXJuYWwuaCAqLywKIAkJCQk4
NUFDRUY3NDBBQ0RDRkNFMDAxMjE0RkYgLyogRE9NU1ZHQUVsZW1lbnQuaCAqLywKIAkJCQk4NUFD
RUY3NTBBQ0RDRkNFMDAxMjE0RkYgLyogRE9NU1ZHQUVsZW1lbnQubW0gKi8sCiAJCQkJQThFNTQ0
MTUwQ0E5RDFDMTAwOTdEMDlCIC8qIERPTVNWR0FFbGVtZW50SW50ZXJuYWwuaCAqLywKQEAgLTky
MDgsNiArOTI4MSw4IEBACiAJCTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBEZXJpdmVkIFNv
dXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUIy
N0IyODJCMENFRjBDMzUwMEQzOUQ1NCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICovLAorCQkJCUIy
N0IyODJDMENFRjBDMzUwMEQzOUQ1NCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLAogCQkJCTg1
OTY3RDlGMEFBOEJCNTkwMDVGRURFRSAvKiBDb3JlICovLAogCQkJCTg1OTY3RENBMEFBOEJGMEYw
MDVGRURFRSAvKiBDU1MgKi8sCiAJCQkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1IC8qIEV2ZW50
cyAqLywKQEAgLTEwMjQ2LDYgKzEwMzIxLDEyIEBACiAJCQkJQjJGQTNDOTkwQUI3NUE2RTAwMEU1
QUM0IC8qIEpTU1ZHRkVGdW5jUkVsZW1lbnQuaCAqLywKIAkJCQlCMkZBM0M5QTBBQjc1QTZFMDAw
RTVBQzQgLyogSlNTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwICovLAogCQkJCUIyRkEzQzlC
MEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oICovLAorCQkJ
CUIyN0IyODFGMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCAqLywKKwkJ
CQlCMjdCMjgyMDBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5oICovLAorCQkJ
CUIyN0IyODIxMENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5jcHAgKi8sCisJ
CQkJQjI3QjI4MjIwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHR2x5cGhFbGVtZW50LmggKi8sCisJ
CQkJQjI3QjI4MjMwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5j
cHAgKi8sCisJCQkJQjI3QjI4MjQwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5oICovLAogCQkJCUIyRkEzQzlDMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0ZFSW1h
Z2VFbGVtZW50LmNwcCAqLywKIAkJCQlCMkZBM0M5RDBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdG
RUltYWdlRWxlbWVudC5oICovLAogCQkJCUIyRkEzQzlFMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NW
R0ZFTWVyZ2VFbGVtZW50LmNwcCAqLywKQEAgLTEwNTc4LDcgKzEwNjU5LDE3IEBACiAJCUIyMjI3
N0NBMEQwMEJGMUUwMDcxQjc4MiAvKiBzdmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCUIyNjJCODAzMEQxRjMyRDAwMDE1OEYwOSAvKiBTVkdGb250LmNw
cCAqLywKIAkJCQlCMjU1OTg4NjBEMDBEOEI4MDBCQjgyNUMgLyogZ3JhcGhpY3MgKi8sCisJCQkJ
QjJBMUYyQTEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCAqLywKKwkJCQlC
MkExRjJBMjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCAqLywKKwkJCQlCMkEx
RjJBMzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaWRsICovLAorCQkJCUIyQTFG
MkE0MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3BwICovLAorCQkJCUIyQTFG
MkE1MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuaCAqLywKKwkJCQlCMkExRjJB
NjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmlkbCAqLywKKwkJCQlCMkExRjJB
NzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgKi8sCisJCQkJ
QjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLywK
KwkJCQlCMkExRjJBOTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5p
ZGwgKi8sCiAJCQkJQjIyMjc3Q0IwRDAwQkYxRjAwNzFCNzgyIC8qIENvbG9yRGlzdGFuY2UuY3Bw
ICovLAogCQkJCUIyMjI3N0NDMEQwMEJGMUYwMDcxQjc4MiAvKiBDb2xvckRpc3RhbmNlLmggKi8s
CiAJCQkJQjIyMjc3Q0QwRDAwQkYxRjAwNzFCNzgyIC8qIEdyYWRpZW50QXR0cmlidXRlcy5oICov
LApAQCAtMTE5NDAsNiArMTIwMzEsOCBAQAogCQkJCTkzQ0E0Q0EyMDlERjkzRkEwMERGODY3NyAv
KiBzdmcuY3NzICovLAogCQkJCUIyMjI3QjAwMEQwMEJGRjEwMDcxQjc4MiAvKiBTVkdDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovLAogCQkJCUIyMjI3QjAxMEQwMEJGRjEwMDcxQjc4
MiAvKiBTVkdDU1NQYXJzZXIuY3BwICovLAorCQkJCUIyRDE5QTQ2MENFRjlEQzEwMDBFMDMzQiAv
KiBTVkdDU1NGb250RmFjZS5jcHAgKi8sCisJCQkJQjJEMTlBNDcwQ0VGOURDMTAwMEUwMzNCIC8q
IFNWR0NTU0ZvbnRGYWNlLmggKi8sCiAJCQkJQjIyMjdCMDIwRDAwQkZGMTAwNzFCNzgyIC8qIFNW
R0NTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCiAJCQkJQjIyMjdCMDMwRDAwQkZGMTAwNzFCNzgyIC8q
IFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwICovLAogCQkJCUIyMjI3QjA0MEQwMEJGRjEwMDcxQjc4
MiAvKiBTVkdDU1NWYWx1ZUtleXdvcmRzLmluICovLApAQCAtMTQxMzcsNiArMTQyMzAsMTkgQEAK
IAkJCQlCQ0IxNkMyRDA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzMwOUUxRTA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQjJBMUYyQUIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlCMkExRjJBRTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMkExRjJCMTBDRUYwQUJGMDA0NDJGNkEgLyog
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4MjYwQ0VG
MEMwNzAwRDM5RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUIy
N0IyODI4MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQjI3QjI4MkEwQ0VGMEMwNzAwRDM5RDU0IC8qIEpTU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4MzgwQ0VGMEMzNjAwRDM5RDU0IC8qIERP
TVNWR0ZvbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMjdCMjgzQTBDRUYwQzM2MDBE
MzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QjI3QjI4M0IwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQjI3QjI4M0QwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR0dseXBoRWxlbWVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlCMjdCMjgzRTBDRUYwQzM2MDBEMzlENTQg
LyogRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjI3QjI4
NDAwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQjJEMTlBNDkwQ0VGOURDMTAwMEUwMzNCIC8qIFNWR0NTU0Zv
bnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EzNzkxNTBEMTYzRTU1MDBCNzkzRDYgLyog
SlNMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMzc5M0YwRDE2NDdFMDAwQjc5M0Q2
IC8qIEpTTG9jYXRpb24ubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGQTYyMTBEMUYwQ0JE
MDBEQjIyQTkgLyogRHluYW1pY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTE0MTgxLDcg
KzE0Mjg3LDYgQEAKIAkJMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0
ICovID0gewogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3Qg
PSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhj
b2RlIDIuNCI7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9u
cyA9ICgKIAkJCQlFbmdsaXNoLApAQCAtMTQ0MDQsNiArMTQ1MDksMTEgQEAKIAkJCQlCMjhDNkEy
RjBEMDBDNDQ4MDAzMzRBQTQgLyogeGxpbmthdHRycy5pbiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
MUFCMUFFN0EwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5wbmcgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tT3V0Q3Vyc29yLnBuZyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQjJBMUYyQUMwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRF
bGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJBMUYyQUYwQ0VGMEFCRjAwNDQyRjZB
IC8qIFNWR0dseXBoRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyQTFGMkIyMENF
RjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJQjI3QjI4MzYwQ0VGMEMzNjAwRDM5RDU0IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4g
aW4gUmVzb3VyY2VzICovLAorCQkJCUIyN0IyODM3MENFRjBDMzYwMEQzOUQ1NCAvKiBDU1NWYWx1
ZUtleXdvcmRzLmluIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE1ODU2LDYgKzE1OTY2LDE3IEBACiAJ
CQkJOTMzMDlERjcwOTlFNjQ5MjAwNTZFNTgxIC8qIG1hcmt1cC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzMwOUUxRDA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0EzNzkxNDBEMTYzRTU1MDBCNzkzRDYgLyogSlNMb2NhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCMkExRjJBQTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjJBMUYyQUQwQ0VGMEFCRjAwNDQyRjZBIC8q
IFNWR0dseXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCMkExRjJCMDBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCMjdCMjgyNTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlCMjdCMjgyNzBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjI3QjI4MjkwQ0VGMEMwNzAwRDM5RDU0IC8qIEpT
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCMjdCMjgzOTBD
RUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHRm9udEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlCMjdCMjgzQzBDRUYwQzM2MDBEMzlENTQgLyogRE9NU1ZHR2x5cGhFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQjI3QjI4M0YwQ0VGMEMzNjAwRDM5RDU0IC8qIERPTVNWR01pc3NpbmdH
bHlwaEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlCMkQxOUE0ODBDRUY5REMxMDAwRTAz
M0IgLyogU1ZHQ1NTRm9udEZhY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjI2MkI4MDQwRDFG
MzJEMDAwMTU4RjA5IC8qIFNWR0ZvbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MjAw
RDFGMENCRDAwREIyMkE5IC8qIER5bmFtaWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM3RkE2ODIwRDFGMTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTcsMTggKzU3LDIxIEBACiAjaW5jbHVkZSAiSlNTVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNTVkdGaWx0ZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkpTU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU1NWR0ZvbnRGYWNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdGb250RmFjZU5hbWVFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNTVkdGb250RmFjZVNyY0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJKU1NW
R0dseXBoRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSlNTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR0xpbmVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdNYXJrZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdN
YXNrRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHTWV0YWRhdGFFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNTVkdQYXRoRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkpTU1ZHUGF0dGVybkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR1Bv
bHlnb25FbGVtZW50LmgiCkBAIC0xMjcsMTggKzEzMCwyMSBAQAogI2luY2x1ZGUgIlNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdGb250RWxlbWVudC5o
IgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNl
Rm9ybWF0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdGb250RmFjZVNyY0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZVVy
aUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0dseXBo
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0xpbmVFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHTWFya2VyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR01hc2tFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHTWV0YWRhdGFFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUGF0
dGVybkVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdQb2x5Z29uRWxlbWVudC5oIgpAQCAtMTg1LDEx
ICsxOTEsMTQgQEAgdHlwZWRlZiBKU05vZGUqICgqQ3JlYXRlU1ZHRWxlbWVudFdyYXBwZQogI2lm
IEVOQUJMRShTVkdfRk9OVFMpCiAjZGVmaW5lIEZPUl9FQUNIX0ZPTlRfVEFHKG1hY3JvKSBcCiAg
ICAgbWFjcm8oZGVmaW5pdGlvbl9zcmMsIERlZmluaXRpb25TcmMpIFwKKyAgICBtYWNybyhmb250
LCBGb250KSBcCiAgICAgbWFjcm8oZm9udF9mYWNlLCBGb250RmFjZSkgXAogICAgIG1hY3JvKGZv
bnRfZmFjZV9mb3JtYXQsIEZvbnRGYWNlRm9ybWF0KSBcCiAgICAgbWFjcm8oZm9udF9mYWNlX25h
bWUsIEZvbnRGYWNlTmFtZSkgXAogICAgIG1hY3JvKGZvbnRfZmFjZV9zcmMsIEZvbnRGYWNlU3Jj
KSBcCiAgICAgbWFjcm8oZm9udF9mYWNlX3VyaSwgRm9udEZhY2VVcmkpIFwKKyAgICBtYWNybyhn
bHlwaCwgR2x5cGgpIFwKKyAgICBtYWNybyhtaXNzaW5nX2dseXBoLCBNaXNzaW5nR2x5cGgpCiAg
ICAgLy8gZW5kIG9mIG1hY3JvCiAgICAgCiAjZWxzZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCShy
ZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIyOCwxMSArMjI4LDEzIEBAIHN0YXRpYyB2b2lkIGNyZWF0ZUVsZW1lbnRDbGFz
c01hcCgpCiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpmaWx0ZXJUYWcsIFtET01TVkdG
aWx0ZXJFbGVtZW50IGNsYXNzXSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAg
IGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6Zm9udFRhZywgW0RPTVNWR0ZvbnRFbGVtZW50IGNs
YXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpmb250X2ZhY2VUYWcsIFtET01T
VkdGb250RmFjZUVsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6
OmZvbnRfZmFjZV9mb3JtYXRUYWcsIFtET01TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQgY2xhc3Nd
KTsKICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OmZvbnRfZmFjZV9uYW1lVGFnLCBbRE9N
U1ZHRm9udEZhY2VOYW1lRWxlbWVudCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdO
YW1lczo6Zm9udF9mYWNlX3NyY1RhZywgW0RPTVNWR0ZvbnRGYWNlU3JjRWxlbWVudCBjbGFzc10p
OwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6Zm9udF9mYWNlX3VyaVRhZywgW0RPTVNW
R0ZvbnRGYWNlVXJpRWxlbWVudCBjbGFzc10pOworICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1l
czo6Z2x5cGhUYWcsIFtET01TVkdHbHlwaEVsZW1lbnQgY2xhc3NdKTsKICNlbmRpZgogICAgIGFk
ZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6Z1RhZywgW0RPTVNWR0dFbGVtZW50IGNsYXNzXSk7CiAg
ICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjppbWFnZVRhZywgW0RPTVNWR0ltYWdlRWxlbWVu
dCBjbGFzc10pOwpAQCAtMjQxLDYgKzI0Myw5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZUVsZW1lbnRD
bGFzc01hcCgpCiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjptYXJrZXJUYWcsIFtET01T
VkdNYXJrZXJFbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVzOjpt
YXNrVGFnLCBbRE9NU1ZHTWFza0VsZW1lbnQgY2xhc3NdKTsKICAgICBhZGRFbGVtZW50Q2xhc3Mo
U1ZHTmFtZXM6Om1ldGFkYXRhVGFnLCBbRE9NU1ZHTWV0YWRhdGFFbGVtZW50IGNsYXNzXSk7Cisj
aWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6Om1pc3Np
bmdfZ2x5cGhUYWcsIFtET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50IGNsYXNzXSk7CisjZW5kaWYK
ICAgICBhZGRFbGVtZW50Q2xhc3MoU1ZHTmFtZXM6OnBhdGhUYWcsIFtET01TVkdQYXRoRWxlbWVu
dCBjbGFzc10pOwogICAgIGFkZEVsZW1lbnRDbGFzcyhTVkdOYW1lczo6cGF0dGVyblRhZywgW0RP
TVNWR1BhdHRlcm5FbGVtZW50IGNsYXNzXSk7CiAgICAgYWRkRWxlbWVudENsYXNzKFNWR05hbWVz
Ojpwb2x5Z29uVGFnLCBbRE9NU1ZHUG9seWdvbkVsZW1lbnQgY2xhc3NdKTsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5oCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiArMTcxLDcg
QEAKICNpbXBvcnQgIkRPTVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW50ZXJu
YWwuaCIKICNpbXBvcnQgIkRPTVNWR0N1cnNvckVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NU1ZHRGVmc0VsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHRGVmaW5pdGlvblNy
Y0VsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHRGVzY0VsZW1lbnRJbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NU1ZHRG9jdW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHRWxl
bWVudEludGVybmFsLmgiCkBAIC0yMDAsOCArMjAxLDE1IEBACiAjaW1wb3J0ICJET01TVkdGRVRp
bGVFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnRJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHRmlsdGVyRWxlbWVudEludGVybmFsLmgiCisjaW1w
b3J0ICJET01TVkdGb250RWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01TVkdGb250RmFj
ZUVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnRJbnRlcm5hbC5o
IgorI2ltcG9ydCAiRE9NU1ZHRm9udEZhY2VTcmNFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTVNWR0ZvbnRGYWNlVXJpRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdHRWxlbWVudEludGVy
bmFsLmgiCisjaW1wb3J0ICJET01TVkdHbHlwaEVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NU1ZHR3JhZGllbnRFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR0ltYWdlRWxl
bWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01TVkdMZW5ndGhJbnRlcm5hbC5oIgpAQCAtMjEy
LDYgKzIyMCw3IEBACiAjaW1wb3J0ICJET01TVkdNYXNrRWxlbWVudEludGVybmFsLmgiCiAjaW1w
b3J0ICJET01TVkdNYXRyaXhJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHTWV0YWRhdGFFbGVt
ZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnRJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NU1ZHTnVtYmVySW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVNWR051
bWJlckxpc3RJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU1ZHUGFpbnRJbnRlcm5hbC5oIgpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWRy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01TVkcuaAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NU1ZHLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvRE9NU1ZHRmlsdGVyRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RE9NU1ZHRml0VG9WaWV3Qm94Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvbnRFbGVtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0ZvbnRGYWNlRWxlbWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9ET01TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RE9NU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oPgpAQCAtOTEsNiArOTIsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9ET01TVkdGb250RmFjZVVyaUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9N
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHR0VsZW1l
bnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHR2x5cGhFbGVtZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0RPTVNWR0dyYWRpZW50RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdJ
bWFnZUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTGFuZ1NwYWNlLmg+CkBAIC0x
MDMsNiArMTA1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHTWFza0VsZW1lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRE9NU1ZHTWF0cml4Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR01l
dGFkYXRhRWxlbWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR051bWJlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9ET01TVkdOdW1iZXJMaXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR1BhaW50Lmg+Cklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmgJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE2IEBAIGNsYXNzIEZvbnREZXNjcmlw
dGlvbjsKIGNsYXNzIENTU0ZvbnRGYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTRm9udEZhY2U+
IHsKIHB1YmxpYzoKICAgICBDU1NGb250RmFjZShDU1NGb250U2VsZWN0b3IqKTsKLSAgICB+Q1NT
Rm9udEZhY2UoKTsKKyAgICB2aXJ0dWFsIH5DU1NGb250RmFjZSgpOwogCiAgICAgYm9vbCBpc0xv
YWRlZCgpIGNvbnN0OwotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZFNvdXJjZShDU1NGb250RmFjZVNvdXJj
ZSopOworICAgIHZpcnR1YWwgdm9pZCBhZGRTb3VyY2UoQ1NTRm9udEZhY2VTb3VyY2UqKTsKIAog
ICAgIHZvaWQgZm9udExvYWRlZChDU1NGb250RmFjZVNvdXJjZSopOwogCi0gICAgRm9udERhdGEq
IGdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNJdGFsaWMpOworICAgIHZpcnR1YWwgRm9udERhdGEqIGdldEZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNJdGFsaWMpOwogCiBwcml2YXRlOgogICAgIFZlY3RvcjxDU1NGb250RmFjZVNvdXJjZSo+IG1f
c291cmNlczsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmgJKHJldmlzaW9uIDI5MDEx
KQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSwxMCArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTVkdGb250
RmFjZUVsZW1lbnQ7CisKIGNsYXNzIENTU0ZvbnRGYWNlU3JjVmFsdWUgOiBwdWJsaWMgQ1NTVmFs
dWUgewogcHVibGljOgogICAgIENTU0ZvbnRGYWNlU3JjVmFsdWUoY29uc3QgU3RyaW5nJiByZXNv
dXJjZSwgYm9vbCBsb2NhbCkKLSAgICA6bV9yZXNvdXJjZShyZXNvdXJjZSksIG1faXNMb2NhbChs
b2NhbCkge30KKyAgICA6bV9yZXNvdXJjZShyZXNvdXJjZSksIG1faXNMb2NhbChsb2NhbCkKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgICwgbV9mb250RmFjZUVsZW1lbnQoMCkKKyNlbmRpZiAg
ICAKKyAgICB7fQogICAgIHZpcnR1YWwgfkNTU0ZvbnRGYWNlU3JjVmFsdWUoKSB7fTsKIAogICAg
IGNvbnN0IFN0cmluZyYgcmVzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlOyB9CkBA
IC00NCwxMyArNTAsMjEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9ybWF0KGNvbnN0IFN0cmlu
ZyYgZm9ybWF0KSB7IG1fZm9ybWF0ID0gZm9ybWF0OyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVk
Rm9ybWF0KCkgY29uc3Q7Ci0gICAgCisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIFNWR0Zv
bnRGYWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9mb250
RmFjZUVsZW1lbnQ7IH0KKyAgICB2b2lkIHNldFNWR0ZvbnRGYWNlRWxlbWVudChTVkdGb250RmFj
ZUVsZW1lbnQqIGVsZW1lbnQpIHsgbV9mb250RmFjZUVsZW1lbnQgPSBlbGVtZW50OyB9CisjZW5k
aWYKKwogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAg
ICBTdHJpbmcgbV9yZXNvdXJjZTsKICAgICBTdHJpbmcgbV9mb3JtYXQ7CiAgICAgYm9vbCBtX2lz
TG9jYWw7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBTVkdGb250RmFjZUVsZW1lbnQqIG1f
Zm9udEZhY2VFbGVtZW50OworI2VuZGlmCiB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5jcHAJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAgICAgIChDKSAyMDA3
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNCw5ICsyNSwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKIAorI2luY2x1ZGUgIkNTU0ZvbnRT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKICNpbmNsdWRlICJDU1NGb250RmFjZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5o
IgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU291cmNlLmgiCkBAIC00NCw2ICs0NiwxMyBAQAogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKKyNpZiBFTkFC
TEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVkZSAiU1ZHQ1NTRm9u
dEZhY2UuaCIKKyNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdO
YW1lcy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ1NTRm9udFNlbGVjdG9y
OjpDU1NGb250U2VsZWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtMTEyLDE3ICsxMjEsMzEg
QEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjbwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgLy8gRWFjaCBpdGVtIGlu
IHRoZSBzcmMgcHJvcGVydHkncyBsaXN0IGlzIGEgc2luZ2xlIENTU0ZvbnRGYWNlU291cmNlLiBQ
dXQgdGhlbSBhbGwgaW50byBhIENTU0ZvbnRGYWNlLgotICAgIENTU0ZvbnRGYWNlKiBmb250RmFj
ZSA9IG5ldyBDU1NGb250RmFjZSh0aGlzKTsKLSAgICAKKyAgICBDU1NGb250RmFjZSogZm9udEZh
Y2UgPSAwOworCiAgICAgaW50IGk7CiAgICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpc3QtPmxlbmd0
aCgpOworCiAgICAgYm9vbCBmb3VuZExvY2FsID0gZmFsc2U7CisKKyNpZiBFTkFCTEUoU1ZHX0ZP
TlRTKQorICAgIFNWR0ZvbnRGYWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gMDsKKyNl
bmRpZgorCiAgICAgZm9yIChpID0gMDsgaSA8IHNyY0xlbmd0aDsgaSsrKSB7CiAgICAgICAgIC8v
IEFuIGl0ZW0gaW4gdGhlIGxpc3QgZWl0aGVyIHNwZWNpZmllcyBhIHN0cmluZyAobG9jYWwgZm9u
dCBuYW1lKSBvciBhIFVSTCAocmVtb3RlIGZvbnQgdG8gZG93bmxvYWQpLgogICAgICAgICBDU1NG
b250RmFjZVNyY1ZhbHVlKiBpdGVtID0gc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VTcmNWYWx1ZSo+
KHNyY0xpc3QtPml0ZW0oaSkpOwogICAgICAgICBDU1NGb250RmFjZVNvdXJjZSogc291cmNlID0g
MDsKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgICAgIC8vIFNWRyBGb250cyBzdXBwb3J0
IChpbnRlcm5hbCBmb250cywgbGl2aW5nIHdpdGhpbiB0aGUgZG9jdW1lbnQpCisgICAgICAgIHN2
Z0ZvbnRGYWNlRWxlbWVudCA9IGl0ZW0tPnN2Z0ZvbnRGYWNlRWxlbWVudCgpOworICAgICAgICBp
ZiAoc3ZnRm9udEZhY2VFbGVtZW50KQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKwogICAg
ICAgICBpZiAoIWl0ZW0tPmlzTG9jYWwoKSkgewogICAgICAgICAgICAgaWYgKGl0ZW0tPmlzU3Vw
cG9ydGVkRm9ybWF0KCkpIHsKICAgICAgICAgICAgICAgICBDYWNoZWRGb250KiBjYWNoZWRGb250
ID0gbV9kb2N1bWVudC0+ZG9jTG9hZGVyKCktPnJlcXVlc3RGb250KGl0ZW0tPnJlc291cmNlKCkp
OwpAQCAtMTM5LDYgKzE2Miw5IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1
bGUoY28KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGlmICghZm9udEZhY2Up
CisgICAgICAgICAgICBmb250RmFjZSA9IG5ldyBDU1NGb250RmFjZSh0aGlzKTsKKwogICAgICAg
ICBpZiAoc291cmNlKQogICAgICAgICAgICAgZm9udEZhY2UtPmFkZFNvdXJjZShzb3VyY2UpOwog
ICAgICAgICAKQEAgLTE0Niw4ICsxNzIsMTQgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZv
bnRGYWNlUnVsZShjbwogICAgICAgICBpZiAoZm91bmRMb2NhbCkKICAgICAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICAKLSAgICBpZiAoIWZvbnRGYWNlLT5pc1ZhbGlkKCkpIHsKKworI2lmIEVO
QUJMRShTVkdfRk9OVFMpCisgICAgQVNTRVJUKGZvbnRGYWNlIHx8IHN2Z0ZvbnRGYWNlRWxlbWVu
dCk7CisjZWxzZQorICAgIEFTU0VSVChmb250RmFjZSk7CisjZW5kaWYKKworICAgIGlmIChmb250
RmFjZSAmJiAhZm9udEZhY2UtPmlzVmFsaWQoKSkgewogICAgICAgICBkZWxldGUgZm9udEZhY2U7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODMsOSArMjE1LDE4IEBAIHZvaWQgQ1NTRm9u
dFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY28KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICghZmFtaWx5
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX2ZvbnRzLnNldChoYXNoRm9yRm9udChmYW1p
bHlOYW1lLmxvd2VyKCksIGZvbnREZXNjcmlwdGlvbi5ib2xkKCksIGZvbnREZXNjcmlwdGlvbi5p
dGFsaWMoKSksIGZvbnRGYWNlKTsKKworICAgICAgICBpZiAoZmFtaWx5TmFtZS5pc0VtcHR5KCkp
CisgICAgICAgICAgICBjb250aW51ZTsKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgICAg
IGlmIChzdmdGb250RmFjZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdmdGb250RmFj
ZUVsZW1lbnQtPmZvbnRGYW1pbHkoKSA9PSBmYW1pbHlOYW1lKTsKKyAgICAgICAgICAgIGZvbnRG
YWNlID0gbmV3IFNWR0NTU0ZvbnRGYWNlKHRoaXMsIHN2Z0ZvbnRGYWNlRWxlbWVudCk7CisgICAg
ICAgIH0KKyNlbmRpZgorCisgICAgICAgIG1fZm9udHMuc2V0KGhhc2hGb3JGb250KGZhbWlseU5h
bWUubG93ZXIoKSwgZm9udERlc2NyaXB0aW9uLmJvbGQoKSwgZm9udERlc2NyaXB0aW9uLml0YWxp
YygpKSwgZm9udEZhY2UpOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29yZS9jc3MvU1ZHQ1NTRm9u
dEZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL1NWR0NTU0ZvbnRGYWNlLmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYkNvcmUvY3NzL1NWR0NTU0ZvbnRGYWNlLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFpp
bW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyNpbmNsdWRlICJTVkdDU1NGb250RmFjZS5oIgor
CisjaW5jbHVkZSAiRm9udERhdGEuaCIKKyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNp
bmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
VkdDU1NGb250RmFjZTo6U1ZHQ1NTRm9udEZhY2UoQ1NTRm9udFNlbGVjdG9yKiBzZWxlY3Rvciwg
U1ZHRm9udEZhY2VFbGVtZW50KiBmb250RmFjZSkKKyAgICA6IENTU0ZvbnRGYWNlKHNlbGVjdG9y
KQorICAgICwgbV9mb250RmFjZUVsZW1lbnQoZm9udEZhY2UpCisgICAgLCBtX2ZvbnREYXRhKDAp
Cit7CisgICAgQVNTRVJUKGZvbnRGYWNlKTsKK30KKworU1ZHQ1NTRm9udEZhY2U6On5TVkdDU1NG
b250RmFjZSgpCit7CisgICAgZGVsZXRlIG1fZm9udERhdGE7Cit9CisKK2Jvb2wgU1ZHQ1NTRm9u
dEZhY2U6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorICAgIAordm9p
ZCBTVkdDU1NGb250RmFjZTo6YWRkU291cmNlKENTU0ZvbnRGYWNlU291cmNlKikKK3sKKyAgICAv
LyBuby1vcAorfQorCitGb250RGF0YSogU1ZHQ1NTRm9udEZhY2U6OmdldEZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljSXRhbGljKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIC8vIFRPRE86IEV2ZW50dWFsbHkgd2UnbGwgc3dpdGNoIHRvIENTU0ZvbnRG
YWNlU291cmNlIGhlcmUsIHdoaWNoIGhhbmRsZXMgdGhlIGNhY2hpbmcgZm9yIHVzLgorICAgIC8v
IChXaGVuIGltcGxlbWVudGluZyBzdXBwb3J0IGZvciBleHRlcm5hbCBTVkcgRm9udHMgdGhpcyB3
ZSdsbCBkZWNpZGUgYWJvdXQgdGhhdC4pCisgICAgaWYgKCFtX2ZvbnREYXRhKQorICAgICAgICBt
X2ZvbnREYXRhID0gbV9mb250RmFjZUVsZW1lbnQtPmNyZWF0ZUZvbnREYXRhKGZvbnREZXNjcmlw
dGlvbik7CisKKyAgICByZXR1cm4gbV9mb250RGF0YTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6
IFdlYkNvcmUvY3NzL1NWR0NTU0ZvbnRGYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3Mv
U1ZHQ1NTRm9udEZhY2UuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvY3NzL1NWR0NTU0ZvbnRG
YWNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgU1ZHQ1NTRm9udEZhY2VfaAorI2RlZmluZSBTVkdDU1NGb250RmFjZV9oCisKKyNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50OworCitjbGFzcyBTVkdDU1NGb250
RmFjZSA6IHB1YmxpYyBDU1NGb250RmFjZSB7CitwdWJsaWM6CisgICAgU1ZHQ1NTRm9udEZhY2Uo
Q1NTRm9udFNlbGVjdG9yKiwgU1ZHRm9udEZhY2VFbGVtZW50Kik7CisgICAgdmlydHVhbCB+U1ZH
Q1NTRm9udEZhY2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIGFkZFNvdXJjZShDU1NGb250RmFjZVNvdXJjZSopOworCisgICAgdmlydHVh
bCBGb250RGF0YSogZ2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50
aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYyk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRy
PFNWR0ZvbnRGYWNlRWxlbWVudD4gbV9mb250RmFjZUVsZW1lbnQ7CisgICAgRm9udERhdGEqIG1f
Zm9udERhdGE7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQorI2VuZGlm
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9uIDI5MDExKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA3
LDEyICs1MDcsMTIgQEAgaW50IEZvbnQ6OndpZHRoKGNvbnN0IFRleHRSdW4mIHJ1bikgY29ucwog
CiBpbnQgRm9udDo6YXNjZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gcHJpbWFyeUZvbnQoKS0+
YXNjZW50KCk7CisgICAgcmV0dXJuIHByaW1hcnlGb250KCktPmFzY2VudChzaXplKCkpOwogfQog
CiBpbnQgRm9udDo6ZGVzY2VudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHByaW1hcnlGb250KCkt
PmRlc2NlbnQoKTsKKyAgICByZXR1cm4gcHJpbWFyeUZvbnQoKS0+ZGVzY2VudChzaXplKCkpOwog
fQogCiBpbnQgRm9udDo6bGluZVNwYWNpbmcoKSBjb25zdApAQCAtNTQ4LDYgKzU0OCwxMyBAQCB2
b2lkIEZvbnQ6OnNldENvZGVQYXRoKENvZGVQYXRoIHApCiAKIGJvb2wgRm9udDo6Y2FuVXNlR2x5
cGhDYWNoZShjb25zdCBUZXh0UnVuJiBydW4pIGNvbnN0CiB7CisjaWYgRU5BQkxFKFNWR19GT05U
UykKKyAgICAvLyBTVkcgZm9udHMgZG9uJ3Qgc3VwcG9ydCBhbnkgY2FjaGluZyBmb3Igbm93LCB3
ZSBwcmV0ZW5kIGl0IGhlcmUgdG8gYXNzdXJlIFNWRworICAgIC8vIGZvbnQgZHJhd2luZyBhbHdh
eXMgZW5kcyB1cCBpbiB0aGUgJ3NpbXBsZSBjb2RlIHBhdGgnLCB3aGVuIFNWRyBmb250cyBhcmUg
dXNlZC4KKyAgICBpZiAocHJpbWFyeUZvbnQoKSAmJiBwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKwogICAgIHN3aXRjaCAoY29kZVBhdGgp
IHsKICAgICAgICAgY2FzZSBBdXRvOgogICAgICAgICAgICAgYnJlYWs7CkBAIC02NTQsNyArNjYx
LDEzIEBAIHZvaWQgRm9udDo6ZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGUKICAgICAgICAg
Y29uc3QgRm9udERhdGEqIG5leHRGb250RGF0YSA9IGdseXBoQnVmZmVyLmZvbnREYXRhQXQobmV4
dEdseXBoKTsKICAgICAgICAgRmxvYXRTaXplIG5leHRPZmZzZXQgPSBnbHlwaEJ1ZmZlci5vZmZz
ZXRBdChuZXh0R2x5cGgpOwogICAgICAgICBpZiAobmV4dEZvbnREYXRhICE9IGZvbnREYXRhIHx8
IG5leHRPZmZzZXQgIT0gb2Zmc2V0KSB7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAgICAg
ICAgIGlmIChmb250RGF0YS0+aXNTVkdGb250KCkpCisgICAgICAgICAgICAgICAgZHJhd0dseXBo
c1dpdGhTVkdGb250KGNvbnRleHQsIHJ1bi5yZWZlcmVuY2luZ1JlbmRlck9iamVjdCgpLCBmb250
RGF0YSwgZ2x5cGhCdWZmZXIsIGxhc3RGcm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwgc3RhcnRQ
b2ludCk7CisgICAgICAgICAgICBlbHNlCisjZW5kaWYKICAgICAgICAgICAgIGRyYXdHbHlwaHMo
Y29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBoIC0gbGFz
dEZyb20sIHN0YXJ0UG9pbnQpOworCiAgICAgICAgICAgICBsYXN0RnJvbSA9IG5leHRHbHlwaDsK
ICAgICAgICAgICAgIGZvbnREYXRhID0gbmV4dEZvbnREYXRhOwogICAgICAgICAgICAgb2Zmc2V0
ID0gbmV4dE9mZnNldDsKQEAgLTY2Myw2ICs2NzYsMTIgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhC
dWZmZXIoR3JhcGhpY3NDb250ZQogICAgICAgICBuZXh0WCArPSBnbHlwaEJ1ZmZlci5hZHZhbmNl
QXQobmV4dEdseXBoKTsKICAgICAgICAgbmV4dEdseXBoKys7CiAgICAgfQorCisjaWYgRU5BQkxF
KFNWR19GT05UUykKKyAgICBpZiAoZm9udERhdGEtPmlzU1ZHRm9udCgpKQorICAgICAgICBkcmF3
R2x5cGhzV2l0aFNWR0ZvbnQoY29udGV4dCwgcnVuLnJlZmVyZW5jaW5nUmVuZGVyT2JqZWN0KCks
IGZvbnREYXRhLCBnbHlwaEJ1ZmZlciwgbGFzdEZyb20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBz
dGFydFBvaW50KTsKKyAgICBlbHNlCisjZW5kaWYKICAgICBkcmF3R2x5cGhzKGNvbnRleHQsIGZv
bnREYXRhLCBnbHlwaEJ1ZmZlciwgbGFzdEZyb20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBzdGFy
dFBvaW50KTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHJldmlzaW9uIDI5
MDExKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgR2x5cGhCdWZmZXI7CiBjbGFzcyBHbHlwaFBhZ2VUcmVl
Tm9kZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFBvaW50OworY2xhc3MgUmVu
ZGVyT2JqZWN0OwogCiBzdHJ1Y3QgR2x5cGhEYXRhOwogCkBAIC02Myw2ICs2NCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX2FwcGx5UnVuUm91bmRpbmcoYXBwbHlSdW5Sb3VuZGluZykKICAgICAg
ICAgLCBtX2FwcGx5V29yZFJvdW5kaW5nKGFwcGx5V29yZFJvdW5kaW5nKQogICAgICAgICAsIG1f
ZGlzYWJsZVNwYWNpbmcoZmFsc2UpCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAgICAgLCBt
X3JlZmVyZW5jaW5nUmVuZGVyT2JqZWN0KDApCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC03
OCw2ICs4Miw5IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FwcGx5UnVuUm91bmRpbmcoYXBwbHlS
dW5Sb3VuZGluZykKICAgICAgICAgLCBtX2FwcGx5V29yZFJvdW5kaW5nKGFwcGx5V29yZFJvdW5k
aW5nKQogICAgICAgICAsIG1fZGlzYWJsZVNwYWNpbmcoZmFsc2UpCisjaWYgRU5BQkxFKFNWR19G
T05UUykKKyAgICAgICAgLCBtX3JlZmVyZW5jaW5nUmVuZGVyT2JqZWN0KDApCisjZW5kaWYKICAg
ICB7CiAgICAgfQogCkBAIC0xMDMsNyArMTEwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Fi
bGVSb3VuZGluZ0hhY2tzKCkgeyBtX2FwcGx5UnVuUm91bmRpbmcgPSBtX2FwcGx5V29yZFJvdW5k
aW5nID0gZmFsc2U7IH0KICAgICB2b2lkIHNldFJUTChib29sIGIpIHsgbV9ydGwgPSBiOyB9CiAg
ICAgdm9pZCBzZXREaXJlY3Rpb25hbE92ZXJyaWRlKGJvb2wgb3ZlcnJpZGUpIHsgbV9kaXJlY3Rp
b25hbE92ZXJyaWRlID0gb3ZlcnJpZGU7IH0KLSAgICAKKworI2lmIEVOQUJMRShTVkdfRk9OVFMp
CisgICAgUmVuZGVyT2JqZWN0KiByZWZlcmVuY2luZ1JlbmRlck9iamVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVmZXJlbmNpbmdSZW5kZXJPYmplY3Q7IH0KKyAgICB2b2lkIHNldFJlZmVyZW5jaW5n
UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0KSB7IG1fcmVmZXJlbmNpbmdSZW5kZXJP
YmplY3QgPSBvYmplY3Q7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGNvbnN0IFVDaGFyKiBt
X2NoYXJhY3RlcnM7CiAgICAgaW50IG1fbGVuOwpAQCAtMTE2LDYgKzEyOCwxMCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9hcHBseVJ1blJvdW5kaW5nOwogICAgIGJvb2wgbV9hcHBseVdvcmRSb3Vu
ZGluZzsKICAgICBib29sIG1fZGlzYWJsZVNwYWNpbmc7CisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRT
KQorICAgIFJlbmRlck9iamVjdCogbV9yZWZlcmVuY2luZ1JlbmRlck9iamVjdDsKKyNlbmRpZgog
fTsKIAogY2xhc3MgRm9udCB7CkBAIC0xOTksNiArMjE1LDkgQEAgcHJpdmF0ZToKICAgICBib29s
IGNhblVzZUdseXBoQ2FjaGUoY29uc3QgVGV4dFJ1biYpIGNvbnN0OwogICAgIHZvaWQgZHJhd1Np
bXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9p
bnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdHbHlwaHMoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgRm9udERhdGEqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9t
LCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRT
KQorICAgIHZvaWQgZHJhd0dseXBoc1dpdGhTVkdGb250KEdyYXBoaWNzQ29udGV4dCosIFJlbmRl
ck9iamVjdCosIGNvbnN0IEZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwg
aW50IHRvLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CisjZW5kaWYKICAgICB2b2lkIGRyYXdH
bHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgdm9pZCBkcmF3Q29tcGxleFRl
eHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgR2x5cGhCdWZmZXIqKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERhdGEuY3BwCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIs
MTkgQEAKIAogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKKyNpZiBFTkFCTEUoU1ZHX0ZP
TlRTKQorI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogRm9udERhdGE6OkZvbnREYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IGYsIGJvb2wgY3VzdG9tRm9udCwgYm9vbCBsb2FkaW5nKQogICAgIDogbV9mb250KGYpCiAgICAg
LCBtX3RyZWF0QXNGaXhlZFBpdGNoKGZhbHNlKQorI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAg
LCBtX2lzU1ZHRm9udChmYWxzZSkKKyAgICAsIG1fc3ZnRm9udEZhY2UoMCkKKyNlbmRpZgogICAg
ICwgbV9pc0N1c3RvbUZvbnQoY3VzdG9tRm9udCkKICAgICAsIG1faXNMb2FkaW5nKGxvYWRpbmcp
CiAgICAgLCBtX3NtYWxsQ2Fwc0ZvbnREYXRhKDApCkBAIC04OSw2ICs5NywzMCBAQCBGb250RGF0
YTo6fkZvbnREYXRhKCkKICAgICAvLyBpdCB3aWxsIGJlIGRlbGV0ZWQgdGhlbiwgc28gd2UgZG9u
J3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlLgogfQogCitpbnQgRm9udERhdGE6OmFzY2VudChm
bG9hdCBmb250U2l6ZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIGlmICht
X2lzU1ZHRm9udCkgeworICAgICAgICBBU1NFUlQobV91bml0c1BlckVtID4gMCk7CisgICAgICAg
IHJldHVybiBtX2FzY2VudCAqIGZvbnRTaXplIC8gbV91bml0c1BlckVtOworICAgIH0KKyNlbmRp
ZgorCisgICAgcmV0dXJuIG1fYXNjZW50OworfQorCitpbnQgRm9udERhdGE6OmRlc2NlbnQoZmxv
YXQgZm9udFNpemUpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBpZiAobV9p
c1NWR0ZvbnQpIHsKKyAgICAgICAgQVNTRVJUKG1fdW5pdHNQZXJFbSA+IDApOworICAgICAgICBy
ZXR1cm4gbV9kZXNjZW50ICogZm9udFNpemUgLyBtX3VuaXRzUGVyRW07CisgICAgfQorI2VuZGlm
CisKKyAgICByZXR1cm4gbV9kZXNjZW50OworfQorCiBmbG9hdCBGb250RGF0YTo6d2lkdGhGb3JH
bHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBmbG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dp
ZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERhdGEuaAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIEZvbnRQ
bGF0Zm9ybURhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBXaWR0aE1hcDsKIAorI2lm
IEVOQUJMRShTVkdfRk9OVFMpCitjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQ7CisjZW5kaWYKKwog
ZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQaXRjaCwgVmFyaWFibGVQaXRjaCB9Owog
CiBjbGFzcyBGb250RGF0YSA6IE5vbmNvcHlhYmxlIHsKQEAgLTU3LDggKzYxLDggQEAgcHVibGlj
OgogICAgIEZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbikgY29uc3Q7CiAKICAgICAvLyB2ZXJ0aWNhbCBtZXRyaWNzCi0gICAg
aW50IGFzY2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXNjZW50OyB9Ci0gICAgaW50IGRlc2NlbnQo
KSBjb25zdCB7IHJldHVybiBtX2Rlc2NlbnQ7IH0KKyAgICBpbnQgYXNjZW50KGZsb2F0IGZvbnRT
aXplKSBjb25zdDsKKyAgICBpbnQgZGVzY2VudChmbG9hdCBmb250U2l6ZSkgY29uc3Q7CiAgICAg
aW50IGxpbmVTcGFjaW5nKCkgY29uc3QgeyByZXR1cm4gbV9saW5lU3BhY2luZzsgfQogICAgIGlu
dCBsaW5lR2FwKCkgY29uc3QgeyByZXR1cm4gbV9saW5lR2FwOyB9CiAgICAgZmxvYXQgeEhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1feEhlaWdodDsgfQpAQCAtNzIsNiArNzYsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgZGV0ZXJtaW5lUGl0Y2goKTsKICAgICBQaXRjaCBwaXRjaCgpIGNvbnN0IHsg
cmV0dXJuIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPyBGaXhlZFBpdGNoIDogVmFyaWFibGVQaXRjaDsg
fQogCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBib29sIGlzU1ZHRm9udCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNTVkdGb250OyB9CisgICAgU1ZHRm9udEZhY2VFbGVtZW50KiBzdmdGb250RmFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnRm9udEZhY2UuZ2V0KCk7IH0KKyNlbmRpZgorCiAgICAg
Ym9vbCBpc0N1c3RvbUZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzQ3VzdG9tRm9udDsgfQogICAg
IGJvb2wgaXNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRpbmc7IH0KIApAQCAtMTI0
LDYgKzEzMywxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIG1fdHJlYXRBc0ZpeGVkUGl0Y2g7CiAK
KyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIGJvb2wgbV9pc1NWR0ZvbnQ7CisgICAgUmVmUHRy
PFNWR0ZvbnRGYWNlRWxlbWVudD4gbV9zdmdGb250RmFjZTsgCisjZW5kaWYKKwogICAgIGJvb2wg
bV9pc0N1c3RvbUZvbnQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBhcmUgY3VzdG9tIGZvbnQgbG9h
ZGVkIHZpYSBAZm9udC1mYWNlCiAgICAgYm9vbCBtX2lzTG9hZGluZzsgLy8gV2hldGhlciBvciBu
b3QgdGhpcyBjdXN0b20gZm9udCBpcyBzdGlsbCBpbiB0aGUgYWN0IG9mIGxvYWRpbmcuCiAKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAJKHJldmlzaW9uIDI5MDEx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTAsNyArMTUwLDggQEAgdm9pZCBQYXRoOjphZGRBcmNUbyhjb25zdCBGbG9hdFBv
aW50JiBwMQogCiB2b2lkIFBhdGg6OmNsb3NlU3VicGF0aCgpCiB7Ci0gICAgQ0dQYXRoQ2xvc2VT
dWJwYXRoKG1fcGF0aCk7CisgICAgaWYgKCFDR1BhdGhJc0VtcHR5KG1fcGF0aCkpIC8vIHRvIHNp
bGVuY2UgYSB3YXJuaW5nIHdoZW4gdHJ5aW5nIHRvIGNsb3NlIGFuIGVtcHR5IHBhdGgKKyAgICAg
ICAgQ0dQYXRoQ2xvc2VTdWJwYXRoKG1fcGF0aCk7CiB9CiAKIHZvaWQgUGF0aDo6YWRkQXJjKGNv
bnN0IEZsb2F0UG9pbnQmIHAsIGZsb2F0IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBjbG9j
a3dpc2UpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNp
b24gMjkwMTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzYsNiArNzYsNyBAQCBTVkdSb290SW5saW5lQm94KiBTVkdJbmxpbmVU
ZXh0Qm94OjpzdmdSCiAKIGZsb2F0IFNWR0lubGluZVRleHRCb3g6OmNhbGN1bGF0ZUdseXBoV2lk
dGgoUmVuZGVyU3R5bGUqIHN0eWxlLCBpbnQgb2Zmc2V0KSBjb25zdAogeworICAgIEFTU0VSVChz
dHlsZSk7CiAgICAgcmV0dXJuIHN0eWxlLT5mb250KCkuZmxvYXRXaWR0aChzdmdUZXh0UnVuRm9y
SW5saW5lVGV4dEJveCh0ZXh0T2JqZWN0KCktPnRleHQoKS0+Y2hhcmFjdGVycygpICsgb2Zmc2V0
LCAxLCBzdHlsZSwgdGhpcywgMCkpOwogfQogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdS
b290SW5saW5lQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9TVkdSb290
SW5saW5lQm94LmNwcAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9TVkdS
b290SW5saW5lQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQzLDYgKzY0Myw3IEBAIFRleHRS
dW4gc3ZnVGV4dFJ1bkZvcklubGluZVRleHRCb3goY29uc3QKICAgICBBU1NFUlQoc3R5bGUpOwog
CiAgICAgVGV4dFJ1biBydW4oYywgbGVuLCBmYWxzZSwgc3RhdGljX2Nhc3Q8aW50Pih4UG9zKSwg
dGV4dEJveC0+dG9BZGQoKSwgdGV4dEJveC0+bV9yZXZlcnNlZCwgdGV4dEJveC0+bV9kaXJPdmVy
cmlkZSB8fCBzdHlsZS0+dmlzdWFsbHlPcmRlcmVkKCkpOworICAgIHJ1bi5zZXRSZWZlcmVuY2lu
Z1JlbmRlck9iamVjdCh0ZXh0Qm94LT50ZXh0T2JqZWN0KCktPnBhcmVudCgpKTsKIAogICAgIC8v
IFdlIGhhbmRsZSBsZXR0ZXIgJiB3b3JkIHNwYWNpbmcgb3Vyc2VsdmVzCiAgICAgcnVuLmRpc2Fi
bGVTcGFjaW5nKCk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvc3ZnL1NWR0RlZmluaXRpb25TcmNFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyNCArMSwyNSBAQAogLyoKLSBDb3B5cmlnaHQgKEMp
IDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisK
KyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpZiBFTkFCTEUoU1ZHKQorCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNp
bmNsdWRlICJTVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiU1ZHRm9udEZh
Y2VFbGVtZW50LmgiCkBAIC0zOSw1ICs0MCw1IEBAIHZvaWQgU1ZHRGVmaW5pdGlvblNyY0VsZW1l
bnQ6OmNoaWxkcmVuQ2gKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRpZiAvLyBF
TkFCTEUoU1ZHX0ZPTlRTKQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdEZWZpbml0aW9uU3JjRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0RlZmluaXRpb25TcmNFbGVtZW50
LmgJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRGVmaW5pdGlvblNyY0VsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0MCArMSwzOSBAQAogLyoKLSBDb3B5cmlnaHQgKEMp
IDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisK
KyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpZm5kZWYg
U1ZHRGVmaW5pdGlvblNyY0VsZW1lbnRfaAogI2RlZmluZSBTVkdEZWZpbml0aW9uU3JjRWxlbWVu
dF9oCi0jaWYgRU5BQkxFKFNWRykKIAorI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAjaW5jbHVkZSAi
U1ZHRWxlbWVudC5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZQoteworbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIFNWR0RlZmluaXRpb25TcmNFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQg
ewotcHVibGljOgotICAgIFNWR0RlZmluaXRpb25TcmNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworICAgIHB1YmxpYzoKKyAgICAgICAgU1ZHRGVmaW5pdGlvblNyY0Vs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCi0gICAgdmlydHVh
bCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOwotfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNoaWxk
cmVuQ2hhbmdlZCgpOworICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIEVOQUJMRShTVkcpCisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKICNlbmRpZgogCiAv
LyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdEZWZpbml0aW9uU3JjRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQu
aWRsCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvc3ZnL1NWR0RlZmluaXRpb25TcmNFbGVt
ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsK
IAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdEZWZpbml0aW9uU3JjRWxlbWVu
dCA6IFNWR0VsZW1lbnQgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05U
U10gU1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCiB9Cklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdGb250LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnQuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDk2IEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwNyBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisjaW5jbHVkZSAiRm9udC5oIgorCisjaW5jbHVk
ZSAiRm9udERhdGEuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJS
ZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTVkdHbHlwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgorI2luY2x1
ZGUgIlNWR1BhaW50U2VydmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBGb250
OjpkcmF3R2x5cGhzV2l0aFNWR0ZvbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBSZW5kZXJP
YmplY3QqIHJlbmRlck9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEZvbnREYXRhKiBmb250RGF0YSwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyb20sIGludCB0bywgY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAgQVNTRVJUKHJlbmRlck9iamVjdCk7CisK
KyAgICBBU1NFUlQoIWZvbnREYXRhLT5pc0N1c3RvbUZvbnQoKSk7CisgICAgQVNTRVJUKGZvbnRE
YXRhLT5pc1NWR0ZvbnQoKSk7CisKKyAgICBTVkdGb250RmFjZUVsZW1lbnQqIGZvbnRGYWNlID0g
Zm9udERhdGEtPnN2Z0ZvbnRGYWNlKCk7CisgICAgQVNTRVJUKGZvbnRGYWNlKTsKKworICAgIFJl
bmRlclN0eWxlKiBzdHlsZSA9IHJlbmRlck9iamVjdC0+c3R5bGUoKTsKKyAgICBBU1NFUlQoc3R5
bGUpOworCisgICAgLy8gVE9ETzogVGhpcyBpcyByaWRpY3Vsb3VzLiBHbHlwaHMgc2hvdWxkbid0
IGJlIGNvbGxlY3RlZCB3aGVuIHBhaW50ZWQuIFRoZSBwcm9ibGVtIGlzCisgICAgLy8gdGhhdCB3
ZSBuZWVkIHRvIGNhY2hlICdHbHlwaCcgaW5zdGVhZCBvZiAnU3RyaW5nJyBpbiB0aGUgR2x5cGhI
YXNoTWFwLCB0byBvYnRhaW4KKyAgICAvLyBhIHNldCBvZiAnR2x5cGgncyBmcm9tIGEgJ1N0cmlu
Zycgd2UgbmVlZCB0aGUgbG9jYWwgZnVuY3Rpb24gZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyLgorICAg
IC8vIFNvbWVob3cgdGhlIGRlc2lnbiBuZWVkcyB0byBiZSBjaGFuZ2VkLiBOb3QgeWV0IHN1cmUg
aG93LCBuZWVkcyBkaXNjdXNzaW9uLgorICAgIGlmIChmb250RmFjZS0+cGFyZW50Tm9kZSgpICYm
IGZvbnRGYWNlLT5wYXJlbnROb2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRUYWcpKQor
ICAgICAgICBzdGF0aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KGZvbnRGYWNlLT5wYXJlbnROb2Rl
KCkpLT5jb2xsZWN0R2x5cGhzKCp0aGlzKTsKKworICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9
IHBvaW50OworCisgICAgU1ZHUGFpbnRTZXJ2ZXIqIGZpbGxQYWludFNlcnZlciA9IFNWR1BhaW50
U2VydmVyOjpmaWxsUGFpbnRTZXJ2ZXIoc3R5bGUsIHJlbmRlck9iamVjdCk7CisgICAgU1ZHUGFp
bnRTZXJ2ZXIqIHN0cm9rZVBhaW50U2VydmVyID0gU1ZHUGFpbnRTZXJ2ZXI6OnN0cm9rZVBhaW50
U2VydmVyKHN0eWxlLCByZW5kZXJPYmplY3QpOworCisgICAgZm9yIChpbnQgaSA9IGZyb207IGkg
PCB0bzsgKytpKSB7CisgICAgICAgIFNWR0dseXBoSWRlbnRpZmllciBpZGVudGlmaWVyID0gZm9u
dEZhY2UtPmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShnbHlwaEJ1ZmZlci5nbHlwaEF0KGkp
KTsKKworICAgICAgICBpZiAoIWlkZW50aWZpZXIucGF0aERhdGEuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICBmbG9hdCBzY2FsZSA9IHNpemUoKSAvIGZvbnRGYWNlLT51bml0c1BlckVtKCk7CisK
KyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjdG07CisgICAgICAgICAgICBjdG0udHJhbnNs
YXRlKHN0YXJ0UG9pbnQueCgpLCBzdGFydFBvaW50LnkoKSk7CisgICAgICAgICAgICBjdG0uc2Nh
bGUoc2NhbGUsIC1zY2FsZSk7CisKKyAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICAg
ICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShjdG0pOworCisgICAgICAgICAgICBjb250ZXh0LT5i
ZWdpblBhdGgoKTsKKworICAgICAgICAgICAgaWYgKGZpbGxQYWludFNlcnZlcikgeworICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmFkZFBhdGgoaWRlbnRpZmllci5wYXRoRGF0YSk7CisgICAgICAg
ICAgICAgICAgZmlsbFBhaW50U2VydmVyLT5kcmF3KGNvbnRleHQsIHJlbmRlck9iamVjdCwgQXBw
bHlUb0ZpbGxUYXJnZXRUeXBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0
cm9rZVBhaW50U2VydmVyKSB7CisgICAgICAgICAgICAgICAgY29udGV4dC0+YWRkUGF0aChpZGVu
dGlmaWVyLnBhdGhEYXRhKTsKKyAgICAgICAgICAgICAgICBzdHJva2VQYWludFNlcnZlci0+ZHJh
dyhjb250ZXh0LCByZW5kZXJPYmplY3QsIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICAgICAg
c3RhcnRQb2ludC5tb3ZlKGdseXBoQnVmZmVyLmFkdmFuY2VBdChpKSwgMCk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEwMyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFNWR19GT05UUykKKyNpbmNsdWRlICJTVkdGb250RWxlbWVudC5oIgorCisjaW5jbHVk
ZSAiRm9udC5oIgorI2luY2x1ZGUgIkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaW5jbHVkZSAiU1ZH
R2x5cGhFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOworCitTVkdGb250
RWxlbWVudDo6U1ZHRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvYykKKyAgICA6IFNWR1N0eWxlZEVsZW1lbnQodGFnTmFtZSwgZG9jKQoreworfQor
CitTVkdGb250RWxlbWVudDo6flNWR0ZvbnRFbGVtZW50KCkKK3sKK30KKwordm9pZCBTVkdGb250
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQorewor
ICAgIFNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQorCit2
b2lkIFNWR0ZvbnRFbGVtZW50Ojpjb2xsZWN0R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQpCit7Cisg
ICAgVmVjdG9yPFNWR0dseXBoRWxlbWVudCo+IGdseXBoRWxlbWVudHM7CisgICAgU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudCogbWlzc2luZ0dseXBoRWxlbWVudCA9IDA7CisKKyAgICBmb3IgKE5vZGUq
IGNoaWxkID0gbGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxp
bmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUoZ2x5cGhUYWcpKQorICAgICAg
ICAgICAgZ2x5cGhFbGVtZW50cy5hcHBlbmQoc3RhdGljX2Nhc3Q8U1ZHR2x5cGhFbGVtZW50Kj4o
Y2hpbGQpKTsKKyAgICAgICAgZWxzZSBpZiAoY2hpbGQtPmhhc1RhZ05hbWUobWlzc2luZ19nbHlw
aFRhZykpCisgICAgICAgICAgICBtaXNzaW5nR2x5cGhFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZH
TWlzc2luZ0dseXBoRWxlbWVudCo+KGNoaWxkKTsKKyAgICB9CisKKyAgICBWZWN0b3I8U1ZHR2x5
cGhFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0gZ2x5cGhFbGVtZW50cy5iZWdpbigpOworICAgIFZl
Y3RvcjxTVkdHbHlwaEVsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gZ2x5cGhFbGVtZW50cy5lbmQo
KTsKKworICAgIG1fZ2x5cGhNYXAuY2xlYXIoKTsKKworICAgIFNWR0dseXBoSWRlbnRpZmllciBp
ZGVudGlmaWVyOworCisgICAgLy8gT25seSBzdXBwb3J0cyBzaW5nbGUgZ2x5cGggPC0+IHNpbmds
ZSBjaGFyYWN0ZXIgc2l0dWF0aW9ucyAmIGdseXBocyByZW5kZXJlZCBieSBwYXRocy4KKyAgICBm
b3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIFN0cmluZyBwYXRoRGF0YVN0cmluZyA9
ICgqaXQpLT5nZXRBdHRyaWJ1dGUoZEF0dHIpOworICAgICAgICBTdHJpbmcgZ2x5cGhTdHJpbmcg
PSAoKml0KS0+Z2V0QXR0cmlidXRlKHVuaWNvZGVBdHRyKTsKKworICAgICAgICAvLyBUbyBzdXBw
b3J0IGdseXBoIHN0cmluZ3MgY29uc2lzdGluZyBvZiBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciAo
aWUuICdmZmwnIGxpZ2F0dXJlcykgd2UgbmVlZCBhbm90aGVyIGhhc2hpbmcgc2NoZW1lLgorICAg
ICAgICAvLyBHbHlwaCA8LT4gU1ZHR2x5cGhJZGVudGlmaWVyIGlzIG5vdCBlbm91Z2guCisgICAg
ICAgIGlmIChnbHlwaFN0cmluZy5sZW5ndGgoKSAhPSAxIHx8IHBhdGhEYXRhU3RyaW5nLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnN0IEdseXBoRGF0YSYg
Z2x5cGhEYXRhID0gZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoZ2x5cGhTdHJpbmdbMF0sIGZh
bHNlIC8qIFRPRE86IG5vIHJ0bCwgaXMgdGhpcyBjb3JyZWN0IGluIGFsbCBjYXNlcz8gKi8pOwor
CisgICAgICAgIGlkZW50aWZpZXIucGF0aERhdGEgPSBQYXRoKCk7CisgICAgICAgIHBhdGhGcm9t
U1ZHRGF0YShpZGVudGlmaWVyLnBhdGhEYXRhLCBwYXRoRGF0YVN0cmluZyk7CisKKyAgICAgICAg
Ly9mcHJpbnRmKHN0ZGVyciwgIkZPVU5EIE5FVyBHTFlQSCEgcGF0aERhdGFTdHJpbmc6ICclcycg
Z2x5cGhTdHJpbmc6ICclcycgIGNvZGU6ICcldSdcbiIsIHBhdGhEYXRhU3RyaW5nLmxhdGluMSgp
LmRhdGEoKSwgZ2x5cGhTdHJpbmcubGF0aW4xKCkuZGF0YSgpLCBnbHlwaERhdGEuZ2x5cGgpOwor
ICAgICAgICBtX2dseXBoTWFwLmFkZChnbHlwaERhdGEuZ2x5cGgsIGlkZW50aWZpZXIpOworICAg
IH0KK30KKworU1ZHR2x5cGhJZGVudGlmaWVyIFNWR0ZvbnRFbGVtZW50OjpnbHlwaElkZW50aWZp
ZXJGb3JHbHlwaENvZGUoY29uc3QgR2x5cGgmIGNvZGUpIGNvbnN0Cit7CisgICAgR2x5cGhIYXNo
TWFwJiBoYXNoTWFwID0gY29uc3RfY2FzdDxTVkdGb250RWxlbWVudCo+KHRoaXMpLT5tX2dseXBo
TWFwOworCisgICAgR2x5cGhIYXNoTWFwOjppdGVyYXRvciBpdCA9IGhhc2hNYXAuZmluZChjb2Rl
KTsKKyAgICBpZiAoaXQgPT0gaGFzaE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFNWR0dseXBo
SWRlbnRpZmllcigpOworCisgICAgcmV0dXJuIGl0LT5zZWNvbmQ7Cit9CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShTVkdfRk9OVFMpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDc0IEBACisvKgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CisgICBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZm5kZWYgU1ZHRm9udEVsZW1lbnRfaAorI2RlZmluZSBTVkdGb250RWxlbWVudF9o
CisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIK
KworI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZC5oIgorI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKyAgICBjbGFzcyBGb250OworCisgICAgc3RydWN0IEdseXBoSGFzaCB7Cisg
ICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEdseXBoJiBnbHlwaCkgeworICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKCg6OlVDaGFyKikgJmdseXBoLCBz
aXplb2YoR2x5cGgpIC8gc2l6ZW9mKDo6VUNoYXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0
YXRpYyBib29sIGVxdWFsKGNvbnN0IEdseXBoJiBhLCBjb25zdCBHbHlwaCYgYikgeyByZXR1cm4g
YSA9PSBiOyB9CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHN0cnVjdCBHbHlwaEhhc2hUcmFpdHMg
OiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPEdseXBoPiB7CisgICAgICAgIHN0YXRpYyBUcmFpdFR5
cGUgZGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gVVNIUlRfTUFYOyB9CisgICAgfTsKKworICAgIHR5
cGVkZWYgSGFzaE1hcDxHbHlwaCwgU1ZHR2x5cGhJZGVudGlmaWVyLCBHbHlwaEhhc2gsIEdseXBo
SGFzaFRyYWl0cz4gR2x5cGhIYXNoTWFwOworCisgICAgY2xhc3MgU1ZHRm9udEVsZW1lbnQgOiBw
dWJsaWMgU1ZHU3R5bGVkRWxlbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGlj
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgeworICAgIHB1YmxpYzoKKyAgICAgICAgU1ZH
Rm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgICAgIHZp
cnR1YWwgflNWR0ZvbnRFbGVtZW50KCk7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9ICAgIAorCisgICAg
ICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0aGlzOyB9CisKKyAgICAgICAgdm9pZCBjb2xsZWN0R2x5cGhzKGNvbnN0IEZvbnQmKTsK
KyAgICAgICAgU1ZHR2x5cGhJZGVudGlmaWVyIGdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShj
b25zdCBHbHlwaCYpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTWFwIGJldHdl
ZW4gJ3VuaWNvZGUnIHByb3BlcnR5IG9mIDxnbHlwaD4gYW5kIGEgU1ZHR2x5cGhJZGVudGlmaWVy
CisgICAgICAgIEdseXBoSGFzaE1hcCBtX2dseXBoTWFwOworICAgIH07CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCisjZW5kaWYKKworLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQu
b3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCittb2R1bGUgc3ZnIHsKKworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
U1ZHJlNWR19GT05UU10gU1ZHRm9udEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICB9OworCit9
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDI5MDExKQorKysg
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwz
NSArMSw0MyBAQAogLyoKLUNvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJr
aXQub3JnPgotCi1UaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi1tb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi12ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLVRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLU1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi1MaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQot
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi1Cb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICAgQ29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgorICAgIAorICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaWYgRU5BQkxFKFNWRykKKworI2lm
IEVOQUJMRShTVkdfRk9OVFMpCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCiAKICNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHkuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJGb250Q2FjaGUuaCIK
KyNpbmNsdWRlICJGb250RGF0YS5oIgorI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKyNp
bmNsdWRlICJTVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CisjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZVNyY0Vs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIgorI2luY2x1ZGUg
IlNWR0dseXBoRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNSwxMiAr
MTMzLDg0IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHIKICAgICBT
VkdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KIAordW5zaWduZWQgU1ZH
Rm9udEZhY2VFbGVtZW50Ojp1bml0c1BlckVtKCkgY29uc3QKK3sKKyAgICBpZiAoaGFzQXR0cmli
dXRlKHVuaXRzX3Blcl9lbUF0dHIpKQorICAgICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHVuaXRz
X3Blcl9lbUF0dHIpLnRvSW50KCk7CisgICAgCisgICAgcmV0dXJuIDEwMDA7Cit9CisKK1N0cmlu
ZyBTVkdGb250RmFjZUVsZW1lbnQ6OmZvbnRGYW1pbHkoKSBjb25zdAoreworICAgIHJldHVybiBt
X3N0eWxlRGVjbGFyYXRpb24tPmdldFByb3BlcnR5VmFsdWUoQ1NTX1BST1BfRk9OVF9GQU1JTFkp
OworfQorCitGb250RGF0YSogU1ZHRm9udEZhY2VFbGVtZW50OjpjcmVhdGVGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICAvLyBXZSBv
bmx5IGV4cGVjdCB0byBoYXZlIHRoaXMgbWV0aG9kIGNhbGxlZCBieSBhIHBhcmVudCBmb250IGVs
ZW1lbnQKKyAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocGFyZW50Tm9kZSgp
LT5oYXNUYWdOYW1lKGZvbnRUYWcpKTsKKyAgICBTVkdGb250RWxlbWVudCogZm9udEVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KHBhcmVudE5vZGUoKSk7CisKKyAgICAvLyBV
c2UgZGVmYXVsdCBmYWxsYmFjayBwbGF0Zm9ybSBkYXRhIC0gaXQncyBub3QgbmVlZGVkIGFueXdh
eS4uLgorICAgIEZvbnRQbGF0Zm9ybURhdGEqIGNhY2hlZFBsYXRmb3JtRGF0YSA9IEZvbnRDYWNo
ZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRpb24pOworICAgIGlmICgh
Y2FjaGVkUGxhdGZvcm1EYXRhKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE93blB0cjxGb250
RGF0YT4gZm9udERhdGEobmV3IEZvbnREYXRhKCpjYWNoZWRQbGF0Zm9ybURhdGEpKTsKKyAgICBm
b250RGF0YS0+bV9pc1NWR0ZvbnQgPSB0cnVlOworICAgIGZvbnREYXRhLT5tX3N2Z0ZvbnRGYWNl
ID0gY29uc3RfY2FzdDxTVkdGb250RmFjZUVsZW1lbnQqPih0aGlzKTsKKworICAgIGZvbnREYXRh
LT5tX3hIZWlnaHQgPSBmb250RWxlbWVudC0+Z2V0QXR0cmlidXRlKHhfaGVpZ2h0QXR0cikudG9G
bG9hdCgpOworICAgIGZvbnREYXRhLT5tX3VuaXRzUGVyRW0gPSB1bml0c1BlckVtKCk7CisKKyAg
ICBpZiAoaGFzQXR0cmlidXRlKGFzY2VudEF0dHIpKQorICAgICAgICBmb250RGF0YS0+bV9hc2Nl
bnQgPSBnZXRBdHRyaWJ1dGUoYXNjZW50QXR0cikudG9JbnQoKTsKKyAgICBlbHNlIGlmIChmb250
RWxlbWVudC0+aGFzQXR0cmlidXRlKHZlcnRfb3JpZ2luX3lBdHRyKSkKKyAgICAgICAgZm9udERh
dGEtPm1fYXNjZW50ID0gZm9udERhdGEtPm1fdW5pdHNQZXJFbSAtIGZvbnRFbGVtZW50LT5nZXRB
dHRyaWJ1dGUodmVydF9vcmlnaW5feUF0dHIpLnRvSW50KCk7CisgICAgZWxzZQorICAgICAgICAv
LyBpbnZhbGlkIGZvbnQsIHNob3VsZCBsb2cKKyAgICAgICAgZm9udERhdGEtPm1fYXNjZW50ID0g
MDsKKworICAgIGlmIChoYXNBdHRyaWJ1dGUoZGVzY2VudEF0dHIpKQorICAgICAgICBmb250RGF0
YS0+bV9kZXNjZW50ID0gZ2V0QXR0cmlidXRlKGRlc2NlbnRBdHRyKS50b0ludCgpOworICAgIGVs
c2UgaWYgKGZvbnRFbGVtZW50LT5oYXNBdHRyaWJ1dGUodmVydF9vcmlnaW5feUF0dHIpKQorICAg
ICAgICBmb250RGF0YS0+bV9kZXNjZW50ID0gZm9udEVsZW1lbnQtPmdldEF0dHJpYnV0ZSh2ZXJ0
X29yaWdpbl95QXR0cikudG9JbnQoKTsKKyAgICBlbHNlCisgICAgICAgIGZvbnREYXRhLT5tX2Rl
c2NlbnQgPSBmb250RGF0YS0+bV9hc2NlbnQ7CisKKyAgICByZXR1cm4gZm9udERhdGEucmVsZWFz
ZSgpOworfQorCiB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cmVidWlsZEZvbnRGYWNlKCkKIHsK
KyAgICAvLyBJZ25vcmUgY2hhbmdlcyB1bnRpbCB3ZSBsaXZlIGluIHRoZSB0cmVlCisgICAgaWYg
KCFwYXJlbnROb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFNwZWNpYWwgaGFuZGxp
bmcgZm9yIGxvY2FsIFNWRyBmb250cyAodGhvc2Ugd2hpY2ggaGF2ZSBhIDxmb250PiBwYXJlbnQs
IGFuZCBhcmUgb25seSB1c2VkIHdpdGhpbiB0aGUgZG9jdW1lbnQpCisgICAgaWYgKHBhcmVudE5v
ZGUoKSAmJiBwYXJlbnROb2RlKCktPmhhc1RhZ05hbWUoZm9udFRhZykpIHsKKyAgICAgICAgUmVm
UHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IG5ldyBDU1NWYWx1ZUxpc3Q7CisKKyAgICAgICAgUmVm
UHRyPENTU0ZvbnRGYWNlU3JjVmFsdWU+IHNyYyA9IG5ldyBDU1NGb250RmFjZVNyY1ZhbHVlKFN0
cmluZ0ltcGw6OmVtcHR5KCksIGZhbHNlKTsKKyAgICAgICAgc3JjLT5zZXRTVkdGb250RmFjZUVs
ZW1lbnQodGhpcyk7CisgICAgICAgIGxpc3QtPmFwcGVuZChzcmMpOworCisgICAgICAgIENTU1By
b3BlcnR5IHNyY1Byb3BlcnR5KENTU19QUk9QX1NSQywgbGlzdCk7CisgICAgICAgIGNvbnN0IENT
U1Byb3BlcnR5KiBzcmNQcm9wZXJ0eVJlZiA9ICZzcmNQcm9wZXJ0eTsKKyAgICAgICAgbV9zdHls
ZURlY2xhcmF0aW9uLT5hZGRQYXJzZWRQcm9wZXJ0aWVzKCZzcmNQcm9wZXJ0eVJlZiwgMSk7CisK
KyAgICAgICAgZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVTZWxlY3RvcigpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gVE9ETzogRXh0ZXJuYWwgU1ZHIGZvbnRzIHN1cHBvcnQgLSBy
ZSB1c2UgZXhpc3RpbmcgImN1c3RvbSBmb250IiBoYW5kbGluZyBsb2dpYy4KKwogICAgIC8vIHdl
IGN1cnJlbnRseSBpZ25vcmUgYWxsIGJ1dCB0aGUgZmlyc3Qgc3JjIGVsZW1lbnQsIGFsdGVybmF0
aXZlbHkgd2UgY291bGQgY29uY2F0IHRoZW0KICAgICBTVkdGb250RmFjZVNyY0VsZW1lbnQqIHNy
Y0VsZW1lbnQgPSAwOwogICAgIFNWR0RlZmluaXRpb25TcmNFbGVtZW50KiBkZWZpbml0aW9uU3Jj
ID0gMDsKLSAgICAKKwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+aGFz
VGFnTmFtZShmb250X2ZhY2Vfc3JjVGFnKSAmJiAhc3JjRWxlbWVudCkKICAgICAgICAgICAgIHNy
Y0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RmFjZVNyY0VsZW1lbnQqPihjaGlsZCk7CkBA
IC0xNDMsMjYgKzIyMywzOCBAQCB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cmVidWlsZEZvbnRG
YWNlCiAgICAgaWYgKGRlZmluaXRpb25TcmMpCiAgICAgICAgIG1fc3R5bGVEZWNsYXJhdGlvbi0+
c2V0UHJvcGVydHkoQ1NTX1BST1BfREVGSU5JVElPTl9TUkMsIGRlZmluaXRpb25TcmMtPmdldEF0
dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0ciksIGZhbHNlKTsKICNlbmRpZgotICAgIAotICAg
IGlmIChwYXJlbnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5sb2NhbE5hbWUoKSA9PSAiZm9udCIp
IC8vIFNWR05hbWVzOjpmb250VGFnIGlzbid0IGdlbmVyYXRlZCB5ZXQKLSAgICAgICAgcmV0dXJu
OyAvLyB0aGlzIGZvbnQtZmFjZSBhcHBsaWVzIHRvIGl0cyBwYXJlbnQgZm9udCwgd2hpY2ggd2Ug
aWdub3JlLgotICAgIGVsc2UgaWYgKHNyY0VsZW1lbnQpIHsKKworICAgIGlmIChzcmNFbGVtZW50
KSB7CiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgY2xhc3MgKG90aGVyIHRoYW4gQ1NTUGFy
c2VyKSB0byBjcmVhdGUgQ1NTVmFsdWUgb2JqZWN0cyBhbmQgc2V0IHRoZW0gb24gdGhlIENTU1N0
eWxlRGVjbGFyYXRpb24gbWFudWFsbHkKICAgICAgICAgLy8gd2UgdXNlIHRoZSBhZGRQYXJzZWRQ
cm9wZXJ0aWVzIG1ldGhvZCwgYW5kIGZha2UgaGF2aW5nIGFuIGFycmF5IG9mIENTU1Byb3BlcnR5
IHBvaW50ZXJzLgogICAgICAgICBDU1NQcm9wZXJ0eSBzcmNQcm9wZXJ0eShDU1NfUFJPUF9TUkMs
IHNyY0VsZW1lbnQtPnNyY1ZhbHVlKCkpOwogICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSogc3Jj
UHJvcGVydHlSZWYgPSAmc3JjUHJvcGVydHk7CiAgICAgICAgIG1fc3R5bGVEZWNsYXJhdGlvbi0+
YWRkUGFyc2VkUHJvcGVydGllcygmc3JjUHJvcGVydHlSZWYsIDEpOwogICAgIH0KLSAgICAKKwog
ICAgIGRvY3VtZW50KCktPnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKIH0KIAordm9pZCBTVkdGb250
RmFjZUVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKK3sKKyAgICByZWJ1aWxkRm9udEZh
Y2UoKTsKK30KKwogdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCgpCiB7
CiAgICAgcmVidWlsZEZvbnRGYWNlKCk7CiB9CiAKK1NWR0dseXBoSWRlbnRpZmllciBTVkdGb250
RmFjZUVsZW1lbnQ6OmdseXBoSWRlbnRpZmllckZvckdseXBoQ29kZShjb25zdCBHbHlwaCYgY29k
ZSkgY29uc3QKK3sKKyAgICAvLyBXZSBvbmx5IGV4cGVjdCB0byBoYXZlIHRoaXMgbWV0aG9kIGNh
bGxlZCBieSBhIHBhcmVudCBmb250IGVsZW1lbnQKKyAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsK
KyAgICBBU1NFUlQocGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpKTsKKworICAgIFNW
R0ZvbnRFbGVtZW50KiBmb250RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4o
cGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gZm9udEVsZW1lbnQtPmdseXBoSWRlbnRpZmllckZv
ckdseXBoQ29kZShjb2RlKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShTVkcpCit9CiAKKyNlbmRp
ZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHJl
dmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTAgKzEsNjQgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gICAgICAKLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8K
KyAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICAg
Q29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3Jn
PgorCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCiAKICNpZm5k
ZWYgU1ZHRm9udEZhY2VFbGVtZW50X2gKICNkZWZpbmUgU1ZHRm9udEZhY2VFbGVtZW50X2gKLSNp
ZiBFTkFCTEUoU1ZHKQogCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewor
CiAgICAgY2xhc3MgQ1NTRm9udEZhY2VSdWxlOwogICAgIGNsYXNzIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOworICAgIGNsYXNzIEZvbnREYXRhOworICAgIGNsYXNzIEZvbnREZXNjcmlwdGlv
bjsKKyAgICBzdHJ1Y3QgU1ZHR2x5cGhJZGVudGlmaWVyOworCiAgICAgY2xhc3MgU1ZHRm9udEZh
Y2VFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZH
Rm9udEZhY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdGb250RmFjZUVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7Ci0gICAgICAgIAorCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoKTsKLSAgICAgICAgCisgICAgICAgIHZp
cnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOworCisgICAgICAgIHVuc2lnbmVkIHVu
aXRzUGVyRW0oKSBjb25zdDsKKyAgICAgICAgU3RyaW5nIGZvbnRGYW1pbHkoKSBjb25zdDsKKwog
ICAgICAgICB2b2lkIHJlYnVpbGRGb250RmFjZSgpOwotICAgIAotICAgIHByaXZhdGU6ICAgICAg
ICAKKyAgICAgICAgRm9udERhdGEqIGNyZWF0ZUZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYpIGNvbnN0OworCisgICAgICAgIFNWR0dseXBoSWRlbnRpZmllciBnbHlwaElkZW50aWZpZXJG
b3JHbHlwaENvZGUoY29uc3QgR2x5cGgmKSBjb25zdDsKKworICAgIHByaXZhdGU6CiAgICAgICAg
IFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IG1fZm9udEZhY2VSdWxlOwogICAgICAgICBSZWZQdHI8
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG1fc3R5bGVEZWNsYXJhdGlvbjsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlm
IC8vIEVOQUJMRShTVkdfRk9OVFMpCiAjZW5kaWYKIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDog
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZH
Rm9udEZhY2VFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25h
bD1TVkcmU1ZHX0ZPTlRTXSBTVkdGb250RmFjZUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9
OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSwyNCArMSwyNSBAQAogLyoKLSBDb3B5cmlnaHQgKEMpIDIw
MDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisKKyAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpZiBFTkFCTEUoU1ZHKQorCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNs
dWRlICJTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIlNWR0ZvbnRGYWNl
RWxlbWVudC5oIgpAQCAtNDksNSArNTAsNCBAQCB2b2lkIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVu
dDo6Y2hpbGRyZW5DCiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShTVkcpCi0KKyNlbmRpZiAvLyBF
TkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmgJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAgKzEsMzEgQEAKIC8qCi0gQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gIAotIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAKLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gCi0gWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgor
CisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaWZuZGVm
IFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudF9oCiAjZGVmaW5lIFNWR0ZvbnRGYWNlRm9ybWF0RWxl
bWVudF9oCi0jaWYgRU5BQkxFKFNWRykKIAorI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAjaW5jbHVk
ZSAiU1ZHRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgU1ZHRm9u
dEZhY2VGb3JtYXRFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgeworCitjbGFzcyBTVkdGb250
RmFjZUZvcm1hdEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgU1ZH
Rm9udEZhY2VGb3JtYXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwog
CkBAIC0zMyw3ICszNCw3IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0j
ZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQogI2VuZGlm
CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0
RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50LmlkbAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKIG1vZHVs
ZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
JlNWR19GT05UU10gU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50IDogU1ZHRWxlbWVudCB7CiAgICAg
fTsKIAogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAJKHJldmlz
aW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjQgKzEsMjUgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gIAotIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAKLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gCi0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAgIENv
cHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorCisgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaWYgRU5BQkxFKFNWRykKKworI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAjaW5jbHVkZSAi
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1
ZS5oIgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkocmV2aXNpb24gMjkw
MTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjYgKzEsMjYgQEAKIC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVs
IDxlcmljQHdlYmtpdC5vcmc+Ci0gIAotIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAKLSBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gCi0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAgIENvcHlyaWdodCAo
QykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorCisgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaWZuZGVmIFNWR0ZvbnRGYWNlTmFtZUVs
ZW1lbnRfaAogI2RlZmluZSBTVkdGb250RmFjZU5hbWVFbGVtZW50X2gKLSNpZiBFTkFCTEUoU1ZH
KQogCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlm
IC8vIEVOQUJMRShTVkdfRk9OVFMpCiAjZW5kaWYKIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDog
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwJKHJldmlzaW9uIDI5MDExKQorKysg
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDcgKzI1LDcgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlv
bmFsPVNWR10gU1ZHRm9udEZhY2VOYW1lRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIGludGVy
ZmFjZSBbQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UU10gU1ZHRm9udEZhY2VOYW1lRWxlbWVudCA6
IFNWR0VsZW1lbnQgewogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
U3JjRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNF
bGVtZW50LmNwcAkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNy
Y0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI0ICsxLDI1IEBACiAvKgotIENvcHly
aWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICAKLSBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2lmIEVOQUJMRShTVkcpCisKKyNpZiBFTkFCTEUoU1ZHX0ZP
TlRTKQogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NT
VmFsdWVMaXN0LmgiCkBAIC01Nyw1ICs1OCw0IEBAIHZvaWQgU1ZHRm9udEZhY2VTcmNFbGVtZW50
OjpjaGlsZHJlbkNoYW4KIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKLQorI2VuZGlmIC8v
IEVOQUJMRShTVkdfRk9OVFMpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAko
cmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMSwyNiArMSwyNiBAQAogLyoKLSBDb3B5cmlnaHQgKEMpIDIwMDcg
RXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICAg
Q29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpZm5kZWYgU1ZHRm9u
dEZhY2VTcmNFbGVtZW50X2gKICNkZWZpbmUgU1ZHRm9udEZhY2VTcmNFbGVtZW50X2gKLSNpZiBF
TkFCTEUoU1ZHKQogCisjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZH
KQorI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCiAjZW5kaWYKIAogLy8gdmltOnRzPTQ6bm9l
dApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaWRsCShyZXZpc2lvbiAyOTAx
MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0Nv
bmRpdGlvbmFsPVNWR10gU1ZHRm9udEZhY2VTcmNFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTXSBTVkdGb250RmFjZVNyY0VsZW1l
bnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAJKHJldmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VVcmlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyNCArMSwyNSBAQAogLyoKLSBD
b3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAgCi0gVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpZiBFTkFCTEUoU1ZHKQorCisjaWYgRU5BQkxFKFNW
R19GT05UUykKICNpbmNsdWRlICJTVkdGb250RmFjZVVyaUVsZW1lbnQuaCIKIAogI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKQEAgLTU0LDUgKzU1LDQgQEAgdm9pZCBTVkdGb250RmFj
ZVVyaUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbgogCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQot
CisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5oCShyZXZpc2lvbiAyOTAxMSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI2ICsxLDI2IEBACiAvKgotIENvcHlyaWdo
dCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICAKLSBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAogI2lm
bmRlZiBTVkdGb250RmFjZVVyaUVsZW1lbnRfaAogI2RlZmluZSBTVkdGb250RmFjZVVyaUVsZW1l
bnRfaAotI2lmIEVOQUJMRShTVkcpCiAKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8v
IEVOQUJMRShTVkcpCisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKICNlbmRpZgogCiAvLyB2
aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDI5MDExKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdGb250RmFjZVVyaUVsZW1lbnQgOiBTVkdFbGVt
ZW50IHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFNdIFNWR0ZvbnRG
YWNlVXJpRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0dseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR2x5
cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgICBDb3B5cmlnaHQgKEMp
IDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAgIENvcHlyaWdodCAoQykgMjAw
NyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgorCisj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFt
ZXNwYWNlIFNWR05hbWVzOworCitTVkdHbHlwaEVsZW1lbnQ6OlNWR0dseXBoRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQorICAgIDogU1ZHU3R5bGVk
RWxlbWVudCh0YWdOYW1lLCBkb2MpCit7Cit9CisKK3ZvaWQgU1ZHR2x5cGhFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgU1ZHU3R5bGVk
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgU1ZHR2x5cGhF
bGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoKQoreworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
U1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4NiBAQAor
LyoKKyAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgor
ICAgQ29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUu
b3JnPgorCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWZuZGVmIFNWR0dseXBoRWxlbWVudF9oCisjZGVmaW5lIFNWR0dseXBoRWxlbWVudF9oCisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKKworI2lu
Y2x1ZGUgIlBhdGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorICAgIGNsYXNzIFNW
R0dseXBoRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIFNWR0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmli
dXRlKik7CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7
CisgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB9OworCisgICAgLy8gRGVzY3JpYmUgYSBTVkcgPGdseXBoPiBl
bGVtZW50CisgICAgc3RydWN0IFNWR0dseXBoSWRlbnRpZmllciB7CisgICAgICAgIGVudW0gT3Jp
ZW50YXRpb24geyBWZXJ0aWNhbCwgSG9yaXpvbnRhbCwgQm90aCB9OworICAgICAgICBlbnVtIEFy
YWJpY0Zvcm0geyBJbml0aWFsLCBNZWRpYWwsIFRlcm1pbmFsLCBJc29sYXRlZCB9OworCisgICAg
ICAgIFNWR0dseXBoSWRlbnRpZmllcigpCisgICAgICAgICAgICA6IG9yaWVudGF0aW9uKEJvdGgp
CisgICAgICAgICAgICAsIGFyYWJpY0Zvcm0oSW5pdGlhbCkKKyAgICAgICAgICAgICwgaG9yaXpv
bnRhbEFkdmFuY2VYKDAuMGYpCisgICAgICAgICAgICAsIHZlcnRpY2FsT3JpZ2luWCgwLjBmKQor
ICAgICAgICAgICAgLCB2ZXJ0aWNhbE9yaWdpblkoMC4wZikKKyAgICAgICAgICAgICwgdmVydGlj
YWxBZHZhbmNlWSgwLjBmKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICAvLyAnb3Jp
ZW50YXRpb24nIHByb3BlcnR5OworICAgICAgICBPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKKwor
ICAgICAgICAvLyAnYXJhYmljLWZvcm0nIHByb3BlcnR5CisgICAgICAgIEFyYWJpY0Zvcm0gYXJh
YmljRm9ybTsKKworICAgICAgICAvLyAnaG9yaXotYWR2LXgnIHByb3BlcnR5CisgICAgICAgIGZs
b2F0IGhvcml6b250YWxBZHZhbmNlWDsKKworICAgICAgICAvLyAndmVydC1vcmlnaW4teCcgcHJv
cGVydHkKKyAgICAgICAgZmxvYXQgdmVydGljYWxPcmlnaW5YOworCisgICAgICAgIC8vICd2ZXJ0
LW9yaWdpbi15JyBwcm9wZXJ0eQorICAgICAgICBmbG9hdCB2ZXJ0aWNhbE9yaWdpblk7CisKKyAg
ICAgICAgLy8gJ3ZlcnQtYWR2LXknIHByb3BlcnR5CisgICAgICAgIGZsb2F0IHZlcnRpY2FsQWR2
YW5jZVk7CisKKyAgICAgICAgLy8gJ2QnIHByb3BlcnR5CisgICAgICAgIFBhdGggcGF0aERhdGE7
CisKKyAgICAgICAgLy8gJ2xhbmcnIHByb3BlcnR5CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGxh
bmd1YWdlczsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoU1ZHX0ZPTlRTKQorI2VuZGlmCisKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0dseXBoRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
R2x5cGhFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxl
bWVudC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2
ZyB7CisKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFNdIFNWR0dseXBo
RWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01p
c3NpbmdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
ICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKworICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIlNWR01pc3NpbmdHbHlw
aEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIlNWR05hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOworCitTVkdNaXNzaW5nR2x5cGhFbGVtZW50
OjpTVkdNaXNzaW5nR2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2MpCisgICAgOiBTVkdTdHlsZWRFbGVtZW50KHRhZ05hbWUsIGRvYykKK3sKK30K
Kwordm9pZCBTVkdNaXNzaW5nR2x5cGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBw
ZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgU1ZHU3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgU1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKCkKK3sKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2lmbmRlZiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50X2gKKyNkZWZpbmUgU1ZHTWlzc2luZ0dseXBo
RWxlbWVudF9oCisKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIlNWR1N0eWxlZEVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFNWR01pc3NpbmdHbHlw
aEVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCB7CisgICAgcHVibGljOgorICAgICAg
ICBTVkdNaXNzaW5nR2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUqKTsKKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
KTsKKyAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7
IHJldHVybiBmYWxzZTsgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCisjZW5kaWYKKworLy8gdmltOnRzPTQ6bm9ldApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnIHsKKworICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9U1ZHJlNWR19GT05UU10gU1ZHTWlzc2luZ0dseXBoRWxlbWVudCA6IFNWR0VsZW1lbnQg
eworICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvc3ZndGFncy5pbgkocmV2aXNpb24gMjkwMTEpCisrKyBXZWJDb3JlL3N2
Zy9zdmd0YWdzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw5IEBAIGNsaXBQYXRoCiBj
b2xvcl9wcm9maWxlCiAjZW5kaWYKIGN1cnNvcgorI2lmIEVOQUJMRV9TVkdfRk9OVFMKIGRlZmlu
aXRpb25fc3JjCisjZW5kaWYKIGRlZnMKIGRlc2MKIGVsbGlwc2UKQEAgLTUxLDE4ICs1MywyMCBA
QCBmZVRpbGUKIGZlVHVyYnVsZW5jZQogZmlsdGVyCiAjZW5kaWYKLSNpZiAwCisjaWZkZWYgRU5B
QkxFX1NWR19GT05UUwogZm9udAotI2VuZGlmCiBmb250X2ZhY2UKIGZvbnRfZmFjZV9mb3JtYXQK
IGZvbnRfZmFjZV9uYW1lCiBmb250X2ZhY2Vfc3JjCiBmb250X2ZhY2VfdXJpCisjZW5kaWYKIGZv
cmVpZ25PYmplY3QKIGcKLSNpZiAwCisjaWZkZWYgRU5BQkxFX1NWR19GT05UUwogZ2x5cGgKKyNl
bmRpZgorI2lmIDAKIGdseXBoUmVmCiBoa2VybgogI2VuZGlmCkBAIC03Miw3ICs3Niw3IEBAIGxp
bmVhckdyYWRpZW50CiBtYXJrZXIKIG1hc2sKIG1ldGFkYXRhCi0jaWYgMAorI2lmZGVmIEVOQUJM
RV9TVkdfRk9OVFMKIG1pc3NpbmdfZ2x5cGgKICNlbmRpZgogbXBhdGgKSW5kZXg6IFdlYktpdC9t
YWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyOTAxMSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTEgQEAKKzIwMDctMTItMjggIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljLgorCisgICAgICAgIEFkZCBET01TVkdG
b250RWxlbWVudC9ET01TVkdHbHlwaEVsZW1lbnQvRE9NU1ZHTWlzc2luZ0dseXBoRWxlbWVudCB0
byBNaWdyYXRlSGVhZGVycy5tYWtlCisKKyAgICAgICAgKiBNaWdyYXRlSGVhZGVycy5tYWtlOgor
CiAyMDA3LTEyLTI1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCShyZXZp
c2lvbiAyOTAxMSkKKysrIFdlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQkod29ya2luZyBj
b3B5KQpAQCAtMzI2LDYgKzMyNiw3IEBAIGFsbCA6IFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNf
RElSKS9ET01TVkdGaWx0ZXJFbGVtZW50SW50ZXJuYWwuaCBcCiAgICAgJChQUklWQVRFX0hFQURF
UlNfRElSKS9ET01TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBcCiAgICAg
JChQUklWQVRFX0hFQURFUlNfRElSKS9ET01TVkdGaXRUb1ZpZXdCb3guaCBcCisgICAgJChQUklW
QVRFX0hFQURFUlNfRElSKS9ET01TVkdGb250RWxlbWVudC5oIFwKICAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL0RPTVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVS
U19ESVIpL0RPTVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKICAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL0RPTVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCkBAIC0zMzUsNiArMzM2LDcg
QEAgYWxsIDogXAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50SW50ZXJuYWwuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01TVkdH
RWxlbWVudC5oIFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNfRElSKS9ET01TVkdHRWxlbWVudElu
dGVybmFsLmggXAorICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHR2x5cGhFbGVtZW50
LmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHR3JhZGllbnRFbGVtZW50Lmgg
XAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR0dyYWRpZW50RWxlbWVudEludGVy
bmFsLmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NU1ZHSW1hZ2VFbGVtZW50Lmgg
XApAQCAtMzU3LDYgKzM1OSw3IEBAIGFsbCA6IFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNfRElS
KS9ET01TVkdNYXRyaXhJbnRlcm5hbC5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RP
TVNWR01ldGFkYXRhRWxlbWVudC5oIFwKICAgICAkKElOVEVSTkFMX0hFQURFUlNfRElSKS9ET01T
VkdNZXRhZGF0YUVsZW1lbnRJbnRlcm5hbC5oIFwKKyAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIp
L0RPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElS
KS9ET01TVkdOdW1iZXIuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01TVkdOdW1i
ZXJMaXN0LmggXAogICAgICQoSU5URVJOQUxfSEVBREVSU19ESVIpL0RPTVNWR051bWJlckxpc3RJ
bnRlcm5hbC5oIFwK
</data>
<flag name="review"
          id="7892"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>