<?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>213446</bug_id>
          
          <creation_ts>2020-06-21 10:31:45 -0700</creation_ts>
          <short_desc>Text manipulation should exclude text rendered using icon-only fonts</short_desc>
          <delta_ts>2020-06-25 13:37:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664862</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-21 10:31:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/63734298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664865</commentid>
    <comment_count>1</comment_count>
      <attachid>402429</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-21 11:08:41 -0700</bug_when>
    <thetext>Created attachment 402429
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664866</commentid>
    <comment_count>2</comment_count>
      <attachid>402430</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-21 11:40:55 -0700</bug_when>
    <thetext>Created attachment 402430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665093</commentid>
    <comment_count>3</comment_count>
      <attachid>402486</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-22 11:04:27 -0700</bug_when>
    <thetext>Created attachment 402486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665983</commentid>
    <comment_count>4</comment_count>
      <attachid>402486</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-06-24 21:43:25 -0700</bug_when>
    <thetext>Comment on attachment 402486
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:662
&gt; +bool Font::shouldExcludeFontFromTextManipulation() const

I&apos;m not sure this actually belongs in Font. Font is a platform/ class, which indicates (at least to me) that all its functionality should be generally applicable to the various clients in WebCore/WebKit who want to use it.

Historically, I&apos;m really bad at answering the question &quot;should this function belong in one place or another&quot; so if you feel that it really belongs here, I&apos;m probably wrong.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:664
&gt; +    if (origin() != Origin::Remote)

Does translation work in WKWebView? (WKWebView doesn&apos;t disallow user-installed fonts by default.) We may want this logic to be insensitive to web fonts vs installed fonts. Or maybe not.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:667
&gt; +    auto platformFont = platformData().ctFont();

I think you want .font() instead here

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:671
&gt; +    auto supportedCharacters = adoptCF(CTFontCopyCharacterSet(platformFont));

Is this call expensive? It might be cheaper to call CTFontGetGlyphsForCharacters(&quot;a&quot;) for the test on line 676.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:672
&gt; +    if (CFCharacterSetHasMemberInPlane(supportedCharacters.get(), 1) || CFCharacterSetHasMemberInPlane(supportedCharacters.get(), 2))

I assume there&apos;s no reason for this other than &quot;it&apos;s a heuristic&quot;?

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:678
&gt; +        bool foundGlyph = CTFontGetGlyphsForCharacterRange(platformFont, &amp;lowercaseAGlyph, CFRangeMake(&apos;a&apos;, 1));

Is it worth making a range instead of CTFontGetGlyphsForCharacters here?

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:683
&gt; +    constexpr UniChar firstCharacterToTest = &apos; &apos;;

Might want to add a comment saying &quot;this includes the uppercase and lowercase alphabet&quot; or whatever. I haven&apos;t memorized the ascii table.

Do we really need to test almost a hundred characters? Getting bounding boxes isn&apos;t free.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:687
&gt; +    CGGlyph glyphs[numberOfCharactersToTest];

Is this too much stack space? I don&apos;t know

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:690
&gt; +    CGRect boundingRects[numberOfCharactersToTest];

Ditto

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:691
&gt; +    CTFontGetBoundingRectsForGlyphs(platformFont, kCTFontOrientationDefault, glyphs, boundingRects, numberOfCharactersToTest);

Might want to consider de-duping duplicate glyphs (where multiple characters map to the same glyph). It might be worth it.

I&apos;d expect such duplication would only be common when multiple characters map to glyphID 0.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:694
&gt; +        if (!CFCharacterSetIsCharacterMember(supportedCharacters.get(), character))

You can get this information faster if you just compare glyphs[character - firstCharacterToTest] to 0

&gt; Source/WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:186
&gt; +    if (auto platformFont = font())

Consider:

@font-face {
    font-family: FontA;
    src: url(&quot;FontB.ttf&quot;);
}
...
font-family: FontA, MyFallbackFont;

How confident are you that this comparison should be done on FontA?

Similarly, what if the user has content blockers, and FontA has not been downloaded yet? Or the site loads fonts themselves in JS and we trigger text manipulation before the JS is done? In this situation, primaryFont() will return MyFallbackFont instead of FontA. But the content still says WORLD or whatever.

I didn&apos;t see anything in the ChangeLog about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665984</commentid>
    <comment_count>5</comment_count>
      <attachid>402486</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-06-24 21:44:35 -0700</bug_when>
    <thetext>Comment on attachment 402486
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:186
&gt;&gt; +    if (auto platformFont = font())
&gt; 
&gt; Consider:
&gt; 
&gt; @font-face {
&gt;     font-family: FontA;
&gt;     src: url(&quot;FontB.ttf&quot;);
&gt; }
&gt; ...
&gt; font-family: FontA, MyFallbackFont;
&gt; 
&gt; How confident are you that this comparison should be done on FontA?
&gt; 
&gt; Similarly, what if the user has content blockers, and FontA has not been downloaded yet? Or the site loads fonts themselves in JS and we trigger text manipulation before the JS is done? In this situation, primaryFont() will return MyFallbackFont instead of FontA. But the content still says WORLD or whatever.
&gt; 
&gt; I didn&apos;t see anything in the ChangeLog about this.

*****How confident are you that this comparison should be done on FontB?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665986</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-06-24 21:50:11 -0700</bug_when>
    <thetext>Have you considered fonts which don&apos;t support any of the latin characters but also don&apos;t have any code points in non-BMP?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665991</commentid>
    <comment_count>7</comment_count>
      <attachid>402486</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-24 22:30:27 -0700</bug_when>
    <thetext>Comment on attachment 402486
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:662
&gt;&gt; +bool Font::shouldExcludeFontFromTextManipulation() const
&gt; 
&gt; I&apos;m not sure this actually belongs in Font. Font is a platform/ class, which indicates (at least to me) that all its functionality should be generally applicable to the various clients in WebCore/WebKit who want to use it.
&gt; 
&gt; Historically, I&apos;m really bad at answering the question &quot;should this function belong in one place or another&quot; so if you feel that it really belongs here, I&apos;m probably wrong.

I think your reasoning makes sense! The reason I put it here is because the implementation is highly platform-specific, and also uses lots of CoreText API/SPI which are already present in this file. How about renaming this to be something that isn&apos;t specific to &quot;text manipulation&quot; (i.e. translation), such as Font::containsNoNonEmptyBasicLatinGlyphs() or Font::mayOnlyRenderGlyphsAsIcons()?

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:664
&gt;&gt; +    if (origin() != Origin::Remote)
&gt; 
&gt; Does translation work in WKWebView? (WKWebView doesn&apos;t disallow user-installed fonts by default.) We may want this logic to be insensitive to web fonts vs installed fonts. Or maybe not.

It does not (Safari is the only client).

I added this so that installed fonts (which, as I understand, should never be &quot;icon fonts&quot; in Safari) would bail early. But since I have a mechanism for caching the results anyways, it&apos;s probably not worth having this extra check. I&apos;ll remove this.

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:667
&gt;&gt; +    auto platformFont = platformData().ctFont();
&gt; 
&gt; I think you want .font() instead here

👍🏻 Changed to font().

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:671
&gt;&gt; +    auto supportedCharacters = adoptCF(CTFontCopyCharacterSet(platformFont));
&gt; 
&gt; Is this call expensive? It might be cheaper to call CTFontGetGlyphsForCharacters(&quot;a&quot;) for the test on line 676.

Sounds good — I&apos;ve changed this so that it only copies the character set after checking the fast path (i.e. checking the character &apos;a&apos;).

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:672
&gt;&gt; +    if (CFCharacterSetHasMemberInPlane(supportedCharacters.get(), 1) || CFCharacterSetHasMemberInPlane(supportedCharacters.get(), 2))
&gt; 
&gt; I assume there&apos;s no reason for this other than &quot;it&apos;s a heuristic&quot;?

Correct.

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:678
&gt;&gt; +        bool foundGlyph = CTFontGetGlyphsForCharacterRange(platformFont, &amp;lowercaseAGlyph, CFRangeMake(&apos;a&apos;, 1));
&gt; 
&gt; Is it worth making a range instead of CTFontGetGlyphsForCharacters here?

That&apos;s a good point — it&apos;s probably more optimal to use `CTFontGetGlyphsForCharacters` here because it would allow us to avoid copying the character set for most fonts. I&apos;ll change this to use `CTFontGetGlyphsForCharacters`.

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:683
&gt;&gt; +    constexpr UniChar firstCharacterToTest = &apos; &apos;;
&gt; 
&gt; Might want to add a comment saying &quot;this includes the uppercase and lowercase alphabet&quot; or whatever. I haven&apos;t memorized the ascii table.
&gt; 
&gt; Do we really need to test almost a hundred characters? Getting bounding boxes isn&apos;t free.

Sounds good — I&apos;ll add a comment.

In the email thread I CC&apos;d you on, my initial heuristic tested only 52 characters (uppercase/lowercase Latin alphabet), but was advised to encompass all basic latin ASCII characters. Since this is already the &quot;slow path&quot;, I don&apos;t think this extra work will do much harm (in my testing, I&apos;ve only observed icon fonts reach this point; all other fonts I tested bail early when testing the single character &apos;a&apos;).

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:687
&gt;&gt; +    CGGlyph glyphs[numberOfCharactersToTest];
&gt; 
&gt; Is this too much stack space? I don&apos;t know

Hm...me neither :/ A 200-byte stack-allocated buffer doesn&apos;t seem excessive, but then again a quick grep through our codebase for &quot;[128]&quot; and &quot;[256]&quot; show mostly static data structures...

I&apos;ll try and move this to the heap instead.

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:690
&gt;&gt; +    CGRect boundingRects[numberOfCharactersToTest];
&gt; 
&gt; Ditto

I&apos;ll see if I can move this to the heap as well.

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:691
&gt;&gt; +    CTFontGetBoundingRectsForGlyphs(platformFont, kCTFontOrientationDefault, glyphs, boundingRects, numberOfCharactersToTest);
&gt; 
&gt; Might want to consider de-duping duplicate glyphs (where multiple characters map to the same glyph). It might be worth it.
&gt; 
&gt; I&apos;d expect such duplication would only be common when multiple characters map to glyphID 0.

That&apos;s true — in my testing, for icon glyphs, the only duplicated glyphs I saw were `glyphID=0`s due to unsupported characters, though I saw this a lot! I&apos;ll change this to avoid grabbing bounding rects for unsupported characters.

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:694
&gt;&gt; +        if (!CFCharacterSetIsCharacterMember(supportedCharacters.get(), character))
&gt; 
&gt; You can get this information faster if you just compare glyphs[character - firstCharacterToTest] to 0

👍🏻

&gt;&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:186
&gt;&gt;&gt; +    if (auto platformFont = font())
&gt;&gt; 
&gt;&gt; Consider:
&gt;&gt; 
&gt;&gt; @font-face {
&gt;&gt;     font-family: FontA;
&gt;&gt;     src: url(&quot;FontB.ttf&quot;);
&gt;&gt; }
&gt;&gt; ...
&gt;&gt; font-family: FontA, MyFallbackFont;
&gt;&gt; 
&gt;&gt; How confident are you that this comparison should be done on FontA?
&gt;&gt; 
&gt;&gt; Similarly, what if the user has content blockers, and FontA has not been downloaded yet? Or the site loads fonts themselves in JS and we trigger text manipulation before the JS is done? In this situation, primaryFont() will return MyFallbackFont instead of FontA. But the content still says WORLD or whatever.
&gt;&gt; 
&gt;&gt; I didn&apos;t see anything in the ChangeLog about this.
&gt; 
&gt; *****How confident are you that this comparison should be done on FontB?

Hm...so in my experience, text nodes that render using icon fonts don&apos;t have fallbacks to non-icon fonts, since the icon would show up as (undesired) text if it were to take the fallback.

I think we expect translation to only start after the page is mostly loaded (for instance, we don&apos;t flash the webpage translation button until after certain page loading milestones). It is true we could be in a situation where an icon font finishes loading later (after translation) and text ends up getting translated when it shouldn&apos;t. I don&apos;t really have a great answer for this at the moment, unfortunately — I&apos;ll leave a FIXME and describe this in the ChangeLog as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665992</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-24 22:36:18 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #6)
&gt; Have you considered fonts which don&apos;t support any of the latin characters
&gt; but also don&apos;t have any code points in non-BMP?

That&apos;s interesting! Would you happen to know any examples off-hand?

Perhaps what I should do in this case is bail early and return false in the case where no Latin characters are supported (right now, we&apos;ll end up iterating over all Latin characters, hitting the continue; each time, and then finally `return true;`).

This heuristic is intended to detect fonts that use combinations of Latin characters to render icon-like glyphs, so I think we could disqualify any font that does not support any basic Latin characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666126</commentid>
    <comment_count>9</comment_count>
      <attachid>402767</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-25 11:59:17 -0700</bug_when>
    <thetext>Created attachment 402767
Adjusted for feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666127</commentid>
    <comment_count>10</comment_count>
      <attachid>402768</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-25 12:00:10 -0700</bug_when>
    <thetext>Created attachment 402768
Adjusted for feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666146</commentid>
    <comment_count>11</comment_count>
      <attachid>402784</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-06-25 12:14:03 -0700</bug_when>
    <thetext>Created attachment 402784
Augment ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666195</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-25 13:37:38 -0700</bug_when>
    <thetext>Committed r263527: &lt;https://trac.webkit.org/changeset/263527&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402784.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402429</attachid>
            <date>2020-06-21 11:08:41 -0700</date>
            <delta_ts>2020-06-21 11:40:54 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-213446-20200621110840.patch</filename>
            <type>text/plain</type>
            <size>25430</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg5NjQxNmZhNTYyYWNm
OWJmNDQ0Njk0YjNiNjNhYjNhYjBkYTE0Yi4uZjhjZjY1NjFmZGRmYjE1Y2UyMWFhNGI5YTg1ZDE4
NGMxYjg4NmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA2LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNpbmcgaWNvbi1vbmx5IGZvbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVsYXRpb24uU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhj
bHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UpOgorCisgICAgICAgIEF1Z21l
bnQgdG9rZW4gZXhjbHVzaW9uIHJ1bGVzIHNvIHRoYXQgd2UncmUgYWJsZSB0byBleGNsdWRlIGNl
cnRhaW4gdGV4dCBub2RlcyBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLCBiYXNlZCBvbgorICAgICAg
ICB0aGVpciBzdHlsZSAobW9yZSBzcGVjaWZpY2FsbHksIGJhc2VkIG9uIHRoZWlyIGZvbnQgZmFt
aWx5KS4gQXNrIHRoZSB0ZXh0IG5vZGUncyBwcmltYXJ5IGZvbnQgaWYgaXQgc2hvdWxkIGJlCisg
ICAgICAgIGV4Y2x1ZGVkIGZyb20gdGV4dCBtYW5pcHVsYXRpb24sIGFuZCBjYWNoZSB0aGUgcmVz
dWx0IGluIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyIHRvIGF2b2lkIHJ1bm5pbmcgdGhlCisg
ICAgICAgIGhldXJpc3RpYyBhbiBleGNlc3NpdmUgbnVtYmVyIG9mIHRpbWVzIGZvciBlYWNoIGZv
bnQgdGhhdCBhcHBlYXJzIGluIHRoZSBkb2N1bWVudC4KKworICAgICAgICAqIGVkaXRpbmcvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnNob3VsZEV4Y2x1ZGVGb250RnJvbVRl
eHRNYW5pcHVsYXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmZhbWlseU5hbWUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpG
b250OjpzaG91bGRFeGNsdWRlRm9udEZyb21UZXh0TWFuaXB1bGF0aW9uIGNvbnN0KToKKworICAg
ICAgICBBZGQgYSBoZXVyaXN0aWMgdG8gZGV0ZWN0IHdoZXRoZXIgYSBwbGF0Zm9ybSBmb250IHNo
b3VsZCBiZSBleGNsdWRlZCBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLiBGb3Igbm93LCB3ZSBvbmx5
CisgICAgICAgIHJldHVybiB0cnVlIGlmIHdlIHN1c3BlY3QgdGhhdCB0aGlzIGZvbnQgaXMgYW4g
Imljb24tb25seSIgZm9udCAoZm9yIGluc3RhbmNlLCB0aGUgIk1hdGVyaWFsIEljb25zIiBmb250
KS4gV2UKKyAgICAgICAgZ3Vlc3MgdGhhdCBhIGZvbnQgaXMgKnByb2JhYmx5KiBhbiBpY29uLW9u
bHkgZm9udCBpZiB0aGUgZm9udCBzdXBwb3J0cyBvbmx5IGNoYXJhY3RlcnMgZnJvbSB0aGUgYmFz
aWMgb3IgUFVBCisgICAgICAgIHVuaWNvZGUgcGxhbmVzLCBhbmQgdGhlIGdseXBoIGJvdW5kcyBm
b3IgdGhlIHNldCBvZiBzdXBwb3J0ZWQgQVNDSUkgY2hhcmFjdGVycyBhcmUgYWxsIGVtcHR5Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6ZmFtaWx5TmFtZSBjb25z
dCk6CisKKyAgICAgICAgQWRkIGEgcGxhdGZvcm0gYGZhbWlseU5hbWUoKWAgaGVscGVyIG1ldGhv
ZCBvbiBgRm9udFBsYXRmb3JtRGF0YWAuIE9uIENvY29hIHBsYXRmb3JtcywgdGhpcyB3cmFwcyBh
IGNhbGwgdG8KKyAgICAgICAgYENURm9udENvcHlGYW1pbHlOYW1lYC4KKwogMjAyMC0wNi0yMCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ11bUXVp
cmtdIFRhYmxlIGhlaWdodCBuZWVkcyBxdWlyayBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1NTkw
ODUwOTgwNzJmYzI1OWViNzc1NzE3ODRmZDRjNWY0NWQ5YmE3Li5iMjYwNjMwOGNlMmYzN2NkOTc2
OTRjZTM5MDgxOGIyMjZlMTc4NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNs
dWRlICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2lu
Y2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIKQEAgLTMzMCwxMCArMzMxLDMwIEBAIFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyOjpNYW5pcHVsYXRpb25Vbml0IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpjcmVh
dGVVCiAgICAgcmV0dXJuIHVuaXQ7CiB9CiAKK2Jvb2wgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6OnNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKGNvbnN0IE5vZGUmIG5vZGUpCit7Cisg
ICAgYXV0byogc3R5bGUgPSBub2RlLnJlbmRlclN0eWxlKCk7CisgICAgaWYgKCFzdHlsZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZm9udCA9IHN0eWxlLT5mb250Q2FzY2Fk
ZSgpLnByaW1hcnlGb250KCk7CisgICAgYXV0byBmYW1pbHlOYW1lID0gZm9udC5wbGF0Zm9ybURh
dGEoKS5mYW1pbHlOYW1lKCk7CisgICAgaWYgKGZhbWlseU5hbWUuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGl0ZXIgPSBtX2NhY2hlZEZvbnRGYW1pbHlFeGNs
dXNpb25SZXN1bHRzLmZpbmQoZmFtaWx5TmFtZSk7CisgICAgaWYgKGl0ZXIgIT0gbV9jYWNoZWRG
b250RmFtaWx5RXhjbHVzaW9uUmVzdWx0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXItPnZh
bHVlOworCisgICAgYm9vbCByZXN1bHQgPSBmb250LnNob3VsZEV4Y2x1ZGVGb250RnJvbVRleHRN
YW5pcHVsYXRpb24oKTsKKyAgICBtX2NhY2hlZEZvbnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzLnNl
dChmYW1pbHlOYW1lLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnBhcnNlKE1hbmlwdWxhdGlvblVuaXQmIHVuaXQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgTm9kZSYgdGV4dE5vZGUpCiB7CiAgICAgRXhjbHVzaW9uUnVsZU1h
dGNoZXIgZXhjbHVzaW9uUnVsZU1hdGNoZXIobV9leGNsdXNpb25SdWxlcyk7Ci0gICAgYm9vbCBp
c05vZGVFeGNsdWRlZCA9IGV4Y2x1c2lvblJ1bGVNYXRjaGVyLmlzRXhjbHVkZWQoJnRleHROb2Rl
KTsKKyAgICBib29sIGlzTm9kZUV4Y2x1ZGVkID0gZXhjbHVzaW9uUnVsZU1hdGNoZXIuaXNFeGNs
dWRlZCgmdGV4dE5vZGUpIHx8IHNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKHRleHROb2Rl
KTsKICAgICBzaXplX3QgcG9zaXRpb25PZkxhc3ROb25IVE1MU3BhY2UgPSBXVEY6Om5vdEZvdW5k
OwogICAgIHNpemVfdCBzdGFydFBvc2l0aW9uT2ZDdXJyZW50VG9rZW4gPSAwOwogICAgIHNpemVf
dCBpbmRleCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmgKaW5kZXggZDZhY2QzYzFlNDc0NjlkODc3NTZlYWY4MDE4YjczYTY2
NGI5OWU5OS4uOTQ5OGY2Mjk1NDdkY2IzZDAxMzhkZjBhNWJkMjkwMjgxMmJiNjdjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
aApAQCAtMTU5LDYgKzE1OSw4IEBAIHByaXZhdGU6CiAgICAgTWFuaXB1bGF0aW9uVW5pdCBjcmVh
dGVVbml0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgTm9kZSYpOwogICAgIHZvaWQgcGFyc2UoTWFu
aXB1bGF0aW9uVW5pdCYsIGNvbnN0IFN0cmluZyYsIE5vZGUmKTsKIAorICAgIGJvb2wgc2hvdWxk
RXhjbHVkZU5vZGVCYXNlZE9uU3R5bGUoY29uc3QgTm9kZSYpOworCiAgICAgdm9pZCBhZGRJdGVt
KE1hbmlwdWxhdGlvbkl0ZW1EYXRhJiYpOwogICAgIHZvaWQgYWRkSXRlbUlmUG9zc2libGUoVmVj
dG9yPE1hbmlwdWxhdGlvblVuaXQ+JiYpOwogICAgIHZvaWQgZmx1c2hQZW5kaW5nSXRlbXNGb3JD
YWxsYmFjaygpOwpAQCAtMTc4LDYgKzE4MCw4IEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8
RWxlbWVudD4gbV9lbGVtZW50c1dpdGhOZXdSZW5kZXJlcjsKICAgICBXZWFrSGFzaFNldDxFbGVt
ZW50PiBtX21hbmlwdWxhdGVkRWxlbWVudHM7CiAKKyAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4g
bV9jYWNoZWRGb250RmFtaWx5RXhjbHVzaW9uUmVzdWx0czsKKwogICAgIE1hbmlwdWxhdGlvbkl0
ZW1DYWxsYmFjayBtX2NhbGxiYWNrOwogICAgIFZlY3RvcjxNYW5pcHVsYXRpb25JdGVtPiBtX3Bl
bmRpbmdJdGVtc0ZvckNhbGxiYWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuY3BwCmluZGV4IDhiNjFmZDA0ZjJmYWFhZjdhYWNhYzBkZjQyMzlmOGM3MDJjNWQzOTUu
LmM3MThmZmZlMGI1YzMwOTlhNWUyOWY3NjEwYjY3ZmJlOTc0NDZjZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC00NzUsNiArNDc1LDE1IEBAIGNvbnN0
IEZvbnQmIEZvbnQ6OmJyb2tlbklkZW9ncmFwaEZvbnQoKSBjb25zdAogICAgIHJldHVybiAqZGVy
aXZlZEZvbnREYXRhLmJyb2tlbklkZW9ncmFwaEZvbnQ7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCisKK2Jvb2wgRm9udDo6c2hvdWxkRXhjbHVkZUZvbnRGcm9tVGV4dE1hbmlwdWxhdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZW5kaWYKKwogI2lmICFMT0dfRElT
QUJMRUQKIFN0cmluZyBGb250OjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggMTI4M2Y4MmE3ZWMxMDkzNzNhMmQ0MTMyN2Vi
YTA0NmJjN2FhZDQ1MC4uYTg0MDkxODg5MjIwZmEwZTIwZDY0MzM5NTVlOWQ2NTUwYzUyMzM4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMTA2LDYgKzEwNiw4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBGb250KiBlbXBoYXNpc01hcmtGb250KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYpIGNvbnN0OwogICAgIGNvbnN0IEZvbnQmIGJyb2tlbklkZW9ncmFwaEZvbnQo
KSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkRXhjbHVkZUZvbnRGcm9tVGV4dE1hbmlwdWxhdGlv
bigpIGNvbnN0OworCiAgICAgY29uc3QgRm9udCogdmFyaWFudEZvbnQoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbiwgRm9udFZhcmlhbnQgdmFyaWFudCkgY29uc3QKICAgICB7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IDlkMjg3YWY2NjgwZjQzNDI2ZTAyODFm
YjVkYzMwYjRlYjkxMmIzZmEuLmQ0YmMyYTRmMTExZDM4MjBmODA5ZDE4MGZlNjczMjQ5MDljYmU3
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCkBAIC04NCw0ICs4NCwxNCBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRQ
bGF0Zm9ybURhdGE6OmNsb25lV2l0aFNpemUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNl
LAogfQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK1N0cmluZyBGb250UGxhdGZv
cm1EYXRhOjpmYW1pbHlOYW1lKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVu
dGVkIHlldC4KKyAgICByZXR1cm4geyB9OworfQorCisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IGQz
OGQ0ZGQ5MTIwYTA5ZWFlMjNlY2ViNTY5MzgxMTVmZDY3MDA3ODcuLjAwYzRhODg1NTM0NjM3YzQy
YzY3MDdiOGJmYzhmOTliNjBlNGZlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwdWJs
aWM6CiAgICAgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJl
dHVybiBtX3RleHRSZW5kZXJpbmdNb2RlOyB9CiAgICAgYm9vbCBpc0ZvclRleHRDb21iaW5lKCkg
Y29uc3QgeyByZXR1cm4gd2lkdGhWYXJpYW50KCkgIT0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxh
cldpZHRoOyB9IC8vIEtlZXAgaW4gc3luYyB3aXRoIGNhbGxlcnMgb2YgRm9udERlc2NyaXB0aW9u
OjpzZXRXaWR0aFZhcmlhbnQoKS4KIAorICAgIFN0cmluZyBmYW1pbHlOYW1lKCkgY29uc3Q7CisK
ICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udC5nZXQoKTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KaW5kZXggMTRh
NWEzNjJiOGIxNGRlZmEzMzQ5MWJkMWMzNDA0OTRkZjYyMjAxZC4uOGUwZDZiYWZlM2Q2MThjMzgx
ZTg2MTNiM2UxMGU1ZmM2YTQ4ZTFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQpAQCAtNjU5LDQgKzY1OSw0OSBAQCBib29s
IEZvbnQ6OnBsYXRmb3JtU3VwcG9ydHNDb2RlUG9pbnQoVUNoYXIzMiBjaGFyYWN0ZXIsIE9wdGlv
bmFsPFVDaGFyMzI+IHZhcmlhdAogICAgIHJldHVybiBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0
ZXJzKHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBjb2RlVW5pdHMsIGdseXBocywgY291bnQpOwog
fQogCitib29sIEZvbnQ6OnNob3VsZEV4Y2x1ZGVGb250RnJvbVRleHRNYW5pcHVsYXRpb24oKSBj
b25zdAoreworICAgIGlmIChvcmlnaW4oKSAhPSBPcmlnaW46OlJlbW90ZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBwbGF0Zm9ybUZvbnQgPSBwbGF0Zm9ybURhdGEoKS5jdEZv
bnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtRm9udCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBzdXBwb3J0ZWRDaGFyYWN0ZXJzID0gYWRvcHRDRihDVEZvbnRDb3B5Q2hhcmFjdGVy
U2V0KHBsYXRmb3JtRm9udCkpOworICAgIGlmIChDRkNoYXJhY3RlclNldEhhc01lbWJlckluUGxh
bmUoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgMSkgfHwgQ0ZDaGFyYWN0ZXJTZXRIYXNNZW1i
ZXJJblBsYW5lKHN1cHBvcnRlZENoYXJhY3RlcnMuZ2V0KCksIDIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBBbGxvdyBtb3N0IG5vbi1pY29uIGZvbnRzIHRvIGJhaWwgZWFybGll
ciBieSB0ZXN0aW5nIGEgc2luZ2xlIGNoYXJhY3RlciAnYScuCisgICAgVW5pQ2hhciBsb3dlcmNh
c2VBQ2hhcmFjdGVyID0gJ2EnOworICAgIENHR2x5cGggbG93ZXJjYXNlQUdseXBoOworICAgIGlm
IChDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKHBsYXRmb3JtRm9udCwgJmxvd2VyY2FzZUFD
aGFyYWN0ZXIsICZsb3dlcmNhc2VBR2x5cGgsIDEpKSB7CisgICAgICAgIE5TUmVjdCBsb3dlcmNh
c2VBQm91bmRpbmdSZWN0ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9y
bUZvbnQsIGtDVEZvbnRPcmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsIG51bGxw
dHIsIDEpOworICAgICAgICBpZiAoIU5TSXNFbXB0eVJlY3QobG93ZXJjYXNlQUJvdW5kaW5nUmVj
dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgVW5pQ2hhciBjaGFy
YWN0ZXJzWzI1Nl07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7ICsraSkKKyAgICAgICAg
Y2hhcmFjdGVyc1tpXSA9IHN0YXRpY19jYXN0PFVuaUNoYXI+KGkpOworCisgICAgQ0dHbHlwaCBn
bHlwaHNbMjU2XTsKKyAgICBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKHBsYXRmb3JtRm9u
dCwgY2hhcmFjdGVycywgZ2x5cGhzLCAyNTYpOworCisgICAgQ0dSZWN0IGJvdW5kaW5nUmVjdHNb
MjU2XTsKKyAgICBDVEZvbnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKHBsYXRmb3JtRm9udCwg
a0NURm9udE9yaWVudGF0aW9uRGVmYXVsdCwgZ2x5cGhzLCBib3VuZGluZ1JlY3RzLCAyNTYpOwor
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7ICsraSkgeworICAgICAgICBpZiAoIUNGQ2hh
cmFjdGVyU2V0SXNDaGFyYWN0ZXJNZW1iZXIoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgY2hh
cmFjdGVyc1tpXSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoQ0dSZWN0
SXNFbXB0eShib3VuZGluZ1JlY3RzW2ldKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IDhhNjM5
ZGIxZjRjMWIzNmY4NzczNGNmMDQ2MDVmYTM5MTM4M2FhODkuLjcyZTgyNTFjM2QzNzRlMTAyNDlj
ZTM0MDkzMjcxM2IwOGVjYWM4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAg
LTE4MSw0ICsxODEsMTEgQEAgU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkg
Y29uc3QKIAogI2VuZGlmCiAKK1N0cmluZyBGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlOYW1lKCkg
Y29uc3QKK3sKKyAgICBpZiAoYXV0byBwbGF0Zm9ybUZvbnQgPSBmb250KCkpCisgICAgICAgIHJl
dHVybiBhZG9wdENGKENURm9udENvcHlGYW1pbHlOYW1lKHBsYXRmb3JtRm9udCkpLmdldCgpOwor
ICAgIHJldHVybiB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYjZhNjBjZjkwODM5NmI1
OTU5YWM0NzJlYTcyMjRiNDYwYzg4OTYwLi5kYTQwZGQ0NzI0MmNhOTA0YjUyMTgyMzFjYjJlYjNi
Y2UxMjYzNWMwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dCBtYW5pcHVsYXRpb24gc2hvdWxkIGV4Y2x1
ZGUgdGV4dCByZW5kZXJlZCB1c2luZyBpY29uLW9ubHkgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ0NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjM3MzQyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVtLnR0ZjogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNi0xOSAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgQnJpbmcgdXAgd2F0Y2hPUy90
dk9TIG9uIGJ1aWxkLndlYmtpdC5vcmcgKEZvbGxvdy11cCBmaXgpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDllODgxMTJiNWJiNDRhMjVhOGM3ZGUwMWEyYmQxZTU2NzhkODc3NzMuLjI0YWU3
M2RjMmRiZmQzN2UxZTIxMDM5Y2JiZTZkMDJlZmUwOThhNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMTI3LDYgKzExMjcsOCBAQAogCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQgLyog
dGV4dC13aXRoLWFzeW5jLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0Q3NEM1MjBGREFDRjUwMERFMzc5NCAvKiB0ZXh0
LXdpdGgtYXN5bmMtc2NyaXB0Lmh0bWwgKi87IH07CiAJCUY0Q0Q3NEM5MjBGREI0OTYwMERFMzc5
NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0Q3NEM4MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2No
ZW1lSGFuZGxlci5tbSAqLzsgfTsKIAkJRjRDRjMyODAyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVy
S2V5SGludFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRDRjMyN0YyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICov
OyB9OworCQlGNENGQ0REQTI0OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENGQ0REODI0
OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiAqLzsgfTsKKwkJRjRDRkNEREIyNDlGQzlF
OTAwNTI3NDgyIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0ZDREQ5MjQ5RkM5RDkwMDUyNzQ4MiAvKiBBaGVtLnR0ZiAq
LzsgfTsKIAkJRjREMjk4NkUyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1l
bnRMb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1lbnRMb2FkLm1t
ICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0FuZERyb3BTaW11bGF0
b3JJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0gKi87
IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjcx
RTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJT1MubW0gKi87IH07CkBAIC0xMjI2
LDEyICsxMjI4LDEyIEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJ
CQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAotCQkJCTU3NTFCMjhBMjQ5RDVC
QzUwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVk
LnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUg
LyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxODAw
MjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNjZXB0c0ZpcnN0TW91c2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyog
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQlGNENGQ0REQjI0OUZDOUU5MDA1Mjc0ODIgLyogQWhlbS50dGYgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMUMyQjgxODcxQzg5MjVBMDAwQTU1MjlGIC8qIEFoZW0udHRmIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTFBNjM0NzlGMTgzRDcyQTQwMDVCMTcwNyAvKiBhbGwtY29udGVu
dC1pbi1vbmUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzI1Q0NBMEQx
RTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFoZW0uc3ZnIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAt
MTU0NCw2ICsxNTQ2LDcgQEAKIAkJCQk0NkFFNUEzNzIwRjkwNjZEMDBFMDg3M0UgLyogU2ltcGxl
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUY0RjQwNUJEMUQ0QzBEMUMwMDdBOTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMwMUEyM0YyMTI2
NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1zY3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQlGNENGQ0REQTI0OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlFMTk0RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExv
YWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJNTE1QkUxNkYxRDQyOEJCMTAwREQ3QzY4IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUJENkQzQTIxRjdCMjE4MzAwQkQ0OTYyIC8qIHN1
bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlmZiBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1
OTAsNiArMTU5Myw3IEBACiAJCQkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTc4REE0NDgyM0VDRDA5QjAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1NzBEMjZGNDIzQzNDQTZBMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1MUIyOEEyNDlENUJDNTAwNjY0QzJBIC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGlu
LWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzhE
QTQ0MjIzRUNDN0EwMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtYmxvY2tlZC1lcnJvci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTU3OERBNDQ2MjNFQ0NDMEEwMDI0NjAxMCAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0
aC1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTcw
RDI2RkEyM0MzRjI1MTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1ibG9ja2VkLWVycm9yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0yODA4LDYgKzI4MTIsOCBAQAogCQlGNENENzRDODIwRkRCNDk2MDBE
RTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBU
ZXN0VVJMU2NoZW1lSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRD
REFCMzMyMjQ4OUZFMTAwNTdBMkQ5IC8qIFVzZXJJbnRlcmZhY2VTd2l6emxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VySW50ZXJmYWNlU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjRDRjMyN0YyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRW50ZXJLZXlIaW50VGVzdHMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0Q0ZDREQ4MjQ5RkM5RDkwMDUyNzQ4MiAvKiBTcGFjZU9ubHkub3Rm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
cGF0aCA9IFNwYWNlT25seS5vdGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0ZD
REQ5MjQ5RkM5RDkwMDUyNzQ4MiAvKiBBaGVtLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBBaGVtLnR0Zjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlw
dEFmdGVyRG9jdW1lbnRMb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVuU2NyaXB0QWZ0
ZXJEb2N1bWVudExvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I0
MUU0RTJCQ0IwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3Njcg
LyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERyYWdBbmREcm9wVGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zNTI0LDYgKzM1MzAsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTVBODE3RkUy
MTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLywKIAkJCQk1NUE4MTdGRDIxODEw
MURGMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgKi8sCisJCQkJRjRDRkNERDkyNDlGQzlE
OTAwNTI3NDgyIC8qIEFoZW0udHRmICovLAogCQkJCUMyNUNDQTBDMUU1MTQwRTUwMDI2Q0I4QSAv
KiBBbGxBaGVtLnN2ZyAqLywKIAkJCQlGNEE5MjAyRTFGRUUzNEM4MDBGNTk1OTAgLyogYXBwbGUt
ZGF0YS11cmwuaHRtbCAqLywKIAkJCQlBMTc5OEI4QTIyNDM2MTFBMDAwNzY0QkQgLyogYXBwbGUt
cGF5LWFjdGl2ZS1zZXNzaW9uLmh0bWwgKi8sCkBAIC0zNzE0LDYgKzM3MjEsNyBAQAogCQkJCUM5
QjRBRDI5MUVDQTZFQTUwMEY1RkVBMCAvKiBzaWxlbmNlLWxvbmcubTRhICovLAogCQkJCTQ2NTZB
NzU3MjBGOTA1NEYwMDAyRTIxRiAvKiBTaW1wbGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00
LnNxbGl0ZTMgKi8sCiAJCQkJRjRGNDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8sCisJCQkJRjRDRkNERDgyNDlGQzlEOTAw
NTI3NDgyIC8qIFNwYWNlT25seS5vdGYgKi8sCiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4
IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwgKi8sCiAJCQkJOUJENkQzQTExRjdCMjAyMTAw
QkQ0OTYyIC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlmZiAqLywKIAkJCQk5QkQ2RDNB
MDFGN0IyMDIwMDBCRDQ5NjIgLyogc3Vuc2V0LWluLWN1cGVydGluby0yMDBweC5wbmcgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0udHRm
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVtLnR0ZgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYzgxY2IwMzE2NWFiODMxYTM2YWJiNTkxNDVmZjdhMmY1Njc1ZmI5CkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxMjQ4MAp6Y21lSE5aRm0mYjZAS1NxWEZxYD9WI0o4X1d7WigzMjc7QyVy
Tn5GNU5EK31CcU5VMHZKSU15S3lLIzQ4ZiZ4V3IKeilrZ1UhVDgmQzZCNyVZPDNSKG44NWZLNFZz
aXRUVm1vIT5VWkImWTJlR3BqUkozQTIrK2RxQiRWTFArVz8ze2I8Cnp5PVR0Nz1iZH1jP3p+VXtf
JVJiMmBkKDdqcihlVV5RTF9NTDBKVzFWcU1fT0B5WWZjPnR7VDhkUkUzaFlJMGFzeQp6P0BIRl5S
TWt3YXlsN1F3SHgwQV4xPnVNcDNoIURwcmFTQV9eWHdtPyF0Sy1aREllaDNHWklaVEpSPmxqX0x+
NSQKenhoN3JfNV9NKz1mdWQ2QytNfVV7VDZgKylFOFc7JCM2blNYTSVPI20wS05NMXsqbF52R0Jz
PUc+NVZgIWA+V2pgCnplT0U5bkAwM2ZjdUlAN0VBaVA9fEhDUHFEYFUtajdjK1Q+UmZYbzFgTyVw
Nj9QXkZkIWApTUxHZlp0WW9lb0lUbwp6OXx0WVhMM3Ijd1UjO2l1d0tpb2dUb2wlO15heWpaU0xK
IzFRIzVMIWF+JCVSMnxTKHlHMTRtVj4rKkFsMTRBSjgKenNrUlJTVExxTmRBKnxEYzwqQmVkPDIr
P09sd0xaZ0dZMVheelRGcyprOH0zYU44MmstY1dTdHtzNntZVHBNMmd+CnpgMDg0dGE1MmRxOWFw
PH0hWD97TmdVKXJ5ZlNhcUFUIVZhRS12ajdgJmdnPDE8UlQ5enAoez5DS0cqVllJMjhwcgp6NGMm
MSVkZis8e0NgMXQ3TU5nYzhCQWtne18jViF9KzMxYVBQPmVxNGl4VHcxeGl9QnNNfVBiUDE4X2JE
OylmVzcKekE3TDtxO0pQKnghIVI3QnhEWEBvVn5vVF83PUBvO0clbSYlVCFPSzw2eXMyYUB3Zn5W
YTUqTzgzUzVid1ZpSkNhCnp0OGdfWSk4NyF2UUdxWl9SSDZ6SVJBVU9SS0BGbWFBJnkjSGl2KkhM
cCReeGY5dTFnXj52MDM3YWJLQiVwTDRsPQp6NkYxQH1gfm8tUUUmTEw8Ozh4cyp4QTd9OTsoZ3FY
Sko1eiVfeV5pQzgqfWd1LW9AWTBqSzU8cGV2UXtLNHxuMSYKenswNFg5Sl5UcUQ7OG9tJUNacmpx
YCoxKHo8N0s+cEtWdWkoeitkb05FV3EjWkFyQGpNVEpab3tASy1BJGQkMCh2CnpWPmtCVktgaDJZ
U2MwV143Pns1WG1nNy04I3heVlBJOUIyYkpjKDZVamk+TjVldmRWSDI1WWc3SkV1LUdmVWBBKAp6
UVM4aHAlc0BzZFFPY0FDV3VFJGl4PW5wY3lHd2dTVGQhPnRJaWptNTVJc2F0NnA2bEtwZVFYMjc4
Vjg3cGJfajYKeiVuS0YtZGohdThqdG91P24hKXtOWX5RRDVHUEVsZyh9bEQqJmEkX0tfVEQoby1i
dGRIPXFgazFAQkE7PiVNRzZUCnpnfXR6NDUxQ0JuP015M28qYyZzYEc3fmN3MDd1JCs0bkFfJDtu
JDlJLUo1Q0kxaGxNZ1M9WHxyPD8pdUtFZXJOTwp6eVo1bmxZa0VnfG16PH5jX1ZrQUlMK1FyIXQj
NXR5WDN3MERZfX04TWJAR3M0bWdqTkQoY3xSZiNkYiNGI04lR1oKelFSM2hNTSowcyNMbkNvOG0r
YHpDbn45MDFoPn1AJjBiN1pUSW1GMiMmaUB1LXBiNld0NEtFU31fYzMtNEdVXmhLCnp3LWI+fGlP
SSFgPTVqbGw4O0g7cVJ6Jjkkc21+S3hQZ3JyUyFiV1QmP3k4QzFEYTdxSE1EOUZkeDBkTFkqaTh8
PQp6NjEjc1NkWiFZPCpBdSVwNUpgNzMoJGcmakthMXl4cyNVfjc3OCZiXmxDPjd6VU1GNVIpN1NT
TGx3PD8kcHlXVEkKekw/KXVsQmVpUVohOE9iY29TUiNpZHEhYnk7ZEolR0JYZzdrTSsySFQrJWxh
ajRreXlpbCh8US1RSzhtJHhFbXtGCnpDaHBZOVVsN2lgSUdBdnIyV0tzQykmZ2dMYVE0UDtJNEB3
PCFUcStSQE1MU3grM01zVio/JSRyWExBc1NgXjBzJQp6I21QT0xvWlFLfm8hP140P0A7R0FffUE8
WS0qNjcle057SzUyWGcpY2I4O3t6MlhrXlRDa0p6S0ZlZUI1SCNyIXsKekMmKyQrV0MjckEreHsj
MD8oO2duYkRoV2NtQER7KFlDR1NVemwjSGtzXmxtPWwtfGxmV3UhN2UyYGRSQHJaUVdaCnp1UGpz
NkN8aV9mckImSWQ5OTA4cWYhYSYkdWE+SWcpWDhkMG91KVJiUDNqVkx3WW97JnNpeEktXl5vUyNe
MGw1Pwp6S1cmSU1Nd19IZihIZ1d7XyNTKGF3bz09bT9hKzQ5KEAlNj0mKG5vb3RQaiNoPUBhI15w
M3JDTnYtU0Q8R0pURHsKek1RXyR5Xj9td0xTSE0tXj5nRFMxRHNfIT5PP0pneChfRD9OQ2Y1P3pZ
UyQqJFBGTEYxP21BPzZqQ2BZfihhI3VTCnpqND50fFE7WWBWN1VNMnNrK0lVKVZDKm48OCpSb1ha
cno+ZDdWY3ZBQW9uUXVNMGNlLTwtVzsxKlMpfn5zQyV0QAp6dDl6SUc5cnUwQEplQHQ9SiFnM2FA
SDRfUS1jIzxXXn5+X3g7a25RQXU7KiNkWDN3amg3U0QmQyEoTn1hbzQzZSYKem9fQ21jdG9KSCFq
clYlKlpRaUBSaUBpXkpIK288OD8oeDN3e25UZ3B5ODQyP3pQYGJ9KFlgQnY1I00jYm58PD9xCnoz
dzxrbT53VmpPWn17SHo5cV9DRTlEZmdnWn5zOTVOZEUrWCpxYHZ2XncwTHNfYj5DV0BvKGByYCY8
M3t7Nl88VQp6S3RaNWFwbnNxPUZmSzRUNURRRVRHek9YaU85SEN7bip1dW49fEZxblAkeTVQezd5
WVBePHlAMG5zViROe1F7UD0KemhYUmslUUJ1KWFTel94bzJ4WVlgPnVsMyglUCE8QWR1LVhEZSFx
T1d0bTc1c2tTIX5HJWV+RShSaytvY1kqfEImCnorSEFgQCtxYDRURjhJfEJFfXVkRCRGQEYpXjFw
MDNtdiVuMDx2aSRgJURxaklUcz51aFg0bz52cUEjeyhqenhkZQp6bU5eIUV0dTFwYmBmZ2sxU29C
c349Mi1Na1o4LS1YbTs0YDcrUnNJMm0mY2Ejc0x2LU9DVHtVcTFpMXdmdko0VkQKekU2NUhvRXE7
cnpHJHNUITUkWGliRDhHfkI1WSpYcXkpQTc2ZHpvWXhxKnk4PD9gOX49YihTNHpCU3pNT0FnOEM2
CnpyKSp6T1l0X35yckw3MmtzSFprV1N6M3YpVW11SG1iRjNgTFpiLTE1eW5CWik8eUhAcT8xcE9n
RzA2PVFXYmBCewp6UnIyMDdFTEV+YyFzPW1DcFIoRmp2MFB6VWwzYSkrYnk2UnYxP2tJRnREUEtX
KHl9KyF4QCh5QnEtU3l6PCFtRiEKejlnNEZnJU9tSlRnc3IzcEA/T1g4blZxcldXRXohR1UmZU0o
K0wxRntPOyVIcXhebH5VSj5fZylJcSUyKEVhb2dxCno4JlJeQU90TyZWbX1HPHxTZ29iIVMrN2d6
WCRoQCR3Qz1jbWVMSzdNVik5cjtNSUA5NlJpdztCUWlLd3dOSlVJeAp6TW4mQDRJK2w3MXYhVE1R
T15Lb2xoZ1FfM09jOUVPTVgpeTVUaHZGWUQ8VUVwaVB3dXp2Y2ltfGBoLXBFRGs+QjQKenNBWikq
bHIoRnFWYGowcUVOTkVPKXJpVj9MWnItT3N5YkZCRCZrU0hYc2M3ekB0ODxYT3tVQ2Z2Ukk1dyNL
VXpKCnpXPn1PQDczMVVLdW93fUZCd31WRittbnRCRkRueWVwPWV6cVJERVZybHFjZiNOIUhwbmkt
JChjPXMyXmd0fHBZMgp6en5NO0tDQi1FfHNeeGl7dTB2KEZtUE98Jl88d3kwekliTjd7RGdIcEwy
N24wJGxTb3A7c2hjWEgzejl3JCFfXkYKeit3dDRQYm9fNjVqeUdCeU42QiEhalUyV3thQDF5Iz1f
WXhNY2FyMEZrSHJeVE5jUCh6aS0jIXJobXc2THhyYlIrCnoqOz15VnAwZ05tK25BcmRoI2gjejt5
M09qXllKeHVBfD1vOWImS2hebzFEciRXSypXZVhfUEYtSHU1Rmt3PlhwXgp6a2FfbkpfVGl0e2tC
YGFuS1pzQVB4Smg+N0kmJFM2Q2E+KiZpfDRyNlZtZHhnTSYyZn1AME9FbXd9QXx9Xjw+UjgKemsh
ZzE/eHB3byZ1YmdBQ0ZQRDt3X2JPUiomeXE+NkQhTS1BdmVCY31rPmo8fTNyRXdzWDBoXmZwcGVn
fmVHVSFICkJjQGg4cwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVi
MTM0M2M5YzFjMzRjNmI5N2ZjMDZjZDg2YmFkNTY3YThmZDNjYTMKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDE3NDAKemNtZHMyUGlSeX04MmA8Q1pgVU5vQiZNZGRfPUtUYWh9M019Q1BCKkxLfT5k
d01VI05oWGZPSjctfkl2ajUxUj41CnpuP2oqYilMMmtZVWM0NShsdE9iNlQ8fkJFI2ZhXihKdDx4
a3QweE5eOH1qX2srYVZASUpiQ0lvWDE/RnwmMlBUPgp6ekx7QCEkMGpEbSgyajNtVzhaS2xCWDVz
ZUtMRGB7MEdeSDxLSlcjbDBPRT9XQzZrI3JscyFIJk5gMDJQSjlmQiMKejs3RUFsWiZFeiFDJnpR
Pz80SnU/fEhBcH0pT1ZqUWBCaU1QZSo+Skk8bUBqNWVzPU4yJEtQO25mcWhTYjI3QWB0CnohOHdR
ZSZPJTlALVM3dHk7JihaO2w+RDwqU21UN0VSfnlUSURmc3piVFB5VnxmT1dONm5OczJSNy1ZTiEm
UHlHcwp6P3d6LTg5NX5Vcl9nYCRacFV7SClgRns/c21LdzlRei1qYCQjK0twZF9eUWRMUmVNXzkk
WWRPdkA3UGJvT1Q/JkwKenZUanFxKz8zKVdsN2pPVjsqOEk8SEQyYFQ7MGAyWWJGWHpBJlA0bG07
SE9BeCFVISVJRVlPT18yNkdlcVhSd1Y9CnojaStwIVRFenV9VzlTbXwyRkdkdGkjSUdCOWg8KH1D
S2wrJTFBe0dBIUU9TGNlOTJzejkwJVAoODYxTlkqOT94Kwp6e3dzITJMaldJJlcwdnVzIWEwdHxQ
XjdKbF5DKTFOYGVkWiNpRG8jWFhxQ3ZJTFdZV0Q0U0JBWTcoZkNaV2lKX3UKelVsbDN6XlVFMm9t
UThLflE/d0BOQXN9eFRGa0IwSzY9ZGI5Yk1qY3hGUHw/PSVTcGVTbW9yNkdrZU56WldoJTlOCnpB
T3traj5ANnImUDQpTlpYdzdNQlZrKHk/Mlp+O2ZMP1ApQSZxTjYmWCkzRnRJdW0zRzRASV5qUXp9
c2p2YytsMgp6Y2pie3tGNiYpTlcram90NWMqaVZlYXphVSN3dVBMVz1nSlhFbUpaJSlIbTJTOzNZ
fDA/e1JnSU07VDt8ciZFbTEKek93emFadUZxOX01O3oqdnJpenVhXnRAIWteRV9KSz9VMj0/PiFz
T1VRJkQ/JDcwfjl3KExPbWtrdUpsSzhwclVGCnpWTTReJEtQUGg1SDB8bnQtdC1Cd2gyUWJNLSpP
LVY0b15ec3d2fGY8cFA7fkpqWlFTU2lIMik2dyVkKTVvWGhRRQp6anhGWm0kNChkTWEmZEZCaXh3
QTt4PyRARFheZGo+ZVl9UjFLdnNaYFUlKFJMbGZrKXFCVjhCdWByPkB1dTdDSnkKell2Ym5mKV84
cXNybCpsIW9MQD9CPW07JHBFLW1eITtqKTZXd0F8RDJZSWUoOSZzPSsoY0plMHc9O0Q5QlNtRW9e
Cm56dGN+UmVEPSYja0kwPWE+SG5UQz5MMkx4PVBPN0tyS0N3UHBfZjdiWVV9PFEmTDB+MgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IGJjZGUwZjEyZjAwOWY2
NjdkYWJkODRlNGM5MDkzODM0MjhmNjRmMzcuLjk3MTJmZDZlOTA4ODY2NzM1Yjc5YTQ5MDliZjM2
N2RkYTYyMWMwMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTEwMDIsNiArMTAwMiw1MiBAQCBU
RVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4dHJhY3RzVmFsdWVz
QnlOb2RlKQogICAgIEVYUEVDVF9TVFJFUSgiZml2ZSIsIGl0ZW1zWzFdLnRva2Vuc1sxXS5jb250
ZW50LlVURjhTdHJpbmcpOwogfQogCitURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1h
bmlwdWxhdGlvbkV4Y2x1ZGVzVGV4dFJlbmRlcmVkQXNJY29ucykKK3sKKyAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcgX3NldFRl
eHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+IgorICAgICAgICAiPGhl
YWQ+IgorICAgICAgICAiPHN0eWxlPiIKKyAgICAgICAgIkBmb250LWZhY2UgeyIKKyAgICAgICAg
IiAgICBmb250LWZhbWlseTogQWhlbTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoQWhlbS50dGYp
OyIKKyAgICAgICAgIn0iCisgICAgICAgICJAZm9udC1mYWNlIHsiCisgICAgICAgICIgICAgZm9u
dC1mYW1pbHk6IFNwYWNlT25seTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoU3BhY2VPbmx5Lm90
Zik7IgorICAgICAgICAifSIKKyAgICAgICAgIi5BaGVtIHsgZm9udC1mYW1pbHk6IEFoZW07IH0i
CisgICAgICAgICIuU3BhY2VPbmx5IHsgZm9udC1mYW1pbHk6IFNwYWNlT25seTsgfSIKKyAgICAg
ICAgIi5NaXNzaW5nIHsgZm9udC1mYW1pbHk6IE1pc3Npbmc7IH0iCisgICAgICAgICIuU3lzdGVt
VUkgeyBmb250LWZhbWlseTogc3lzdGVtLXVpOyB9IgorICAgICAgICAiPC9zdHlsZT4iCisgICAg
ICAgICI8L2hlYWQ+IgorICAgICAgICAiPGJvZHk+IgorICAgICAgICAiPHNwYW4gY2xhc3M9J0Fo
ZW0nPm9uZTwvc3Bhbj48c3BhbiBjbGFzcz0nU3BhY2VPbmx5Jz50d288L3NwYW4+PHNwYW4gY2xh
c3M9J01pc3NpbmcnPnRocmVlPC9zcGFuPjxzcGFuIGNsYXNzPSdTeXN0ZW1VSSc+Zm91cjwvc3Bh
bj4iCisgICAgICAgICI8L2JvZHk+Il07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZp
ZXcgX3N0YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpuaWwgY29tcGxldGlv
bjpeeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBpdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107Cisg
ICAgRVhQRUNUX0VRKGl0ZW1zLmNvdW50LCAxVUwpOworICAgIGF1dG8gaXRlbSA9IGl0ZW1zLmZp
cnN0T2JqZWN0OworICAgIEVYUEVDVF9FUShpdGVtLnRva2Vucy5jb3VudCwgNFVMKTsKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoaXRlbS50b2tlbnNbMF0uY29udGVudCwgIm9uZSIpOworICAgIEVYUEVD
VF9GQUxTRShpdGVtLnRva2Vuc1swXS5pc0V4Y2x1ZGVkKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
aXRlbS50b2tlbnNbMV0uY29udGVudCwgInR3byIpOworICAgIEVYUEVDVF9UUlVFKGl0ZW0udG9r
ZW5zWzFdLmlzRXhjbHVkZWQpOworICAgIEVYUEVDVF9XS19TVFJFUShpdGVtLnRva2Vuc1syXS5j
b250ZW50LCAidGhyZWUiKTsKKyAgICBFWFBFQ1RfRkFMU0UoaXRlbS50b2tlbnNbMl0uaXNFeGNs
dWRlZCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKGl0ZW0udG9rZW5zWzNdLmNvbnRlbnQsICJmb3Vy
Iik7CisgICAgRVhQRUNUX0ZBTFNFKGl0ZW0udG9rZW5zWzNdLmlzRXhjbHVkZWQpOworfQorCiBz
dHJ1Y3QgVG9rZW4gewogICAgIE5TU3RyaW5nICppZGVudGlmaWVyOwogICAgIE5TU3RyaW5nICpj
b250ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402430</attachid>
            <date>2020-06-21 11:40:55 -0700</date>
            <delta_ts>2020-06-22 11:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213446-20200621114055.patch</filename>
            <type>text/plain</type>
            <size>25430</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg5NjQxNmZhNTYyYWNm
OWJmNDQ0Njk0YjNiNjNhYjNhYjBkYTE0Yi4uZjhjZjY1NjFmZGRmYjE1Y2UyMWFhNGI5YTg1ZDE4
NGMxYjg4NmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA2LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNpbmcgaWNvbi1vbmx5IGZvbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVsYXRpb24uU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhj
bHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UpOgorCisgICAgICAgIEF1Z21l
bnQgdG9rZW4gZXhjbHVzaW9uIHJ1bGVzIHNvIHRoYXQgd2UncmUgYWJsZSB0byBleGNsdWRlIGNl
cnRhaW4gdGV4dCBub2RlcyBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLCBiYXNlZCBvbgorICAgICAg
ICB0aGVpciBzdHlsZSAobW9yZSBzcGVjaWZpY2FsbHksIGJhc2VkIG9uIHRoZWlyIGZvbnQgZmFt
aWx5KS4gQXNrIHRoZSB0ZXh0IG5vZGUncyBwcmltYXJ5IGZvbnQgaWYgaXQgc2hvdWxkIGJlCisg
ICAgICAgIGV4Y2x1ZGVkIGZyb20gdGV4dCBtYW5pcHVsYXRpb24sIGFuZCBjYWNoZSB0aGUgcmVz
dWx0IGluIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyIHRvIGF2b2lkIHJ1bm5pbmcgdGhlCisg
ICAgICAgIGhldXJpc3RpYyBhbiBleGNlc3NpdmUgbnVtYmVyIG9mIHRpbWVzIGZvciBlYWNoIGZv
bnQgdGhhdCBhcHBlYXJzIGluIHRoZSBkb2N1bWVudC4KKworICAgICAgICAqIGVkaXRpbmcvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnNob3VsZEV4Y2x1ZGVGb250RnJvbVRl
eHRNYW5pcHVsYXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmZhbWlseU5hbWUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpG
b250OjpzaG91bGRFeGNsdWRlRm9udEZyb21UZXh0TWFuaXB1bGF0aW9uIGNvbnN0KToKKworICAg
ICAgICBBZGQgYSBoZXVyaXN0aWMgdG8gZGV0ZWN0IHdoZXRoZXIgYSBwbGF0Zm9ybSBmb250IHNo
b3VsZCBiZSBleGNsdWRlZCBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLiBGb3Igbm93LCB3ZSBvbmx5
CisgICAgICAgIHJldHVybiB0cnVlIGlmIHdlIHN1c3BlY3QgdGhhdCB0aGlzIGZvbnQgaXMgYW4g
Imljb24tb25seSIgZm9udCAoZm9yIGluc3RhbmNlLCB0aGUgIk1hdGVyaWFsIEljb25zIiBmb250
KS4gV2UKKyAgICAgICAgZ3Vlc3MgdGhhdCBhIGZvbnQgaXMgKnByb2JhYmx5KiBhbiBpY29uLW9u
bHkgZm9udCBpZiB0aGUgZm9udCBzdXBwb3J0cyBvbmx5IGNoYXJhY3RlcnMgZnJvbSB0aGUgYmFz
aWMgb3IgUFVBCisgICAgICAgIHVuaWNvZGUgcGxhbmVzLCBhbmQgdGhlIGdseXBoIGJvdW5kcyBm
b3IgdGhlIHNldCBvZiBzdXBwb3J0ZWQgQVNDSUkgY2hhcmFjdGVycyBhcmUgYWxsIGVtcHR5Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6ZmFtaWx5TmFtZSBjb25z
dCk6CisKKyAgICAgICAgQWRkIGEgcGxhdGZvcm0gYGZhbWlseU5hbWUoKWAgaGVscGVyIG1ldGhv
ZCBvbiBgRm9udFBsYXRmb3JtRGF0YWAuIE9uIENvY29hIHBsYXRmb3JtcywgdGhpcyB3cmFwcyBh
IGNhbGwgdG8KKyAgICAgICAgYENURm9udENvcHlGYW1pbHlOYW1lYC4KKwogMjAyMC0wNi0yMCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ11bUXVp
cmtdIFRhYmxlIGhlaWdodCBuZWVkcyBxdWlyayBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1NTkw
ODUwOTgwNzJmYzI1OWViNzc1NzE3ODRmZDRjNWY0NWQ5YmE3Li5iMjYwNjMwOGNlMmYzN2NkOTc2
OTRjZTM5MDgxOGIyMjZlMTc4NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNs
dWRlICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2lu
Y2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIKQEAgLTMzMCwxMCArMzMxLDMwIEBAIFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyOjpNYW5pcHVsYXRpb25Vbml0IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpjcmVh
dGVVCiAgICAgcmV0dXJuIHVuaXQ7CiB9CiAKK2Jvb2wgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6OnNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKGNvbnN0IE5vZGUmIG5vZGUpCit7Cisg
ICAgYXV0byogc3R5bGUgPSBub2RlLnJlbmRlclN0eWxlKCk7CisgICAgaWYgKCFzdHlsZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZm9udCA9IHN0eWxlLT5mb250Q2FzY2Fk
ZSgpLnByaW1hcnlGb250KCk7CisgICAgYXV0byBmYW1pbHlOYW1lID0gZm9udC5wbGF0Zm9ybURh
dGEoKS5mYW1pbHlOYW1lKCk7CisgICAgaWYgKGZhbWlseU5hbWUuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGl0ZXIgPSBtX2NhY2hlZEZvbnRGYW1pbHlFeGNs
dXNpb25SZXN1bHRzLmZpbmQoZmFtaWx5TmFtZSk7CisgICAgaWYgKGl0ZXIgIT0gbV9jYWNoZWRG
b250RmFtaWx5RXhjbHVzaW9uUmVzdWx0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXItPnZh
bHVlOworCisgICAgYm9vbCByZXN1bHQgPSBmb250LnNob3VsZEV4Y2x1ZGVGb250RnJvbVRleHRN
YW5pcHVsYXRpb24oKTsKKyAgICBtX2NhY2hlZEZvbnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzLnNl
dChmYW1pbHlOYW1lLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnBhcnNlKE1hbmlwdWxhdGlvblVuaXQmIHVuaXQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgTm9kZSYgdGV4dE5vZGUpCiB7CiAgICAgRXhjbHVzaW9uUnVsZU1h
dGNoZXIgZXhjbHVzaW9uUnVsZU1hdGNoZXIobV9leGNsdXNpb25SdWxlcyk7Ci0gICAgYm9vbCBp
c05vZGVFeGNsdWRlZCA9IGV4Y2x1c2lvblJ1bGVNYXRjaGVyLmlzRXhjbHVkZWQoJnRleHROb2Rl
KTsKKyAgICBib29sIGlzTm9kZUV4Y2x1ZGVkID0gZXhjbHVzaW9uUnVsZU1hdGNoZXIuaXNFeGNs
dWRlZCgmdGV4dE5vZGUpIHx8IHNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKHRleHROb2Rl
KTsKICAgICBzaXplX3QgcG9zaXRpb25PZkxhc3ROb25IVE1MU3BhY2UgPSBXVEY6Om5vdEZvdW5k
OwogICAgIHNpemVfdCBzdGFydFBvc2l0aW9uT2ZDdXJyZW50VG9rZW4gPSAwOwogICAgIHNpemVf
dCBpbmRleCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmgKaW5kZXggZDZhY2QzYzFlNDc0NjlkODc3NTZlYWY4MDE4YjczYTY2
NGI5OWU5OS4uOTQ5OGY2Mjk1NDdkY2IzZDAxMzhkZjBhNWJkMjkwMjgxMmJiNjdjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
aApAQCAtMTU5LDYgKzE1OSw4IEBAIHByaXZhdGU6CiAgICAgTWFuaXB1bGF0aW9uVW5pdCBjcmVh
dGVVbml0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgTm9kZSYpOwogICAgIHZvaWQgcGFyc2UoTWFu
aXB1bGF0aW9uVW5pdCYsIGNvbnN0IFN0cmluZyYsIE5vZGUmKTsKIAorICAgIGJvb2wgc2hvdWxk
RXhjbHVkZU5vZGVCYXNlZE9uU3R5bGUoY29uc3QgTm9kZSYpOworCiAgICAgdm9pZCBhZGRJdGVt
KE1hbmlwdWxhdGlvbkl0ZW1EYXRhJiYpOwogICAgIHZvaWQgYWRkSXRlbUlmUG9zc2libGUoVmVj
dG9yPE1hbmlwdWxhdGlvblVuaXQ+JiYpOwogICAgIHZvaWQgZmx1c2hQZW5kaW5nSXRlbXNGb3JD
YWxsYmFjaygpOwpAQCAtMTc4LDYgKzE4MCw4IEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8
RWxlbWVudD4gbV9lbGVtZW50c1dpdGhOZXdSZW5kZXJlcjsKICAgICBXZWFrSGFzaFNldDxFbGVt
ZW50PiBtX21hbmlwdWxhdGVkRWxlbWVudHM7CiAKKyAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4g
bV9jYWNoZWRGb250RmFtaWx5RXhjbHVzaW9uUmVzdWx0czsKKwogICAgIE1hbmlwdWxhdGlvbkl0
ZW1DYWxsYmFjayBtX2NhbGxiYWNrOwogICAgIFZlY3RvcjxNYW5pcHVsYXRpb25JdGVtPiBtX3Bl
bmRpbmdJdGVtc0ZvckNhbGxiYWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuY3BwCmluZGV4IDhiNjFmZDA0ZjJmYWFhZjdhYWNhYzBkZjQyMzlmOGM3MDJjNWQzOTUu
LmM3MThmZmZlMGI1YzMwOTlhNWUyOWY3NjEwYjY3ZmJlOTc0NDZjZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC00NzUsNiArNDc1LDE1IEBAIGNvbnN0
IEZvbnQmIEZvbnQ6OmJyb2tlbklkZW9ncmFwaEZvbnQoKSBjb25zdAogICAgIHJldHVybiAqZGVy
aXZlZEZvbnREYXRhLmJyb2tlbklkZW9ncmFwaEZvbnQ7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCisKK2Jvb2wgRm9udDo6c2hvdWxkRXhjbHVkZUZvbnRGcm9tVGV4dE1hbmlwdWxhdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZW5kaWYKKwogI2lmICFMT0dfRElT
QUJMRUQKIFN0cmluZyBGb250OjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggMTI4M2Y4MmE3ZWMxMDkzNzNhMmQ0MTMyN2Vi
YTA0NmJjN2FhZDQ1MC4uYTg0MDkxODg5MjIwZmEwZTIwZDY0MzM5NTVlOWQ2NTUwYzUyMzM4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMTA2LDYgKzEwNiw4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBGb250KiBlbXBoYXNpc01hcmtGb250KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYpIGNvbnN0OwogICAgIGNvbnN0IEZvbnQmIGJyb2tlbklkZW9ncmFwaEZvbnQo
KSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkRXhjbHVkZUZvbnRGcm9tVGV4dE1hbmlwdWxhdGlv
bigpIGNvbnN0OworCiAgICAgY29uc3QgRm9udCogdmFyaWFudEZvbnQoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbiwgRm9udFZhcmlhbnQgdmFyaWFudCkgY29uc3QKICAgICB7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IDlkMjg3YWY2NjgwZjQzNDI2ZTAyODFm
YjVkYzMwYjRlYjkxMmIzZmEuLmQ0YmMyYTRmMTExZDM4MjBmODA5ZDE4MGZlNjczMjQ5MDljYmU3
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCkBAIC04NCw0ICs4NCwxNCBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRQ
bGF0Zm9ybURhdGE6OmNsb25lV2l0aFNpemUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNl
LAogfQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK1N0cmluZyBGb250UGxhdGZv
cm1EYXRhOjpmYW1pbHlOYW1lKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVu
dGVkIHlldC4KKyAgICByZXR1cm4geyB9OworfQorCisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IGQz
OGQ0ZGQ5MTIwYTA5ZWFlMjNlY2ViNTY5MzgxMTVmZDY3MDA3ODcuLjAwYzRhODg1NTM0NjM3YzQy
YzY3MDdiOGJmYzhmOTliNjBlNGZlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwdWJs
aWM6CiAgICAgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJl
dHVybiBtX3RleHRSZW5kZXJpbmdNb2RlOyB9CiAgICAgYm9vbCBpc0ZvclRleHRDb21iaW5lKCkg
Y29uc3QgeyByZXR1cm4gd2lkdGhWYXJpYW50KCkgIT0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxh
cldpZHRoOyB9IC8vIEtlZXAgaW4gc3luYyB3aXRoIGNhbGxlcnMgb2YgRm9udERlc2NyaXB0aW9u
OjpzZXRXaWR0aFZhcmlhbnQoKS4KIAorICAgIFN0cmluZyBmYW1pbHlOYW1lKCkgY29uc3Q7CisK
ICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udC5nZXQoKTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KaW5kZXggMTRh
NWEzNjJiOGIxNGRlZmEzMzQ5MWJkMWMzNDA0OTRkZjYyMjAxZC4uMGY0ODcyODU5MmE1YjdmMDQz
NDRlYjA4NmM1NGFjNGMwMDM5Zjg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQpAQCAtNjU5LDQgKzY1OSw0OSBAQCBib29s
IEZvbnQ6OnBsYXRmb3JtU3VwcG9ydHNDb2RlUG9pbnQoVUNoYXIzMiBjaGFyYWN0ZXIsIE9wdGlv
bmFsPFVDaGFyMzI+IHZhcmlhdAogICAgIHJldHVybiBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0
ZXJzKHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBjb2RlVW5pdHMsIGdseXBocywgY291bnQpOwog
fQogCitib29sIEZvbnQ6OnNob3VsZEV4Y2x1ZGVGb250RnJvbVRleHRNYW5pcHVsYXRpb24oKSBj
b25zdAoreworICAgIGlmIChvcmlnaW4oKSAhPSBPcmlnaW46OlJlbW90ZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBwbGF0Zm9ybUZvbnQgPSBwbGF0Zm9ybURhdGEoKS5jdEZv
bnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtRm9udCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBzdXBwb3J0ZWRDaGFyYWN0ZXJzID0gYWRvcHRDRihDVEZvbnRDb3B5Q2hhcmFjdGVy
U2V0KHBsYXRmb3JtRm9udCkpOworICAgIGlmIChDRkNoYXJhY3RlclNldEhhc01lbWJlckluUGxh
bmUoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgMSkgfHwgQ0ZDaGFyYWN0ZXJTZXRIYXNNZW1i
ZXJJblBsYW5lKHN1cHBvcnRlZENoYXJhY3RlcnMuZ2V0KCksIDIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBBbGxvdyBtb3N0IG5vbi1pY29uIGZvbnRzIHRvIGJhaWwgZWFybGll
ciBieSB0ZXN0aW5nIGEgc2luZ2xlIGNoYXJhY3RlciAnYScuCisgICAgVW5pQ2hhciBsb3dlcmNh
c2VBQ2hhcmFjdGVyID0gJ2EnOworICAgIENHR2x5cGggbG93ZXJjYXNlQUdseXBoOworICAgIGlm
IChDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKHBsYXRmb3JtRm9udCwgJmxvd2VyY2FzZUFD
aGFyYWN0ZXIsICZsb3dlcmNhc2VBR2x5cGgsIDEpKSB7CisgICAgICAgIE5TUmVjdCBsb3dlcmNh
c2VBQm91bmRpbmdSZWN0ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9y
bUZvbnQsIGtDVEZvbnRPcmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsIG51bGxw
dHIsIDEpOworICAgICAgICBpZiAoIUNHUmVjdElzRW1wdHkobG93ZXJjYXNlQUJvdW5kaW5nUmVj
dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgVW5pQ2hhciBjaGFy
YWN0ZXJzWzI1Nl07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7ICsraSkKKyAgICAgICAg
Y2hhcmFjdGVyc1tpXSA9IHN0YXRpY19jYXN0PFVuaUNoYXI+KGkpOworCisgICAgQ0dHbHlwaCBn
bHlwaHNbMjU2XTsKKyAgICBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKHBsYXRmb3JtRm9u
dCwgY2hhcmFjdGVycywgZ2x5cGhzLCAyNTYpOworCisgICAgQ0dSZWN0IGJvdW5kaW5nUmVjdHNb
MjU2XTsKKyAgICBDVEZvbnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKHBsYXRmb3JtRm9udCwg
a0NURm9udE9yaWVudGF0aW9uRGVmYXVsdCwgZ2x5cGhzLCBib3VuZGluZ1JlY3RzLCAyNTYpOwor
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7ICsraSkgeworICAgICAgICBpZiAoIUNGQ2hh
cmFjdGVyU2V0SXNDaGFyYWN0ZXJNZW1iZXIoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgY2hh
cmFjdGVyc1tpXSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoQ0dSZWN0
SXNFbXB0eShib3VuZGluZ1JlY3RzW2ldKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IDhhNjM5
ZGIxZjRjMWIzNmY4NzczNGNmMDQ2MDVmYTM5MTM4M2FhODkuLjcyZTgyNTFjM2QzNzRlMTAyNDlj
ZTM0MDkzMjcxM2IwOGVjYWM4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAg
LTE4MSw0ICsxODEsMTEgQEAgU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkg
Y29uc3QKIAogI2VuZGlmCiAKK1N0cmluZyBGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlOYW1lKCkg
Y29uc3QKK3sKKyAgICBpZiAoYXV0byBwbGF0Zm9ybUZvbnQgPSBmb250KCkpCisgICAgICAgIHJl
dHVybiBhZG9wdENGKENURm9udENvcHlGYW1pbHlOYW1lKHBsYXRmb3JtRm9udCkpLmdldCgpOwor
ICAgIHJldHVybiB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYjZhNjBjZjkwODM5NmI1
OTU5YWM0NzJlYTcyMjRiNDYwYzg4OTYwLi5kYTQwZGQ0NzI0MmNhOTA0YjUyMTgyMzFjYjJlYjNi
Y2UxMjYzNWMwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dCBtYW5pcHVsYXRpb24gc2hvdWxkIGV4Y2x1
ZGUgdGV4dCByZW5kZXJlZCB1c2luZyBpY29uLW9ubHkgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ0NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjM3MzQyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVtLnR0ZjogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNi0xOSAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgQnJpbmcgdXAgd2F0Y2hPUy90
dk9TIG9uIGJ1aWxkLndlYmtpdC5vcmcgKEZvbGxvdy11cCBmaXgpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDllODgxMTJiNWJiNDRhMjVhOGM3ZGUwMWEyYmQxZTU2NzhkODc3NzMuLjI0YWU3
M2RjMmRiZmQzN2UxZTIxMDM5Y2JiZTZkMDJlZmUwOThhNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMTI3LDYgKzExMjcsOCBAQAogCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQgLyog
dGV4dC13aXRoLWFzeW5jLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0Q3NEM1MjBGREFDRjUwMERFMzc5NCAvKiB0ZXh0
LXdpdGgtYXN5bmMtc2NyaXB0Lmh0bWwgKi87IH07CiAJCUY0Q0Q3NEM5MjBGREI0OTYwMERFMzc5
NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0Q3NEM4MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2No
ZW1lSGFuZGxlci5tbSAqLzsgfTsKIAkJRjRDRjMyODAyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVy
S2V5SGludFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRDRjMyN0YyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICov
OyB9OworCQlGNENGQ0REQTI0OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENGQ0REODI0
OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiAqLzsgfTsKKwkJRjRDRkNEREIyNDlGQzlF
OTAwNTI3NDgyIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0ZDREQ5MjQ5RkM5RDkwMDUyNzQ4MiAvKiBBaGVtLnR0ZiAq
LzsgfTsKIAkJRjREMjk4NkUyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1l
bnRMb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1lbnRMb2FkLm1t
ICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0FuZERyb3BTaW11bGF0
b3JJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0gKi87
IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjcx
RTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJT1MubW0gKi87IH07CkBAIC0xMjI2
LDEyICsxMjI4LDEyIEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJ
CQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAotCQkJCTU3NTFCMjhBMjQ5RDVC
QzUwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVk
LnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUg
LyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxODAw
MjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNjZXB0c0ZpcnN0TW91c2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyog
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQlGNENGQ0REQjI0OUZDOUU5MDA1Mjc0ODIgLyogQWhlbS50dGYgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMUMyQjgxODcxQzg5MjVBMDAwQTU1MjlGIC8qIEFoZW0udHRmIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTFBNjM0NzlGMTgzRDcyQTQwMDVCMTcwNyAvKiBhbGwtY29udGVu
dC1pbi1vbmUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzI1Q0NBMEQx
RTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFoZW0uc3ZnIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAt
MTU0NCw2ICsxNTQ2LDcgQEAKIAkJCQk0NkFFNUEzNzIwRjkwNjZEMDBFMDg3M0UgLyogU2ltcGxl
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUY0RjQwNUJEMUQ0QzBEMUMwMDdBOTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMwMUEyM0YyMTI2
NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1zY3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQlGNENGQ0REQTI0OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlFMTk0RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExv
YWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJNTE1QkUxNkYxRDQyOEJCMTAwREQ3QzY4IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUJENkQzQTIxRjdCMjE4MzAwQkQ0OTYyIC8qIHN1
bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlmZiBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1
OTAsNiArMTU5Myw3IEBACiAJCQkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTc4REE0NDgyM0VDRDA5QjAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1NzBEMjZGNDIzQzNDQTZBMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1MUIyOEEyNDlENUJDNTAwNjY0QzJBIC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGlu
LWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzhE
QTQ0MjIzRUNDN0EwMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtYmxvY2tlZC1lcnJvci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTU3OERBNDQ2MjNFQ0NDMEEwMDI0NjAxMCAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0
aC1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTcw
RDI2RkEyM0MzRjI1MTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1ibG9ja2VkLWVycm9yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0yODA4LDYgKzI4MTIsOCBAQAogCQlGNENENzRDODIwRkRCNDk2MDBE
RTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBU
ZXN0VVJMU2NoZW1lSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRD
REFCMzMyMjQ4OUZFMTAwNTdBMkQ5IC8qIFVzZXJJbnRlcmZhY2VTd2l6emxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VySW50ZXJmYWNlU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjRDRjMyN0YyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRW50ZXJLZXlIaW50VGVzdHMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0Q0ZDREQ4MjQ5RkM5RDkwMDUyNzQ4MiAvKiBTcGFjZU9ubHkub3Rm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
cGF0aCA9IFNwYWNlT25seS5vdGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0ZD
REQ5MjQ5RkM5RDkwMDUyNzQ4MiAvKiBBaGVtLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBBaGVtLnR0Zjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlw
dEFmdGVyRG9jdW1lbnRMb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVuU2NyaXB0QWZ0
ZXJEb2N1bWVudExvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I0
MUU0RTJCQ0IwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3Njcg
LyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERyYWdBbmREcm9wVGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zNTI0LDYgKzM1MzAsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTVBODE3RkUy
MTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLywKIAkJCQk1NUE4MTdGRDIxODEw
MURGMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgKi8sCisJCQkJRjRDRkNERDkyNDlGQzlE
OTAwNTI3NDgyIC8qIEFoZW0udHRmICovLAogCQkJCUMyNUNDQTBDMUU1MTQwRTUwMDI2Q0I4QSAv
KiBBbGxBaGVtLnN2ZyAqLywKIAkJCQlGNEE5MjAyRTFGRUUzNEM4MDBGNTk1OTAgLyogYXBwbGUt
ZGF0YS11cmwuaHRtbCAqLywKIAkJCQlBMTc5OEI4QTIyNDM2MTFBMDAwNzY0QkQgLyogYXBwbGUt
cGF5LWFjdGl2ZS1zZXNzaW9uLmh0bWwgKi8sCkBAIC0zNzE0LDYgKzM3MjEsNyBAQAogCQkJCUM5
QjRBRDI5MUVDQTZFQTUwMEY1RkVBMCAvKiBzaWxlbmNlLWxvbmcubTRhICovLAogCQkJCTQ2NTZB
NzU3MjBGOTA1NEYwMDAyRTIxRiAvKiBTaW1wbGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00
LnNxbGl0ZTMgKi8sCiAJCQkJRjRGNDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8sCisJCQkJRjRDRkNERDgyNDlGQzlEOTAw
NTI3NDgyIC8qIFNwYWNlT25seS5vdGYgKi8sCiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4
IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwgKi8sCiAJCQkJOUJENkQzQTExRjdCMjAyMTAw
QkQ0OTYyIC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlmZiAqLywKIAkJCQk5QkQ2RDNB
MDFGN0IyMDIwMDBCRDQ5NjIgLyogc3Vuc2V0LWluLWN1cGVydGluby0yMDBweC5wbmcgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0udHRm
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVtLnR0ZgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYzgxY2IwMzE2NWFiODMxYTM2YWJiNTkxNDVmZjdhMmY1Njc1ZmI5CkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxMjQ4MAp6Y21lSE5aRm0mYjZAS1NxWEZxYD9WI0o4X1d7WigzMjc7QyVy
Tn5GNU5EK31CcU5VMHZKSU15S3lLIzQ4ZiZ4V3IKeilrZ1UhVDgmQzZCNyVZPDNSKG44NWZLNFZz
aXRUVm1vIT5VWkImWTJlR3BqUkozQTIrK2RxQiRWTFArVz8ze2I8Cnp5PVR0Nz1iZH1jP3p+VXtf
JVJiMmBkKDdqcihlVV5RTF9NTDBKVzFWcU1fT0B5WWZjPnR7VDhkUkUzaFlJMGFzeQp6P0BIRl5S
TWt3YXlsN1F3SHgwQV4xPnVNcDNoIURwcmFTQV9eWHdtPyF0Sy1aREllaDNHWklaVEpSPmxqX0x+
NSQKenhoN3JfNV9NKz1mdWQ2QytNfVV7VDZgKylFOFc7JCM2blNYTSVPI20wS05NMXsqbF52R0Jz
PUc+NVZgIWA+V2pgCnplT0U5bkAwM2ZjdUlAN0VBaVA9fEhDUHFEYFUtajdjK1Q+UmZYbzFgTyVw
Nj9QXkZkIWApTUxHZlp0WW9lb0lUbwp6OXx0WVhMM3Ijd1UjO2l1d0tpb2dUb2wlO15heWpaU0xK
IzFRIzVMIWF+JCVSMnxTKHlHMTRtVj4rKkFsMTRBSjgKenNrUlJTVExxTmRBKnxEYzwqQmVkPDIr
P09sd0xaZ0dZMVheelRGcyprOH0zYU44MmstY1dTdHtzNntZVHBNMmd+CnpgMDg0dGE1MmRxOWFw
PH0hWD97TmdVKXJ5ZlNhcUFUIVZhRS12ajdgJmdnPDE8UlQ5enAoez5DS0cqVllJMjhwcgp6NGMm
MSVkZis8e0NgMXQ3TU5nYzhCQWtne18jViF9KzMxYVBQPmVxNGl4VHcxeGl9QnNNfVBiUDE4X2JE
OylmVzcKekE3TDtxO0pQKnghIVI3QnhEWEBvVn5vVF83PUBvO0clbSYlVCFPSzw2eXMyYUB3Zn5W
YTUqTzgzUzVid1ZpSkNhCnp0OGdfWSk4NyF2UUdxWl9SSDZ6SVJBVU9SS0BGbWFBJnkjSGl2KkhM
cCReeGY5dTFnXj52MDM3YWJLQiVwTDRsPQp6NkYxQH1gfm8tUUUmTEw8Ozh4cyp4QTd9OTsoZ3FY
Sko1eiVfeV5pQzgqfWd1LW9AWTBqSzU8cGV2UXtLNHxuMSYKenswNFg5Sl5UcUQ7OG9tJUNacmpx
YCoxKHo8N0s+cEtWdWkoeitkb05FV3EjWkFyQGpNVEpab3tASy1BJGQkMCh2CnpWPmtCVktgaDJZ
U2MwV143Pns1WG1nNy04I3heVlBJOUIyYkpjKDZVamk+TjVldmRWSDI1WWc3SkV1LUdmVWBBKAp6
UVM4aHAlc0BzZFFPY0FDV3VFJGl4PW5wY3lHd2dTVGQhPnRJaWptNTVJc2F0NnA2bEtwZVFYMjc4
Vjg3cGJfajYKeiVuS0YtZGohdThqdG91P24hKXtOWX5RRDVHUEVsZyh9bEQqJmEkX0tfVEQoby1i
dGRIPXFgazFAQkE7PiVNRzZUCnpnfXR6NDUxQ0JuP015M28qYyZzYEc3fmN3MDd1JCs0bkFfJDtu
JDlJLUo1Q0kxaGxNZ1M9WHxyPD8pdUtFZXJOTwp6eVo1bmxZa0VnfG16PH5jX1ZrQUlMK1FyIXQj
NXR5WDN3MERZfX04TWJAR3M0bWdqTkQoY3xSZiNkYiNGI04lR1oKelFSM2hNTSowcyNMbkNvOG0r
YHpDbn45MDFoPn1AJjBiN1pUSW1GMiMmaUB1LXBiNld0NEtFU31fYzMtNEdVXmhLCnp3LWI+fGlP
SSFgPTVqbGw4O0g7cVJ6Jjkkc21+S3hQZ3JyUyFiV1QmP3k4QzFEYTdxSE1EOUZkeDBkTFkqaTh8
PQp6NjEjc1NkWiFZPCpBdSVwNUpgNzMoJGcmakthMXl4cyNVfjc3OCZiXmxDPjd6VU1GNVIpN1NT
TGx3PD8kcHlXVEkKekw/KXVsQmVpUVohOE9iY29TUiNpZHEhYnk7ZEolR0JYZzdrTSsySFQrJWxh
ajRreXlpbCh8US1RSzhtJHhFbXtGCnpDaHBZOVVsN2lgSUdBdnIyV0tzQykmZ2dMYVE0UDtJNEB3
PCFUcStSQE1MU3grM01zVio/JSRyWExBc1NgXjBzJQp6I21QT0xvWlFLfm8hP140P0A7R0FffUE8
WS0qNjcle057SzUyWGcpY2I4O3t6MlhrXlRDa0p6S0ZlZUI1SCNyIXsKekMmKyQrV0MjckEreHsj
MD8oO2duYkRoV2NtQER7KFlDR1NVemwjSGtzXmxtPWwtfGxmV3UhN2UyYGRSQHJaUVdaCnp1UGpz
NkN8aV9mckImSWQ5OTA4cWYhYSYkdWE+SWcpWDhkMG91KVJiUDNqVkx3WW97JnNpeEktXl5vUyNe
MGw1Pwp6S1cmSU1Nd19IZihIZ1d7XyNTKGF3bz09bT9hKzQ5KEAlNj0mKG5vb3RQaiNoPUBhI15w
M3JDTnYtU0Q8R0pURHsKek1RXyR5Xj9td0xTSE0tXj5nRFMxRHNfIT5PP0pneChfRD9OQ2Y1P3pZ
UyQqJFBGTEYxP21BPzZqQ2BZfihhI3VTCnpqND50fFE7WWBWN1VNMnNrK0lVKVZDKm48OCpSb1ha
cno+ZDdWY3ZBQW9uUXVNMGNlLTwtVzsxKlMpfn5zQyV0QAp6dDl6SUc5cnUwQEplQHQ9SiFnM2FA
SDRfUS1jIzxXXn5+X3g7a25RQXU7KiNkWDN3amg3U0QmQyEoTn1hbzQzZSYKem9fQ21jdG9KSCFq
clYlKlpRaUBSaUBpXkpIK288OD8oeDN3e25UZ3B5ODQyP3pQYGJ9KFlgQnY1I00jYm58PD9xCnoz
dzxrbT53VmpPWn17SHo5cV9DRTlEZmdnWn5zOTVOZEUrWCpxYHZ2XncwTHNfYj5DV0BvKGByYCY8
M3t7Nl88VQp6S3RaNWFwbnNxPUZmSzRUNURRRVRHek9YaU85SEN7bip1dW49fEZxblAkeTVQezd5
WVBePHlAMG5zViROe1F7UD0KemhYUmslUUJ1KWFTel94bzJ4WVlgPnVsMyglUCE8QWR1LVhEZSFx
T1d0bTc1c2tTIX5HJWV+RShSaytvY1kqfEImCnorSEFgQCtxYDRURjhJfEJFfXVkRCRGQEYpXjFw
MDNtdiVuMDx2aSRgJURxaklUcz51aFg0bz52cUEjeyhqenhkZQp6bU5eIUV0dTFwYmBmZ2sxU29C
c349Mi1Na1o4LS1YbTs0YDcrUnNJMm0mY2Ejc0x2LU9DVHtVcTFpMXdmdko0VkQKekU2NUhvRXE7
cnpHJHNUITUkWGliRDhHfkI1WSpYcXkpQTc2ZHpvWXhxKnk4PD9gOX49YihTNHpCU3pNT0FnOEM2
CnpyKSp6T1l0X35yckw3MmtzSFprV1N6M3YpVW11SG1iRjNgTFpiLTE1eW5CWik8eUhAcT8xcE9n
RzA2PVFXYmBCewp6UnIyMDdFTEV+YyFzPW1DcFIoRmp2MFB6VWwzYSkrYnk2UnYxP2tJRnREUEtX
KHl9KyF4QCh5QnEtU3l6PCFtRiEKejlnNEZnJU9tSlRnc3IzcEA/T1g4blZxcldXRXohR1UmZU0o
K0wxRntPOyVIcXhebH5VSj5fZylJcSUyKEVhb2dxCno4JlJeQU90TyZWbX1HPHxTZ29iIVMrN2d6
WCRoQCR3Qz1jbWVMSzdNVik5cjtNSUA5NlJpdztCUWlLd3dOSlVJeAp6TW4mQDRJK2w3MXYhVE1R
T15Lb2xoZ1FfM09jOUVPTVgpeTVUaHZGWUQ8VUVwaVB3dXp2Y2ltfGBoLXBFRGs+QjQKenNBWikq
bHIoRnFWYGowcUVOTkVPKXJpVj9MWnItT3N5YkZCRCZrU0hYc2M3ekB0ODxYT3tVQ2Z2Ukk1dyNL
VXpKCnpXPn1PQDczMVVLdW93fUZCd31WRittbnRCRkRueWVwPWV6cVJERVZybHFjZiNOIUhwbmkt
JChjPXMyXmd0fHBZMgp6en5NO0tDQi1FfHNeeGl7dTB2KEZtUE98Jl88d3kwekliTjd7RGdIcEwy
N24wJGxTb3A7c2hjWEgzejl3JCFfXkYKeit3dDRQYm9fNjVqeUdCeU42QiEhalUyV3thQDF5Iz1f
WXhNY2FyMEZrSHJeVE5jUCh6aS0jIXJobXc2THhyYlIrCnoqOz15VnAwZ05tK25BcmRoI2gjejt5
M09qXllKeHVBfD1vOWImS2hebzFEciRXSypXZVhfUEYtSHU1Rmt3PlhwXgp6a2FfbkpfVGl0e2tC
YGFuS1pzQVB4Smg+N0kmJFM2Q2E+KiZpfDRyNlZtZHhnTSYyZn1AME9FbXd9QXx9Xjw+UjgKemsh
ZzE/eHB3byZ1YmdBQ0ZQRDt3X2JPUiomeXE+NkQhTS1BdmVCY31rPmo8fTNyRXdzWDBoXmZwcGVn
fmVHVSFICkJjQGg4cwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVi
MTM0M2M5YzFjMzRjNmI5N2ZjMDZjZDg2YmFkNTY3YThmZDNjYTMKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDE3NDAKemNtZHMyUGlSeX04MmA8Q1pgVU5vQiZNZGRfPUtUYWh9M019Q1BCKkxLfT5k
d01VI05oWGZPSjctfkl2ajUxUj41CnpuP2oqYilMMmtZVWM0NShsdE9iNlQ8fkJFI2ZhXihKdDx4
a3QweE5eOH1qX2srYVZASUpiQ0lvWDE/RnwmMlBUPgp6ekx7QCEkMGpEbSgyajNtVzhaS2xCWDVz
ZUtMRGB7MEdeSDxLSlcjbDBPRT9XQzZrI3JscyFIJk5gMDJQSjlmQiMKejs3RUFsWiZFeiFDJnpR
Pz80SnU/fEhBcH0pT1ZqUWBCaU1QZSo+Skk8bUBqNWVzPU4yJEtQO25mcWhTYjI3QWB0CnohOHdR
ZSZPJTlALVM3dHk7JihaO2w+RDwqU21UN0VSfnlUSURmc3piVFB5VnxmT1dONm5OczJSNy1ZTiEm
UHlHcwp6P3d6LTg5NX5Vcl9nYCRacFV7SClgRns/c21LdzlRei1qYCQjK0twZF9eUWRMUmVNXzkk
WWRPdkA3UGJvT1Q/JkwKenZUanFxKz8zKVdsN2pPVjsqOEk8SEQyYFQ7MGAyWWJGWHpBJlA0bG07
SE9BeCFVISVJRVlPT18yNkdlcVhSd1Y9CnojaStwIVRFenV9VzlTbXwyRkdkdGkjSUdCOWg8KH1D
S2wrJTFBe0dBIUU9TGNlOTJzejkwJVAoODYxTlkqOT94Kwp6e3dzITJMaldJJlcwdnVzIWEwdHxQ
XjdKbF5DKTFOYGVkWiNpRG8jWFhxQ3ZJTFdZV0Q0U0JBWTcoZkNaV2lKX3UKelVsbDN6XlVFMm9t
UThLflE/d0BOQXN9eFRGa0IwSzY9ZGI5Yk1qY3hGUHw/PSVTcGVTbW9yNkdrZU56WldoJTlOCnpB
T3traj5ANnImUDQpTlpYdzdNQlZrKHk/Mlp+O2ZMP1ApQSZxTjYmWCkzRnRJdW0zRzRASV5qUXp9
c2p2YytsMgp6Y2pie3tGNiYpTlcram90NWMqaVZlYXphVSN3dVBMVz1nSlhFbUpaJSlIbTJTOzNZ
fDA/e1JnSU07VDt8ciZFbTEKek93emFadUZxOX01O3oqdnJpenVhXnRAIWteRV9KSz9VMj0/PiFz
T1VRJkQ/JDcwfjl3KExPbWtrdUpsSzhwclVGCnpWTTReJEtQUGg1SDB8bnQtdC1Cd2gyUWJNLSpP
LVY0b15ec3d2fGY8cFA7fkpqWlFTU2lIMik2dyVkKTVvWGhRRQp6anhGWm0kNChkTWEmZEZCaXh3
QTt4PyRARFheZGo+ZVl9UjFLdnNaYFUlKFJMbGZrKXFCVjhCdWByPkB1dTdDSnkKell2Ym5mKV84
cXNybCpsIW9MQD9CPW07JHBFLW1eITtqKTZXd0F8RDJZSWUoOSZzPSsoY0plMHc9O0Q5QlNtRW9e
Cm56dGN+UmVEPSYja0kwPWE+SG5UQz5MMkx4PVBPN0tyS0N3UHBfZjdiWVV9PFEmTDB+MgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IGJjZGUwZjEyZjAwOWY2
NjdkYWJkODRlNGM5MDkzODM0MjhmNjRmMzcuLjk3MTJmZDZlOTA4ODY2NzM1Yjc5YTQ5MDliZjM2
N2RkYTYyMWMwMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTEwMDIsNiArMTAwMiw1MiBAQCBU
RVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4dHJhY3RzVmFsdWVz
QnlOb2RlKQogICAgIEVYUEVDVF9TVFJFUSgiZml2ZSIsIGl0ZW1zWzFdLnRva2Vuc1sxXS5jb250
ZW50LlVURjhTdHJpbmcpOwogfQogCitURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1h
bmlwdWxhdGlvbkV4Y2x1ZGVzVGV4dFJlbmRlcmVkQXNJY29ucykKK3sKKyAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcgX3NldFRl
eHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+IgorICAgICAgICAiPGhl
YWQ+IgorICAgICAgICAiPHN0eWxlPiIKKyAgICAgICAgIkBmb250LWZhY2UgeyIKKyAgICAgICAg
IiAgICBmb250LWZhbWlseTogQWhlbTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoQWhlbS50dGYp
OyIKKyAgICAgICAgIn0iCisgICAgICAgICJAZm9udC1mYWNlIHsiCisgICAgICAgICIgICAgZm9u
dC1mYW1pbHk6IFNwYWNlT25seTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoU3BhY2VPbmx5Lm90
Zik7IgorICAgICAgICAifSIKKyAgICAgICAgIi5BaGVtIHsgZm9udC1mYW1pbHk6IEFoZW07IH0i
CisgICAgICAgICIuU3BhY2VPbmx5IHsgZm9udC1mYW1pbHk6IFNwYWNlT25seTsgfSIKKyAgICAg
ICAgIi5NaXNzaW5nIHsgZm9udC1mYW1pbHk6IE1pc3Npbmc7IH0iCisgICAgICAgICIuU3lzdGVt
VUkgeyBmb250LWZhbWlseTogc3lzdGVtLXVpOyB9IgorICAgICAgICAiPC9zdHlsZT4iCisgICAg
ICAgICI8L2hlYWQ+IgorICAgICAgICAiPGJvZHk+IgorICAgICAgICAiPHNwYW4gY2xhc3M9J0Fo
ZW0nPm9uZTwvc3Bhbj48c3BhbiBjbGFzcz0nU3BhY2VPbmx5Jz50d288L3NwYW4+PHNwYW4gY2xh
c3M9J01pc3NpbmcnPnRocmVlPC9zcGFuPjxzcGFuIGNsYXNzPSdTeXN0ZW1VSSc+Zm91cjwvc3Bh
bj4iCisgICAgICAgICI8L2JvZHk+Il07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZp
ZXcgX3N0YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpuaWwgY29tcGxldGlv
bjpeeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBpdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107Cisg
ICAgRVhQRUNUX0VRKGl0ZW1zLmNvdW50LCAxVUwpOworICAgIGF1dG8gaXRlbSA9IGl0ZW1zLmZp
cnN0T2JqZWN0OworICAgIEVYUEVDVF9FUShpdGVtLnRva2Vucy5jb3VudCwgNFVMKTsKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoaXRlbS50b2tlbnNbMF0uY29udGVudCwgIm9uZSIpOworICAgIEVYUEVD
VF9GQUxTRShpdGVtLnRva2Vuc1swXS5pc0V4Y2x1ZGVkKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
aXRlbS50b2tlbnNbMV0uY29udGVudCwgInR3byIpOworICAgIEVYUEVDVF9UUlVFKGl0ZW0udG9r
ZW5zWzFdLmlzRXhjbHVkZWQpOworICAgIEVYUEVDVF9XS19TVFJFUShpdGVtLnRva2Vuc1syXS5j
b250ZW50LCAidGhyZWUiKTsKKyAgICBFWFBFQ1RfRkFMU0UoaXRlbS50b2tlbnNbMl0uaXNFeGNs
dWRlZCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKGl0ZW0udG9rZW5zWzNdLmNvbnRlbnQsICJmb3Vy
Iik7CisgICAgRVhQRUNUX0ZBTFNFKGl0ZW0udG9rZW5zWzNdLmlzRXhjbHVkZWQpOworfQorCiBz
dHJ1Y3QgVG9rZW4gewogICAgIE5TU3RyaW5nICppZGVudGlmaWVyOwogICAgIE5TU3RyaW5nICpj
b250ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402486</attachid>
            <date>2020-06-22 11:04:27 -0700</date>
            <delta_ts>2020-06-25 11:59:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213446-20200622110426.patch</filename>
            <type>text/plain</type>
            <size>27950</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgzN2UxYmVlM2Y1MmZi
ZDlmZWM2OTVhZjQ2YmI5MDE5ZmQ2ZmUxOC4uZWQ3NDk5NzU3N2M4M2NhNjdjZWRlYTJkMDg2MzQw
Y2FmMzE0OGE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA2LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNpbmcgaWNvbi1vbmx5IGZvbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVsYXRpb24uU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhj
bHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UpOgorCisgICAgICAgIEF1Z21l
bnQgdG9rZW4gZXhjbHVzaW9uIHJ1bGVzIHNvIHRoYXQgd2UncmUgYWJsZSB0byBleGNsdWRlIGNl
cnRhaW4gdGV4dCBub2RlcyBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLCBiYXNlZCBvbgorICAgICAg
ICB0aGVpciBzdHlsZSAobW9yZSBzcGVjaWZpY2FsbHksIGJhc2VkIG9uIHRoZWlyIGZvbnQgZmFt
aWx5KS4gQXNrIHRoZSB0ZXh0IG5vZGUncyBwcmltYXJ5IGZvbnQgaWYgaXQgc2hvdWxkIGJlCisg
ICAgICAgIGV4Y2x1ZGVkIGZyb20gdGV4dCBtYW5pcHVsYXRpb24sIGFuZCBjYWNoZSB0aGUgcmVz
dWx0IGluIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyIHRvIGF2b2lkIHJ1bm5pbmcgdGhlCisg
ICAgICAgIGhldXJpc3RpYyBhbiBleGNlc3NpdmUgbnVtYmVyIG9mIHRpbWVzIGZvciBlYWNoIGZv
bnQgdGhhdCBhcHBlYXJzIGluIHRoZSBkb2N1bWVudC4KKworICAgICAgICAqIGVkaXRpbmcvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnNob3VsZEV4Y2x1ZGVGb250RnJvbVRl
eHRNYW5pcHVsYXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmZhbWlseU5hbWUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpG
b250OjpzaG91bGRFeGNsdWRlRm9udEZyb21UZXh0TWFuaXB1bGF0aW9uIGNvbnN0KToKKworICAg
ICAgICBBZGQgYSBoZXVyaXN0aWMgdG8gZGV0ZWN0IHdoZXRoZXIgYSBwbGF0Zm9ybSBmb250IHNo
b3VsZCBiZSBleGNsdWRlZCBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLiBGb3Igbm93LCB3ZSBvbmx5
CisgICAgICAgIHJldHVybiB0cnVlIGlmIHdlIHN1c3BlY3QgdGhhdCB0aGlzIGZvbnQgaXMgYW4g
Imljb24tb25seSIgZm9udCAoZm9yIGluc3RhbmNlLCB0aGUgIk1hdGVyaWFsIEljb25zIiBmb250
KS4gV2UKKyAgICAgICAgZ3Vlc3MgdGhhdCBhIGZvbnQgaXMgKnByb2JhYmx5KiBhbiBpY29uLW9u
bHkgZm9udCBpZiB0aGUgZm9udCBzdXBwb3J0cyBvbmx5IGNoYXJhY3RlcnMgZnJvbSB0aGUgYmFz
aWMgb3IgUFVBCisgICAgICAgIHVuaWNvZGUgcGxhbmVzLCBhbmQgdGhlIGdseXBoIGJvdW5kcyBm
b3IgdGhlIHNldCBvZiBzdXBwb3J0ZWQgbm9uLWNvbnRyb2wgYmFzaWMgbGF0aW4gY2hhcmFjdGVy
cyBhcmUgYWxsIGVtcHR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6ZmFtaWx5TmFtZSBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgcGxhdGZvcm0gYGZhbWlseU5h
bWUoKWAgaGVscGVyIG1ldGhvZCBvbiBgRm9udFBsYXRmb3JtRGF0YWAuIE9uIENvY29hIHBsYXRm
b3JtcywgdGhpcyB3cmFwcyBhIGNhbGwgdG8KKyAgICAgICAgYENURm9udENvcHlGYW1pbHlOYW1l
YC4KKwogMjAyMC0wNi0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggYnVpbGQgZXJyb3Igd2l0aCByZWxlYXNlIGJ1aWxkIGFuZCAiI2RlZmlu
ZSBMT0dfRElTQUJMRUQgMCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9D
b3JlVGV4dFNQSS5oCmluZGV4IGI5MGQxODYzNWRmMzU1NjY3ZjdlMDM4OTM3ZGU2MTNiZjk4Y2Y5
ZTMuLjIxMzkzOGQ0M2U5Y2NiNzJlMWNkNTVlZDRlM2Y1MzdlN2RkMDEwOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaApAQCAtMTAxLDYgKzEw
MSw3IEBAIENUVHlwZXNldHRlclJlZiBDVFR5cGVzZXR0ZXJDcmVhdGVXaXRoVW5pQ2hhclByb3Zp
ZGVyQW5kT3B0aW9ucyhDVFVuaUNoYXJQcm92aWRlCiBib29sIENURm9udEdldFZlcnRpY2FsR2x5
cGhzRm9yQ2hhcmFjdGVycyhDVEZvbnRSZWYsIGNvbnN0IFVuaUNoYXIgY2hhcmFjdGVyc1tdLCBD
R0dseXBoIGdseXBoc1tdLCBDRkluZGV4IGNvdW50KTsKIHZvaWQgQ1RGb250R2V0VW5zdW1tZWRB
ZHZhbmNlc0ZvckdseXBoc0FuZFN0eWxlKENURm9udFJlZiwgQ1RGb250T3JpZW50YXRpb24sIENH
Rm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBD
RkluZGV4IGNvdW50KTsKIENURm9udERlc2NyaXB0b3JSZWYgQ1RGb250RGVzY3JpcHRvckNyZWF0
ZUZvckNTU0ZhbWlseShDRlN0cmluZ1JlZiBjc3NGYW1pbHksIENGU3RyaW5nUmVmIGxhbmd1YWdl
KTsKK2Jvb2wgQ1RGb250R2V0R2x5cGhzRm9yQ2hhcmFjdGVyUmFuZ2UoQ1RGb250UmVmLCBDR0ds
eXBoIGdseXBoc1tdLCBDRlJhbmdlKTsKIAogQ1RGb250RGVzY3JpcHRvclJlZiBDVEZvbnREZXNj
cmlwdG9yQ3JlYXRlRm9yVUlUeXBlKENURm9udFVJRm9udFR5cGUsIENHRmxvYXQgc2l6ZSwgQ0ZT
dHJpbmdSZWYgbGFuZ3VhZ2UpOwogQ1RGb250RGVzY3JpcHRvclJlZiBDVEZvbnREZXNjcmlwdG9y
Q3JlYXRlV2l0aFRleHRTdHlsZShDRlN0cmluZ1JlZiBzdHlsZSwgQ0ZTdHJpbmdSZWYgc2l6ZSwg
Q0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1NTkwODUwOTgwNzJmYzI1OWVi
Nzc1NzE3ODRmZDRjNWY0NWQ5YmE3Li5iMjYwNjMwOGNlMmYzN2NkOTc2OTRjZTM5MDgxOGIyMjZl
MTc4NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVO
YW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIk5vZGVUcmF2
ZXJzYWwuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIK
QEAgLTMzMCwxMCArMzMxLDMwIEBAIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVs
YXRpb25Vbml0IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpjcmVhdGVVCiAgICAgcmV0dXJu
IHVuaXQ7CiB9CiAKK2Jvb2wgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnNob3VsZEV4Y2x1
ZGVOb2RlQmFzZWRPblN0eWxlKGNvbnN0IE5vZGUmIG5vZGUpCit7CisgICAgYXV0byogc3R5bGUg
PSBub2RlLnJlbmRlclN0eWxlKCk7CisgICAgaWYgKCFzdHlsZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgYXV0byYgZm9udCA9IHN0eWxlLT5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250
KCk7CisgICAgYXV0byBmYW1pbHlOYW1lID0gZm9udC5wbGF0Zm9ybURhdGEoKS5mYW1pbHlOYW1l
KCk7CisgICAgaWYgKGZhbWlseU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBhdXRvIGl0ZXIgPSBtX2NhY2hlZEZvbnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzLmZp
bmQoZmFtaWx5TmFtZSk7CisgICAgaWYgKGl0ZXIgIT0gbV9jYWNoZWRGb250RmFtaWx5RXhjbHVz
aW9uUmVzdWx0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOworCisgICAgYm9v
bCByZXN1bHQgPSBmb250LnNob3VsZEV4Y2x1ZGVGb250RnJvbVRleHRNYW5pcHVsYXRpb24oKTsK
KyAgICBtX2NhY2hlZEZvbnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzLnNldChmYW1pbHlOYW1lLCBy
ZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI6OnBhcnNlKE1hbmlwdWxhdGlvblVuaXQmIHVuaXQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgTm9kZSYgdGV4dE5vZGUpCiB7CiAgICAgRXhjbHVzaW9uUnVsZU1hdGNoZXIgZXhjbHVzaW9u
UnVsZU1hdGNoZXIobV9leGNsdXNpb25SdWxlcyk7Ci0gICAgYm9vbCBpc05vZGVFeGNsdWRlZCA9
IGV4Y2x1c2lvblJ1bGVNYXRjaGVyLmlzRXhjbHVkZWQoJnRleHROb2RlKTsKKyAgICBib29sIGlz
Tm9kZUV4Y2x1ZGVkID0gZXhjbHVzaW9uUnVsZU1hdGNoZXIuaXNFeGNsdWRlZCgmdGV4dE5vZGUp
IHx8IHNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKHRleHROb2RlKTsKICAgICBzaXplX3Qg
cG9zaXRpb25PZkxhc3ROb25IVE1MU3BhY2UgPSBXVEY6Om5vdEZvdW5kOwogICAgIHNpemVfdCBz
dGFydFBvc2l0aW9uT2ZDdXJyZW50VG9rZW4gPSAwOwogICAgIHNpemVfdCBpbmRleCA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmgKaW5kZXggZDZhY2QzYzFlNDc0NjlkODc3NTZlYWY4MDE4YjczYTY2NGI5OWU5OS4uOTQ5OGY2
Mjk1NDdkY2IzZDAxMzhkZjBhNWJkMjkwMjgxMmJiNjdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaApAQCAtMTU5LDYgKzE1
OSw4IEBAIHByaXZhdGU6CiAgICAgTWFuaXB1bGF0aW9uVW5pdCBjcmVhdGVVbml0KGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgTm9kZSYpOwogICAgIHZvaWQgcGFyc2UoTWFuaXB1bGF0aW9uVW5pdCYs
IGNvbnN0IFN0cmluZyYsIE5vZGUmKTsKIAorICAgIGJvb2wgc2hvdWxkRXhjbHVkZU5vZGVCYXNl
ZE9uU3R5bGUoY29uc3QgTm9kZSYpOworCiAgICAgdm9pZCBhZGRJdGVtKE1hbmlwdWxhdGlvbkl0
ZW1EYXRhJiYpOwogICAgIHZvaWQgYWRkSXRlbUlmUG9zc2libGUoVmVjdG9yPE1hbmlwdWxhdGlv
blVuaXQ+JiYpOwogICAgIHZvaWQgZmx1c2hQZW5kaW5nSXRlbXNGb3JDYWxsYmFjaygpOwpAQCAt
MTc4LDYgKzE4MCw4IEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9lbGVt
ZW50c1dpdGhOZXdSZW5kZXJlcjsKICAgICBXZWFrSGFzaFNldDxFbGVtZW50PiBtX21hbmlwdWxh
dGVkRWxlbWVudHM7CiAKKyAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbV9jYWNoZWRGb250RmFt
aWx5RXhjbHVzaW9uUmVzdWx0czsKKwogICAgIE1hbmlwdWxhdGlvbkl0ZW1DYWxsYmFjayBtX2Nh
bGxiYWNrOwogICAgIFZlY3RvcjxNYW5pcHVsYXRpb25JdGVtPiBtX3BlbmRpbmdJdGVtc0ZvckNh
bGxiYWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4
IDhiNjFmZDA0ZjJmYWFhZjdhYWNhYzBkZjQyMzlmOGM3MDJjNWQzOTUuLmM3MThmZmZlMGI1YzMw
OTlhNWUyOWY3NjEwYjY3ZmJlOTc0NDZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuY3BwCkBAIC00NzUsNiArNDc1LDE1IEBAIGNvbnN0IEZvbnQmIEZvbnQ6OmJy
b2tlbklkZW9ncmFwaEZvbnQoKSBjb25zdAogICAgIHJldHVybiAqZGVyaXZlZEZvbnREYXRhLmJy
b2tlbklkZW9ncmFwaEZvbnQ7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK2Jvb2wgRm9u
dDo6c2hvdWxkRXhjbHVkZUZvbnRGcm9tVGV4dE1hbmlwdWxhdGlvbigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCisjZW5kaWYKKwogI2lmICFMT0dfRElTQUJMRUQKIFN0cmluZyBG
b250OjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmgKaW5kZXggMTI4M2Y4MmE3ZWMxMDkzNzNhMmQ0MTMyN2ViYTA0NmJjN2FhZDQ1MC4u
YTg0MDkxODg5MjIwZmEwZTIwZDY0MzM5NTVlOWQ2NTUwYzUyMzM4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMTA2LDYgKzEwNiw4IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBGb250KiBlbXBoYXNpc01hcmtGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNv
bnN0OwogICAgIGNvbnN0IEZvbnQmIGJyb2tlbklkZW9ncmFwaEZvbnQoKSBjb25zdDsKIAorICAg
IGJvb2wgc2hvdWxkRXhjbHVkZUZvbnRGcm9tVGV4dE1hbmlwdWxhdGlvbigpIGNvbnN0OworCiAg
ICAgY29uc3QgRm9udCogdmFyaWFudEZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgRm9udFZhcmlhbnQgdmFyaWFudCkgY29uc3QKICAgICB7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxh
dGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuY3BwCmluZGV4IDlkMjg3YWY2NjgwZjQzNDI2ZTAyODFmYjVkYzMwYjRlYjkxMmIz
ZmEuLmQ0YmMyYTRmMTExZDM4MjBmODA5ZDE4MGZlNjczMjQ5MDljYmU3ZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3Bw
CkBAIC04NCw0ICs4NCwxNCBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRQbGF0Zm9ybURhdGE6OmNs
b25lV2l0aFNpemUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNlLAogfQogI2VuZGlmCiAK
KyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK1N0cmluZyBGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlO
YW1lKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKyAgICBy
ZXR1cm4geyB9OworfQorCisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IGQzOGQ0ZGQ5MTIwYTA5ZWFl
MjNlY2ViNTY5MzgxMTVmZDY3MDA3ODcuLjAwYzRhODg1NTM0NjM3YzQyYzY3MDdiOGJmYzhmOTli
NjBlNGZlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250UGxhdGZvcm1EYXRhLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwdWJsaWM6CiAgICAgVGV4dFJl
bmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRSZW5k
ZXJpbmdNb2RlOyB9CiAgICAgYm9vbCBpc0ZvclRleHRDb21iaW5lKCkgY29uc3QgeyByZXR1cm4g
d2lkdGhWYXJpYW50KCkgIT0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoOyB9IC8vIEtl
ZXAgaW4gc3luYyB3aXRoIGNhbGxlcnMgb2YgRm9udERlc2NyaXB0aW9uOjpzZXRXaWR0aFZhcmlh
bnQoKS4KIAorICAgIFN0cmluZyBmYW1pbHlOYW1lKCkgY29uc3Q7CisKICNpZiBVU0UoQ0FJUk8p
CiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2NhbGVkRm9udC5nZXQoKTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KaW5kZXggMTRhNWEzNjJiOGIxNGRlZmEz
MzQ5MWJkMWMzNDA0OTRkZjYyMjAxZC4uZDRkZTY2N2UxMDRkMzUwYmE5ZWIzMjk2ODdmOThkYjRj
OWE0OGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDb2NvYS5tbQpAQCAtNjU5LDQgKzY1OSw0OCBAQCBib29sIEZvbnQ6OnBsYXRmb3Jt
U3VwcG9ydHNDb2RlUG9pbnQoVUNoYXIzMiBjaGFyYWN0ZXIsIE9wdGlvbmFsPFVDaGFyMzI+IHZh
cmlhdAogICAgIHJldHVybiBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKHBsYXRmb3JtRGF0
YSgpLmN0Rm9udCgpLCBjb2RlVW5pdHMsIGdseXBocywgY291bnQpOwogfQogCitib29sIEZvbnQ6
OnNob3VsZEV4Y2x1ZGVGb250RnJvbVRleHRNYW5pcHVsYXRpb24oKSBjb25zdAoreworICAgIGlm
IChvcmlnaW4oKSAhPSBPcmlnaW46OlJlbW90ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBwbGF0Zm9ybUZvbnQgPSBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKTsKKyAgICBpZiAo
IXBsYXRmb3JtRm9udCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBzdXBwb3J0
ZWRDaGFyYWN0ZXJzID0gYWRvcHRDRihDVEZvbnRDb3B5Q2hhcmFjdGVyU2V0KHBsYXRmb3JtRm9u
dCkpOworICAgIGlmIChDRkNoYXJhY3RlclNldEhhc01lbWJlckluUGxhbmUoc3VwcG9ydGVkQ2hh
cmFjdGVycy5nZXQoKSwgMSkgfHwgQ0ZDaGFyYWN0ZXJTZXRIYXNNZW1iZXJJblBsYW5lKHN1cHBv
cnRlZENoYXJhY3RlcnMuZ2V0KCksIDIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyBBbGxvdyBtb3N0IG5vbi1pY29uIGZvbnRzIHRvIGJhaWwgZWFybHkgaGVyZSBieSB0ZXN0aW5n
IGEgc2luZ2xlIGNoYXJhY3RlciAnYScsIHdpdGhvdXQgaXRlcmF0aW5nIG92ZXIgYWxsIGJhc2lj
IGxhdGluIGNoYXJhY3RlcnMuCisgICAgaWYgKENGQ2hhcmFjdGVyU2V0SXNDaGFyYWN0ZXJNZW1i
ZXIoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgJ2EnKSkgeworICAgICAgICBDR0dseXBoIGxv
d2VyY2FzZUFHbHlwaDsKKyAgICAgICAgYm9vbCBmb3VuZEdseXBoID0gQ1RGb250R2V0R2x5cGhz
Rm9yQ2hhcmFjdGVyUmFuZ2UocGxhdGZvcm1Gb250LCAmbG93ZXJjYXNlQUdseXBoLCBDRlJhbmdl
TWFrZSgnYScsIDEpKTsKKyAgICAgICAgaWYgKGZvdW5kR2x5cGggJiYgIUNHUmVjdElzRW1wdHko
Q1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRPcmll
bnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsIG51bGxwdHIsIDEpKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgVW5pQ2hhciBmaXJzdENo
YXJhY3RlclRvVGVzdCA9ICcgJzsKKyAgICBjb25zdGV4cHIgVW5pQ2hhciBsYXN0Q2hhcmFjdGVy
VG9UZXN0ID0gJ34nOworICAgIGNvbnN0ZXhwciBhdXRvIG51bWJlck9mQ2hhcmFjdGVyc1RvVGVz
dCA9IGxhc3RDaGFyYWN0ZXJUb1Rlc3QgLSBmaXJzdENoYXJhY3RlclRvVGVzdCArIDE7CisKKyAg
ICBDR0dseXBoIGdseXBoc1tudW1iZXJPZkNoYXJhY3RlcnNUb1Rlc3RdOworICAgIENURm9udEdl
dEdseXBoc0ZvckNoYXJhY3RlclJhbmdlKHBsYXRmb3JtRm9udCwgZ2x5cGhzLCBDRlJhbmdlTWFr
ZShmaXJzdENoYXJhY3RlclRvVGVzdCwgbnVtYmVyT2ZDaGFyYWN0ZXJzVG9UZXN0KSk7CisKKyAg
ICBDR1JlY3QgYm91bmRpbmdSZWN0c1tudW1iZXJPZkNoYXJhY3RlcnNUb1Rlc3RdOworICAgIENU
Rm9udEdldEJvdW5kaW5nUmVjdHNGb3JHbHlwaHMocGxhdGZvcm1Gb250LCBrQ1RGb250T3JpZW50
YXRpb25EZWZhdWx0LCBnbHlwaHMsIGJvdW5kaW5nUmVjdHMsIG51bWJlck9mQ2hhcmFjdGVyc1Rv
VGVzdCk7CisKKyAgICBmb3IgKGF1dG8gY2hhcmFjdGVyID0gZmlyc3RDaGFyYWN0ZXJUb1Rlc3Q7
IGNoYXJhY3RlciA8PSBsYXN0Q2hhcmFjdGVyVG9UZXN0OyArK2NoYXJhY3RlcikgeworICAgICAg
ICBpZiAoIUNGQ2hhcmFjdGVyU2V0SXNDaGFyYWN0ZXJNZW1iZXIoc3VwcG9ydGVkQ2hhcmFjdGVy
cy5nZXQoKSwgY2hhcmFjdGVyKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlm
IChDR1JlY3RJc0VtcHR5KGJvdW5kaW5nUmVjdHNbY2hhcmFjdGVyIC0gZmlyc3RDaGFyYWN0ZXJU
b1Rlc3RdKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IDhhNjM5ZGIxZjRjMWIzNmY4NzczNGNm
MDQ2MDVmYTM5MTM4M2FhODkuLjcyZTgyNTFjM2QzNzRlMTAyNDljZTM0MDkzMjcxM2IwOGVjYWM4
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTE4MSw0ICsxODEsMTEgQEAg
U3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QKIAogI2VuZGlmCiAK
K1N0cmluZyBGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlOYW1lKCkgY29uc3QKK3sKKyAgICBpZiAo
YXV0byBwbGF0Zm9ybUZvbnQgPSBmb250KCkpCisgICAgICAgIHJldHVybiBhZG9wdENGKENURm9u
dENvcHlGYW1pbHlOYW1lKHBsYXRmb3JtRm9udCkpLmdldCgpOworICAgIHJldHVybiB7IH07Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjOGU1NWY1Y2I5NWYzYmI4YjY1OThhZDU0YjhiMTk0MGUx
ZDA4MDc0Li4wMzkyYTE1M2E2Y2UxOTdkZWUwM2E4NDJiYzFjNTM4MWFkMzU1MDNkIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMjAtMDYtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgVGV4dCBtYW5pcHVsYXRpb24gc2hvdWxkIGV4Y2x1ZGUgdGV4dCByZW5kZXJlZCB1
c2luZyBpY29uLW9ubHkgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM3MzQyOTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IEFQSSB0ZXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9BaGVtLnR0ZjogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAyMC0wNi0yMiAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW2V3c10gU3dpdGNoIGNvbnRyaWJ1dG9ycy5qc29uIHVybCBm
cm9tIHRyYWMgdG8gc3ZuIHNlcnZlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyODlhMDcw
NTRiOWViNGM3ZTE5Yzc1ODMwMWZiZjZlOWUzNTMxZDZjLi40YzFlMzBiNDg1YWJkNDA2NGFmNTA3
ODlmZmNiYTU1MTkyYmY5ZTYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEyOCw2ICsx
MTI4LDggQEAKIAkJRjRDRDc0QzYyMEZEQUNGQTAwREUzNzk0IC8qIHRleHQtd2l0aC1hc3luYy1z
Y3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNENENzRDNTIwRkRBQ0Y1MDBERTM3OTQgLyogdGV4dC13aXRoLWFzeW5jLXNjcmlw
dC5odG1sICovOyB9OwogCQlGNENENzRDOTIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVt
ZUhhbmRsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNENENzRDODIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi87
IH07CiAJCUY0Q0YzMjgwMjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YzMjdGMjM2
NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSAqLzsgfTsKKwkJRjRDRkNEREEy
NDlGQzlFNDAwNTI3NDgyIC8qIFNwYWNlT25seS5vdGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgyIC8q
IFNwYWNlT25seS5vdGYgKi87IH07CisJCUY0Q0ZDRERCMjQ5RkM5RTkwMDUyNzQ4MiAvKiBBaGVt
LnR0ZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNENGQ0REOTI0OUZDOUQ5MDA1Mjc0ODIgLyogQWhlbS50dGYgKi87IH07CiAJCUY0RDI5ODZF
MjBGRUU3MzcwMDkyRDYzNiAvKiBSdW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDI5ODZEMjBGRUU3Mzcw
MDkyRDYzNiAvKiBSdW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbSAqLzsgfTsKIAkJRjRENEYz
QjYxRTRFMkJDQjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRFMkJDQjAw
QkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tICovOyB9OwogCQlGNEQ0RjNCOTFF
NEUzNkU0MDBCQjI3NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAv
KiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tICovOyB9OwpAQCAtMTIyNywxMiArMTIyOSwxMiBAQAog
CQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk1NzUxQjI4QTI0OUQ1QkM1MDA2NjRDMkEgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFr
ZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEg
LyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMzc5MDI4Qjkx
NEZBQzI0QzAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJNzI1QzNFRjMyMjA1OEE1QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjRDRkNEREIyNDlG
QzlFOTAwNTI3NDgyIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFDMkI4
MTg3MUM4OTI1QTAwMEE1NTI5RiAvKiBBaGVtLnR0ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkxQTYzNDc5RjE4M0Q3MkE0MDA1QjE3MDcgLyogYWxsLWNvbnRlbnQtaW4tb25lLWlmcmFtZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMyNUNDQTBEMUU1MTQxODQwMDI2Q0I4QSAv
KiBBbGxBaGVtLnN2ZyBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1NDUsNiArMTU0Nyw3IEBA
CiAJCQkJNDZBRTVBMzcyMEY5MDY2RDAwRTA4NzNFIC8qIFNpbXBsZVNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25zLTQuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEY0MDVCRDFE
NEMwRDFDMDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDMDFBMjNGMjEyNjYxNTY3MDBDOUVENTUgLyog
c3BhY2ViYXItc2Nyb2xsaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjRDRkNE
REEyNDlGQzlFNDAwNTI3NDgyIC8qIFNwYWNlT25seS5vdGYgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRTE5NEUxQkQxNzdFNTNDNzAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2Vp
dmVSZXNwb25zZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNUJFMTZGMUQ0MjhC
QjEwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0JlRGVsZXRlZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTlCRDZEM0EyMUY3QjIxODMwMEJENDk2MiAvKiBzdW5zZXQtaW4tY3VwZXJ0aW5v
LTEwMHB4LnRpZmYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xNTkxLDYgKzE1OTQsNyBAQAog
CQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OERBNDQ4MjNFQ0QwOUIw
MDI0NjAxMCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tYXV0
aC1ibG9ja2VkLWVycm9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTcwRDI2RjQy
M0MzQ0E2QTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAor
CQkJCTU3NTFCMjhBMjQ5RDVCQzUwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJl
dHJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc4REE0NDIyM0VDQzdBMDAwMjQ2
MDEwIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGlu
LXRva2VuLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1NzhEQTQ0NjIzRUNDQzBBMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtaW52YWxpZC1lcnJvci1y
ZXRyeS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3MEQyNkZBMjNDM0YyNTEwMEQ1
Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBp
bi10b2tlbi1waW4tYmxvY2tlZC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAt
MjgxMCw2ICsyODE0LDggQEAKIAkJRjRDRDc0QzgyMEZEQjQ5NjAwREUzNzk0IC8qIFRlc3RVUkxT
Y2hlbWVIYW5kbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdFVSTFNjaGVtZUhhbmRs
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0Q0RBQjMzMjI0ODlGRTEwMDU3
QTJEOSAvKiBVc2VySW50ZXJmYWNlU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckludGVy
ZmFjZVN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0Q0YzMjdGMjM2
NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEVudGVyS2V5SGludFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NENGQ0REODI0OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBTcGFjZU9ubHku
b3RmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNENGQ0REOTI0OUZDOUQ5MDA1Mjc0
ODIgLyogQWhlbS50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBmaWxlOyBwYXRoID0gQWhlbS50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0RDI5ODZEMjBGRUU3MzcwMDkyRDYzNiAvKiBSdW5TY3JpcHRBZnRlckRvY3VtZW50TG9h
ZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1blNjcmlwdEFmdGVyRG9jdW1lbnRMb2FkLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3Njcg
LyogRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVz
dHNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQW5k
RHJvcFRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzUyNyw2ICsz
NTMzLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU1QTgxN0ZFMjE4MTAxREYwMDA0QTM5QSAv
KiAxMDB4MTAwLXJlZC50Z2EgKi8sCiAJCQkJNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQw
MHg0MDAtZ3JlZW4ucG5nICovLAorCQkJCUY0Q0ZDREQ5MjQ5RkM5RDkwMDUyNzQ4MiAvKiBBaGVt
LnR0ZiAqLywKIAkJCQlDMjVDQ0EwQzFFNTE0MEU1MDAyNkNCOEEgLyogQWxsQWhlbS5zdmcgKi8s
CiAJCQkJRjRBOTIwMkUxRkVFMzRDODAwRjU5NTkwIC8qIGFwcGxlLWRhdGEtdXJsLmh0bWwgKi8s
CiAJCQkJQTE3OThCOEEyMjQzNjExQTAwMDc2NEJEIC8qIGFwcGxlLXBheS1hY3RpdmUtc2Vzc2lv
bi5odG1sICovLApAQCAtMzcxNyw2ICszNzI0LDcgQEAKIAkJCQlDOUI0QUQyOTFFQ0E2RUE1MDBG
NUZFQTAgLyogc2lsZW5jZS1sb25nLm00YSAqLywKIAkJCQk0NjU2QTc1NzIwRjkwNTRGMDAwMkUy
MUYgLyogU2ltcGxlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzICovLAogCQkJ
CUY0RjQwNUJCMUQ0QzBDRjgwMDdBOTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0
aC1hdWRpby5odG1sICovLAorCQkJCUY0Q0ZDREQ4MjQ5RkM5RDkwMDUyNzQ4MiAvKiBTcGFjZU9u
bHkub3RmICovLAogCQkJCTUxNUJFMTZFMUQ0Mjg4RkYwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0Jl
RGVsZXRlZC5odG1sICovLAogCQkJCTlCRDZEM0ExMUY3QjIwMjEwMEJENDk2MiAvKiBzdW5zZXQt
aW4tY3VwZXJ0aW5vLTEwMHB4LnRpZmYgKi8sCiAJCQkJOUJENkQzQTAxRjdCMjAyMDAwQkQ0OTYy
IC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMjAwcHgucG5nICovLApAQCAtNDg0NSw2ICs0ODUzLDcg
QEAKIAkJCQk4MzQxMzhDNzIwMzI2MUNBMDBGMjY5NjAgLyogQXN5bmNQb2xpY3lGb3JOYXZpZ2F0
aW9uUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCNDFBNDExQTdFMDA0NDdD
NEMgLyogQXR0cmlidXRlZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NjBDNEYxMjEx
MjQ5QUYwMDIzM0FDQyAvKiBBdHRyU3R5bGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlDREVEMzQy
RjI0OURERTBFMDAwMkFFN0EgLyogQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb24ubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDREM4RTQ4RDFCQzVDQjQ1MDA1OTRGRUMgLyogQXVkaW9TZXNzaW9uQ2F0ZWdv
cnlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDJENjM0NDIyQTE3MjlGMDBEMkZCM0EgLyog
QXV0b2NvcnJlY3Rpb25UZXN0c0lPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI5MUQw
QTY0RjEwMEZFQkNGMyAvKiBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0gaW4gU291cmNlcyAqLywK
QEAgLTQ4NjIsNyArNDg3MSw2IEBACiAJCQkJMUMyQjgxODAxQzg5MUU3QzAwQTU1MjlGIC8qIENh
bmNlbEZvbnRTdWJyZXNvdXJjZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUI2MUE0MTFB
N0UwMDQ0N0M0QyAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0UwNDExRDBBNjNGMjAwRkVCQ0YzIC8qIENhbmRpZGF0ZVRlc3Rz
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RFRDM0MkYyNDlEREUwRTAwMDJBRTdBIC8qIEF1ZGlv
Um91dGluZ0FyYml0cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTcxQTQxMUFF
NjAwNDQ3QzRDIC8qIENhbkhhbmRsZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdD
MDQ2Q0ExRTQyNjJBODAwNzIwMUU3IC8qIENBUmluZ0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1NzMwM0JDQjIwMDgzNzY1MDAzNTU5NjUgLyogQ0JPUlJlYWRlclRlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0FoZW0udHRmIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVt
LnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYzgxY2IwMzE2NWFiODMxYTM2YWJiNTkxNDVmZjdhMmY1Njc1ZmI5
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjQ4MAp6Y21lSE5aRm0mYjZAS1NxWEZxYD9WI0o4
X1d7WigzMjc7QyVyTn5GNU5EK31CcU5VMHZKSU15S3lLIzQ4ZiZ4V3IKeilrZ1UhVDgmQzZCNyVZ
PDNSKG44NWZLNFZzaXRUVm1vIT5VWkImWTJlR3BqUkozQTIrK2RxQiRWTFArVz8ze2I8Cnp5PVR0
Nz1iZH1jP3p+VXtfJVJiMmBkKDdqcihlVV5RTF9NTDBKVzFWcU1fT0B5WWZjPnR7VDhkUkUzaFlJ
MGFzeQp6P0BIRl5STWt3YXlsN1F3SHgwQV4xPnVNcDNoIURwcmFTQV9eWHdtPyF0Sy1aREllaDNH
WklaVEpSPmxqX0x+NSQKenhoN3JfNV9NKz1mdWQ2QytNfVV7VDZgKylFOFc7JCM2blNYTSVPI20w
S05NMXsqbF52R0JzPUc+NVZgIWA+V2pgCnplT0U5bkAwM2ZjdUlAN0VBaVA9fEhDUHFEYFUtajdj
K1Q+UmZYbzFgTyVwNj9QXkZkIWApTUxHZlp0WW9lb0lUbwp6OXx0WVhMM3Ijd1UjO2l1d0tpb2dU
b2wlO15heWpaU0xKIzFRIzVMIWF+JCVSMnxTKHlHMTRtVj4rKkFsMTRBSjgKenNrUlJTVExxTmRB
KnxEYzwqQmVkPDIrP09sd0xaZ0dZMVheelRGcyprOH0zYU44MmstY1dTdHtzNntZVHBNMmd+Cnpg
MDg0dGE1MmRxOWFwPH0hWD97TmdVKXJ5ZlNhcUFUIVZhRS12ajdgJmdnPDE8UlQ5enAoez5DS0cq
VllJMjhwcgp6NGMmMSVkZis8e0NgMXQ3TU5nYzhCQWtne18jViF9KzMxYVBQPmVxNGl4VHcxeGl9
QnNNfVBiUDE4X2JEOylmVzcKekE3TDtxO0pQKnghIVI3QnhEWEBvVn5vVF83PUBvO0clbSYlVCFP
Szw2eXMyYUB3Zn5WYTUqTzgzUzVid1ZpSkNhCnp0OGdfWSk4NyF2UUdxWl9SSDZ6SVJBVU9SS0BG
bWFBJnkjSGl2KkhMcCReeGY5dTFnXj52MDM3YWJLQiVwTDRsPQp6NkYxQH1gfm8tUUUmTEw8Ozh4
cyp4QTd9OTsoZ3FYSko1eiVfeV5pQzgqfWd1LW9AWTBqSzU8cGV2UXtLNHxuMSYKenswNFg5Sl5U
cUQ7OG9tJUNacmpxYCoxKHo8N0s+cEtWdWkoeitkb05FV3EjWkFyQGpNVEpab3tASy1BJGQkMCh2
CnpWPmtCVktgaDJZU2MwV143Pns1WG1nNy04I3heVlBJOUIyYkpjKDZVamk+TjVldmRWSDI1WWc3
SkV1LUdmVWBBKAp6UVM4aHAlc0BzZFFPY0FDV3VFJGl4PW5wY3lHd2dTVGQhPnRJaWptNTVJc2F0
NnA2bEtwZVFYMjc4Vjg3cGJfajYKeiVuS0YtZGohdThqdG91P24hKXtOWX5RRDVHUEVsZyh9bEQq
JmEkX0tfVEQoby1idGRIPXFgazFAQkE7PiVNRzZUCnpnfXR6NDUxQ0JuP015M28qYyZzYEc3fmN3
MDd1JCs0bkFfJDtuJDlJLUo1Q0kxaGxNZ1M9WHxyPD8pdUtFZXJOTwp6eVo1bmxZa0VnfG16PH5j
X1ZrQUlMK1FyIXQjNXR5WDN3MERZfX04TWJAR3M0bWdqTkQoY3xSZiNkYiNGI04lR1oKelFSM2hN
TSowcyNMbkNvOG0rYHpDbn45MDFoPn1AJjBiN1pUSW1GMiMmaUB1LXBiNld0NEtFU31fYzMtNEdV
XmhLCnp3LWI+fGlPSSFgPTVqbGw4O0g7cVJ6Jjkkc21+S3hQZ3JyUyFiV1QmP3k4QzFEYTdxSE1E
OUZkeDBkTFkqaTh8PQp6NjEjc1NkWiFZPCpBdSVwNUpgNzMoJGcmakthMXl4cyNVfjc3OCZiXmxD
Pjd6VU1GNVIpN1NTTGx3PD8kcHlXVEkKekw/KXVsQmVpUVohOE9iY29TUiNpZHEhYnk7ZEolR0JY
ZzdrTSsySFQrJWxhajRreXlpbCh8US1RSzhtJHhFbXtGCnpDaHBZOVVsN2lgSUdBdnIyV0tzQykm
Z2dMYVE0UDtJNEB3PCFUcStSQE1MU3grM01zVio/JSRyWExBc1NgXjBzJQp6I21QT0xvWlFLfm8h
P140P0A7R0FffUE8WS0qNjcle057SzUyWGcpY2I4O3t6MlhrXlRDa0p6S0ZlZUI1SCNyIXsKekMm
KyQrV0MjckEreHsjMD8oO2duYkRoV2NtQER7KFlDR1NVemwjSGtzXmxtPWwtfGxmV3UhN2UyYGRS
QHJaUVdaCnp1UGpzNkN8aV9mckImSWQ5OTA4cWYhYSYkdWE+SWcpWDhkMG91KVJiUDNqVkx3WW97
JnNpeEktXl5vUyNeMGw1Pwp6S1cmSU1Nd19IZihIZ1d7XyNTKGF3bz09bT9hKzQ5KEAlNj0mKG5v
b3RQaiNoPUBhI15wM3JDTnYtU0Q8R0pURHsKek1RXyR5Xj9td0xTSE0tXj5nRFMxRHNfIT5PP0pn
eChfRD9OQ2Y1P3pZUyQqJFBGTEYxP21BPzZqQ2BZfihhI3VTCnpqND50fFE7WWBWN1VNMnNrK0lV
KVZDKm48OCpSb1hacno+ZDdWY3ZBQW9uUXVNMGNlLTwtVzsxKlMpfn5zQyV0QAp6dDl6SUc5cnUw
QEplQHQ9SiFnM2FASDRfUS1jIzxXXn5+X3g7a25RQXU7KiNkWDN3amg3U0QmQyEoTn1hbzQzZSYK
em9fQ21jdG9KSCFqclYlKlpRaUBSaUBpXkpIK288OD8oeDN3e25UZ3B5ODQyP3pQYGJ9KFlgQnY1
I00jYm58PD9xCnozdzxrbT53VmpPWn17SHo5cV9DRTlEZmdnWn5zOTVOZEUrWCpxYHZ2XncwTHNf
Yj5DV0BvKGByYCY8M3t7Nl88VQp6S3RaNWFwbnNxPUZmSzRUNURRRVRHek9YaU85SEN7bip1dW49
fEZxblAkeTVQezd5WVBePHlAMG5zViROe1F7UD0KemhYUmslUUJ1KWFTel94bzJ4WVlgPnVsMygl
UCE8QWR1LVhEZSFxT1d0bTc1c2tTIX5HJWV+RShSaytvY1kqfEImCnorSEFgQCtxYDRURjhJfEJF
fXVkRCRGQEYpXjFwMDNtdiVuMDx2aSRgJURxaklUcz51aFg0bz52cUEjeyhqenhkZQp6bU5eIUV0
dTFwYmBmZ2sxU29Cc349Mi1Na1o4LS1YbTs0YDcrUnNJMm0mY2Ejc0x2LU9DVHtVcTFpMXdmdko0
VkQKekU2NUhvRXE7cnpHJHNUITUkWGliRDhHfkI1WSpYcXkpQTc2ZHpvWXhxKnk4PD9gOX49YihT
NHpCU3pNT0FnOEM2CnpyKSp6T1l0X35yckw3MmtzSFprV1N6M3YpVW11SG1iRjNgTFpiLTE1eW5C
Wik8eUhAcT8xcE9nRzA2PVFXYmBCewp6UnIyMDdFTEV+YyFzPW1DcFIoRmp2MFB6VWwzYSkrYnk2
UnYxP2tJRnREUEtXKHl9KyF4QCh5QnEtU3l6PCFtRiEKejlnNEZnJU9tSlRnc3IzcEA/T1g4blZx
cldXRXohR1UmZU0oK0wxRntPOyVIcXhebH5VSj5fZylJcSUyKEVhb2dxCno4JlJeQU90TyZWbX1H
PHxTZ29iIVMrN2d6WCRoQCR3Qz1jbWVMSzdNVik5cjtNSUA5NlJpdztCUWlLd3dOSlVJeAp6TW4m
QDRJK2w3MXYhVE1RT15Lb2xoZ1FfM09jOUVPTVgpeTVUaHZGWUQ8VUVwaVB3dXp2Y2ltfGBoLXBF
RGs+QjQKenNBWikqbHIoRnFWYGowcUVOTkVPKXJpVj9MWnItT3N5YkZCRCZrU0hYc2M3ekB0ODxY
T3tVQ2Z2Ukk1dyNLVXpKCnpXPn1PQDczMVVLdW93fUZCd31WRittbnRCRkRueWVwPWV6cVJERVZy
bHFjZiNOIUhwbmktJChjPXMyXmd0fHBZMgp6en5NO0tDQi1FfHNeeGl7dTB2KEZtUE98Jl88d3kw
ekliTjd7RGdIcEwyN24wJGxTb3A7c2hjWEgzejl3JCFfXkYKeit3dDRQYm9fNjVqeUdCeU42QiEh
alUyV3thQDF5Iz1fWXhNY2FyMEZrSHJeVE5jUCh6aS0jIXJobXc2THhyYlIrCnoqOz15VnAwZ05t
K25BcmRoI2gjejt5M09qXllKeHVBfD1vOWImS2hebzFEciRXSypXZVhfUEYtSHU1Rmt3PlhwXgp6
a2FfbkpfVGl0e2tCYGFuS1pzQVB4Smg+N0kmJFM2Q2E+KiZpfDRyNlZtZHhnTSYyZn1AME9FbXd9
QXx9Xjw+UjgKemshZzE/eHB3byZ1YmdBQ0ZQRDt3X2JPUiomeXE+NkQhTS1BdmVCY31rPmo8fTNy
RXdzWDBoXmZwcGVnfmVHVSFICkJjQGg4cwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3Rm
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViMTM0M2M5YzFjMzRjNmI5N2ZjMDZjZDg2YmFkNTY3YThmZDNjYTMKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDE3NDAKemNtZHMyUGlSeX04MmA8Q1pgVU5vQiZNZGRfPUtUYWh9
M019Q1BCKkxLfT5kd01VI05oWGZPSjctfkl2ajUxUj41CnpuP2oqYilMMmtZVWM0NShsdE9iNlQ8
fkJFI2ZhXihKdDx4a3QweE5eOH1qX2srYVZASUpiQ0lvWDE/RnwmMlBUPgp6ekx7QCEkMGpEbSgy
ajNtVzhaS2xCWDVzZUtMRGB7MEdeSDxLSlcjbDBPRT9XQzZrI3JscyFIJk5gMDJQSjlmQiMKejs3
RUFsWiZFeiFDJnpRPz80SnU/fEhBcH0pT1ZqUWBCaU1QZSo+Skk8bUBqNWVzPU4yJEtQO25mcWhT
YjI3QWB0CnohOHdRZSZPJTlALVM3dHk7JihaO2w+RDwqU21UN0VSfnlUSURmc3piVFB5VnxmT1dO
Nm5OczJSNy1ZTiEmUHlHcwp6P3d6LTg5NX5Vcl9nYCRacFV7SClgRns/c21LdzlRei1qYCQjK0tw
ZF9eUWRMUmVNXzkkWWRPdkA3UGJvT1Q/JkwKenZUanFxKz8zKVdsN2pPVjsqOEk8SEQyYFQ7MGAy
WWJGWHpBJlA0bG07SE9BeCFVISVJRVlPT18yNkdlcVhSd1Y9CnojaStwIVRFenV9VzlTbXwyRkdk
dGkjSUdCOWg8KH1DS2wrJTFBe0dBIUU9TGNlOTJzejkwJVAoODYxTlkqOT94Kwp6e3dzITJMaldJ
JlcwdnVzIWEwdHxQXjdKbF5DKTFOYGVkWiNpRG8jWFhxQ3ZJTFdZV0Q0U0JBWTcoZkNaV2lKX3UK
elVsbDN6XlVFMm9tUThLflE/d0BOQXN9eFRGa0IwSzY9ZGI5Yk1qY3hGUHw/PSVTcGVTbW9yNkdr
ZU56WldoJTlOCnpBT3traj5ANnImUDQpTlpYdzdNQlZrKHk/Mlp+O2ZMP1ApQSZxTjYmWCkzRnRJ
dW0zRzRASV5qUXp9c2p2YytsMgp6Y2pie3tGNiYpTlcram90NWMqaVZlYXphVSN3dVBMVz1nSlhF
bUpaJSlIbTJTOzNZfDA/e1JnSU07VDt8ciZFbTEKek93emFadUZxOX01O3oqdnJpenVhXnRAIWte
RV9KSz9VMj0/PiFzT1VRJkQ/JDcwfjl3KExPbWtrdUpsSzhwclVGCnpWTTReJEtQUGg1SDB8bnQt
dC1Cd2gyUWJNLSpPLVY0b15ec3d2fGY8cFA7fkpqWlFTU2lIMik2dyVkKTVvWGhRRQp6anhGWm0k
NChkTWEmZEZCaXh3QTt4PyRARFheZGo+ZVl9UjFLdnNaYFUlKFJMbGZrKXFCVjhCdWByPkB1dTdD
SnkKell2Ym5mKV84cXNybCpsIW9MQD9CPW07JHBFLW1eITtqKTZXd0F8RDJZSWUoOSZzPSsoY0pl
MHc9O0Q5QlNtRW9eCm56dGN+UmVEPSYja0kwPWE+SG5UQz5MMkx4PVBPN0tyS0N3UHBfZjdiWVV9
PFEmTDB+MgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IGJj
ZGUwZjEyZjAwOWY2NjdkYWJkODRlNGM5MDkzODM0MjhmNjRmMzcuLjk3MTJmZDZlOTA4ODY2NzM1
Yjc5YTQ5MDliZjM2N2RkYTYyMWMwMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTEwMDIsNiAr
MTAwMiw1MiBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4
dHJhY3RzVmFsdWVzQnlOb2RlKQogICAgIEVYUEVDVF9TVFJFUSgiZml2ZSIsIGl0ZW1zWzFdLnRv
a2Vuc1sxXS5jb250ZW50LlVURjhTdHJpbmcpOwogfQogCitURVNUKFRleHRNYW5pcHVsYXRpb24s
IFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4Y2x1ZGVzVGV4dFJlbmRlcmVkQXNJY29ucykKK3sKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisgICAgW3dl
YlZpZXcgX3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+Igor
ICAgICAgICAiPGhlYWQ+IgorICAgICAgICAiPHN0eWxlPiIKKyAgICAgICAgIkBmb250LWZhY2Ug
eyIKKyAgICAgICAgIiAgICBmb250LWZhbWlseTogQWhlbTsiCisgICAgICAgICIgICAgc3JjOiB1
cmwoQWhlbS50dGYpOyIKKyAgICAgICAgIn0iCisgICAgICAgICJAZm9udC1mYWNlIHsiCisgICAg
ICAgICIgICAgZm9udC1mYW1pbHk6IFNwYWNlT25seTsiCisgICAgICAgICIgICAgc3JjOiB1cmwo
U3BhY2VPbmx5Lm90Zik7IgorICAgICAgICAifSIKKyAgICAgICAgIi5BaGVtIHsgZm9udC1mYW1p
bHk6IEFoZW07IH0iCisgICAgICAgICIuU3BhY2VPbmx5IHsgZm9udC1mYW1pbHk6IFNwYWNlT25s
eTsgfSIKKyAgICAgICAgIi5NaXNzaW5nIHsgZm9udC1mYW1pbHk6IE1pc3Npbmc7IH0iCisgICAg
ICAgICIuU3lzdGVtVUkgeyBmb250LWZhbWlseTogc3lzdGVtLXVpOyB9IgorICAgICAgICAiPC9z
dHlsZT4iCisgICAgICAgICI8L2hlYWQ+IgorICAgICAgICAiPGJvZHk+IgorICAgICAgICAiPHNw
YW4gY2xhc3M9J0FoZW0nPm9uZTwvc3Bhbj48c3BhbiBjbGFzcz0nU3BhY2VPbmx5Jz50d288L3Nw
YW4+PHNwYW4gY2xhc3M9J01pc3NpbmcnPnRocmVlPC9zcGFuPjxzcGFuIGNsYXNzPSdTeXN0ZW1V
SSc+Zm91cjwvc3Bhbj4iCisgICAgICAgICI8L2JvZHk+Il07CisKKyAgICBkb25lID0gZmFsc2U7
CisgICAgW3dlYlZpZXcgX3N0YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpu
aWwgY29tcGxldGlvbjpeeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBpdGVtcyA9IFtkZWxlZ2F0
ZSBpdGVtc107CisgICAgRVhQRUNUX0VRKGl0ZW1zLmNvdW50LCAxVUwpOworICAgIGF1dG8gaXRl
bSA9IGl0ZW1zLmZpcnN0T2JqZWN0OworICAgIEVYUEVDVF9FUShpdGVtLnRva2Vucy5jb3VudCwg
NFVMKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoaXRlbS50b2tlbnNbMF0uY29udGVudCwgIm9uZSIp
OworICAgIEVYUEVDVF9GQUxTRShpdGVtLnRva2Vuc1swXS5pc0V4Y2x1ZGVkKTsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoaXRlbS50b2tlbnNbMV0uY29udGVudCwgInR3byIpOworICAgIEVYUEVDVF9U
UlVFKGl0ZW0udG9rZW5zWzFdLmlzRXhjbHVkZWQpOworICAgIEVYUEVDVF9XS19TVFJFUShpdGVt
LnRva2Vuc1syXS5jb250ZW50LCAidGhyZWUiKTsKKyAgICBFWFBFQ1RfRkFMU0UoaXRlbS50b2tl
bnNbMl0uaXNFeGNsdWRlZCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKGl0ZW0udG9rZW5zWzNdLmNv
bnRlbnQsICJmb3VyIik7CisgICAgRVhQRUNUX0ZBTFNFKGl0ZW0udG9rZW5zWzNdLmlzRXhjbHVk
ZWQpOworfQorCiBzdHJ1Y3QgVG9rZW4gewogICAgIE5TU3RyaW5nICppZGVudGlmaWVyOwogICAg
IE5TU3RyaW5nICpjb250ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402767</attachid>
            <date>2020-06-25 11:59:17 -0700</date>
            <delta_ts>2020-06-25 12:00:09 -0700</delta_ts>
            <desc>Adjusted for feedback</desc>
            <filename>bug-213446-20200625115916.patch</filename>
            <type>text/plain</type>
            <size>25937</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmOTllMmM3YTUyZjZk
NjNkM2YwMjE5ZTJjNmYxNWUzNWY5ZjgyZi4uNjY0MWIxZDRiNzVlYjEyNjA4M2RkZjhjNmQ5YWJj
MmY3ZjdiZjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA2LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNpbmcgaWNvbi1vbmx5IGZvbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE15bGVzIE1heGZpZWxkLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVsYXRpb24uU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhj
bHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UpOgorCisgICAgICAgIEF1Z21l
bnQgdG9rZW4gZXhjbHVzaW9uIHJ1bGVzIHNvIHRoYXQgd2UncmUgYWJsZSB0byBleGNsdWRlIGNl
cnRhaW4gdGV4dCBub2RlcyBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLCBiYXNlZCBvbgorICAgICAg
ICB0aGVpciBzdHlsZSAobW9yZSBzcGVjaWZpY2FsbHksIGJhc2VkIG9uIHRoZWlyIGZvbnQgZmFt
aWx5KS4gQXNrIHRoZSB0ZXh0IG5vZGUncyBwcmltYXJ5IGZvbnQgaWYgaXQgaXMgbGlrZWx5IHRv
CisgICAgICAgIGJlIHVzZWQgb25seSBmb3IgcmVuZGVyaW5nIGljb25zLCBhbmQgY2FjaGUgdGhl
IHJlc3VsdCBpbiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciB0byBhdm9pZCBydW5uaW5nIHRo
ZQorICAgICAgICBoZXVyaXN0aWMgYW4gZXhjZXNzaXZlIG51bWJlciBvZiB0aW1lcyBmb3IgZWFj
aCBmb250IHRoYXQgYXBwZWFycyBpbiB0aGUgZG9jdW1lbnQuIFdlIGN1cnJlbnRseSBvbmx5IHJ1
biB0aGlzCisgICAgICAgIGZvciB0aGUgbm9kZSdzIHByaW1hcnkgZm9udCB3aGVuIGluaXRpYXRp
bmcgdHJhbnNsYXRpb24sIHRob3VnaCB3ZSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyBpbiB0aGUg
ZnV0dXJlIHNvIHRoYXQKKyAgICAgICAgbm9kZSBleGNsdXNpb24gaXMgcmVjb21wdXRlZCB3aGVu
IHRoZSBwcmltYXJ5IGZvbnQgb2YgYSBub2RlIGNoYW5nZXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojppc1Byb2JhYmx5T25seVVzZWRU
b1JlbmRlckljb25zIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlOYW1lIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6aXNQcm9iYWJseU9ubHlVc2VkVG9SZW5kZXJJY29ucyBjb25zdCk6CisKKyAgICAgICAgQWRk
IGEgaGV1cmlzdGljIHRvIGRldGVjdCB3aGV0aGVyIGEgcGxhdGZvcm0gZm9udCBzaG91bGQgYmUg
ZXhjbHVkZWQgZnJvbSB0ZXh0IG1hbmlwdWxhdGlvbi4gRm9yIG5vdywgd2Ugb25seQorICAgICAg
ICByZXR1cm4gdHJ1ZSBpZiB3ZSBzdXNwZWN0IHRoYXQgdGhpcyBmb250IGlzIGFuICJpY29uLW9u
bHkiIGZvbnQgKGZvciBpbnN0YW5jZSwgdGhlICJNYXRlcmlhbCBJY29ucyIgZm9udCkuIFdlCisg
ICAgICAgIGd1ZXNzIHRoYXQgYSBmb250IGlzICpwcm9iYWJseSogYW4gaWNvbi1vbmx5IGZvbnQg
aWYgdGhlIGZvbnQgc3VwcG9ydHMgb25seSBjaGFyYWN0ZXJzIGZyb20gdGhlIGJhc2ljIG9yIFBV
QQorICAgICAgICB1bmljb2RlIHBsYW5lcywgYW5kIHRoZSBnbHlwaCBib3VuZHMgZm9yIHRoZSBz
ZXQgb2Ygc3VwcG9ydGVkIG5vbi1jb250cm9sIGJhc2ljIGxhdGluIGNoYXJhY3RlcnMgYXJlIGFs
bCBlbXB0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9y
bURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmZhbWls
eU5hbWUgY29uc3QpOgorCisgICAgICAgIEFkZCBhIHBsYXRmb3JtIGBmYW1pbHlOYW1lKClgIGhl
bHBlciBtZXRob2Qgb24gYEZvbnRQbGF0Zm9ybURhdGFgLiBPbiBDb2NvYSBwbGF0Zm9ybXMsIHRo
aXMgd3JhcHMgYSBjYWxsIHRvCisgICAgICAgIGBDVEZvbnRDb3B5RmFtaWx5TmFtZWAuCisKIDIw
MjAtMDYtMjQgIEphbWVzIFNhdmFnZSAgPGphbWVzLnNhdmFnZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBzdHJlYW0gaVBhZE9TIDEzLjAgbXVsdGktd2luZG93IHN1cHBvcnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IGI5MGQxODYzNWRm
MzU1NjY3ZjdlMDM4OTM3ZGU2MTNiZjk4Y2Y5ZTMuLjIxMzkzOGQ0M2U5Y2NiNzJlMWNkNTVlZDRl
M2Y1MzdlN2RkMDEwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nv
Y29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
Q29yZVRleHRTUEkuaApAQCAtMTAxLDYgKzEwMSw3IEBAIENUVHlwZXNldHRlclJlZiBDVFR5cGVz
ZXR0ZXJDcmVhdGVXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucyhDVFVuaUNoYXJQcm92aWRl
CiBib29sIENURm9udEdldFZlcnRpY2FsR2x5cGhzRm9yQ2hhcmFjdGVycyhDVEZvbnRSZWYsIGNv
bnN0IFVuaUNoYXIgY2hhcmFjdGVyc1tdLCBDR0dseXBoIGdseXBoc1tdLCBDRkluZGV4IGNvdW50
KTsKIHZvaWQgQ1RGb250R2V0VW5zdW1tZWRBZHZhbmNlc0ZvckdseXBoc0FuZFN0eWxlKENURm9u
dFJlZiwgQ1RGb250T3JpZW50YXRpb24sIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0ds
eXBoW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBDRkluZGV4IGNvdW50KTsKIENURm9udERlc2NyaXB0
b3JSZWYgQ1RGb250RGVzY3JpcHRvckNyZWF0ZUZvckNTU0ZhbWlseShDRlN0cmluZ1JlZiBjc3NG
YW1pbHksIENGU3RyaW5nUmVmIGxhbmd1YWdlKTsKK2Jvb2wgQ1RGb250R2V0R2x5cGhzRm9yQ2hh
cmFjdGVyUmFuZ2UoQ1RGb250UmVmLCBDR0dseXBoIGdseXBoc1tdLCBDRlJhbmdlKTsKIAogQ1RG
b250RGVzY3JpcHRvclJlZiBDVEZvbnREZXNjcmlwdG9yQ3JlYXRlRm9yVUlUeXBlKENURm9udFVJ
Rm9udFR5cGUsIENHRmxvYXQgc2l6ZSwgQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpOwogQ1RGb250RGVz
Y3JpcHRvclJlZiBDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aFRleHRTdHlsZShDRlN0cmluZ1Jl
ZiBzdHlsZSwgQ0ZTdHJpbmdSZWYgc2l6ZSwgQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNw
cAppbmRleCA1NTkwODUwOTgwNzJmYzI1OWViNzc1NzE3ODRmZDRjNWY0NWQ5YmE3Li43Njg3OWIw
ODFlNTkwNTk0MjZjODJmNmE1NWYxMTUwNmNkNjliYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJT
dHlsZS5oIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTMzMCwxMCArMzMxLDM1IEBAIFRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Vbml0IFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyOjpjcmVhdGVVCiAgICAgcmV0dXJuIHVuaXQ7CiB9CiAKK2Jvb2wgVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXI6OnNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKGNvbnN0IE5vZGUm
IG5vZGUpCit7CisgICAgYXV0byogc3R5bGUgPSBub2RlLnJlbmRlclN0eWxlKCk7CisgICAgaWYg
KCFzdHlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZm9udCA9IHN0eWxl
LT5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCk7CisgICAgYXV0byBmYW1pbHlOYW1lID0gZm9u
dC5wbGF0Zm9ybURhdGEoKS5mYW1pbHlOYW1lKCk7CisgICAgaWYgKGZhbWlseU5hbWUuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGl0ZXIgPSBtX2NhY2hlZEZv
bnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzLmZpbmQoZmFtaWx5TmFtZSk7CisgICAgaWYgKGl0ZXIg
IT0gbV9jYWNoZWRGb250RmFtaWx5RXhjbHVzaW9uUmVzdWx0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIGl0ZXItPnZhbHVlOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZWNvbnNpZGVyIHdo
ZXRoZXIgYSBub2RlIHNob3VsZCBiZSBleGNsdWRlZCBpZiB0aGUgcHJpbWFyeSBmb250CisgICAg
Ly8gdXNlZCB0byByZW5kZXIgdGhlIG5vZGUgY2hhbmdlcywgc2luY2UgdGhpcyAiaWNvbiBmb250
IiBoZXVyaXN0aWMgbWF5IHJldHVybiBhCisgICAgLy8gZGlmZmVyZW50IHJlc3VsdC4KKyAgICBi
b29sIHJlc3VsdCA9IGZvbnQuaXNQcm9iYWJseU9ubHlVc2VkVG9SZW5kZXJJY29ucygpOworICAg
IGlmIChyZXN1bHQpCisgICAgICAgIG9zX2xvZyhPU19MT0dfREVGQVVMVCwgIjxXSz46ICclcycg
aXMgcHJvYmFibHkgb25seSB1c2VkIHRvIHJlbmRlciBpY29ucy4iLCBmYW1pbHlOYW1lLnV0Zjgo
KS5kYXRhKCkpOworICAgIG1fY2FjaGVkRm9udEZhbWlseUV4Y2x1c2lvblJlc3VsdHMuc2V0KGZh
bWlseU5hbWUsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBUZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UoTWFuaXB1bGF0aW9uVW5pdCYgdW5pdCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBOb2RlJiB0ZXh0Tm9kZSkKIHsKICAgICBFeGNsdXNpb25SdWxlTWF0Y2hl
ciBleGNsdXNpb25SdWxlTWF0Y2hlcihtX2V4Y2x1c2lvblJ1bGVzKTsKLSAgICBib29sIGlzTm9k
ZUV4Y2x1ZGVkID0gZXhjbHVzaW9uUnVsZU1hdGNoZXIuaXNFeGNsdWRlZCgmdGV4dE5vZGUpOwor
ICAgIGJvb2wgaXNOb2RlRXhjbHVkZWQgPSBleGNsdXNpb25SdWxlTWF0Y2hlci5pc0V4Y2x1ZGVk
KCZ0ZXh0Tm9kZSkgfHwgc2hvdWxkRXhjbHVkZU5vZGVCYXNlZE9uU3R5bGUodGV4dE5vZGUpOwog
ICAgIHNpemVfdCBwb3NpdGlvbk9mTGFzdE5vbkhUTUxTcGFjZSA9IFdURjo6bm90Rm91bmQ7CiAg
ICAgc2l6ZV90IHN0YXJ0UG9zaXRpb25PZkN1cnJlbnRUb2tlbiA9IDA7CiAgICAgc2l6ZV90IGlu
ZGV4ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIuaAppbmRleCBkNmFjZDNjMWU0NzQ2OWQ4Nzc1NmVhZjgwMThiNzNhNjY0Yjk5
ZTk5Li45NDk4ZjYyOTU0N2RjYjNkMDEzOGRmMGE1YmQyOTAyODEyYmI2N2M2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oCkBA
IC0xNTksNiArMTU5LDggQEAgcHJpdmF0ZToKICAgICBNYW5pcHVsYXRpb25Vbml0IGNyZWF0ZVVu
aXQoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBOb2RlJik7CiAgICAgdm9pZCBwYXJzZShNYW5pcHVs
YXRpb25Vbml0JiwgY29uc3QgU3RyaW5nJiwgTm9kZSYpOwogCisgICAgYm9vbCBzaG91bGRFeGNs
dWRlTm9kZUJhc2VkT25TdHlsZShjb25zdCBOb2RlJik7CisKICAgICB2b2lkIGFkZEl0ZW0oTWFu
aXB1bGF0aW9uSXRlbURhdGEmJik7CiAgICAgdm9pZCBhZGRJdGVtSWZQb3NzaWJsZShWZWN0b3I8
TWFuaXB1bGF0aW9uVW5pdD4mJik7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJdGVtc0ZvckNhbGxi
YWNrKCk7CkBAIC0xNzgsNiArMTgwLDggQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxFbGVt
ZW50PiBtX2VsZW1lbnRzV2l0aE5ld1JlbmRlcmVyOwogICAgIFdlYWtIYXNoU2V0PEVsZW1lbnQ+
IG1fbWFuaXB1bGF0ZWRFbGVtZW50czsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPiBtX2Nh
Y2hlZEZvbnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzOworCiAgICAgTWFuaXB1bGF0aW9uSXRlbUNh
bGxiYWNrIG1fY2FsbGJhY2s7CiAgICAgVmVjdG9yPE1hbmlwdWxhdGlvbkl0ZW0+IG1fcGVuZGlu
Z0l0ZW1zRm9yQ2FsbGJhY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5jcHAKaW5kZXggOGI2MWZkMDRmMmZhYWFmN2FhY2FjMGRmNDIzOWY4YzcwMmM1ZDM5NS4uNzc4
OTMwNmY2Y2Q3ZWUxMzA4ZjQzZmE4MWIxMjAwMzYzOGE5Yzk1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTQ3NSw2ICs0NzUsMTYgQEAgY29uc3QgRm9u
dCYgRm9udDo6YnJva2VuSWRlb2dyYXBoRm9udCgpIGNvbnN0CiAgICAgcmV0dXJuICpkZXJpdmVk
Rm9udERhdGEuYnJva2VuSWRlb2dyYXBoRm9udDsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkK
KworYm9vbCBGb250Ojppc1Byb2JhYmx5T25seVVzZWRUb1JlbmRlckljb25zKCkgY29uc3QKK3sK
KyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKKyNlbmRpZgorCiAjaWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIEZvbnQ6OmRlc2NyaXB0aW9u
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAppbmRleCAx
MjgzZjgyYTdlYzEwOTM3M2EyZDQxMzI3ZWJhMDQ2YmM3YWFkNDUwLi5kNDBmZDNhZjkwNjNkZjRm
YWE2ZGZjY2Y5YjUwZThhYWEwOTA1ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCkBAIC0xMDYsNiArMTA2LDggQEAgcHVibGljOgogICAgIGNvbnN0IEZvbnQqIGVt
cGhhc2lzTWFya0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgY29uc3Qg
Rm9udCYgYnJva2VuSWRlb2dyYXBoRm9udCgpIGNvbnN0OwogCisgICAgYm9vbCBpc1Byb2JhYmx5
T25seVVzZWRUb1JlbmRlckljb25zKCkgY29uc3Q7CisKICAgICBjb25zdCBGb250KiB2YXJpYW50
Rm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBGb250VmFyaWFudCB2YXJp
YW50KSBjb25zdAogICAgIHsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggOWQy
ODdhZjY2ODBmNDM0MjZlMDI4MWZiNWRjMzBiNGViOTEyYjNmYS4uZDRiYzJhNGYxMTFkMzgyMGY4
MDlkMTgwZmU2NzMyNDkwOWNiZTdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTg0LDQgKzg0LDE0IEBAIEZv
bnRQbGF0Zm9ybURhdGEgRm9udFBsYXRmb3JtRGF0YTo6Y2xvbmVXaXRoU2l6ZShjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBzb3VyY2UsCiB9CiAjZW5kaWYKIAorI2lmICFQTEFURk9STShDT0NPQSkK
KworU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmZhbWlseU5hbWUoKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorICAgIHJldHVybiB7IH07Cit9CisKKyNlbmRp
ZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxh
dGZvcm1EYXRhLmgKaW5kZXggZDM4ZDRkZDkxMjBhMDllYWUyM2VjZWI1NjkzODExNWZkNjcwMDc4
Ny4uMDBjNGE4ODU1MzQ2MzdjNDJjNjcwN2I4YmZjOGY5OWI2MGU0ZmU2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaApAQCAt
MTU1LDYgKzE1NSw4IEBAIHB1YmxpYzoKICAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVy
aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAgICBib29s
IGlzRm9yVGV4dENvbWJpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAhPSBGb250
V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGg7IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVy
cyBvZiBGb250RGVzY3JpcHRpb246OnNldFdpZHRoVmFyaWFudCgpLgogCisgICAgU3RyaW5nIGZh
bWlseU5hbWUoKSBjb25zdDsKKwogI2lmIFVTRShDQUlSTykKICAgICBjYWlyb19zY2FsZWRfZm9u
dF90KiBzY2FsZWRGb250KCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZWRGb250LmdldCgpOyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbQppbmRleCAxNGE1YTM2MmI4YjE0ZGVmYTMzNDkxYmQxYzM0MDQ5NGRmNjIyMDFk
Li44YjhjOWQ2N2Q3ZGY1Mjc3OTU0YzNkMzdmMTU1MTRhMWU4OGU3YjIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC02
NTksNCArNjU5LDQzIEBAIGJvb2wgRm9udDo6cGxhdGZvcm1TdXBwb3J0c0NvZGVQb2ludChVQ2hh
cjMyIGNoYXJhY3RlciwgT3B0aW9uYWw8VUNoYXIzMj4gdmFyaWF0CiAgICAgcmV0dXJuIENURm9u
dEdldEdseXBoc0ZvckNoYXJhY3RlcnMocGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGNvZGVVbml0
cywgZ2x5cGhzLCBjb3VudCk7CiB9CiAKK2Jvb2wgRm9udDo6aXNQcm9iYWJseU9ubHlVc2VkVG9S
ZW5kZXJJY29ucygpIGNvbnN0Cit7CisgICAgYXV0byBwbGF0Zm9ybUZvbnQgPSBwbGF0Zm9ybURh
dGEoKS5mb250KCk7CisgICAgaWYgKCFwbGF0Zm9ybUZvbnQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIEFsbG93IG1vc3Qgbm9uLWljb24gZm9udHMgdG8gYmFpbCBlYXJseSBoZXJl
IGJ5IHRlc3RpbmcgYSBzaW5nbGUgY2hhcmFjdGVyICdhJywgd2l0aG91dCBpdGVyYXRpbmcgb3Zl
ciBhbGwgYmFzaWMgbGF0aW4gY2hhcmFjdGVycy4KKyAgICBVbmlDaGFyIGxvd2VyY2FzZUFDaGFy
YWN0ZXIgPSAnYSc7CisgICAgQ0dHbHlwaCBsb3dlcmNhc2VBR2x5cGg7CisgICAgaWYgKENURm9u
dEdldEdseXBoc0ZvckNoYXJhY3RlcnMocGxhdGZvcm1Gb250LCAmbG93ZXJjYXNlQUNoYXJhY3Rl
ciwgJmxvd2VyY2FzZUFHbHlwaCwgMSkpIHsKKyAgICAgICAgaWYgKCFDR1JlY3RJc0VtcHR5KENU
Rm9udEdldEJvdW5kaW5nUmVjdHNGb3JHbHlwaHMocGxhdGZvcm1Gb250LCBrQ1RGb250T3JpZW50
YXRpb25EZWZhdWx0LCAmbG93ZXJjYXNlQUdseXBoLCBudWxscHRyLCAxKSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBzdXBwb3J0ZWRDaGFyYWN0ZXJzID0g
YWRvcHRDRihDVEZvbnRDb3B5Q2hhcmFjdGVyU2V0KHBsYXRmb3JtRm9udCkpOworICAgIGlmIChD
RkNoYXJhY3RlclNldEhhc01lbWJlckluUGxhbmUoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwg
MSkgfHwgQ0ZDaGFyYWN0ZXJTZXRIYXNNZW1iZXJJblBsYW5lKHN1cHBvcnRlZENoYXJhY3RlcnMu
Z2V0KCksIDIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBUaGlzIGVuY29tcGFz
c2VzIGFsbCBiYXNpYyBMYXRpbiBub24tY29udHJvbCBjaGFyYWN0ZXJzLgorICAgIGNvbnN0ZXhw
ciBVbmlDaGFyIGZpcnN0Q2hhcmFjdGVyVG9UZXN0ID0gJyAnOworICAgIGNvbnN0ZXhwciBVbmlD
aGFyIGxhc3RDaGFyYWN0ZXJUb1Rlc3QgPSAnfic7CisgICAgY29uc3RleHByIGF1dG8gbnVtYmVy
T2ZDaGFyYWN0ZXJzVG9UZXN0ID0gbGFzdENoYXJhY3RlclRvVGVzdCAtIGZpcnN0Q2hhcmFjdGVy
VG9UZXN0ICsgMTsKKworICAgIFZlY3RvcjxDR0dseXBoPiBnbHlwaHM7CisgICAgZ2x5cGhzLmZp
bGwoMCwgbnVtYmVyT2ZDaGFyYWN0ZXJzVG9UZXN0KTsKKyAgICBDVEZvbnRHZXRHbHlwaHNGb3JD
aGFyYWN0ZXJSYW5nZShwbGF0Zm9ybUZvbnQsIGdseXBocy5iZWdpbigpLCBDRlJhbmdlTWFrZShm
aXJzdENoYXJhY3RlclRvVGVzdCwgbnVtYmVyT2ZDaGFyYWN0ZXJzVG9UZXN0KSk7CisgICAgZ2x5
cGhzLnJlbW92ZUFsbCgwKTsKKworICAgIGlmIChnbHlwaHMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBWZWN0b3I8Q0dSZWN0PiBib3VuZGluZ1JlY3RzOworICAgIGJv
dW5kaW5nUmVjdHMuZmlsbChDR1JlY3RaZXJvLCBnbHlwaHMuc2l6ZSgpKTsKKyAgICBDVEZvbnRH
ZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKHBsYXRmb3JtRm9udCwga0NURm9udE9yaWVudGF0aW9u
RGVmYXVsdCwgZ2x5cGhzLmJlZ2luKCksIGJvdW5kaW5nUmVjdHMuYmVnaW4oKSwgZ2x5cGhzLnNp
emUoKSk7CisgICAgcmV0dXJuIG5vdEZvdW5kID09IGJvdW5kaW5nUmVjdHMuZmluZE1hdGNoaW5n
KFtdKGF1dG8mIHJlY3QpIHsKKyAgICAgICAgcmV0dXJuICFDR1JlY3RJc0VtcHR5KHJlY3QpOwor
ICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRh
Q29jb2EubW0KaW5kZXggOGE2MzlkYjFmNGMxYjM2Zjg3NzM0Y2YwNDYwNWZhMzkxMzgzYWE4OS4u
NzJlODI1MWMzZDM3NGUxMDI0OWNlMzQwOTMyNzEzYjA4ZWNhYzhkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbQpAQCAtMTgxLDQgKzE4MSwxMSBAQCBTdHJpbmcgRm9udFBsYXRmb3Jt
RGF0YTo6ZGVzY3JpcHRpb24oKSBjb25zdAogCiAjZW5kaWYKIAorU3RyaW5nIEZvbnRQbGF0Zm9y
bURhdGE6OmZhbWlseU5hbWUoKSBjb25zdAoreworICAgIGlmIChhdXRvIHBsYXRmb3JtRm9udCA9
IGZvbnQoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ1RGb250Q29weUZhbWlseU5hbWUocGxh
dGZvcm1Gb250KSkuZ2V0KCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDE1NjMyYWU5MmE4NjQ0N2VjYzI5NDUzNzY1OTZmMzcxMzIxNzBjZDEuLmNhYTM4ODc4ODIx
OGVhMjY1NTg3YmYzMWIyZjNmMDkwMDAzYzBkMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wNi0yMSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBUZXh0IG1hbmlw
dWxhdGlvbiBzaG91bGQgZXhjbHVkZSB0ZXh0IHJlbmRlcmVkIHVzaW5nIGljb24tb25seSBmb250
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDQ2
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzczNDI5OD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBNeWxlcyBNYXhmaWVsZC4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0udHRmOiBB
ZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwYWNlT25s
eS5vdGY6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VGV4dE1hbmlwdWxhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDIwLTA2LTI0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IG1hY09TIEJpZyBTdXIgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMWE5
OTQ5ZjcwMzQwYmU3NDM2Mjk0NTc1ZjhkMTRjZjA5Yzg5YTU3Li41ZTBjYTBhYTU0YTJlNTgwMDkw
NzIzNWU1NWNjM2M3ZDlkNWIxNDg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEzMCw2
ICsxMTMwLDggQEAKIAkJRjRDRDc0QzYyMEZEQUNGQTAwREUzNzk0IC8qIHRleHQtd2l0aC1hc3lu
Yy1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNENENzRDNTIwRkRBQ0Y1MDBERTM3OTQgLyogdGV4dC13aXRoLWFzeW5jLXNj
cmlwdC5odG1sICovOyB9OwogCQlGNENENzRDOTIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNj
aGVtZUhhbmRsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNENENzRDODIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0g
Ki87IH07CiAJCUY0Q0YzMjgwMjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YzMjdG
MjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSAqLzsgfTsKKwkJRjRDRkNE
REEyNDlGQzlFNDAwNTI3NDgyIC8qIFNwYWNlT25seS5vdGYgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgy
IC8qIFNwYWNlT25seS5vdGYgKi87IH07CisJCUY0Q0ZDRERCMjQ5RkM5RTkwMDUyNzQ4MiAvKiBB
aGVtLnR0ZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNENGQ0REOTI0OUZDOUQ5MDA1Mjc0ODIgLyogQWhlbS50dGYgKi87IH07CiAJCUY0RDI5
ODZFMjBGRUU3MzcwMDkyRDYzNiAvKiBSdW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDI5ODZEMjBGRUU3
MzcwMDkyRDYzNiAvKiBSdW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbSAqLzsgfTsKIAkJRjRE
NEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRFMkJD
QjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tICovOyB9OwogCQlGNEQ0RjNC
OTFFNEUzNkU0MDBCQjI3NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2
NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tICovOyB9OwpAQCAtMTIzNCw2ICsxMjM2LDcgQEAK
IAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMzc5MDI4QjkxNEZBQzI0QzAwN0U2QjQzIC8qIGFjY2VwdHNG
aXJzdE1vdXNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNzI1QzNFRjMyMjA1OEE1
QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCisJCQkJRjRDRkNEREIyNDlGQzlFOTAwNTI3NDgyIC8qIEFoZW0udHRmIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFDMkI4MTg3MUM4OTI1QTAwMEE1NTI5RiAvKiBBaGVt
LnR0ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTYzNDc5RjE4M0Q3MkE0MDA1QjE3MDcg
LyogYWxsLWNvbnRlbnQtaW4tb25lLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUMyNUNDQTBEMUU1MTQxODQwMDI2Q0I4QSAvKiBBbGxBaGVtLnN2ZyBpbiBDb3B5IFJlc291
cmNlcyAqLywKQEAgLTE1NDcsNiArMTU1MCw3IEBACiAJCQkJNDZBRTVBMzcyMEY5MDY2RDAwRTA4
NzNFIC8qIFNpbXBsZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlGNEY0MDVCRDFENEMwRDFDMDA3QTk3MDcgLyogc2tpbm55LWF1
dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQlDMDFBMjNGMjEyNjYxNTY3MDBDOUVENTUgLyogc3BhY2ViYXItc2Nyb2xsaW5nLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjRDRkNEREEyNDlGQzlFNDAwNTI3NDgyIC8qIFNwYWNl
T25seS5vdGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRTE5NEUxQkQxNzdFNTNDNzAwOUM0
RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTUxNUJFMTZGMUQ0MjhCQjEwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0Jl
RGVsZXRlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTlCRDZEM0EyMUY3QjIxODMw
MEJENDk2MiAvKiBzdW5zZXQtaW4tY3VwZXJ0aW5vLTEwMHB4LnRpZmYgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCkBAIC0yODE1LDYgKzI4MTksOCBAQAogCQlGNENENzRDODIwRkRCNDk2MDBERTM3OTQg
LyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0VVJM
U2NoZW1lSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDREFCMzMy
MjQ4OUZFMTAwNTdBMkQ5IC8qIFVzZXJJbnRlcmZhY2VTd2l6emxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVc2VySW50ZXJmYWNlU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjRDRjMyN0YyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRW50ZXJLZXlIaW50VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0Q0ZDREQ4MjQ5RkM5RDkwMDUyNzQ4MiAvKiBTcGFjZU9ubHkub3RmICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9
IFNwYWNlT25seS5vdGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0ZDREQ5MjQ5
RkM5RDkwMDUyNzQ4MiAvKiBBaGVtLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBBaGVtLnR0Zjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVy
RG9jdW1lbnRMb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVuU2NyaXB0QWZ0ZXJEb2N1
bWVudExvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I0MUU0RTJC
Q0IwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRHJh
Z0FuZERyb3BUZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdBbmREcm9wVGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNTMzLDYgKzM1MzksNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTVBODE3RkUyMTgxMDFE
RjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLywKIAkJCQk1NUE4MTdGRDIxODEwMURGMDAw
NEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgKi8sCisJCQkJRjRDRkNERDkyNDlGQzlEOTAwNTI3
NDgyIC8qIEFoZW0udHRmICovLAogCQkJCUMyNUNDQTBDMUU1MTQwRTUwMDI2Q0I4QSAvKiBBbGxB
aGVtLnN2ZyAqLywKIAkJCQlGNEE5MjAyRTFGRUUzNEM4MDBGNTk1OTAgLyogYXBwbGUtZGF0YS11
cmwuaHRtbCAqLywKIAkJCQlBMTc5OEI4QTIyNDM2MTFBMDAwNzY0QkQgLyogYXBwbGUtcGF5LWFj
dGl2ZS1zZXNzaW9uLmh0bWwgKi8sCkBAIC0zNzIzLDYgKzM3MzAsNyBAQAogCQkJCUM5QjRBRDI5
MUVDQTZFQTUwMEY1RkVBMCAvKiBzaWxlbmNlLWxvbmcubTRhICovLAogCQkJCTQ2NTZBNzU3MjBG
OTA1NEYwMDAyRTIxRiAvKiBTaW1wbGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0
ZTMgKi8sCiAJCQkJRjRGNDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8sCisJCQkJRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgy
IC8qIFNwYWNlT25seS5vdGYgKi8sCiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4IC8qIFN0
b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwgKi8sCiAJCQkJOUJENkQzQTExRjdCMjAyMTAwQkQ0OTYy
IC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlmZiAqLywKIAkJCQk5QkQ2RDNBMDFGN0Iy
MDIwMDBCRDQ5NjIgLyogc3Vuc2V0LWluLWN1cGVydGluby0yMDBweC5wbmcgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0udHRmIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVtLnR0ZgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YzgxY2IwMzE2NWFiODMxYTM2YWJiNTkxNDVmZjdhMmY1Njc1ZmI5CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxMjQ4MAp6Y21lSE5aRm0mYjZAS1NxWEZxYD9WI0o4X1d7WigzMjc7QyVyTn5GNU5E
K31CcU5VMHZKSU15S3lLIzQ4ZiZ4V3IKeilrZ1UhVDgmQzZCNyVZPDNSKG44NWZLNFZzaXRUVm1v
IT5VWkImWTJlR3BqUkozQTIrK2RxQiRWTFArVz8ze2I8Cnp5PVR0Nz1iZH1jP3p+VXtfJVJiMmBk
KDdqcihlVV5RTF9NTDBKVzFWcU1fT0B5WWZjPnR7VDhkUkUzaFlJMGFzeQp6P0BIRl5STWt3YXls
N1F3SHgwQV4xPnVNcDNoIURwcmFTQV9eWHdtPyF0Sy1aREllaDNHWklaVEpSPmxqX0x+NSQKenho
N3JfNV9NKz1mdWQ2QytNfVV7VDZgKylFOFc7JCM2blNYTSVPI20wS05NMXsqbF52R0JzPUc+NVZg
IWA+V2pgCnplT0U5bkAwM2ZjdUlAN0VBaVA9fEhDUHFEYFUtajdjK1Q+UmZYbzFgTyVwNj9QXkZk
IWApTUxHZlp0WW9lb0lUbwp6OXx0WVhMM3Ijd1UjO2l1d0tpb2dUb2wlO15heWpaU0xKIzFRIzVM
IWF+JCVSMnxTKHlHMTRtVj4rKkFsMTRBSjgKenNrUlJTVExxTmRBKnxEYzwqQmVkPDIrP09sd0xa
Z0dZMVheelRGcyprOH0zYU44MmstY1dTdHtzNntZVHBNMmd+CnpgMDg0dGE1MmRxOWFwPH0hWD97
TmdVKXJ5ZlNhcUFUIVZhRS12ajdgJmdnPDE8UlQ5enAoez5DS0cqVllJMjhwcgp6NGMmMSVkZis8
e0NgMXQ3TU5nYzhCQWtne18jViF9KzMxYVBQPmVxNGl4VHcxeGl9QnNNfVBiUDE4X2JEOylmVzcK
ekE3TDtxO0pQKnghIVI3QnhEWEBvVn5vVF83PUBvO0clbSYlVCFPSzw2eXMyYUB3Zn5WYTUqTzgz
UzVid1ZpSkNhCnp0OGdfWSk4NyF2UUdxWl9SSDZ6SVJBVU9SS0BGbWFBJnkjSGl2KkhMcCReeGY5
dTFnXj52MDM3YWJLQiVwTDRsPQp6NkYxQH1gfm8tUUUmTEw8Ozh4cyp4QTd9OTsoZ3FYSko1eiVf
eV5pQzgqfWd1LW9AWTBqSzU8cGV2UXtLNHxuMSYKenswNFg5Sl5UcUQ7OG9tJUNacmpxYCoxKHo8
N0s+cEtWdWkoeitkb05FV3EjWkFyQGpNVEpab3tASy1BJGQkMCh2CnpWPmtCVktgaDJZU2MwV143
Pns1WG1nNy04I3heVlBJOUIyYkpjKDZVamk+TjVldmRWSDI1WWc3SkV1LUdmVWBBKAp6UVM4aHAl
c0BzZFFPY0FDV3VFJGl4PW5wY3lHd2dTVGQhPnRJaWptNTVJc2F0NnA2bEtwZVFYMjc4Vjg3cGJf
ajYKeiVuS0YtZGohdThqdG91P24hKXtOWX5RRDVHUEVsZyh9bEQqJmEkX0tfVEQoby1idGRIPXFg
azFAQkE7PiVNRzZUCnpnfXR6NDUxQ0JuP015M28qYyZzYEc3fmN3MDd1JCs0bkFfJDtuJDlJLUo1
Q0kxaGxNZ1M9WHxyPD8pdUtFZXJOTwp6eVo1bmxZa0VnfG16PH5jX1ZrQUlMK1FyIXQjNXR5WDN3
MERZfX04TWJAR3M0bWdqTkQoY3xSZiNkYiNGI04lR1oKelFSM2hNTSowcyNMbkNvOG0rYHpDbn45
MDFoPn1AJjBiN1pUSW1GMiMmaUB1LXBiNld0NEtFU31fYzMtNEdVXmhLCnp3LWI+fGlPSSFgPTVq
bGw4O0g7cVJ6Jjkkc21+S3hQZ3JyUyFiV1QmP3k4QzFEYTdxSE1EOUZkeDBkTFkqaTh8PQp6NjEj
c1NkWiFZPCpBdSVwNUpgNzMoJGcmakthMXl4cyNVfjc3OCZiXmxDPjd6VU1GNVIpN1NTTGx3PD8k
cHlXVEkKekw/KXVsQmVpUVohOE9iY29TUiNpZHEhYnk7ZEolR0JYZzdrTSsySFQrJWxhajRreXlp
bCh8US1RSzhtJHhFbXtGCnpDaHBZOVVsN2lgSUdBdnIyV0tzQykmZ2dMYVE0UDtJNEB3PCFUcStS
QE1MU3grM01zVio/JSRyWExBc1NgXjBzJQp6I21QT0xvWlFLfm8hP140P0A7R0FffUE8WS0qNjcl
e057SzUyWGcpY2I4O3t6MlhrXlRDa0p6S0ZlZUI1SCNyIXsKekMmKyQrV0MjckEreHsjMD8oO2du
YkRoV2NtQER7KFlDR1NVemwjSGtzXmxtPWwtfGxmV3UhN2UyYGRSQHJaUVdaCnp1UGpzNkN8aV9m
ckImSWQ5OTA4cWYhYSYkdWE+SWcpWDhkMG91KVJiUDNqVkx3WW97JnNpeEktXl5vUyNeMGw1Pwp6
S1cmSU1Nd19IZihIZ1d7XyNTKGF3bz09bT9hKzQ5KEAlNj0mKG5vb3RQaiNoPUBhI15wM3JDTnYt
U0Q8R0pURHsKek1RXyR5Xj9td0xTSE0tXj5nRFMxRHNfIT5PP0pneChfRD9OQ2Y1P3pZUyQqJFBG
TEYxP21BPzZqQ2BZfihhI3VTCnpqND50fFE7WWBWN1VNMnNrK0lVKVZDKm48OCpSb1hacno+ZDdW
Y3ZBQW9uUXVNMGNlLTwtVzsxKlMpfn5zQyV0QAp6dDl6SUc5cnUwQEplQHQ9SiFnM2FASDRfUS1j
IzxXXn5+X3g7a25RQXU7KiNkWDN3amg3U0QmQyEoTn1hbzQzZSYKem9fQ21jdG9KSCFqclYlKlpR
aUBSaUBpXkpIK288OD8oeDN3e25UZ3B5ODQyP3pQYGJ9KFlgQnY1I00jYm58PD9xCnozdzxrbT53
VmpPWn17SHo5cV9DRTlEZmdnWn5zOTVOZEUrWCpxYHZ2XncwTHNfYj5DV0BvKGByYCY8M3t7Nl88
VQp6S3RaNWFwbnNxPUZmSzRUNURRRVRHek9YaU85SEN7bip1dW49fEZxblAkeTVQezd5WVBePHlA
MG5zViROe1F7UD0KemhYUmslUUJ1KWFTel94bzJ4WVlgPnVsMyglUCE8QWR1LVhEZSFxT1d0bTc1
c2tTIX5HJWV+RShSaytvY1kqfEImCnorSEFgQCtxYDRURjhJfEJFfXVkRCRGQEYpXjFwMDNtdiVu
MDx2aSRgJURxaklUcz51aFg0bz52cUEjeyhqenhkZQp6bU5eIUV0dTFwYmBmZ2sxU29Cc349Mi1N
a1o4LS1YbTs0YDcrUnNJMm0mY2Ejc0x2LU9DVHtVcTFpMXdmdko0VkQKekU2NUhvRXE7cnpHJHNU
ITUkWGliRDhHfkI1WSpYcXkpQTc2ZHpvWXhxKnk4PD9gOX49YihTNHpCU3pNT0FnOEM2CnpyKSp6
T1l0X35yckw3MmtzSFprV1N6M3YpVW11SG1iRjNgTFpiLTE1eW5CWik8eUhAcT8xcE9nRzA2PVFX
YmBCewp6UnIyMDdFTEV+YyFzPW1DcFIoRmp2MFB6VWwzYSkrYnk2UnYxP2tJRnREUEtXKHl9KyF4
QCh5QnEtU3l6PCFtRiEKejlnNEZnJU9tSlRnc3IzcEA/T1g4blZxcldXRXohR1UmZU0oK0wxRntP
OyVIcXhebH5VSj5fZylJcSUyKEVhb2dxCno4JlJeQU90TyZWbX1HPHxTZ29iIVMrN2d6WCRoQCR3
Qz1jbWVMSzdNVik5cjtNSUA5NlJpdztCUWlLd3dOSlVJeAp6TW4mQDRJK2w3MXYhVE1RT15Lb2xo
Z1FfM09jOUVPTVgpeTVUaHZGWUQ8VUVwaVB3dXp2Y2ltfGBoLXBFRGs+QjQKenNBWikqbHIoRnFW
YGowcUVOTkVPKXJpVj9MWnItT3N5YkZCRCZrU0hYc2M3ekB0ODxYT3tVQ2Z2Ukk1dyNLVXpKCnpX
Pn1PQDczMVVLdW93fUZCd31WRittbnRCRkRueWVwPWV6cVJERVZybHFjZiNOIUhwbmktJChjPXMy
Xmd0fHBZMgp6en5NO0tDQi1FfHNeeGl7dTB2KEZtUE98Jl88d3kwekliTjd7RGdIcEwyN24wJGxT
b3A7c2hjWEgzejl3JCFfXkYKeit3dDRQYm9fNjVqeUdCeU42QiEhalUyV3thQDF5Iz1fWXhNY2Fy
MEZrSHJeVE5jUCh6aS0jIXJobXc2THhyYlIrCnoqOz15VnAwZ05tK25BcmRoI2gjejt5M09qXllK
eHVBfD1vOWImS2hebzFEciRXSypXZVhfUEYtSHU1Rmt3PlhwXgp6a2FfbkpfVGl0e2tCYGFuS1pz
QVB4Smg+N0kmJFM2Q2E+KiZpfDRyNlZtZHhnTSYyZn1AME9FbXd9QXx9Xjw+UjgKemshZzE/eHB3
byZ1YmdBQ0ZQRDt3X2JPUiomeXE+NkQhTS1BdmVCY31rPmo8fTNyRXdzWDBoXmZwcGVnfmVHVSFI
CkJjQGg4cwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMTM0M2M5
YzFjMzRjNmI5N2ZjMDZjZDg2YmFkNTY3YThmZDNjYTMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDE3NDAKemNtZHMyUGlSeX04MmA8Q1pgVU5vQiZNZGRfPUtUYWh9M019Q1BCKkxLfT5kd01VI05o
WGZPSjctfkl2ajUxUj41CnpuP2oqYilMMmtZVWM0NShsdE9iNlQ8fkJFI2ZhXihKdDx4a3QweE5e
OH1qX2srYVZASUpiQ0lvWDE/RnwmMlBUPgp6ekx7QCEkMGpEbSgyajNtVzhaS2xCWDVzZUtMRGB7
MEdeSDxLSlcjbDBPRT9XQzZrI3JscyFIJk5gMDJQSjlmQiMKejs3RUFsWiZFeiFDJnpRPz80SnU/
fEhBcH0pT1ZqUWBCaU1QZSo+Skk8bUBqNWVzPU4yJEtQO25mcWhTYjI3QWB0CnohOHdRZSZPJTlA
LVM3dHk7JihaO2w+RDwqU21UN0VSfnlUSURmc3piVFB5VnxmT1dONm5OczJSNy1ZTiEmUHlHcwp6
P3d6LTg5NX5Vcl9nYCRacFV7SClgRns/c21LdzlRei1qYCQjK0twZF9eUWRMUmVNXzkkWWRPdkA3
UGJvT1Q/JkwKenZUanFxKz8zKVdsN2pPVjsqOEk8SEQyYFQ7MGAyWWJGWHpBJlA0bG07SE9BeCFV
ISVJRVlPT18yNkdlcVhSd1Y9CnojaStwIVRFenV9VzlTbXwyRkdkdGkjSUdCOWg8KH1DS2wrJTFB
e0dBIUU9TGNlOTJzejkwJVAoODYxTlkqOT94Kwp6e3dzITJMaldJJlcwdnVzIWEwdHxQXjdKbF5D
KTFOYGVkWiNpRG8jWFhxQ3ZJTFdZV0Q0U0JBWTcoZkNaV2lKX3UKelVsbDN6XlVFMm9tUThLflE/
d0BOQXN9eFRGa0IwSzY9ZGI5Yk1qY3hGUHw/PSVTcGVTbW9yNkdrZU56WldoJTlOCnpBT3traj5A
NnImUDQpTlpYdzdNQlZrKHk/Mlp+O2ZMP1ApQSZxTjYmWCkzRnRJdW0zRzRASV5qUXp9c2p2Yyts
Mgp6Y2pie3tGNiYpTlcram90NWMqaVZlYXphVSN3dVBMVz1nSlhFbUpaJSlIbTJTOzNZfDA/e1Jn
SU07VDt8ciZFbTEKek93emFadUZxOX01O3oqdnJpenVhXnRAIWteRV9KSz9VMj0/PiFzT1VRJkQ/
JDcwfjl3KExPbWtrdUpsSzhwclVGCnpWTTReJEtQUGg1SDB8bnQtdC1Cd2gyUWJNLSpPLVY0b15e
c3d2fGY8cFA7fkpqWlFTU2lIMik2dyVkKTVvWGhRRQp6anhGWm0kNChkTWEmZEZCaXh3QTt4PyRA
RFheZGo+ZVl9UjFLdnNaYFUlKFJMbGZrKXFCVjhCdWByPkB1dTdDSnkKell2Ym5mKV84cXNybCps
IW9MQD9CPW07JHBFLW1eITtqKTZXd0F8RDJZSWUoOSZzPSsoY0plMHc9O0Q5QlNtRW9eCm56dGN+
UmVEPSYja0kwPWE+SG5UQz5MMkx4PVBPN0tyS0N3UHBfZjdiWVV9PFEmTDB+MgoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IGJjZGUwZjEyZjAwOWY2NjdkYWJk
ODRlNGM5MDkzODM0MjhmNjRmMzcuLjk3MTJmZDZlOTA4ODY2NzM1Yjc5YTQ5MDliZjM2N2RkYTYy
MWMwMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTEwMDIsNiArMTAwMiw1MiBAQCBURVNUKFRl
eHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4dHJhY3RzVmFsdWVzQnlOb2Rl
KQogICAgIEVYUEVDVF9TVFJFUSgiZml2ZSIsIGl0ZW1zWzFdLnRva2Vuc1sxXS5jb250ZW50LlVU
RjhTdHJpbmcpOwogfQogCitURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxh
dGlvbkV4Y2x1ZGVzVGV4dFJlbmRlcmVkQXNJY29ucykKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcgX3NldFRleHRNYW5p
cHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+IgorICAgICAgICAiPGhlYWQ+Igor
ICAgICAgICAiPHN0eWxlPiIKKyAgICAgICAgIkBmb250LWZhY2UgeyIKKyAgICAgICAgIiAgICBm
b250LWZhbWlseTogQWhlbTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoQWhlbS50dGYpOyIKKyAg
ICAgICAgIn0iCisgICAgICAgICJAZm9udC1mYWNlIHsiCisgICAgICAgICIgICAgZm9udC1mYW1p
bHk6IFNwYWNlT25seTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoU3BhY2VPbmx5Lm90Zik7Igor
ICAgICAgICAifSIKKyAgICAgICAgIi5BaGVtIHsgZm9udC1mYW1pbHk6IEFoZW07IH0iCisgICAg
ICAgICIuU3BhY2VPbmx5IHsgZm9udC1mYW1pbHk6IFNwYWNlT25seTsgfSIKKyAgICAgICAgIi5N
aXNzaW5nIHsgZm9udC1mYW1pbHk6IE1pc3Npbmc7IH0iCisgICAgICAgICIuU3lzdGVtVUkgeyBm
b250LWZhbWlseTogc3lzdGVtLXVpOyB9IgorICAgICAgICAiPC9zdHlsZT4iCisgICAgICAgICI8
L2hlYWQ+IgorICAgICAgICAiPGJvZHk+IgorICAgICAgICAiPHNwYW4gY2xhc3M9J0FoZW0nPm9u
ZTwvc3Bhbj48c3BhbiBjbGFzcz0nU3BhY2VPbmx5Jz50d288L3NwYW4+PHNwYW4gY2xhc3M9J01p
c3NpbmcnPnRocmVlPC9zcGFuPjxzcGFuIGNsYXNzPSdTeXN0ZW1VSSc+Zm91cjwvc3Bhbj4iCisg
ICAgICAgICI8L2JvZHk+Il07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX3N0
YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpuaWwgY29tcGxldGlvbjpeewor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworCisgICAgYXV0byBpdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107CisgICAgRVhQ
RUNUX0VRKGl0ZW1zLmNvdW50LCAxVUwpOworICAgIGF1dG8gaXRlbSA9IGl0ZW1zLmZpcnN0T2Jq
ZWN0OworICAgIEVYUEVDVF9FUShpdGVtLnRva2Vucy5jb3VudCwgNFVMKTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoaXRlbS50b2tlbnNbMF0uY29udGVudCwgIm9uZSIpOworICAgIEVYUEVDVF9GQUxT
RShpdGVtLnRva2Vuc1swXS5pc0V4Y2x1ZGVkKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoaXRlbS50
b2tlbnNbMV0uY29udGVudCwgInR3byIpOworICAgIEVYUEVDVF9UUlVFKGl0ZW0udG9rZW5zWzFd
LmlzRXhjbHVkZWQpOworICAgIEVYUEVDVF9XS19TVFJFUShpdGVtLnRva2Vuc1syXS5jb250ZW50
LCAidGhyZWUiKTsKKyAgICBFWFBFQ1RfRkFMU0UoaXRlbS50b2tlbnNbMl0uaXNFeGNsdWRlZCk7
CisgICAgRVhQRUNUX1dLX1NUUkVRKGl0ZW0udG9rZW5zWzNdLmNvbnRlbnQsICJmb3VyIik7Cisg
ICAgRVhQRUNUX0ZBTFNFKGl0ZW0udG9rZW5zWzNdLmlzRXhjbHVkZWQpOworfQorCiBzdHJ1Y3Qg
VG9rZW4gewogICAgIE5TU3RyaW5nICppZGVudGlmaWVyOwogICAgIE5TU3RyaW5nICpjb250ZW50
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402768</attachid>
            <date>2020-06-25 12:00:10 -0700</date>
            <delta_ts>2020-06-25 12:14:00 -0700</delta_ts>
            <desc>Adjusted for feedback</desc>
            <filename>bug-213446-20200625120010.patch</filename>
            <type>text/plain</type>
            <size>25808</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmOTllMmM3YTUyZjZk
NjNkM2YwMjE5ZTJjNmYxNWUzNWY5ZjgyZi4uNjY0MWIxZDRiNzVlYjEyNjA4M2RkZjhjNmQ5YWJj
MmY3ZjdiZjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA2LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNpbmcgaWNvbi1vbmx5IGZvbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE15bGVzIE1heGZpZWxkLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVsYXRpb24uU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhj
bHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UpOgorCisgICAgICAgIEF1Z21l
bnQgdG9rZW4gZXhjbHVzaW9uIHJ1bGVzIHNvIHRoYXQgd2UncmUgYWJsZSB0byBleGNsdWRlIGNl
cnRhaW4gdGV4dCBub2RlcyBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLCBiYXNlZCBvbgorICAgICAg
ICB0aGVpciBzdHlsZSAobW9yZSBzcGVjaWZpY2FsbHksIGJhc2VkIG9uIHRoZWlyIGZvbnQgZmFt
aWx5KS4gQXNrIHRoZSB0ZXh0IG5vZGUncyBwcmltYXJ5IGZvbnQgaWYgaXQgaXMgbGlrZWx5IHRv
CisgICAgICAgIGJlIHVzZWQgb25seSBmb3IgcmVuZGVyaW5nIGljb25zLCBhbmQgY2FjaGUgdGhl
IHJlc3VsdCBpbiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciB0byBhdm9pZCBydW5uaW5nIHRo
ZQorICAgICAgICBoZXVyaXN0aWMgYW4gZXhjZXNzaXZlIG51bWJlciBvZiB0aW1lcyBmb3IgZWFj
aCBmb250IHRoYXQgYXBwZWFycyBpbiB0aGUgZG9jdW1lbnQuIFdlIGN1cnJlbnRseSBvbmx5IHJ1
biB0aGlzCisgICAgICAgIGZvciB0aGUgbm9kZSdzIHByaW1hcnkgZm9udCB3aGVuIGluaXRpYXRp
bmcgdHJhbnNsYXRpb24sIHRob3VnaCB3ZSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyBpbiB0aGUg
ZnV0dXJlIHNvIHRoYXQKKyAgICAgICAgbm9kZSBleGNsdXNpb24gaXMgcmVjb21wdXRlZCB3aGVu
IHRoZSBwcmltYXJ5IGZvbnQgb2YgYSBub2RlIGNoYW5nZXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojppc1Byb2JhYmx5T25seVVzZWRU
b1JlbmRlckljb25zIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlOYW1lIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6aXNQcm9iYWJseU9ubHlVc2VkVG9SZW5kZXJJY29ucyBjb25zdCk6CisKKyAgICAgICAgQWRk
IGEgaGV1cmlzdGljIHRvIGRldGVjdCB3aGV0aGVyIGEgcGxhdGZvcm0gZm9udCBzaG91bGQgYmUg
ZXhjbHVkZWQgZnJvbSB0ZXh0IG1hbmlwdWxhdGlvbi4gRm9yIG5vdywgd2Ugb25seQorICAgICAg
ICByZXR1cm4gdHJ1ZSBpZiB3ZSBzdXNwZWN0IHRoYXQgdGhpcyBmb250IGlzIGFuICJpY29uLW9u
bHkiIGZvbnQgKGZvciBpbnN0YW5jZSwgdGhlICJNYXRlcmlhbCBJY29ucyIgZm9udCkuIFdlCisg
ICAgICAgIGd1ZXNzIHRoYXQgYSBmb250IGlzICpwcm9iYWJseSogYW4gaWNvbi1vbmx5IGZvbnQg
aWYgdGhlIGZvbnQgc3VwcG9ydHMgb25seSBjaGFyYWN0ZXJzIGZyb20gdGhlIGJhc2ljIG9yIFBV
QQorICAgICAgICB1bmljb2RlIHBsYW5lcywgYW5kIHRoZSBnbHlwaCBib3VuZHMgZm9yIHRoZSBz
ZXQgb2Ygc3VwcG9ydGVkIG5vbi1jb250cm9sIGJhc2ljIGxhdGluIGNoYXJhY3RlcnMgYXJlIGFs
bCBlbXB0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9y
bURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmZhbWls
eU5hbWUgY29uc3QpOgorCisgICAgICAgIEFkZCBhIHBsYXRmb3JtIGBmYW1pbHlOYW1lKClgIGhl
bHBlciBtZXRob2Qgb24gYEZvbnRQbGF0Zm9ybURhdGFgLiBPbiBDb2NvYSBwbGF0Zm9ybXMsIHRo
aXMgd3JhcHMgYSBjYWxsIHRvCisgICAgICAgIGBDVEZvbnRDb3B5RmFtaWx5TmFtZWAuCisKIDIw
MjAtMDYtMjQgIEphbWVzIFNhdmFnZSAgPGphbWVzLnNhdmFnZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBzdHJlYW0gaVBhZE9TIDEzLjAgbXVsdGktd2luZG93IHN1cHBvcnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IGI5MGQxODYzNWRm
MzU1NjY3ZjdlMDM4OTM3ZGU2MTNiZjk4Y2Y5ZTMuLjIxMzkzOGQ0M2U5Y2NiNzJlMWNkNTVlZDRl
M2Y1MzdlN2RkMDEwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nv
Y29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
Q29yZVRleHRTUEkuaApAQCAtMTAxLDYgKzEwMSw3IEBAIENUVHlwZXNldHRlclJlZiBDVFR5cGVz
ZXR0ZXJDcmVhdGVXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucyhDVFVuaUNoYXJQcm92aWRl
CiBib29sIENURm9udEdldFZlcnRpY2FsR2x5cGhzRm9yQ2hhcmFjdGVycyhDVEZvbnRSZWYsIGNv
bnN0IFVuaUNoYXIgY2hhcmFjdGVyc1tdLCBDR0dseXBoIGdseXBoc1tdLCBDRkluZGV4IGNvdW50
KTsKIHZvaWQgQ1RGb250R2V0VW5zdW1tZWRBZHZhbmNlc0ZvckdseXBoc0FuZFN0eWxlKENURm9u
dFJlZiwgQ1RGb250T3JpZW50YXRpb24sIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0ds
eXBoW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBDRkluZGV4IGNvdW50KTsKIENURm9udERlc2NyaXB0
b3JSZWYgQ1RGb250RGVzY3JpcHRvckNyZWF0ZUZvckNTU0ZhbWlseShDRlN0cmluZ1JlZiBjc3NG
YW1pbHksIENGU3RyaW5nUmVmIGxhbmd1YWdlKTsKK2Jvb2wgQ1RGb250R2V0R2x5cGhzRm9yQ2hh
cmFjdGVyUmFuZ2UoQ1RGb250UmVmLCBDR0dseXBoIGdseXBoc1tdLCBDRlJhbmdlKTsKIAogQ1RG
b250RGVzY3JpcHRvclJlZiBDVEZvbnREZXNjcmlwdG9yQ3JlYXRlRm9yVUlUeXBlKENURm9udFVJ
Rm9udFR5cGUsIENHRmxvYXQgc2l6ZSwgQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpOwogQ1RGb250RGVz
Y3JpcHRvclJlZiBDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aFRleHRTdHlsZShDRlN0cmluZ1Jl
ZiBzdHlsZSwgQ0ZTdHJpbmdSZWYgc2l6ZSwgQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNw
cAppbmRleCA1NTkwODUwOTgwNzJmYzI1OWViNzc1NzE3ODRmZDRjNWY0NWQ5YmE3Li5iNWZmYjlk
NWNkOTdlZmJhMjMxNWY2ZThiODhmOGZhYTQxMWI5NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJT
dHlsZS5oIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTMzMCwxMCArMzMxLDMzIEBAIFRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Vbml0IFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyOjpjcmVhdGVVCiAgICAgcmV0dXJuIHVuaXQ7CiB9CiAKK2Jvb2wgVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXI6OnNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKGNvbnN0IE5vZGUm
IG5vZGUpCit7CisgICAgYXV0byogc3R5bGUgPSBub2RlLnJlbmRlclN0eWxlKCk7CisgICAgaWYg
KCFzdHlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZm9udCA9IHN0eWxl
LT5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCk7CisgICAgYXV0byBmYW1pbHlOYW1lID0gZm9u
dC5wbGF0Zm9ybURhdGEoKS5mYW1pbHlOYW1lKCk7CisgICAgaWYgKGZhbWlseU5hbWUuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGl0ZXIgPSBtX2NhY2hlZEZv
bnRGYW1pbHlFeGNsdXNpb25SZXN1bHRzLmZpbmQoZmFtaWx5TmFtZSk7CisgICAgaWYgKGl0ZXIg
IT0gbV9jYWNoZWRGb250RmFtaWx5RXhjbHVzaW9uUmVzdWx0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIGl0ZXItPnZhbHVlOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZWNvbnNpZGVyIHdo
ZXRoZXIgYSBub2RlIHNob3VsZCBiZSBleGNsdWRlZCBpZiB0aGUgcHJpbWFyeSBmb250CisgICAg
Ly8gdXNlZCB0byByZW5kZXIgdGhlIG5vZGUgY2hhbmdlcywgc2luY2UgdGhpcyAiaWNvbiBmb250
IiBoZXVyaXN0aWMgbWF5IHJldHVybiBhCisgICAgLy8gZGlmZmVyZW50IHJlc3VsdC4KKyAgICBi
b29sIHJlc3VsdCA9IGZvbnQuaXNQcm9iYWJseU9ubHlVc2VkVG9SZW5kZXJJY29ucygpOworICAg
IG1fY2FjaGVkRm9udEZhbWlseUV4Y2x1c2lvblJlc3VsdHMuc2V0KGZhbWlseU5hbWUsIHJlc3Vs
dCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjo6cGFyc2UoTWFuaXB1bGF0aW9uVW5pdCYgdW5pdCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBO
b2RlJiB0ZXh0Tm9kZSkKIHsKICAgICBFeGNsdXNpb25SdWxlTWF0Y2hlciBleGNsdXNpb25SdWxl
TWF0Y2hlcihtX2V4Y2x1c2lvblJ1bGVzKTsKLSAgICBib29sIGlzTm9kZUV4Y2x1ZGVkID0gZXhj
bHVzaW9uUnVsZU1hdGNoZXIuaXNFeGNsdWRlZCgmdGV4dE5vZGUpOworICAgIGJvb2wgaXNOb2Rl
RXhjbHVkZWQgPSBleGNsdXNpb25SdWxlTWF0Y2hlci5pc0V4Y2x1ZGVkKCZ0ZXh0Tm9kZSkgfHwg
c2hvdWxkRXhjbHVkZU5vZGVCYXNlZE9uU3R5bGUodGV4dE5vZGUpOwogICAgIHNpemVfdCBwb3Np
dGlvbk9mTGFzdE5vbkhUTUxTcGFjZSA9IFdURjo6bm90Rm91bmQ7CiAgICAgc2l6ZV90IHN0YXJ0
UG9zaXRpb25PZkN1cnJlbnRUb2tlbiA9IDA7CiAgICAgc2l6ZV90IGluZGV4ID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaApp
bmRleCBkNmFjZDNjMWU0NzQ2OWQ4Nzc1NmVhZjgwMThiNzNhNjY0Yjk5ZTk5Li45NDk4ZjYyOTU0
N2RjYjNkMDEzOGRmMGE1YmQyOTAyODEyYmI2N2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oCkBAIC0xNTksNiArMTU5LDgg
QEAgcHJpdmF0ZToKICAgICBNYW5pcHVsYXRpb25Vbml0IGNyZWF0ZVVuaXQoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBOb2RlJik7CiAgICAgdm9pZCBwYXJzZShNYW5pcHVsYXRpb25Vbml0JiwgY29u
c3QgU3RyaW5nJiwgTm9kZSYpOwogCisgICAgYm9vbCBzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25T
dHlsZShjb25zdCBOb2RlJik7CisKICAgICB2b2lkIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURh
dGEmJik7CiAgICAgdm9pZCBhZGRJdGVtSWZQb3NzaWJsZShWZWN0b3I8TWFuaXB1bGF0aW9uVW5p
dD4mJik7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJdGVtc0ZvckNhbGxiYWNrKCk7CkBAIC0xNzgs
NiArMTgwLDggQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxFbGVtZW50PiBtX2VsZW1lbnRz
V2l0aE5ld1JlbmRlcmVyOwogICAgIFdlYWtIYXNoU2V0PEVsZW1lbnQ+IG1fbWFuaXB1bGF0ZWRF
bGVtZW50czsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPiBtX2NhY2hlZEZvbnRGYW1pbHlF
eGNsdXNpb25SZXN1bHRzOworCiAgICAgTWFuaXB1bGF0aW9uSXRlbUNhbGxiYWNrIG1fY2FsbGJh
Y2s7CiAgICAgVmVjdG9yPE1hbmlwdWxhdGlvbkl0ZW0+IG1fcGVuZGluZ0l0ZW1zRm9yQ2FsbGJh
Y2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggOGI2
MWZkMDRmMmZhYWFmN2FhY2FjMGRmNDIzOWY4YzcwMmM1ZDM5NS4uNzc4OTMwNmY2Y2Q3ZWUxMzA4
ZjQzZmE4MWIxMjAwMzYzOGE5Yzk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHAKQEAgLTQ3NSw2ICs0NzUsMTYgQEAgY29uc3QgRm9udCYgRm9udDo6YnJva2Vu
SWRlb2dyYXBoRm9udCgpIGNvbnN0CiAgICAgcmV0dXJuICpkZXJpdmVkRm9udERhdGEuYnJva2Vu
SWRlb2dyYXBoRm9udDsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKKworYm9vbCBGb250Ojpp
c1Byb2JhYmx5T25seVVzZWRUb1JlbmRlckljb25zKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTog
Tm90IGltcGxlbWVudGVkIHlldC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNlbmRpZgorCiAj
aWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIEZvbnQ6OmRlc2NyaXB0aW9uKCkgY29uc3QKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAppbmRleCAxMjgzZjgyYTdlYzEwOTM3
M2EyZDQxMzI3ZWJhMDQ2YmM3YWFkNDUwLi5kNDBmZDNhZjkwNjNkZjRmYWE2ZGZjY2Y5YjUwZThh
YWEwOTA1ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCkBAIC0x
MDYsNiArMTA2LDggQEAgcHVibGljOgogICAgIGNvbnN0IEZvbnQqIGVtcGhhc2lzTWFya0ZvbnQo
Y29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgY29uc3QgRm9udCYgYnJva2VuSWRl
b2dyYXBoRm9udCgpIGNvbnN0OwogCisgICAgYm9vbCBpc1Byb2JhYmx5T25seVVzZWRUb1JlbmRl
ckljb25zKCkgY29uc3Q7CisKICAgICBjb25zdCBGb250KiB2YXJpYW50Rm9udChjb25zdCBGb250
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBGb250VmFyaWFudCB2YXJpYW50KSBjb25zdAogICAg
IHsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggOWQyODdhZjY2ODBmNDM0MjZl
MDI4MWZiNWRjMzBiNGViOTEyYjNmYS4uZDRiYzJhNGYxMTFkMzgyMGY4MDlkMTgwZmU2NzMyNDkw
OWNiZTdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTg0LDQgKzg0LDE0IEBAIEZvbnRQbGF0Zm9ybURhdGEg
Rm9udFBsYXRmb3JtRGF0YTo6Y2xvbmVXaXRoU2l6ZShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBz
b3VyY2UsCiB9CiAjZW5kaWYKIAorI2lmICFQTEFURk9STShDT0NPQSkKKworU3RyaW5nIEZvbnRQ
bGF0Zm9ybURhdGE6OmZhbWlseU5hbWUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBOb3QgaW1w
bGVtZW50ZWQgeWV0LgorICAgIHJldHVybiB7IH07Cit9CisKKyNlbmRpZgorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKaW5k
ZXggZDM4ZDRkZDkxMjBhMDllYWUyM2VjZWI1NjkzODExNWZkNjcwMDc4Ny4uMDBjNGE4ODU1MzQ2
MzdjNDJjNjcwN2I4YmZjOGY5OWI2MGU0ZmU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaApAQCAtMTU1LDYgKzE1NSw4IEBA
IHB1YmxpYzoKICAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAgICBib29sIGlzRm9yVGV4dENvbWJp
bmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAhPSBGb250V2lkdGhWYXJpYW50OjpS
ZWd1bGFyV2lkdGg7IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVycyBvZiBGb250RGVzY3Jp
cHRpb246OnNldFdpZHRoVmFyaWFudCgpLgogCisgICAgU3RyaW5nIGZhbWlseU5hbWUoKSBjb25z
dDsKKwogI2lmIFVTRShDQUlSTykKICAgICBjYWlyb19zY2FsZWRfZm9udF90KiBzY2FsZWRGb250
KCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZWRGb250LmdldCgpOyB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRl
eCAxNGE1YTM2MmI4YjE0ZGVmYTMzNDkxYmQxYzM0MDQ5NGRmNjIyMDFkLi44YjhjOWQ2N2Q3ZGY1
Mjc3OTU0YzNkMzdmMTU1MTRhMWU4OGU3YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC02NTksNCArNjU5LDQzIEBA
IGJvb2wgRm9udDo6cGxhdGZvcm1TdXBwb3J0c0NvZGVQb2ludChVQ2hhcjMyIGNoYXJhY3Rlciwg
T3B0aW9uYWw8VUNoYXIzMj4gdmFyaWF0CiAgICAgcmV0dXJuIENURm9udEdldEdseXBoc0ZvckNo
YXJhY3RlcnMocGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGNvZGVVbml0cywgZ2x5cGhzLCBjb3Vu
dCk7CiB9CiAKK2Jvb2wgRm9udDo6aXNQcm9iYWJseU9ubHlVc2VkVG9SZW5kZXJJY29ucygpIGNv
bnN0Cit7CisgICAgYXV0byBwbGF0Zm9ybUZvbnQgPSBwbGF0Zm9ybURhdGEoKS5mb250KCk7Cisg
ICAgaWYgKCFwbGF0Zm9ybUZvbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEFs
bG93IG1vc3Qgbm9uLWljb24gZm9udHMgdG8gYmFpbCBlYXJseSBoZXJlIGJ5IHRlc3RpbmcgYSBz
aW5nbGUgY2hhcmFjdGVyICdhJywgd2l0aG91dCBpdGVyYXRpbmcgb3ZlciBhbGwgYmFzaWMgbGF0
aW4gY2hhcmFjdGVycy4KKyAgICBVbmlDaGFyIGxvd2VyY2FzZUFDaGFyYWN0ZXIgPSAnYSc7Cisg
ICAgQ0dHbHlwaCBsb3dlcmNhc2VBR2x5cGg7CisgICAgaWYgKENURm9udEdldEdseXBoc0ZvckNo
YXJhY3RlcnMocGxhdGZvcm1Gb250LCAmbG93ZXJjYXNlQUNoYXJhY3RlciwgJmxvd2VyY2FzZUFH
bHlwaCwgMSkpIHsKKyAgICAgICAgaWYgKCFDR1JlY3RJc0VtcHR5KENURm9udEdldEJvdW5kaW5n
UmVjdHNGb3JHbHlwaHMocGxhdGZvcm1Gb250LCBrQ1RGb250T3JpZW50YXRpb25EZWZhdWx0LCAm
bG93ZXJjYXNlQUdseXBoLCBudWxscHRyLCAxKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgYXV0byBzdXBwb3J0ZWRDaGFyYWN0ZXJzID0gYWRvcHRDRihDVEZvbnRD
b3B5Q2hhcmFjdGVyU2V0KHBsYXRmb3JtRm9udCkpOworICAgIGlmIChDRkNoYXJhY3RlclNldEhh
c01lbWJlckluUGxhbmUoc3VwcG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgMSkgfHwgQ0ZDaGFyYWN0
ZXJTZXRIYXNNZW1iZXJJblBsYW5lKHN1cHBvcnRlZENoYXJhY3RlcnMuZ2V0KCksIDIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBUaGlzIGVuY29tcGFzc2VzIGFsbCBiYXNpYyBM
YXRpbiBub24tY29udHJvbCBjaGFyYWN0ZXJzLgorICAgIGNvbnN0ZXhwciBVbmlDaGFyIGZpcnN0
Q2hhcmFjdGVyVG9UZXN0ID0gJyAnOworICAgIGNvbnN0ZXhwciBVbmlDaGFyIGxhc3RDaGFyYWN0
ZXJUb1Rlc3QgPSAnfic7CisgICAgY29uc3RleHByIGF1dG8gbnVtYmVyT2ZDaGFyYWN0ZXJzVG9U
ZXN0ID0gbGFzdENoYXJhY3RlclRvVGVzdCAtIGZpcnN0Q2hhcmFjdGVyVG9UZXN0ICsgMTsKKwor
ICAgIFZlY3RvcjxDR0dseXBoPiBnbHlwaHM7CisgICAgZ2x5cGhzLmZpbGwoMCwgbnVtYmVyT2ZD
aGFyYWN0ZXJzVG9UZXN0KTsKKyAgICBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJSYW5nZShw
bGF0Zm9ybUZvbnQsIGdseXBocy5iZWdpbigpLCBDRlJhbmdlTWFrZShmaXJzdENoYXJhY3RlclRv
VGVzdCwgbnVtYmVyT2ZDaGFyYWN0ZXJzVG9UZXN0KSk7CisgICAgZ2x5cGhzLnJlbW92ZUFsbCgw
KTsKKworICAgIGlmIChnbHlwaHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBWZWN0b3I8Q0dSZWN0PiBib3VuZGluZ1JlY3RzOworICAgIGJvdW5kaW5nUmVjdHMuZmls
bChDR1JlY3RaZXJvLCBnbHlwaHMuc2l6ZSgpKTsKKyAgICBDVEZvbnRHZXRCb3VuZGluZ1JlY3Rz
Rm9yR2x5cGhzKHBsYXRmb3JtRm9udCwga0NURm9udE9yaWVudGF0aW9uRGVmYXVsdCwgZ2x5cGhz
LmJlZ2luKCksIGJvdW5kaW5nUmVjdHMuYmVnaW4oKSwgZ2x5cGhzLnNpemUoKSk7CisgICAgcmV0
dXJuIG5vdEZvdW5kID09IGJvdW5kaW5nUmVjdHMuZmluZE1hdGNoaW5nKFtdKGF1dG8mIHJlY3Qp
IHsKKyAgICAgICAgcmV0dXJuICFDR1JlY3RJc0VtcHR5KHJlY3QpOworICAgIH0pOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXgg
OGE2MzlkYjFmNGMxYjM2Zjg3NzM0Y2YwNDYwNWZhMzkxMzgzYWE4OS4uNzJlODI1MWMzZDM3NGUx
MDI0OWNlMzQwOTMyNzEzYjA4ZWNhYzhkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5t
bQpAQCAtMTgxLDQgKzE4MSwxMSBAQCBTdHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRp
b24oKSBjb25zdAogCiAjZW5kaWYKIAorU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmZhbWlseU5h
bWUoKSBjb25zdAoreworICAgIGlmIChhdXRvIHBsYXRmb3JtRm9udCA9IGZvbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGFkb3B0Q0YoQ1RGb250Q29weUZhbWlseU5hbWUocGxhdGZvcm1Gb250KSkuZ2V0
KCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE1NjMyYWU5MmE4
NjQ0N2VjYzI5NDUzNzY1OTZmMzcxMzIxNzBjZDEuLmNhYTM4ODc4ODIxOGVhMjY1NTg3YmYzMWIy
ZjNmMDkwMDAzYzBkMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wNi0yMSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBUZXh0IG1hbmlwdWxhdGlvbiBzaG91bGQg
ZXhjbHVkZSB0ZXh0IHJlbmRlcmVkIHVzaW5nIGljb24tb25seSBmb250cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDQ2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzczNDI5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBNYXhmaWVs
ZC4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0udHRmOiBBZGRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwYWNlT25seS5vdGY6IEFkZGVkLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlv
bi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA2LTI0ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIG1hY09TIEJpZyBTdXIg
YnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMWE5OTQ5ZjcwMzQwYmU3NDM2
Mjk0NTc1ZjhkMTRjZjA5Yzg5YTU3Li41ZTBjYTBhYTU0YTJlNTgwMDkwNzIzNWU1NWNjM2M3ZDlk
NWIxNDg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEzMCw2ICsxMTMwLDggQEAKIAkJ
RjRDRDc0QzYyMEZEQUNGQTAwREUzNzk0IC8qIHRleHQtd2l0aC1hc3luYy1zY3JpcHQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENE
NzRDNTIwRkRBQ0Y1MDBERTM3OTQgLyogdGV4dC13aXRoLWFzeW5jLXNjcmlwdC5odG1sICovOyB9
OwogCQlGNENENzRDOTIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENENzRDODIw
RkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi87IH07CiAJCUY0Q0Yz
MjgwMjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YzMjdGMjM2NjU1MjIwMEQzQUQw
NyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSAqLzsgfTsKKwkJRjRDRkNEREEyNDlGQzlFNDAwNTI3
NDgyIC8qIFNwYWNlT25seS5vdGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgyIC8qIFNwYWNlT25seS5v
dGYgKi87IH07CisJCUY0Q0ZDRERCMjQ5RkM5RTkwMDUyNzQ4MiAvKiBBaGVtLnR0ZiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENGQ0REOTI0
OUZDOUQ5MDA1Mjc0ODIgLyogQWhlbS50dGYgKi87IH07CiAJCUY0RDI5ODZFMjBGRUU3MzcwMDky
RDYzNiAvKiBSdW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDI5ODZEMjBGRUU3MzcwMDkyRDYzNiAvKiBS
dW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbSAqLzsgfTsKIAkJRjRENEYzQjYxRTRFMkJDQjAw
QkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERy
YWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tICovOyB9OwogCQlGNEQ0RjNCOTFFNEUzNkU0MDBCQjI3
NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJv
cFRlc3RzSU9TLm1tICovOyB9OwpAQCAtMTIzNCw2ICsxMjM2LDcgQEAKIAkJCQk1NUE4MTgwMDIx
ODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJMzc5MDI4QjkxNEZBQzI0QzAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNzI1QzNFRjMyMjA1OEE1QjAwN0MzNkZDIC8qIEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJRjRDRkNEREIyNDlGQzlFOTAwNTI3NDgyIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTFDMkI4MTg3MUM4OTI1QTAwMEE1NTI5RiAvKiBBaGVtLnR0ZiBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkxQTYzNDc5RjE4M0Q3MkE0MDA1QjE3MDcgLyogYWxsLWNvbnRlbnQt
aW4tb25lLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMyNUNDQTBEMUU1
MTQxODQwMDI2Q0I4QSAvKiBBbGxBaGVtLnN2ZyBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1
NDcsNiArMTU1MCw3IEBACiAJCQkJNDZBRTVBMzcyMEY5MDY2RDAwRTA4NzNFIC8qIFNpbXBsZVNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlGNEY0MDVCRDFENEMwRDFDMDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDMDFBMjNGMjEyNjYx
NTY3MDBDOUVENTUgLyogc3BhY2ViYXItc2Nyb2xsaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCisJCQkJRjRDRkNEREEyNDlGQzlFNDAwNTI3NDgyIC8qIFNwYWNlT25seS5vdGYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRTE5NEUxQkQxNzdFNTNDNzAwOUM0RDRFIC8qIFN0b3BMb2Fk
aW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTUxNUJFMTZGMUQ0MjhCQjEwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0JlRGVsZXRlZC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTlCRDZEM0EyMUY3QjIxODMwMEJENDk2MiAvKiBzdW5z
ZXQtaW4tY3VwZXJ0aW5vLTEwMHB4LnRpZmYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yODE1
LDYgKzI4MTksOCBAQAogCQlGNENENzRDODIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVt
ZUhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0VVJMU2NoZW1lSGFuZGxlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDREFCMzMyMjQ4OUZFMTAwNTdBMkQ5
IC8qIFVzZXJJbnRlcmZhY2VTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VySW50ZXJmYWNl
U3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDRjMyN0YyMzY2NTUy
MjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RW50ZXJLZXlIaW50VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0ZD
REQ4MjQ5RkM5RDkwMDUyNzQ4MiAvKiBTcGFjZU9ubHkub3RmICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IFNwYWNlT25seS5vdGY7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0ZDREQ5MjQ5RkM5RDkwMDUyNzQ4MiAv
KiBBaGVtLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IHBhdGggPSBBaGVtLnR0Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1lbnRMb2FkLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVuU2NyaXB0QWZ0ZXJEb2N1bWVudExvYWQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I0MUU0RTJCQ0IwMEJCMjc2NyAvKiBE
cmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9w
VGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTMzLDYgKzM1Mzks
NyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEw
MHgxMDAtcmVkLnRnYSAqLywKIAkJCQk1NUE4MTdGRDIxODEwMURGMDAwNEEzOUEgLyogNDAweDQw
MC1ncmVlbi5wbmcgKi8sCisJCQkJRjRDRkNERDkyNDlGQzlEOTAwNTI3NDgyIC8qIEFoZW0udHRm
ICovLAogCQkJCUMyNUNDQTBDMUU1MTQwRTUwMDI2Q0I4QSAvKiBBbGxBaGVtLnN2ZyAqLywKIAkJ
CQlGNEE5MjAyRTFGRUUzNEM4MDBGNTk1OTAgLyogYXBwbGUtZGF0YS11cmwuaHRtbCAqLywKIAkJ
CQlBMTc5OEI4QTIyNDM2MTFBMDAwNzY0QkQgLyogYXBwbGUtcGF5LWFjdGl2ZS1zZXNzaW9uLmh0
bWwgKi8sCkBAIC0zNzIzLDYgKzM3MzAsNyBAQAogCQkJCUM5QjRBRDI5MUVDQTZFQTUwMEY1RkVB
MCAvKiBzaWxlbmNlLWxvbmcubTRhICovLAogCQkJCTQ2NTZBNzU3MjBGOTA1NEYwMDAyRTIxRiAv
KiBTaW1wbGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMgKi8sCiAJCQkJRjRG
NDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwgKi8sCisJCQkJRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgyIC8qIFNwYWNlT25seS5v
dGYgKi8sCiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4IC8qIFN0b3JlQmxvYlRvQmVEZWxl
dGVkLmh0bWwgKi8sCiAJCQkJOUJENkQzQTExRjdCMjAyMTAwQkQ0OTYyIC8qIHN1bnNldC1pbi1j
dXBlcnRpbm8tMTAwcHgudGlmZiAqLywKIAkJCQk5QkQ2RDNBMDFGN0IyMDIwMDBCRDQ5NjIgLyog
c3Vuc2V0LWluLWN1cGVydGluby0yMDBweC5wbmcgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0udHRmIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9BaGVtLnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzgxY2IwMzE2NWFiODMx
YTM2YWJiNTkxNDVmZjdhMmY1Njc1ZmI5CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjQ4MAp6
Y21lSE5aRm0mYjZAS1NxWEZxYD9WI0o4X1d7WigzMjc7QyVyTn5GNU5EK31CcU5VMHZKSU15S3lL
IzQ4ZiZ4V3IKeilrZ1UhVDgmQzZCNyVZPDNSKG44NWZLNFZzaXRUVm1vIT5VWkImWTJlR3BqUkoz
QTIrK2RxQiRWTFArVz8ze2I8Cnp5PVR0Nz1iZH1jP3p+VXtfJVJiMmBkKDdqcihlVV5RTF9NTDBK
VzFWcU1fT0B5WWZjPnR7VDhkUkUzaFlJMGFzeQp6P0BIRl5STWt3YXlsN1F3SHgwQV4xPnVNcDNo
IURwcmFTQV9eWHdtPyF0Sy1aREllaDNHWklaVEpSPmxqX0x+NSQKenhoN3JfNV9NKz1mdWQ2QytN
fVV7VDZgKylFOFc7JCM2blNYTSVPI20wS05NMXsqbF52R0JzPUc+NVZgIWA+V2pgCnplT0U5bkAw
M2ZjdUlAN0VBaVA9fEhDUHFEYFUtajdjK1Q+UmZYbzFgTyVwNj9QXkZkIWApTUxHZlp0WW9lb0lU
bwp6OXx0WVhMM3Ijd1UjO2l1d0tpb2dUb2wlO15heWpaU0xKIzFRIzVMIWF+JCVSMnxTKHlHMTRt
Vj4rKkFsMTRBSjgKenNrUlJTVExxTmRBKnxEYzwqQmVkPDIrP09sd0xaZ0dZMVheelRGcyprOH0z
YU44MmstY1dTdHtzNntZVHBNMmd+CnpgMDg0dGE1MmRxOWFwPH0hWD97TmdVKXJ5ZlNhcUFUIVZh
RS12ajdgJmdnPDE8UlQ5enAoez5DS0cqVllJMjhwcgp6NGMmMSVkZis8e0NgMXQ3TU5nYzhCQWtn
e18jViF9KzMxYVBQPmVxNGl4VHcxeGl9QnNNfVBiUDE4X2JEOylmVzcKekE3TDtxO0pQKnghIVI3
QnhEWEBvVn5vVF83PUBvO0clbSYlVCFPSzw2eXMyYUB3Zn5WYTUqTzgzUzVid1ZpSkNhCnp0OGdf
WSk4NyF2UUdxWl9SSDZ6SVJBVU9SS0BGbWFBJnkjSGl2KkhMcCReeGY5dTFnXj52MDM3YWJLQiVw
TDRsPQp6NkYxQH1gfm8tUUUmTEw8Ozh4cyp4QTd9OTsoZ3FYSko1eiVfeV5pQzgqfWd1LW9AWTBq
SzU8cGV2UXtLNHxuMSYKenswNFg5Sl5UcUQ7OG9tJUNacmpxYCoxKHo8N0s+cEtWdWkoeitkb05F
V3EjWkFyQGpNVEpab3tASy1BJGQkMCh2CnpWPmtCVktgaDJZU2MwV143Pns1WG1nNy04I3heVlBJ
OUIyYkpjKDZVamk+TjVldmRWSDI1WWc3SkV1LUdmVWBBKAp6UVM4aHAlc0BzZFFPY0FDV3VFJGl4
PW5wY3lHd2dTVGQhPnRJaWptNTVJc2F0NnA2bEtwZVFYMjc4Vjg3cGJfajYKeiVuS0YtZGohdThq
dG91P24hKXtOWX5RRDVHUEVsZyh9bEQqJmEkX0tfVEQoby1idGRIPXFgazFAQkE7PiVNRzZUCnpn
fXR6NDUxQ0JuP015M28qYyZzYEc3fmN3MDd1JCs0bkFfJDtuJDlJLUo1Q0kxaGxNZ1M9WHxyPD8p
dUtFZXJOTwp6eVo1bmxZa0VnfG16PH5jX1ZrQUlMK1FyIXQjNXR5WDN3MERZfX04TWJAR3M0bWdq
TkQoY3xSZiNkYiNGI04lR1oKelFSM2hNTSowcyNMbkNvOG0rYHpDbn45MDFoPn1AJjBiN1pUSW1G
MiMmaUB1LXBiNld0NEtFU31fYzMtNEdVXmhLCnp3LWI+fGlPSSFgPTVqbGw4O0g7cVJ6Jjkkc21+
S3hQZ3JyUyFiV1QmP3k4QzFEYTdxSE1EOUZkeDBkTFkqaTh8PQp6NjEjc1NkWiFZPCpBdSVwNUpg
NzMoJGcmakthMXl4cyNVfjc3OCZiXmxDPjd6VU1GNVIpN1NTTGx3PD8kcHlXVEkKekw/KXVsQmVp
UVohOE9iY29TUiNpZHEhYnk7ZEolR0JYZzdrTSsySFQrJWxhajRreXlpbCh8US1RSzhtJHhFbXtG
CnpDaHBZOVVsN2lgSUdBdnIyV0tzQykmZ2dMYVE0UDtJNEB3PCFUcStSQE1MU3grM01zVio/JSRy
WExBc1NgXjBzJQp6I21QT0xvWlFLfm8hP140P0A7R0FffUE8WS0qNjcle057SzUyWGcpY2I4O3t6
MlhrXlRDa0p6S0ZlZUI1SCNyIXsKekMmKyQrV0MjckEreHsjMD8oO2duYkRoV2NtQER7KFlDR1NV
emwjSGtzXmxtPWwtfGxmV3UhN2UyYGRSQHJaUVdaCnp1UGpzNkN8aV9mckImSWQ5OTA4cWYhYSYk
dWE+SWcpWDhkMG91KVJiUDNqVkx3WW97JnNpeEktXl5vUyNeMGw1Pwp6S1cmSU1Nd19IZihIZ1d7
XyNTKGF3bz09bT9hKzQ5KEAlNj0mKG5vb3RQaiNoPUBhI15wM3JDTnYtU0Q8R0pURHsKek1RXyR5
Xj9td0xTSE0tXj5nRFMxRHNfIT5PP0pneChfRD9OQ2Y1P3pZUyQqJFBGTEYxP21BPzZqQ2BZfihh
I3VTCnpqND50fFE7WWBWN1VNMnNrK0lVKVZDKm48OCpSb1hacno+ZDdWY3ZBQW9uUXVNMGNlLTwt
VzsxKlMpfn5zQyV0QAp6dDl6SUc5cnUwQEplQHQ9SiFnM2FASDRfUS1jIzxXXn5+X3g7a25RQXU7
KiNkWDN3amg3U0QmQyEoTn1hbzQzZSYKem9fQ21jdG9KSCFqclYlKlpRaUBSaUBpXkpIK288OD8o
eDN3e25UZ3B5ODQyP3pQYGJ9KFlgQnY1I00jYm58PD9xCnozdzxrbT53VmpPWn17SHo5cV9DRTlE
ZmdnWn5zOTVOZEUrWCpxYHZ2XncwTHNfYj5DV0BvKGByYCY8M3t7Nl88VQp6S3RaNWFwbnNxPUZm
SzRUNURRRVRHek9YaU85SEN7bip1dW49fEZxblAkeTVQezd5WVBePHlAMG5zViROe1F7UD0KemhY
UmslUUJ1KWFTel94bzJ4WVlgPnVsMyglUCE8QWR1LVhEZSFxT1d0bTc1c2tTIX5HJWV+RShSaytv
Y1kqfEImCnorSEFgQCtxYDRURjhJfEJFfXVkRCRGQEYpXjFwMDNtdiVuMDx2aSRgJURxaklUcz51
aFg0bz52cUEjeyhqenhkZQp6bU5eIUV0dTFwYmBmZ2sxU29Cc349Mi1Na1o4LS1YbTs0YDcrUnNJ
Mm0mY2Ejc0x2LU9DVHtVcTFpMXdmdko0VkQKekU2NUhvRXE7cnpHJHNUITUkWGliRDhHfkI1WSpY
cXkpQTc2ZHpvWXhxKnk4PD9gOX49YihTNHpCU3pNT0FnOEM2CnpyKSp6T1l0X35yckw3MmtzSFpr
V1N6M3YpVW11SG1iRjNgTFpiLTE1eW5CWik8eUhAcT8xcE9nRzA2PVFXYmBCewp6UnIyMDdFTEV+
YyFzPW1DcFIoRmp2MFB6VWwzYSkrYnk2UnYxP2tJRnREUEtXKHl9KyF4QCh5QnEtU3l6PCFtRiEK
ejlnNEZnJU9tSlRnc3IzcEA/T1g4blZxcldXRXohR1UmZU0oK0wxRntPOyVIcXhebH5VSj5fZylJ
cSUyKEVhb2dxCno4JlJeQU90TyZWbX1HPHxTZ29iIVMrN2d6WCRoQCR3Qz1jbWVMSzdNVik5cjtN
SUA5NlJpdztCUWlLd3dOSlVJeAp6TW4mQDRJK2w3MXYhVE1RT15Lb2xoZ1FfM09jOUVPTVgpeTVU
aHZGWUQ8VUVwaVB3dXp2Y2ltfGBoLXBFRGs+QjQKenNBWikqbHIoRnFWYGowcUVOTkVPKXJpVj9M
WnItT3N5YkZCRCZrU0hYc2M3ekB0ODxYT3tVQ2Z2Ukk1dyNLVXpKCnpXPn1PQDczMVVLdW93fUZC
d31WRittbnRCRkRueWVwPWV6cVJERVZybHFjZiNOIUhwbmktJChjPXMyXmd0fHBZMgp6en5NO0tD
Qi1FfHNeeGl7dTB2KEZtUE98Jl88d3kwekliTjd7RGdIcEwyN24wJGxTb3A7c2hjWEgzejl3JCFf
XkYKeit3dDRQYm9fNjVqeUdCeU42QiEhalUyV3thQDF5Iz1fWXhNY2FyMEZrSHJeVE5jUCh6aS0j
IXJobXc2THhyYlIrCnoqOz15VnAwZ05tK25BcmRoI2gjejt5M09qXllKeHVBfD1vOWImS2hebzFE
ciRXSypXZVhfUEYtSHU1Rmt3PlhwXgp6a2FfbkpfVGl0e2tCYGFuS1pzQVB4Smg+N0kmJFM2Q2E+
KiZpfDRyNlZtZHhnTSYyZn1AME9FbXd9QXx9Xjw+UjgKemshZzE/eHB3byZ1YmdBQ0ZQRDt3X2JP
UiomeXE+NkQhTS1BdmVCY31rPmo8fTNyRXdzWDBoXmZwcGVnfmVHVSFICkJjQGg4cwoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TcGFjZU9ubHkub3RmIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TcGFjZU9ubHkub3RmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMTM0M2M5YzFjMzRjNmI5N2ZjMDZj
ZDg2YmFkNTY3YThmZDNjYTMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE3NDAKemNtZHMyUGlS
eX04MmA8Q1pgVU5vQiZNZGRfPUtUYWh9M019Q1BCKkxLfT5kd01VI05oWGZPSjctfkl2ajUxUj41
CnpuP2oqYilMMmtZVWM0NShsdE9iNlQ8fkJFI2ZhXihKdDx4a3QweE5eOH1qX2srYVZASUpiQ0lv
WDE/RnwmMlBUPgp6ekx7QCEkMGpEbSgyajNtVzhaS2xCWDVzZUtMRGB7MEdeSDxLSlcjbDBPRT9X
QzZrI3JscyFIJk5gMDJQSjlmQiMKejs3RUFsWiZFeiFDJnpRPz80SnU/fEhBcH0pT1ZqUWBCaU1Q
ZSo+Skk8bUBqNWVzPU4yJEtQO25mcWhTYjI3QWB0CnohOHdRZSZPJTlALVM3dHk7JihaO2w+RDwq
U21UN0VSfnlUSURmc3piVFB5VnxmT1dONm5OczJSNy1ZTiEmUHlHcwp6P3d6LTg5NX5Vcl9nYCRa
cFV7SClgRns/c21LdzlRei1qYCQjK0twZF9eUWRMUmVNXzkkWWRPdkA3UGJvT1Q/JkwKenZUanFx
Kz8zKVdsN2pPVjsqOEk8SEQyYFQ7MGAyWWJGWHpBJlA0bG07SE9BeCFVISVJRVlPT18yNkdlcVhS
d1Y9CnojaStwIVRFenV9VzlTbXwyRkdkdGkjSUdCOWg8KH1DS2wrJTFBe0dBIUU9TGNlOTJzejkw
JVAoODYxTlkqOT94Kwp6e3dzITJMaldJJlcwdnVzIWEwdHxQXjdKbF5DKTFOYGVkWiNpRG8jWFhx
Q3ZJTFdZV0Q0U0JBWTcoZkNaV2lKX3UKelVsbDN6XlVFMm9tUThLflE/d0BOQXN9eFRGa0IwSzY9
ZGI5Yk1qY3hGUHw/PSVTcGVTbW9yNkdrZU56WldoJTlOCnpBT3traj5ANnImUDQpTlpYdzdNQlZr
KHk/Mlp+O2ZMP1ApQSZxTjYmWCkzRnRJdW0zRzRASV5qUXp9c2p2YytsMgp6Y2pie3tGNiYpTlcr
am90NWMqaVZlYXphVSN3dVBMVz1nSlhFbUpaJSlIbTJTOzNZfDA/e1JnSU07VDt8ciZFbTEKek93
emFadUZxOX01O3oqdnJpenVhXnRAIWteRV9KSz9VMj0/PiFzT1VRJkQ/JDcwfjl3KExPbWtrdUps
SzhwclVGCnpWTTReJEtQUGg1SDB8bnQtdC1Cd2gyUWJNLSpPLVY0b15ec3d2fGY8cFA7fkpqWlFT
U2lIMik2dyVkKTVvWGhRRQp6anhGWm0kNChkTWEmZEZCaXh3QTt4PyRARFheZGo+ZVl9UjFLdnNa
YFUlKFJMbGZrKXFCVjhCdWByPkB1dTdDSnkKell2Ym5mKV84cXNybCpsIW9MQD9CPW07JHBFLW1e
ITtqKTZXd0F8RDJZSWUoOSZzPSsoY0plMHc9O0Q5QlNtRW9eCm56dGN+UmVEPSYja0kwPWE+SG5U
Qz5MMkx4PVBPN0tyS0N3UHBfZjdiWVV9PFEmTDB+MgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFu
aXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0
TWFuaXB1bGF0aW9uLm1tCmluZGV4IGJjZGUwZjEyZjAwOWY2NjdkYWJkODRlNGM5MDkzODM0Mjhm
NjRmMzcuLjk3MTJmZDZlOTA4ODY2NzM1Yjc5YTQ5MDliZjM2N2RkYTYyMWMwMjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlv
bi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5p
cHVsYXRpb24ubW0KQEAgLTEwMDIsNiArMTAwMiw1MiBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24s
IFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4dHJhY3RzVmFsdWVzQnlOb2RlKQogICAgIEVYUEVDVF9T
VFJFUSgiZml2ZSIsIGl0ZW1zWzFdLnRva2Vuc1sxXS5jb250ZW50LlVURjhTdHJpbmcpOwogfQog
CitURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkV4Y2x1ZGVzVGV4
dFJlbmRlcmVkQXNJY29ucykKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRN
YW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgNDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcgX3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPCFET0NUWVBFIGh0bWw+IgorICAgICAgICAiPGhlYWQ+IgorICAgICAgICAiPHN0eWxl
PiIKKyAgICAgICAgIkBmb250LWZhY2UgeyIKKyAgICAgICAgIiAgICBmb250LWZhbWlseTogQWhl
bTsiCisgICAgICAgICIgICAgc3JjOiB1cmwoQWhlbS50dGYpOyIKKyAgICAgICAgIn0iCisgICAg
ICAgICJAZm9udC1mYWNlIHsiCisgICAgICAgICIgICAgZm9udC1mYW1pbHk6IFNwYWNlT25seTsi
CisgICAgICAgICIgICAgc3JjOiB1cmwoU3BhY2VPbmx5Lm90Zik7IgorICAgICAgICAifSIKKyAg
ICAgICAgIi5BaGVtIHsgZm9udC1mYW1pbHk6IEFoZW07IH0iCisgICAgICAgICIuU3BhY2VPbmx5
IHsgZm9udC1mYW1pbHk6IFNwYWNlT25seTsgfSIKKyAgICAgICAgIi5NaXNzaW5nIHsgZm9udC1m
YW1pbHk6IE1pc3Npbmc7IH0iCisgICAgICAgICIuU3lzdGVtVUkgeyBmb250LWZhbWlseTogc3lz
dGVtLXVpOyB9IgorICAgICAgICAiPC9zdHlsZT4iCisgICAgICAgICI8L2hlYWQ+IgorICAgICAg
ICAiPGJvZHk+IgorICAgICAgICAiPHNwYW4gY2xhc3M9J0FoZW0nPm9uZTwvc3Bhbj48c3BhbiBj
bGFzcz0nU3BhY2VPbmx5Jz50d288L3NwYW4+PHNwYW4gY2xhc3M9J01pc3NpbmcnPnRocmVlPC9z
cGFuPjxzcGFuIGNsYXNzPSdTeXN0ZW1VSSc+Zm91cjwvc3Bhbj4iCisgICAgICAgICI8L2JvZHk+
Il07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX3N0YXJ0VGV4dE1hbmlwdWxh
dGlvbnNXaXRoQ29uZmlndXJhdGlvbjpuaWwgY29tcGxldGlvbjpeeworICAgICAgICBkb25lID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisg
ICAgYXV0byBpdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107CisgICAgRVhQRUNUX0VRKGl0ZW1zLmNv
dW50LCAxVUwpOworICAgIGF1dG8gaXRlbSA9IGl0ZW1zLmZpcnN0T2JqZWN0OworICAgIEVYUEVD
VF9FUShpdGVtLnRva2Vucy5jb3VudCwgNFVMKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoaXRlbS50
b2tlbnNbMF0uY29udGVudCwgIm9uZSIpOworICAgIEVYUEVDVF9GQUxTRShpdGVtLnRva2Vuc1sw
XS5pc0V4Y2x1ZGVkKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoaXRlbS50b2tlbnNbMV0uY29udGVu
dCwgInR3byIpOworICAgIEVYUEVDVF9UUlVFKGl0ZW0udG9rZW5zWzFdLmlzRXhjbHVkZWQpOwor
ICAgIEVYUEVDVF9XS19TVFJFUShpdGVtLnRva2Vuc1syXS5jb250ZW50LCAidGhyZWUiKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoaXRlbS50b2tlbnNbMl0uaXNFeGNsdWRlZCk7CisgICAgRVhQRUNUX1dL
X1NUUkVRKGl0ZW0udG9rZW5zWzNdLmNvbnRlbnQsICJmb3VyIik7CisgICAgRVhQRUNUX0ZBTFNF
KGl0ZW0udG9rZW5zWzNdLmlzRXhjbHVkZWQpOworfQorCiBzdHJ1Y3QgVG9rZW4gewogICAgIE5T
U3RyaW5nICppZGVudGlmaWVyOwogICAgIE5TU3RyaW5nICpjb250ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402784</attachid>
            <date>2020-06-25 12:14:03 -0700</date>
            <delta_ts>2020-06-25 13:37:38 -0700</delta_ts>
            <desc>Augment ChangeLog</desc>
            <filename>bug-213446-20200625121402.patch</filename>
            <type>text/plain</type>
            <size>26125</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmOTllMmM3YTUyZjZk
NjNkM2YwMjE5ZTJjNmYxNWUzNWY5ZjgyZi4uN2Q5NzcxMjc3ZTE5ZDQxMGIyMmMyOGQ0Yjc5NjY2
MjQzM2FmMmU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTA2LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNpbmcgaWNvbi1vbmx5IGZvbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE15bGVzIE1heGZpZWxkLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVsYXRpb24uU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhj
bHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cGFyc2UpOgorCisgICAgICAgIEF1Z21l
bnQgdG9rZW4gZXhjbHVzaW9uIHJ1bGVzIHNvIHRoYXQgd2UncmUgYWJsZSB0byBleGNsdWRlIGNl
cnRhaW4gdGV4dCBub2RlcyBmcm9tIHRleHQgbWFuaXB1bGF0aW9uLCBiYXNlZCBvbgorICAgICAg
ICB0aGVpciBzdHlsZSAobW9yZSBzcGVjaWZpY2FsbHksIGJhc2VkIG9uIHRoZWlyIGZvbnQgZmFt
aWx5KS4gQXNrIHRoZSB0ZXh0IG5vZGUncyBwcmltYXJ5IGZvbnQgaWYgaXQgaXMgbGlrZWx5IHRv
CisgICAgICAgIGJlIHVzZWQgb25seSBmb3IgcmVuZGVyaW5nIGljb25zLCBhbmQgY2FjaGUgdGhl
IHJlc3VsdCBpbiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciB0byBhdm9pZCBydW5uaW5nIHRo
ZQorICAgICAgICBoZXVyaXN0aWMgYW4gZXhjZXNzaXZlIG51bWJlciBvZiB0aW1lcyBmb3IgZWFj
aCBmb250IHRoYXQgYXBwZWFycyBpbiB0aGUgZG9jdW1lbnQuIFdlIGN1cnJlbnRseSBvbmx5IHJ1
biB0aGlzCisgICAgICAgIGZvciB0aGUgbm9kZSdzIHByaW1hcnkgZm9udCB3aGVuIGluaXRpYXRp
bmcgdHJhbnNsYXRpb24sIHRob3VnaCB3ZSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyBpbiB0aGUg
ZnV0dXJlIHNvIHRoYXQKKyAgICAgICAgbm9kZSBleGNsdXNpb24gaXMgcmVjb21wdXRlZCB3aGVu
IHRoZSBwcmltYXJ5IGZvbnQgb2YgYSBub2RlIGNoYW5nZXMuCisKKyAgICAgICAgTm90ZSB0aGF0
IGluIHRoZSBjYXNlIHdoZXJlIGFuIGljb24gZm9udCBmYWlscyB0byBsb2FkLCB3ZSB3b24ndCBl
eGNsdWRlIHRoZSB0ZXh0IG5vZGUgZnJvbSB0cmFuc2xhdGlvbiwKKyAgICAgICAgc2luY2UgdGhl
IHByaW1hcnkgZm9udCB3aWxsIGJlIGEgZmFsbGJhY2suIFRoaXMgaXMgaW50ZW50aW9uYWwsIHNp
bmNlIHRoZSBub2RlIHdvdWxkIGFwcGVhciBpbiB0aGUgZG9jdW1lbnQgYXMKKyAgICAgICAgbm9y
bWFsbHkgcmVuZGVyZWQgdGV4dCAocmF0aGVyIHRoYW4gaWNvbnMpLCB3aGljaCBzaG91bGQgYmUg
dHJhbnNsYXRlZC4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6OmZhbWlseU5hbWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpGb250Ojppc1Byb2JhYmx5T25seVVzZWRUb1Jl
bmRlckljb25zIGNvbnN0KToKKworICAgICAgICBBZGQgYSBoZXVyaXN0aWMgdG8gZGV0ZWN0IHdo
ZXRoZXIgYSBwbGF0Zm9ybSBmb250IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIHRleHQgbWFuaXB1
bGF0aW9uLiBGb3Igbm93LCB3ZSBvbmx5CisgICAgICAgIHJldHVybiB0cnVlIGlmIHdlIHN1c3Bl
Y3QgdGhhdCB0aGlzIGZvbnQgaXMgYW4gImljb24tb25seSIgZm9udCAoZm9yIGluc3RhbmNlLCB0
aGUgIk1hdGVyaWFsIEljb25zIiBmb250KS4gV2UKKyAgICAgICAgZ3Vlc3MgdGhhdCBhIGZvbnQg
aXMgKnByb2JhYmx5KiBhbiBpY29uLW9ubHkgZm9udCBpZiB0aGUgZm9udCBzdXBwb3J0cyBvbmx5
IGNoYXJhY3RlcnMgZnJvbSB0aGUgYmFzaWMgb3IgUFVBCisgICAgICAgIHVuaWNvZGUgcGxhbmVz
LCBhbmQgdGhlIGdseXBoIGJvdW5kcyBmb3IgdGhlIHNldCBvZiBzdXBwb3J0ZWQgbm9uLWNvbnRy
b2wgYmFzaWMgbGF0aW4gY2hhcmFjdGVycyBhcmUgYWxsIGVtcHR5LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6ZmFtaWx5TmFtZSBjb25zdCk6CisKKyAgICAgICAg
QWRkIGEgcGxhdGZvcm0gYGZhbWlseU5hbWUoKWAgaGVscGVyIG1ldGhvZCBvbiBgRm9udFBsYXRm
b3JtRGF0YWAuIE9uIENvY29hIHBsYXRmb3JtcywgdGhpcyB3cmFwcyBhIGNhbGwgdG8KKyAgICAg
ICAgYENURm9udENvcHlGYW1pbHlOYW1lYC4KKwogMjAyMC0wNi0yNCAgSmFtZXMgU2F2YWdlICA8
amFtZXMuc2F2YWdlQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBpUGFkT1MgMTMuMCBt
dWx0aS13aW5kb3cgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0NvcmVUZXh0U1BJLmgKaW5kZXggYjkwZDE4NjM1ZGYzNTU2NjdmN2UwMzg5MzdkZTYxM2JmOThj
ZjllMy4uMjEzOTM4ZDQzZTljY2I3MmUxY2Q1NWVkNGUzZjUzN2U3ZGQwMTA4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBAIC0xMDEsNiAr
MTAxLDcgQEAgQ1RUeXBlc2V0dGVyUmVmIENUVHlwZXNldHRlckNyZWF0ZVdpdGhVbmlDaGFyUHJv
dmlkZXJBbmRPcHRpb25zKENUVW5pQ2hhclByb3ZpZGUKIGJvb2wgQ1RGb250R2V0VmVydGljYWxH
bHlwaHNGb3JDaGFyYWN0ZXJzKENURm9udFJlZiwgY29uc3QgVW5pQ2hhciBjaGFyYWN0ZXJzW10s
IENHR2x5cGggZ2x5cGhzW10sIENGSW5kZXggY291bnQpOwogdm9pZCBDVEZvbnRHZXRVbnN1bW1l
ZEFkdmFuY2VzRm9yR2x5cGhzQW5kU3R5bGUoQ1RGb250UmVmLCBDVEZvbnRPcmllbnRhdGlvbiwg
Q0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENHR2x5cGhbXSwgQ0dTaXplIGFkdmFuY2VzW10s
IENGSW5kZXggY291bnQpOwogQ1RGb250RGVzY3JpcHRvclJlZiBDVEZvbnREZXNjcmlwdG9yQ3Jl
YXRlRm9yQ1NTRmFtaWx5KENGU3RyaW5nUmVmIGNzc0ZhbWlseSwgQ0ZTdHJpbmdSZWYgbGFuZ3Vh
Z2UpOworYm9vbCBDVEZvbnRHZXRHbHlwaHNGb3JDaGFyYWN0ZXJSYW5nZShDVEZvbnRSZWYsIENH
R2x5cGggZ2x5cGhzW10sIENGUmFuZ2UpOwogCiBDVEZvbnREZXNjcmlwdG9yUmVmIENURm9udERl
c2NyaXB0b3JDcmVhdGVGb3JVSVR5cGUoQ1RGb250VUlGb250VHlwZSwgQ0dGbG9hdCBzaXplLCBD
RlN0cmluZ1JlZiBsYW5ndWFnZSk7CiBDVEZvbnREZXNjcmlwdG9yUmVmIENURm9udERlc2NyaXB0
b3JDcmVhdGVXaXRoVGV4dFN0eWxlKENGU3RyaW5nUmVmIHN0eWxlLCBDRlN0cmluZ1JlZiBzaXpl
LCBDRlN0cmluZ1JlZiBsYW5ndWFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU1OTA4NTA5ODA3MmZjMjU5
ZWI3NzU3MTc4NGZkNGM1ZjQ1ZDliYTcuLmI1ZmZiOWQ1Y2Q5N2VmYmEyMzE1ZjZlOGI4OGY4ZmFh
NDExYjk2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZU5hbWVzLmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiTm9kZVRy
YXZlcnNhbC5oIgogI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSYW5nZS5o
IgpAQCAtMzMwLDEwICszMzEsMzMgQEAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlw
dWxhdGlvblVuaXQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZVUKICAgICByZXR1
cm4gdW5pdDsKIH0KIAorYm9vbCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6c2hvdWxkRXhj
bHVkZU5vZGVCYXNlZE9uU3R5bGUoY29uc3QgTm9kZSYgbm9kZSkKK3sKKyAgICBhdXRvKiBzdHls
ZSA9IG5vZGUucmVuZGVyU3R5bGUoKTsKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBhdXRvJiBmb250ID0gc3R5bGUtPmZvbnRDYXNjYWRlKCkucHJpbWFyeUZv
bnQoKTsKKyAgICBhdXRvIGZhbWlseU5hbWUgPSBmb250LnBsYXRmb3JtRGF0YSgpLmZhbWlseU5h
bWUoKTsKKyAgICBpZiAoZmFtaWx5TmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8gaXRlciA9IG1fY2FjaGVkRm9udEZhbWlseUV4Y2x1c2lvblJlc3VsdHMu
ZmluZChmYW1pbHlOYW1lKTsKKyAgICBpZiAoaXRlciAhPSBtX2NhY2hlZEZvbnRGYW1pbHlFeGNs
dXNpb25SZXN1bHRzLmVuZCgpKQorICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CisKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHJlY29uc2lkZXIgd2hldGhlciBhIG5vZGUgc2hvdWxkIGJlIGV4
Y2x1ZGVkIGlmIHRoZSBwcmltYXJ5IGZvbnQKKyAgICAvLyB1c2VkIHRvIHJlbmRlciB0aGUgbm9k
ZSBjaGFuZ2VzLCBzaW5jZSB0aGlzICJpY29uIGZvbnQiIGhldXJpc3RpYyBtYXkgcmV0dXJuIGEK
KyAgICAvLyBkaWZmZXJlbnQgcmVzdWx0LgorICAgIGJvb2wgcmVzdWx0ID0gZm9udC5pc1Byb2Jh
Ymx5T25seVVzZWRUb1JlbmRlckljb25zKCk7CisgICAgbV9jYWNoZWRGb250RmFtaWx5RXhjbHVz
aW9uUmVzdWx0cy5zZXQoZmFtaWx5TmFtZSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpwYXJzZShNYW5pcHVsYXRpb25V
bml0JiB1bml0LCBjb25zdCBTdHJpbmcmIHRleHQsIE5vZGUmIHRleHROb2RlKQogewogICAgIEV4
Y2x1c2lvblJ1bGVNYXRjaGVyIGV4Y2x1c2lvblJ1bGVNYXRjaGVyKG1fZXhjbHVzaW9uUnVsZXMp
OwotICAgIGJvb2wgaXNOb2RlRXhjbHVkZWQgPSBleGNsdXNpb25SdWxlTWF0Y2hlci5pc0V4Y2x1
ZGVkKCZ0ZXh0Tm9kZSk7CisgICAgYm9vbCBpc05vZGVFeGNsdWRlZCA9IGV4Y2x1c2lvblJ1bGVN
YXRjaGVyLmlzRXhjbHVkZWQoJnRleHROb2RlKSB8fCBzaG91bGRFeGNsdWRlTm9kZUJhc2VkT25T
dHlsZSh0ZXh0Tm9kZSk7CiAgICAgc2l6ZV90IHBvc2l0aW9uT2ZMYXN0Tm9uSFRNTFNwYWNlID0g
V1RGOjpub3RGb3VuZDsKICAgICBzaXplX3Qgc3RhcnRQb3NpdGlvbk9mQ3VycmVudFRva2VuID0g
MDsKICAgICBzaXplX3QgaW5kZXggPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oCmluZGV4IGQ2YWNkM2MxZTQ3NDY5ZDg3NzU2
ZWFmODAxOGI3M2E2NjRiOTllOTkuLjk0OThmNjI5NTQ3ZGNiM2QwMTM4ZGYwYTViZDI5MDI4MTJi
YjY3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmgKQEAgLTE1OSw2ICsxNTksOCBAQCBwcml2YXRlOgogICAgIE1hbmlwdWxh
dGlvblVuaXQgY3JlYXRlVW5pdChjb25zdCBWZWN0b3I8U3RyaW5nPiYsIE5vZGUmKTsKICAgICB2
b2lkIHBhcnNlKE1hbmlwdWxhdGlvblVuaXQmLCBjb25zdCBTdHJpbmcmLCBOb2RlJik7CiAKKyAg
ICBib29sIHNob3VsZEV4Y2x1ZGVOb2RlQmFzZWRPblN0eWxlKGNvbnN0IE5vZGUmKTsKKwogICAg
IHZvaWQgYWRkSXRlbShNYW5pcHVsYXRpb25JdGVtRGF0YSYmKTsKICAgICB2b2lkIGFkZEl0ZW1J
ZlBvc3NpYmxlKFZlY3RvcjxNYW5pcHVsYXRpb25Vbml0PiYmKTsKICAgICB2b2lkIGZsdXNoUGVu
ZGluZ0l0ZW1zRm9yQ2FsbGJhY2soKTsKQEAgLTE3OCw2ICsxODAsOCBAQCBwcml2YXRlOgogICAg
IFdlYWtIYXNoU2V0PEVsZW1lbnQ+IG1fZWxlbWVudHNXaXRoTmV3UmVuZGVyZXI7CiAgICAgV2Vh
a0hhc2hTZXQ8RWxlbWVudD4gbV9tYW5pcHVsYXRlZEVsZW1lbnRzOwogCisgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+IG1fY2FjaGVkRm9udEZhbWlseUV4Y2x1c2lvblJlc3VsdHM7CisKICAgICBN
YW5pcHVsYXRpb25JdGVtQ2FsbGJhY2sgbV9jYWxsYmFjazsKICAgICBWZWN0b3I8TWFuaXB1bGF0
aW9uSXRlbT4gbV9wZW5kaW5nSXRlbXNGb3JDYWxsYmFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA4YjYxZmQwNGYyZmFhYWY3YWFjYWMwZGY0MjM5
ZjhjNzAyYzVkMzk1Li43Nzg5MzA2ZjZjZDdlZTEzMDhmNDNmYTgxYjEyMDAzNjM4YTljOTUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtNDc1LDYgKzQ3
NSwxNiBAQCBjb25zdCBGb250JiBGb250Ojpicm9rZW5JZGVvZ3JhcGhGb250KCkgY29uc3QKICAg
ICByZXR1cm4gKmRlcml2ZWRGb250RGF0YS5icm9rZW5JZGVvZ3JhcGhGb250OwogfQogCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorCitib29sIEZvbnQ6OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVy
SWNvbnMoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorICAg
IHJldHVybiBmYWxzZTsKK30KKworI2VuZGlmCisKICNpZiAhTE9HX0RJU0FCTEVECiBTdHJpbmcg
Rm9udDo6ZGVzY3JpcHRpb24oKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCmluZGV4IDEyODNmODJhN2VjMTA5MzczYTJkNDEzMjdlYmEwNDZiYzdhYWQ0NTAu
LmQ0MGZkM2FmOTA2M2RmNGZhYTZkZmNjZjliNTBlOGFhYTA5MDU4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTEwNiw2ICsxMDYsOCBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgRm9udCogZW1waGFzaXNNYXJrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mKSBj
b25zdDsKICAgICBjb25zdCBGb250JiBicm9rZW5JZGVvZ3JhcGhGb250KCkgY29uc3Q7CiAKKyAg
ICBib29sIGlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMoKSBjb25zdDsKKwogICAgIGNv
bnN0IEZvbnQqIHZhcmlhbnRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IEZvbnRWYXJpYW50IHZhcmlhbnQpIGNvbnN0CiAgICAgewogI2lmIFBMQVRGT1JNKENPQ09BKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1E
YXRhLmNwcAppbmRleCA5ZDI4N2FmNjY4MGY0MzQyNmUwMjgxZmI1ZGMzMGI0ZWI5MTJiM2ZhLi5k
NGJjMmE0ZjExMWQzODIwZjgwOWQxODBmZTY3MzI0OTA5Y2JlN2Q2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAt
ODQsNCArODQsMTQgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250UGxhdGZvcm1EYXRhOjpjbG9uZVdp
dGhTaXplKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHNvdXJjZSwKIH0KICNlbmRpZgogCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorCitTdHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZmFtaWx5TmFtZSgp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQuCisgICAgcmV0dXJu
IHsgfTsKK30KKworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCBkMzhkNGRkOTEyMGEwOWVhZTIzZWNl
YjU2OTM4MTE1ZmQ2NzAwNzg3Li4wMGM0YTg4NTUzNDYzN2M0MmM2NzA3YjhiZmM4Zjk5YjYwZTRm
ZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxh
dGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oCkBAIC0xNTUsNiArMTU1LDggQEAgcHVibGljOgogICAgIFRleHRSZW5kZXJp
bmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UmVuZGVyaW5n
TW9kZTsgfQogICAgIGJvb2wgaXNGb3JUZXh0Q29tYmluZSgpIGNvbnN0IHsgcmV0dXJuIHdpZHRo
VmFyaWFudCgpICE9IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aDsgfSAvLyBLZWVwIGlu
IHN5bmMgd2l0aCBjYWxsZXJzIG9mIEZvbnREZXNjcmlwdGlvbjo6c2V0V2lkdGhWYXJpYW50KCku
CiAKKyAgICBTdHJpbmcgZmFtaWx5TmFtZSgpIGNvbnN0OworCiAjaWYgVVNFKENBSVJPKQogICAg
IGNhaXJvX3NjYWxlZF9mb250X3QqIHNjYWxlZEZvbnQoKSBjb25zdCB7IHJldHVybiBtX3NjYWxl
ZEZvbnQuZ2V0KCk7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCmluZGV4IDE0YTVhMzYyYjhiMTRkZWZhMzM0OTFi
ZDFjMzQwNDk0ZGY2MjIwMWQuLjhiOGM5ZDY3ZDdkZjUyNzc5NTRjM2QzN2YxNTUxNGExZTg4ZTdi
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q29jb2EubW0KQEAgLTY1OSw0ICs2NTksNDMgQEAgYm9vbCBGb250OjpwbGF0Zm9ybVN1cHBv
cnRzQ29kZVBvaW50KFVDaGFyMzIgY2hhcmFjdGVyLCBPcHRpb25hbDxVQ2hhcjMyPiB2YXJpYXQK
ICAgICByZXR1cm4gQ1RGb250R2V0R2x5cGhzRm9yQ2hhcmFjdGVycyhwbGF0Zm9ybURhdGEoKS5j
dEZvbnQoKSwgY29kZVVuaXRzLCBnbHlwaHMsIGNvdW50KTsKIH0KIAorYm9vbCBGb250Ojppc1By
b2JhYmx5T25seVVzZWRUb1JlbmRlckljb25zKCkgY29uc3QKK3sKKyAgICBhdXRvIHBsYXRmb3Jt
Rm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtRm9udCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWxsb3cgbW9zdCBub24taWNvbiBmb250cyB0
byBiYWlsIGVhcmx5IGhlcmUgYnkgdGVzdGluZyBhIHNpbmdsZSBjaGFyYWN0ZXIgJ2EnLCB3aXRo
b3V0IGl0ZXJhdGluZyBvdmVyIGFsbCBiYXNpYyBsYXRpbiBjaGFyYWN0ZXJzLgorICAgIFVuaUNo
YXIgbG93ZXJjYXNlQUNoYXJhY3RlciA9ICdhJzsKKyAgICBDR0dseXBoIGxvd2VyY2FzZUFHbHlw
aDsKKyAgICBpZiAoQ1RGb250R2V0R2x5cGhzRm9yQ2hhcmFjdGVycyhwbGF0Zm9ybUZvbnQsICZs
b3dlcmNhc2VBQ2hhcmFjdGVyLCAmbG93ZXJjYXNlQUdseXBoLCAxKSkgeworICAgICAgICBpZiAo
IUNHUmVjdElzRW1wdHkoQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9ybUZv
bnQsIGtDVEZvbnRPcmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsIG51bGxwdHIs
IDEpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIHN1cHBv
cnRlZENoYXJhY3RlcnMgPSBhZG9wdENGKENURm9udENvcHlDaGFyYWN0ZXJTZXQocGxhdGZvcm1G
b250KSk7CisgICAgaWYgKENGQ2hhcmFjdGVyU2V0SGFzTWVtYmVySW5QbGFuZShzdXBwb3J0ZWRD
aGFyYWN0ZXJzLmdldCgpLCAxKSB8fCBDRkNoYXJhY3RlclNldEhhc01lbWJlckluUGxhbmUoc3Vw
cG9ydGVkQ2hhcmFjdGVycy5nZXQoKSwgMikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vIFRoaXMgZW5jb21wYXNzZXMgYWxsIGJhc2ljIExhdGluIG5vbi1jb250cm9sIGNoYXJhY3Rl
cnMuCisgICAgY29uc3RleHByIFVuaUNoYXIgZmlyc3RDaGFyYWN0ZXJUb1Rlc3QgPSAnICc7Cisg
ICAgY29uc3RleHByIFVuaUNoYXIgbGFzdENoYXJhY3RlclRvVGVzdCA9ICd+JzsKKyAgICBjb25z
dGV4cHIgYXV0byBudW1iZXJPZkNoYXJhY3RlcnNUb1Rlc3QgPSBsYXN0Q2hhcmFjdGVyVG9UZXN0
IC0gZmlyc3RDaGFyYWN0ZXJUb1Rlc3QgKyAxOworCisgICAgVmVjdG9yPENHR2x5cGg+IGdseXBo
czsKKyAgICBnbHlwaHMuZmlsbCgwLCBudW1iZXJPZkNoYXJhY3RlcnNUb1Rlc3QpOworICAgIENU
Rm9udEdldEdseXBoc0ZvckNoYXJhY3RlclJhbmdlKHBsYXRmb3JtRm9udCwgZ2x5cGhzLmJlZ2lu
KCksIENGUmFuZ2VNYWtlKGZpcnN0Q2hhcmFjdGVyVG9UZXN0LCBudW1iZXJPZkNoYXJhY3RlcnNU
b1Rlc3QpKTsKKyAgICBnbHlwaHMucmVtb3ZlQWxsKDApOworCisgICAgaWYgKGdseXBocy5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFZlY3RvcjxDR1JlY3Q+IGJvdW5k
aW5nUmVjdHM7CisgICAgYm91bmRpbmdSZWN0cy5maWxsKENHUmVjdFplcm8sIGdseXBocy5zaXpl
KCkpOworICAgIENURm9udEdldEJvdW5kaW5nUmVjdHNGb3JHbHlwaHMocGxhdGZvcm1Gb250LCBr
Q1RGb250T3JpZW50YXRpb25EZWZhdWx0LCBnbHlwaHMuYmVnaW4oKSwgYm91bmRpbmdSZWN0cy5i
ZWdpbigpLCBnbHlwaHMuc2l6ZSgpKTsKKyAgICByZXR1cm4gbm90Rm91bmQgPT0gYm91bmRpbmdS
ZWN0cy5maW5kTWF0Y2hpbmcoW10oYXV0byYgcmVjdCkgeworICAgICAgICByZXR1cm4gIUNHUmVj
dElzRW1wdHkocmVjdCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQppbmRleCA4YTYzOWRiMWY0YzFiMzZmODc3MzRjZjA0
NjA1ZmEzOTEzODNhYTg5Li43MmU4MjUxYzNkMzc0ZTEwMjQ5Y2UzNDA5MzI3MTNiMDhlY2FjOGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250
UGxhdGZvcm1EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCkBAIC0xODEsNCArMTgxLDExIEBAIFN0
cmluZyBGb250UGxhdGZvcm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAKICNlbmRpZgogCitT
dHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZmFtaWx5TmFtZSgpIGNvbnN0Cit7CisgICAgaWYgKGF1
dG8gcGxhdGZvcm1Gb250ID0gZm9udCgpKQorICAgICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRD
b3B5RmFtaWx5TmFtZShwbGF0Zm9ybUZvbnQpKS5nZXQoKTsKKyAgICByZXR1cm4geyB9OworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMTU2MzJhZTkyYTg2NDQ3ZWNjMjk0NTM3NjU5NmYzNzEzMjE3
MGNkMS4uY2FhMzg4Nzg4MjE4ZWEyNjU1ODdiZjMxYjJmM2YwOTAwMDNjMGQyYSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIwLTA2LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisg
ICAgICAgIFRleHQgbWFuaXB1bGF0aW9uIHNob3VsZCBleGNsdWRlIHRleHQgcmVuZGVyZWQgdXNp
bmcgaWNvbi1vbmx5IGZvbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTM0NDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzM0Mjk4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE15bGVzIE1heGZpZWxkLgorCisgICAgICAgIEFkZCBhIG5ldyBB
UEkgdGVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQWhlbS50dGY6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU3BhY2VPbmx5Lm90ZjogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMjAtMDYtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CiAKICAgICAgICAgbWFjT1MgQmlnIFN1ciBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGYxYTk5NDlmNzAzNDBiZTc0MzYyOTQ1NzVmOGQxNGNmMDljODlhNTcuLjVl
MGNhMGFhNTRhMmU1ODAwOTA3MjM1ZTU1Y2MzYzdkOWQ1YjE0ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMTMwLDYgKzExMzAsOCBAQAogCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQg
LyogdGV4dC13aXRoLWFzeW5jLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0Q3NEM1MjBGREFDRjUwMERFMzc5NCAvKiB0
ZXh0LXdpdGgtYXN5bmMtc2NyaXB0Lmh0bWwgKi87IH07CiAJCUY0Q0Q3NEM5MjBGREI0OTYwMERF
Mzc5NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0Q3NEM4MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJM
U2NoZW1lSGFuZGxlci5tbSAqLzsgfTsKIAkJRjRDRjMyODAyMzY2NTUyMjAwRDNBRDA3IC8qIEVu
dGVyS2V5SGludFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRDRjMyN0YyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1t
ICovOyB9OworCQlGNENGQ0REQTI0OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENGQ0RE
ODI0OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiAqLzsgfTsKKwkJRjRDRkNEREIyNDlG
QzlFOTAwNTI3NDgyIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0ZDREQ5MjQ5RkM5RDkwMDUyNzQ4MiAvKiBBaGVtLnR0
ZiAqLzsgfTsKIAkJRjREMjk4NkUyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9j
dW1lbnRMb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1lbnRMb2Fk
Lm1tICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0FuZERyb3BTaW11
bGF0b3JJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0g
Ki87IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYz
QjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJT1MubW0gKi87IH07CkBAIC0x
MjM0LDYgKzEyMzYsNyBAQAogCQkJCTU1QTgxODAwMjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAw
LWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3
RTZCNDMgLyogYWNjZXB0c0ZpcnN0TW91c2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNENGQ0REQjI0OUZDOUU5MDA1Mjc0
ODIgLyogQWhlbS50dGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODcxQzg5MjVB
MDAwQTU1MjlGIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBNjM0NzlG
MTgzRDcyQTQwMDVCMTcwNyAvKiBhbGwtY29udGVudC1pbi1vbmUtaWZyYW1lLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJQzI1Q0NBMEQxRTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFoZW0u
c3ZnIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTU0Nyw2ICsxNTUwLDcgQEAKIAkJCQk0NkFF
NUEzNzIwRjkwNjZEMDBFMDg3M0UgLyogU2ltcGxlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMt
NC5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0RjQwNUJEMUQ0QzBEMUMwMDdB
OTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUMwMUEyM0YyMTI2NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1z
Y3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNENGQ0REQTI0OUZDOUU0
MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlFMTk0
RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE1QkUxNkYxRDQyOEJCMTAwREQ3QzY4
IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
OUJENkQzQTIxRjdCMjE4MzAwQkQ0OTYyIC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlm
ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI4MTUsNiArMjgxOSw4IEBACiAJCUY0Q0Q3NEM4
MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFRlc3RVUkxTY2hlbWVIYW5kbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNENEQUIzMzIyNDg5RkUxMDA1N0EyRDkgLyogVXNlckludGVyZmFjZVN3aXp6bGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnRlcmZhY2VTd2l6emxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNENGMzI3RjIzNjY1NTIyMDBEM0FEMDcgLyogRW50ZXJLZXlIaW50
VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbnRlcktleUhpbnRUZXN0cy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgyIC8qIFNw
YWNlT25seS5vdGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBwYXRoID0gU3BhY2VPbmx5Lm90Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjRDRkNERDkyNDlGQzlEOTAwNTI3NDgyIC8qIEFoZW0udHRmICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFoZW0udHRm
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQyOTg2RDIwRkVFNzM3MDA5MkQ2MzYg
LyogUnVuU2NyaXB0QWZ0ZXJEb2N1bWVudExvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBS
dW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BTaW11
bGF0b3JJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I3MUU0RTM2
RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BUZXN0c0lPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTM1MzMsNiArMzUzOSw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk1NUE4MTdGRTIxODEwMURGMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhICovLAogCQkJCTU1
QTgxN0ZEMjE4MTAxREYwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyAqLywKKwkJCQlGNENG
Q0REOTI0OUZDOUQ5MDA1Mjc0ODIgLyogQWhlbS50dGYgKi8sCiAJCQkJQzI1Q0NBMEMxRTUxNDBF
NTAwMjZDQjhBIC8qIEFsbEFoZW0uc3ZnICovLAogCQkJCUY0QTkyMDJFMUZFRTM0QzgwMEY1OTU5
MCAvKiBhcHBsZS1kYXRhLXVybC5odG1sICovLAogCQkJCUExNzk4QjhBMjI0MzYxMUEwMDA3NjRC
RCAvKiBhcHBsZS1wYXktYWN0aXZlLXNlc3Npb24uaHRtbCAqLywKQEAgLTM3MjMsNiArMzczMCw3
IEBACiAJCQkJQzlCNEFEMjkxRUNBNkVBNTAwRjVGRUEwIC8qIHNpbGVuY2UtbG9uZy5tNGEgKi8s
CiAJCQkJNDY1NkE3NTcyMEY5MDU0RjAwMDJFMjFGIC8qIFNpbXBsZVNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25zLTQuc3FsaXRlMyAqLywKIAkJCQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyog
c2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLywKKwkJCQlGNENGQ0RE
ODI0OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiAqLywKIAkJCQk1MTVCRTE2RTFENDI4
OEZGMDBERDdDNjggLyogU3RvcmVCbG9iVG9CZURlbGV0ZWQuaHRtbCAqLywKIAkJCQk5QkQ2RDNB
MTFGN0IyMDIxMDBCRDQ5NjIgLyogc3Vuc2V0LWluLWN1cGVydGluby0xMDBweC50aWZmICovLAog
CQkJCTlCRDZEM0EwMUY3QjIwMjAwMEJENDk2MiAvKiBzdW5zZXQtaW4tY3VwZXJ0aW5vLTIwMHB4
LnBuZyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQWhlbS50dGYgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FoZW0u
dHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFjODFjYjAzMTY1YWI4MzFhMzZhYmI1OTE0NWZmN2EyZjU2NzVmYjkK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyNDgwCnpjbWVITlpGbSZiNkBLU3FYRnFgP1YjSjhf
V3taKDMyNztDJXJOfkY1TkQrfUJxTlUwdkpJTXlLeUsjNDhmJnhXcgp6KWtnVSFUOCZDNkI3JVk8
M1Iobjg1Zks0VnNpdFRWbW8hPlVaQiZZMmVHcGpSSjNBMisrZHFCJFZMUCtXPzN7YjwKenk9VHQ3
PWJkfWM/en5Ve18lUmIyYGQoN2pyKGVVXlFMX01MMEpXMVZxTV9PQHlZZmM+dHtUOGRSRTNoWUkw
YXN5Cno/QEhGXlJNa3dheWw3UXdIeDBBXjE+dU1wM2ghRHByYVNBX15Yd20/IXRLLVpESWVoM0da
SVpUSlI+bGpfTH41JAp6eGg3cl81X00rPWZ1ZDZDK019VXtUNmArKUU4VzskIzZuU1hNJU8jbTBL
Tk0xeypsXnZHQnM9Rz41VmAhYD5XamAKemVPRTluQDAzZmN1SUA3RUFpUD18SENQcURgVS1qN2Mr
VD5SZlhvMWBPJXA2P1BeRmQhYClNTEdmWnRZb2VvSVRvCno5fHRZWEwzciN3VSM7aXV3S2lvZ1Rv
bCU7XmF5alpTTEojMVEjNUwhYX4kJVIyfFMoeUcxNG1WPisqQWwxNEFKOAp6c2tSUlNUTHFOZEEq
fERjPCpCZWQ8Mis/T2x3TFpnR1kxWF56VEZzKms4fTNhTjgyay1jV1N0e3M2e1lUcE0yZ34KemAw
ODR0YTUyZHE5YXA8fSFYP3tOZ1UpcnlmU2FxQVQhVmFFLXZqN2AmZ2c8MTxSVDl6cCh7PkNLRypW
WUkyOHByCno0YyYxJWRmKzx7Q2AxdDdNTmdjOEJBa2d7XyNWIX0rMzFhUFA+ZXE0aXhUdzF4aX1C
c019UGJQMThfYkQ7KWZXNwp6QTdMO3E7SlAqeCEhUjdCeERYQG9Wfm9UXzc9QG87RyVtJiVUIU9L
PDZ5czJhQHdmflZhNSpPODNTNWJ3VmlKQ2EKenQ4Z19ZKTg3IXZRR3FaX1JINnpJUkFVT1JLQEZt
YUEmeSNIaXYqSExwJF54Zjl1MWdePnYwMzdhYktCJXBMNGw9Cno2RjFAfWB+by1RRSZMTDw7OHhz
KnhBN305OyhncVhKSjV6JV95XmlDOCp9Z3Utb0BZMGpLNTxwZXZRe0s0fG4xJgp6ezA0WDlKXlRx
RDs4b20lQ1pyanFgKjEoejw3Sz5wS1Z1aSh6K2RvTkVXcSNaQXJAak1USlpve0BLLUEkZCQwKHYK
elY+a0JWS2BoMllTYzBXXjc+ezVYbWc3LTgjeF5WUEk5QjJiSmMoNlVqaT5ONWV2ZFZIMjVZZzdK
RXUtR2ZVYEEoCnpRUzhocCVzQHNkUU9jQUNXdUUkaXg9bnBjeUd3Z1NUZCE+dElpam01NUlzYXQ2
cDZsS3BlUVgyNzhWODdwYl9qNgp6JW5LRi1kaiF1OGp0b3U/biEpe05ZflFENUdQRWxnKH1sRCom
YSRfS19URChvLWJ0ZEg9cWBrMUBCQTs+JU1HNlQKemd9dHo0NTFDQm4/TXkzbypjJnNgRzd+Y3cw
N3UkKzRuQV8kO24kOUktSjVDSTFobE1nUz1YfHI8Pyl1S0Vlck5PCnp5WjVubFlrRWd8bXo8fmNf
VmtBSUwrUXIhdCM1dHlYM3cwRFl9fThNYkBHczRtZ2pORChjfFJmI2RiI0YjTiVHWgp6UVIzaE1N
KjBzI0xuQ284bStgekNufjkwMWg+fUAmMGI3WlRJbUYyIyZpQHUtcGI2V3Q0S0VTfV9jMy00R1Ve
aEsKenctYj58aU9JIWA9NWpsbDg7SDtxUnomOSRzbX5LeFBncnJTIWJXVCY/eThDMURhN3FITUQ5
RmR4MGRMWSppOHw9Cno2MSNzU2RaIVk8KkF1JXA1SmA3MygkZyZqS2ExeXhzI1V+Nzc4JmJebEM+
N3pVTUY1Uik3U1NMbHc8PyRweVdUSQp6TD8pdWxCZWlRWiE4T2Jjb1NSI2lkcSFieTtkSiVHQlhn
N2tNKzJIVCslbGFqNGt5eWlsKHxRLVFLOG0keEVte0YKekNocFk5VWw3aWBJR0F2cjJXS3NDKSZn
Z0xhUTRQO0k0QHc8IVRxK1JATUxTeCszTXNWKj8lJHJYTEFzU2BeMHMlCnojbVBPTG9aUUt+byE/
XjQ/QDtHQV99QTxZLSo2NyV7TntLNTJYZyljYjg7e3oyWGteVENrSnpLRmVlQjVII3Ihewp6QyYr
JCtXQyNyQSt4eyMwPyg7Z25iRGhXY21ARHsoWUNHU1V6bCNIa3NebG09bC18bGZXdSE3ZTJgZFJA
clpRV1oKenVQanM2Q3xpX2ZyQiZJZDk5MDhxZiFhJiR1YT5JZylYOGQwb3UpUmJQM2pWTHdZb3sm
c2l4SS1eXm9TI14wbDU/CnpLVyZJTU13X0hmKEhnV3tfI1MoYXdvPT1tP2ErNDkoQCU2PSYobm9v
dFBqI2g9QGEjXnAzckNOdi1TRDxHSlREewp6TVFfJHleP213TFNITS1ePmdEUzFEc18hPk8/Smd4
KF9EP05DZjU/ellTJCokUEZMRjE/bUE/NmpDYFl+KGEjdVMKemo0PnR8UTtZYFY3VU0yc2srSVUp
VkMqbjw4KlJvWFpyej5kN1ZjdkFBb25RdU0wY2UtPC1XOzEqUyl+fnNDJXRACnp0OXpJRzlydTBA
SmVAdD1KIWczYUBINF9RLWMjPFdefn5feDtrblFBdTsqI2RYM3dqaDdTRCZDIShOfWFvNDNlJgp6
b19DbWN0b0pIIWpyViUqWlFpQFJpQGleSkgrbzw4Pyh4M3d7blRncHk4NDI/elBgYn0oWWBCdjUj
TSNibnw8P3EKejN3PGttPndWak9afXtIejlxX0NFOURmZ2dafnM5NU5kRStYKnFgdnZedzBMc19i
PkNXQG8oYHJgJjwze3s2XzxVCnpLdFo1YXBuc3E9RmZLNFQ1RFFFVEd6T1hpTzlIQ3tuKnV1bj18
RnFuUCR5NVB7N3lZUF48eUAwbnNWJE57UXtQPQp6aFhSayVRQnUpYVN6X3hvMnhZWWA+dWwzKCVQ
ITxBZHUtWERlIXFPV3RtNzVza1MhfkclZX5FKFJrK29jWSp8QiYKeitIQWBAK3FgNFRGOEl8QkV9
dWREJEZARileMXAwM212JW4wPHZpJGAlRHFqSVRzPnVoWDRvPnZxQSN7KGp6eGRlCnptTl4hRXR1
MXBiYGZnazFTb0Jzfj0yLU1rWjgtLVhtOzRgNytSc0kybSZjYSNzTHYtT0NUe1VxMWkxd2Z2SjRW
RAp6RTY1SG9FcTtyekckc1QhNSRYaWJEOEd+QjVZKlhxeSlBNzZkem9ZeHEqeTg8P2A5fj1iKFM0
ekJTek1PQWc4QzYKenIpKnpPWXRffnJyTDcya3NIWmtXU3ozdilVbXVIbWJGM2BMWmItMTV5bkJa
KTx5SEBxPzFwT2dHMDY9UVdiYEJ7CnpScjIwN0VMRX5jIXM9bUNwUihGanYwUHpVbDNhKStieTZS
djE/a0lGdERQS1coeX0rIXhAKHlCcS1TeXo8IW1GIQp6OWc0RmclT21KVGdzcjNwQD9PWDhuVnFy
V1dFeiFHVSZlTSgrTDFGe087JUhxeF5sflVKPl9nKUlxJTIoRWFvZ3EKejgmUl5BT3RPJlZtfUc8
fFNnb2IhUys3Z3pYJGhAJHdDPWNtZUxLN01WKTlyO01JQDk2Uml3O0JRaUt3d05KVUl4CnpNbiZA
NEkrbDcxdiFUTVFPXktvbGhnUV8zT2M5RU9NWCl5NVRodkZZRDxVRXBpUHd1enZjaW18YGgtcEVE
az5CNAp6c0FaKSpscihGcVZgajBxRU5ORU8pcmlWP0xaci1Pc3liRkJEJmtTSFhzYzd6QHQ4PFhP
e1VDZnZSSTV3I0tVekoKelc+fU9ANzMxVUt1b3d9RkJ3fVZGK21udEJGRG55ZXA9ZXpxUkRFVnJs
cWNmI04hSHBuaS0kKGM9czJeZ3R8cFkyCnp6fk07S0NCLUV8c154aXt1MHYoRm1QT3wmXzx3eTB6
SWJON3tEZ0hwTDI3bjAkbFNvcDtzaGNYSDN6OXckIV9eRgp6K3d0NFBib182NWp5R0J5TjZCISFq
VTJXe2FAMXkjPV9ZeE1jYXIwRmtIcl5UTmNQKHppLSMhcmhtdzZMeHJiUisKeio7PXlWcDBnTm0r
bkFyZGgjaCN6O3kzT2peWUp4dUF8PW85YiZLaF5vMURyJFdLKldlWF9QRi1IdTVGa3c+WHBeCnpr
YV9uSl9UaXR7a0JgYW5LWnNBUHhKaD43SSYkUzZDYT4qJml8NHI2Vm1keGdNJjJmfUAwT0Vtd31B
fH1ePD5SOAp6ayFnMT94cHdvJnViZ0FDRlBEO3dfYk9SKiZ5cT42RCFNLUF2ZUJjfWs+ajx9M3JF
d3NYMGheZnBwZWd+ZUdVIUgKQmNAaDhzCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwYWNlT25seS5vdGYg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwYWNlT25seS5vdGYKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWIxMzQzYzljMWMzNGM2Yjk3ZmMwNmNkODZiYWQ1NjdhOGZkM2NhMwpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMTc0MAp6Y21kczJQaVJ5fTgyYDxDWmBVTm9CJk1kZF89S1RhaH0z
TX1DUEIqTEt9PmR3TVUjTmhYZk9KNy1+SXZqNTFSPjUKem4/aipiKUwya1lVYzQ1KGx0T2I2VDx+
QkUjZmFeKEp0PHhrdDB4Tl44fWpfaythVkBJSmJDSW9YMT9GfCYyUFQ+Cnp6THtAISQwakRtKDJq
M21XOFpLbEJYNXNlS0xEYHswR15IPEtKVyNsME9FP1dDNmsjcmxzIUgmTmAwMlBKOWZCIwp6OzdF
QWxaJkV6IUMmelE/PzRKdT98SEFwfSlPVmpRYEJpTVBlKj5KSTxtQGo1ZXM9TjIkS1A7bmZxaFNi
MjdBYHQKeiE4d1FlJk8lOUAtUzd0eTsmKFo7bD5EPCpTbVQ3RVJ+eVRJRGZzemJUUHlWfGZPV042
bk5zMlI3LVlOISZQeUdzCno/d3otODk1flVyX2dgJFpwVXtIKWBGez9zbUt3OVF6LWpgJCMrS3Bk
X15RZExSZU1fOSRZZE92QDdQYm9PVD8mTAp6dlRqcXErPzMpV2w3ak9WOyo4STxIRDJgVDswYDJZ
YkZYekEmUDRsbTtIT0F4IVUhJUlFWU9PXzI2R2VxWFJ3Vj0KeiNpK3AhVEV6dX1XOVNtfDJGR2R0
aSNJR0I5aDwofUNLbCslMUF7R0EhRT1MY2U5MnN6OTAlUCg4NjFOWSo5P3grCnp7d3MhMkxqV0km
VzB2dXMhYTB0fFBeN0psXkMpMU5gZWRaI2lEbyNYWHFDdklMV1lXRDRTQkFZNyhmQ1pXaUpfdQp6
VWxsM3peVUUyb21ROEt+UT93QE5Bc314VEZrQjBLNj1kYjliTWpjeEZQfD89JVNwZVNtb3I2R2tl
TnpaV2glOU4KekFPe2tqPkA2ciZQNClOWlh3N01CVmsoeT8yWn47Zkw/UClBJnFONiZYKTNGdEl1
bTNHNEBJXmpRen1zanZjK2wyCnpjamJ7e0Y2JilOVytqb3Q1YyppVmVhemFVI3d1UExXPWdKWEVt
SlolKUhtMlM7M1l8MD97UmdJTTtUO3xyJkVtMQp6T3d6YVp1RnE5fTU7eip2cml6dWFedEAha15F
X0pLP1UyPT8+IXNPVVEmRD8kNzB+OXcoTE9ta2t1SmxLOHByVUYKelZNNF4kS1BQaDVIMHxudC10
LUJ3aDJRYk0tKk8tVjRvXl5zd3Z8ZjxwUDt+SmpaUVNTaUgyKTZ3JWQpNW9YaFFFCnpqeEZabSQ0
KGRNYSZkRkJpeHdBO3g/JEBEWF5kaj5lWX1SMUt2c1pgVSUoUkxsZmspcUJWOEJ1YHI+QHV1N0NK
eQp6WXZibmYpXzhxc3JsKmwhb0xAP0I9bTskcEUtbV4hO2opNld3QXxEMllJZSg5JnM9KyhjSmUw
dz07RDlCU21Fb14Kbnp0Y35SZUQ9JiNrSTA9YT5IblRDPkwyTHg9UE83S3JLQ3dQcF9mN2JZVX08
USZMMH4yCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KaW5kZXggYmNk
ZTBmMTJmMDA5ZjY2N2RhYmQ4NGU0YzkwOTM4MzQyOGY2NGYzNy4uOTcxMmZkNmU5MDg4NjY3MzVi
NzlhNDkwOWJmMzY3ZGRhNjIxYzAyOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQpAQCAtMTAwMiw2ICsx
MDAyLDUyIEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1bGF0aW9uRXh0
cmFjdHNWYWx1ZXNCeU5vZGUpCiAgICAgRVhQRUNUX1NUUkVRKCJmaXZlIiwgaXRlbXNbMV0udG9r
ZW5zWzFdLmNvbnRlbnQuVVRGOFN0cmluZyk7CiB9CiAKK1RFU1QoVGV4dE1hbmlwdWxhdGlvbiwg
U3RhcnRUZXh0TWFuaXB1bGF0aW9uRXhjbHVkZXNUZXh0UmVuZGVyZWRBc0ljb25zKQoreworICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2Vi
VmlldyBfc2V0VGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD4iCisg
ICAgICAgICI8aGVhZD4iCisgICAgICAgICI8c3R5bGU+IgorICAgICAgICAiQGZvbnQtZmFjZSB7
IgorICAgICAgICAiICAgIGZvbnQtZmFtaWx5OiBBaGVtOyIKKyAgICAgICAgIiAgICBzcmM6IHVy
bChBaGVtLnR0Zik7IgorICAgICAgICAifSIKKyAgICAgICAgIkBmb250LWZhY2UgeyIKKyAgICAg
ICAgIiAgICBmb250LWZhbWlseTogU3BhY2VPbmx5OyIKKyAgICAgICAgIiAgICBzcmM6IHVybChT
cGFjZU9ubHkub3RmKTsiCisgICAgICAgICJ9IgorICAgICAgICAiLkFoZW0geyBmb250LWZhbWls
eTogQWhlbTsgfSIKKyAgICAgICAgIi5TcGFjZU9ubHkgeyBmb250LWZhbWlseTogU3BhY2VPbmx5
OyB9IgorICAgICAgICAiLk1pc3NpbmcgeyBmb250LWZhbWlseTogTWlzc2luZzsgfSIKKyAgICAg
ICAgIi5TeXN0ZW1VSSB7IGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWk7IH0iCisgICAgICAgICI8L3N0
eWxlPiIKKyAgICAgICAgIjwvaGVhZD4iCisgICAgICAgICI8Ym9keT4iCisgICAgICAgICI8c3Bh
biBjbGFzcz0nQWhlbSc+b25lPC9zcGFuPjxzcGFuIGNsYXNzPSdTcGFjZU9ubHknPnR3bzwvc3Bh
bj48c3BhbiBjbGFzcz0nTWlzc2luZyc+dGhyZWU8L3NwYW4+PHNwYW4gY2xhc3M9J1N5c3RlbVVJ
Jz5mb3VyPC9zcGFuPiIKKyAgICAgICAgIjwvYm9keT4iXTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25maWd1cmF0aW9uOm5p
bCBjb21wbGV0aW9uOl57CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvIGl0ZW1zID0gW2RlbGVnYXRl
IGl0ZW1zXTsKKyAgICBFWFBFQ1RfRVEoaXRlbXMuY291bnQsIDFVTCk7CisgICAgYXV0byBpdGVt
ID0gaXRlbXMuZmlyc3RPYmplY3Q7CisgICAgRVhQRUNUX0VRKGl0ZW0udG9rZW5zLmNvdW50LCA0
VUwpOworICAgIEVYUEVDVF9XS19TVFJFUShpdGVtLnRva2Vuc1swXS5jb250ZW50LCAib25lIik7
CisgICAgRVhQRUNUX0ZBTFNFKGl0ZW0udG9rZW5zWzBdLmlzRXhjbHVkZWQpOworICAgIEVYUEVD
VF9XS19TVFJFUShpdGVtLnRva2Vuc1sxXS5jb250ZW50LCAidHdvIik7CisgICAgRVhQRUNUX1RS
VUUoaXRlbS50b2tlbnNbMV0uaXNFeGNsdWRlZCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKGl0ZW0u
dG9rZW5zWzJdLmNvbnRlbnQsICJ0aHJlZSIpOworICAgIEVYUEVDVF9GQUxTRShpdGVtLnRva2Vu
c1syXS5pc0V4Y2x1ZGVkKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoaXRlbS50b2tlbnNbM10uY29u
dGVudCwgImZvdXIiKTsKKyAgICBFWFBFQ1RfRkFMU0UoaXRlbS50b2tlbnNbM10uaXNFeGNsdWRl
ZCk7Cit9CisKIHN0cnVjdCBUb2tlbiB7CiAgICAgTlNTdHJpbmcgKmlkZW50aWZpZXI7CiAgICAg
TlNTdHJpbmcgKmNvbnRlbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>