<?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>76068</bug_id>
          
          <creation_ts>2012-01-11 09:21:37 -0800</creation_ts>
          <short_desc>[Qt] Cleanup testfonts handling</short_desc>
          <delta_ts>2012-01-25 07:06:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533951</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-11 09:21:37 -0800</bug_when>
    <thetext>I have two purpose with this:
 - remove code duplication (now we have the same code 3x)
 - fix use-test-fonts option of QtTestBrowser which is broken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534006</commentid>
    <comment_count>1</comment_count>
      <attachid>122047</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-11 10:27:59 -0800</bug_when>
    <thetext>Created attachment 122047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534010</commentid>
    <comment_count>2</comment_count>
      <attachid>122047</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-11 10:29:56 -0800</bug_when>
    <thetext>Comment on attachment 122047
Patch

cq- because first we will need to update the fonts.conf file in the testfonts repository</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536418</commentid>
    <comment_count>3</comment_count>
      <attachid>122047</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-16 01:18:36 -0800</bug_when>
    <thetext>Comment on attachment 122047
Patch

I&apos;m a big fan of this cleanup (less duplicated code, no fonts.conf duplicated), but I&apos;m not fond of linking WebKit against font-config by default. It&apos;s unnecessary linkage for production builds.

Would it perhaps make sense to have a static helper library with DRT code that is shared between wk1 and wk2, that could be linked into the actual DRT programs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536613</commentid>
    <comment_count>4</comment_count>
      <attachid>122653</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-16 09:17:32 -0800</bug_when>
    <thetext>Created attachment 122653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536615</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-16 09:19:47 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 122047 [details])
&gt; I&apos;m a big fan of this cleanup (less duplicated code, no fonts.conf duplicated), but I&apos;m not fond of linking WebKit against font-config by default. It&apos;s unnecessary linkage for production builds.
&gt; 
&gt; Would it perhaps make sense to have a static helper library with DRT code that is shared between wk1 and wk2, that could be linked into the actual DRT programs?

Since it&apos; just one function and it should not grow in the future I just added the cpp into WebCore and reused the file in the particular projects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536617</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-16 09:20:31 -0800</bug_when>
    <thetext>Attachment 122653 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/qt/QtInitializeTestFonts.cpp:29:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536622</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-16 09:24:01 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Attachment 122653 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebCore/platform/qt/QtInitializeTestFonts.cpp:29:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
&gt; Total errors found: 1 in 11 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Unfortunately the new approach is still not compatible with the style because I could not use WebCore&apos;s config.h in the projects that use the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536651</commentid>
    <comment_count>8</comment_count>
      <attachid>122653</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-01-16 10:30:04 -0800</bug_when>
    <thetext>Comment on attachment 122653
Patch

I have a quick question: 
Does that solve the problem of shadow build of WebKit and running WebKitTestRunner that way : 
darktears@DarthVader:~/dev/troll/webkit2-trunk/Release/bin$ ./WebKitTestRunner --verbose /home/darktears/dev/troll/webkit/LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-image.html

He complains my font.conf file doesn&apos;t exist because it tries to look for `pwd`/Tools/DumpRenderTree/qt/fonts.conf which If I run it from the shadow build doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536654</commentid>
    <comment_count>9</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-16 10:32:03 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 122653 [details])
&gt; I have a quick question: 
&gt; Does that solve the problem of shadow build of WebKit and running WebKitTestRunner that way : 
&gt; darktears@DarthVader:~/dev/troll/webkit2-trunk/Release/bin$ ./WebKitTestRunner --verbose /home/darktears/dev/troll/webkit/LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-image.html
&gt; 
&gt; He complains my font.conf file doesn&apos;t exist because it tries to look for `pwd`/Tools/DumpRenderTree/qt/fonts.conf which If I run it from the shadow build doesn&apos;t exist.

Yes, it does :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537215</commentid>
    <comment_count>10</comment_count>
      <attachid>122653</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-17 11:13:09 -0800</bug_when>
    <thetext>Comment on attachment 122653
Patch

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

&gt; Tools/DumpRenderTree/qt/DumpRenderTree.pro:30
&gt; +    $${ROOT_WEBKIT_DIR}/Source/WebCore/platform/qt/QtInitializeTestFonts.h \

I would prefer this code to live in Tools/DumpRenderTree/Qt or in WTR, but not in WebCore. It doesn&apos;t have anything to do with WebCore AFAICS, being only testing related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537787</commentid>
    <comment_count>11</comment_count>
      <attachid>122903</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-18 05:26:26 -0800</bug_when>
    <thetext>Created attachment 122903
Patch

added new files to Tools/DumpRenderTree/qt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537789</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 05:29:41 -0800</bug_when>
    <thetext>Attachment 122903 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/DumpRenderTree/q...&quot; exit_code: 1

Tools/DumpRenderTree/qt/QtInitializeTestFonts.cpp:29:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540757</commentid>
    <comment_count>13</comment_count>
      <attachid>122903</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-23 12:53:09 -0800</bug_when>
    <thetext>Comment on attachment 122903
Patch

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

&gt; Tools/DumpRenderTree/qt/QtInitializeTestFonts.h:32
&gt; +namespace WebCore {

I think WebKit would be a more appropriate namespace :)

&gt; Tools/QtTestBrowser/main.cpp:245
&gt; -#if defined(Q_WS_X11)
&gt; +#if defined(HAVE_FONTCONFIG) &amp;&amp; HAVE_FONTCONFIG

Do you need the #ifdefs here? It looks to me that initializeTestFonts() has them in the function body already and the declaration is &quot;fontconfig-free&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542234</commentid>
    <comment_count>14</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-25 07:04:04 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 122903 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122903&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/qt/QtInitializeTestFonts.h:32
&gt; &gt; +namespace WebCore {
&gt; 
&gt; I think WebKit would be a more appropriate namespace :)

Fixed.

&gt; 
&gt; &gt; Tools/QtTestBrowser/main.cpp:245
&gt; &gt; -#if defined(Q_WS_X11)
&gt; &gt; +#if defined(HAVE_FONTCONFIG) &amp;&amp; HAVE_FONTCONFIG
&gt; 
&gt; Do you need the #ifdefs here? It looks to me that initializeTestFonts() has them in the function body already and the declaration is &quot;fontconfig-free&quot;.

Fixed.

Landed in http://trac.webkit.org/changeset/105876</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122047</attachid>
            <date>2012-01-11 10:27:59 -0800</date>
            <delta_ts>2012-01-16 09:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76068-20120111192757.patch</filename>
            <type>text/plain</type>
            <size>28517</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0Njg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDk1ZjM3NDg2NmE1
ZWVlMDg0N2QyN2Y3OWVkZThmZDAwMDJhOGE3MDguLjY3MmQ2OWExNGY2NmUwYzUxZjk4ZWM5NjE0
ZTkwMjNjOWEwMWZjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDEt
MTEgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF0g
Q2xlYW51cCB0ZXN0Zm9udHMgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2MDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRmFjdG9yIHRlc3QgZm9udCBpbml0aWFsaXphdGlvbiBpbnRvIGEg
Y29tbW9uIHBsYWNlLgorICAgICAgICBVc2UgZm9udHMuY29uZiBmcm9tIHRoZSB0ZXN0IGZvbnQg
ZGlyZWN0b3J5IHRvIG5vdCByZXF1aXJlIHRoZQorICAgICAgICBjdXJyZW50IGRpcmVjdG9yeSB0
byBiZSB0aGUgV2ViS2l0IHJvb3QuIEZpeCB0aGUgLXVzZS10ZXN0LWZvbnRzCisgICAgICAgIG9w
dGlvbiBvZiBRdFRlc3RCcm93c2VyIGJ5IGluaXRpYWxpemluZyB0aGUgZm9udHMgZWFybGllciwg
YmVmb3JlCisgICAgICAgIGl0IGlzIHRvbyBsYXRlIChuYW1lbHkgYmVmb3JlIGNhbGxpbmcgc2hv
dyBvbiB0aGUgbWFpbiB3aW5kb3cpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OmluaXRpYWxpemVUZXN0Rm9udHMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTItMDEtMTEgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdHJpdmlhbCBidWlsZCBm
aXg6IFJlbW92ZWQgdW5uZWNlc3NhcnkgUUh0dHBSZXF1ZXN0SGVhZGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCmluZGV4IDkyZWNkZjhkYTk1YWYwNzhmODQ0NGI1MTczYmE0OThmOGNlNDlmMTEuLjgy
ODFmZDIwNWU2ZGJlZTIwMTA4YmZmMmQ4NjQwZWEzNDgwMjM2OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCkBAIC0xMDIsNiArMTAyLDExIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UXQuaCIKICNlbmRpZgogCisjaWYgSEFWRShGT05UQ09ORklHKQorI2luY2x1ZGUgPFFEaXI+Cisj
aW5jbHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIFFNYXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dvcmxkTWFwOwpA
QCAtMTI2OCw2ICsxMjczLDQzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEhp
eGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoUVdlYlBhZ2UqIHBhZ2UsCiAjZW5kaWYKIH0K
IAordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aW5pdGlhbGl6ZVRlc3RGb250cygpCit7
CisjaWYgSEFWRShGT05UQ09ORklHKQorICAgIHN0YXRpYyBpbnQgbnVtRm9udHMgPSAtMTsKKwor
ICAgIEZjSW5pdCgpOworCisgICAgLy8gU29tZSB0ZXN0IGNhc2VzIG1heSBhZGQgb3IgcmVtb3Zl
IGFwcGxpY2F0aW9uIGZvbnRzICh2aWEgQGZvbnQtZmFjZSkuCisgICAgLy8gTWFrZSBzdXJlIHRv
IHJlLWluaXRpYWxpemUgdGhlIGZvbnQgc2V0IGlmIG5lY2Vzc2FyeS4KKyAgICBGY0ZvbnRTZXQq
IGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOworICAg
IGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzID49IDAgJiYgYXBwRm9udFNldC0+bmZvbnQgPT0g
bnVtRm9udHMpCisgICAgICAgIHJldHVybjsKKworICAgIFFCeXRlQXJyYXkgZm9udERpciA9IGdl
dGVudigiV0VCS0lUX1RFU1RGT05UUyIpOworICAgIGlmIChmb250RGlyLmlzRW1wdHkoKSB8fCAh
UURpcihRU3RyaW5nOjpmcm9tTGF0aW4xKGZvbnREaXIpKS5leGlzdHMoKSkgeworICAgICAgICBx
RmF0YWwoIlxuXG4iCisgICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyAgICAgICAg
ICAgICAgICAiV0VCS0lUX1RFU1RGT05UUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0
IGNvcnJlY3RseS5cbiIKKyAgICAgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBoYXMgdG8gcG9p
bnQgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmb250c1xuIgorICAgICAgICAgICAg
ICAgICJ5b3UgY2FuIGNsb25lIGZyb20gZ2l0Oi8vZ2l0b3Jpb3VzLm9yZy9xdHdlYmtpdC90ZXN0
Zm9udHMuZ2l0XG4iCisgICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyAgICAgICAg
ICAgICAgICk7CisgICAgfQorCisgICAgUUJ5dGVBcnJheSBjb25maWdGaWxlID0gZm9udERpciAr
ICIvZm9udHMuY29uZiI7CisgICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29uZmlnQ3JlYXRlKCk7
CisgICAgaWYgKCFGY0NvbmZpZ1BhcnNlQW5kTG9hZChjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgRmNDaGFyOCo+KGNvbmZpZ0ZpbGUuY29uc3REYXRhKCkpLCBGY1RydWUpKQorICAgICAg
ICBxRmF0YWwoIkNvdWxkbid0IGxvYWQgZm9udCBjb25maWd1cmF0aW9uIGZpbGUiKTsKKyAgICBp
ZiAoIUZjQ29uZmlnQXBwRm9udEFkZERpcihjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
RmNDaGFyOCo+KGZvbnREaXIuZGF0YSgpKSkpCisgICAgICAgIHFGYXRhbCgiQ291bGRuJ3QgYWRk
IGZvbnQgZGlyISIpOworICAgIEZjQ29uZmlnU2V0Q3VycmVudChjb25maWcpOworCisgICAgYXBw
Rm9udFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAg
ICBudW1Gb250cyA9IGFwcEZvbnRTZXQtPm5mb250OworI2VuZGlmCit9CisKIC8vIFByb3ZpZGUg
YSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXNseSBleHBvcnRlZCBwcml2YXRl
IHN5bWJvbHMgYXMgb2YgUXRXZWJLaXQgNC42IHJlbGVhc2UKIAogdm9pZCBRV0VCS0lUX0VYUE9S
VCBxdF9yZXN1bWVBY3RpdmVET01PYmplY3RzKFFXZWJGcmFtZSogZnJhbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmgKaW5kZXggN2FhOWYxZGNlN2I4ODIzNmI4MWFmMWQ4MzdiOGEyMDAyZDllYzM5Yy4uMjVm
MjZiNGM2MWNkOWRhYzVjZjIzMTg4MGE0YzBjNDRmNDNiYjNlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aApAQCAtMTAxLDYgKzEwMSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxp
emUoKTsKIAorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUZXN0Rm9udHMoKTsKKwogICAgIHN0
YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFnZSogcGFnZSwgY29uc3Qg
UVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIGlz
Q29tbWFuZEVuYWJsZWQoUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG5hbWUpOwogICAg
IHN0YXRpYyBib29sIGZpbmRTdHJpbmcoUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIHN0
cmluZywgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9hcGkucHJpIGIvU291cmNlL2FwaS5wcmkKaW5kZXggZDBkODAyMWIxMjIxOWRkNGMxODY1NDMw
NDA0MDNlYzE5NzUxMzNjNC4uZTU0NzhhNmIxZDdjMDY5ZmIwZWU4ZGIzYzRjNmMzNjJhOGQ3NWZl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL2FwaS5wcmkKKysrIGIvU291cmNlL2FwaS5wcmkKQEAgLTIz
MCwzICsyMzAsNSBAQCBsaW51eC1nKysqOiB7CiAgICAgICAgIExJQlMgKz0gLWxydAogICAgIH0K
IH0KKworY29udGFpbnMoREVGSU5FUywgSEFWRV9GT05UQ09ORklHPTEpOiBQS0dDT05GSUcgKz0g
Zm9udGNvbmZpZwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGI2ZGUwZmY5ZmI5MWFjYmU4ZTllMGE4MGNjNTZjMWI2NWM2YjcxYjYuLjA3OTZlNTU0
MTdmYzlhZGFjNWI3OTcwMmE2YzRlZDE0N2ZhZDQyN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wMS0xMSAg
QmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1F0XSBDbGVh
bnVwIHRlc3Rmb250cyBoYW5kbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzYwNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGYWN0b3IgdGVzdCBmb250IGluaXRpYWxpemF0aW9uIGludG8gYSBjb21t
b24gcGxhY2UuCisgICAgICAgIFVzZSBmb250cy5jb25mIGZyb20gdGhlIHRlc3QgZm9udCBkaXJl
Y3RvcnkgdG8gbm90IHJlcXVpcmUgdGhlCisgICAgICAgIGN1cnJlbnQgZGlyZWN0b3J5IHRvIGJl
IHRoZSBXZWJLaXQgcm9vdC4gRml4IHRoZSAtdXNlLXRlc3QtZm9udHMKKyAgICAgICAgb3B0aW9u
IG9mIFF0VGVzdEJyb3dzZXIgYnkgaW5pdGlhbGl6aW5nIHRoZSBmb250cyBlYXJsaWVyLCBiZWZv
cmUKKyAgICAgICAgaXQgaXMgdG9vIGxhdGUgKG5hbWVseSBiZWZvcmUgY2FsbGluZyBzaG93IG9u
IHRoZSBtYWluIHdpbmRvdykuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjpvcGVuKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0Lmg6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZjogUmVtb3ZlZC4gTm8gbmVlZCBmb3IgdGhp
cyBzaW5jZQorICAgICAgICB3ZSB3aWxsIHVzZSB0aGUgb25lIGZyb20gdGhlIHRlc3QgZm9udHMg
ZGlyZWN0b3J5LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwOgorICAgICAg
ICAobWFpbik6IEZpeCB0aGUgaWZkZWZzIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgY29kZSB0
bworICAgICAgICBzZXQgdXAgdGhlIERwaSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIFF0NSB5ZXQu
CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oOgorICAgICAgICAoV2lu
ZG93T3B0aW9uczo6V2luZG93T3B0aW9ucyk6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9tYWlu
LmNwcDoKKyAgICAgICAgKGxhdW5jaGVyTWFpbik6CisgICAgICAgIChMYXVuY2hlckFwcGxpY2F0
aW9uOjpoYW5kbGVVc2VyT3B0aW9ucyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3BwOgorICAgICAgICAoV1RSOjphY3RpdmF0
ZUZvbnRzKTogUmVtb3ZlIHRoZSBjb2RlIHRvIHNldCB1cCB0aGUgRHBpCisgICAgICAgIGJlY2F1
c2UgaXQgZG9lcyBub3Qgd29yayB3aXRoIFF0NS4KKwogMjAxMi0wMS0xMCAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBUZXN0V2ViS2l0QVBJIHRlc3Rz
IGZvciBLVVJMCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVy
VHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3Bw
CmluZGV4IDkwOWFhNjg3MDI0YWNmZWJhYThhYWE4MDc0ZWRjZWQ2Nzc0NTFiN2QuLjY0MzY1NWY3
YTgzZmRjOWNjNjJmMDFiZjk2M2M3YjY2NjY1Y2JhYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC02MjYsNyArNjI2LDcgQEAgdm9pZCBEdW1w
UmVuZGVyVHJlZTo6b3Blbihjb25zdCBRVXJsJiB1cmwpCiAjaWYgIShRVF9WRVJTSU9OIDw9IFFU
X1ZFUlNJT05fQ0hFQ0soNCwgNiwgMikpCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQWxsQXBw
bGljYXRpb25Gb250cygpOwogI2VuZGlmCi0gICAgaW5pdGlhbGl6ZUZvbnRzKCk7CisgICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OmluaXRpYWxpemVUZXN0Rm9udHMoKTsKIAogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVMb2FkZXIodXJsLnRvU3RyaW5nKCkuY29udGFp
bnMoImxvYWRpbmcvIikpOwogICAgIHNldFRleHRPdXRwdXRFbmFibGVkKHRydWUpOwpAQCAtMTEz
OCw0NiArMTEzOCw0IEBAIFFMaXN0PFdlYlBhZ2UqPiBEdW1wUmVuZGVyVHJlZTo6Z2V0QWxsUGFn
ZXMoKSBjb25zdAogICAgIHJldHVybiBwYWdlczsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZTo6
aW5pdGlhbGl6ZUZvbnRzKCkKLXsKLSNpZiBIQVZFKEZPTlRDT05GSUcpCi0gICAgc3RhdGljIGlu
dCBudW1Gb250cyA9IC0xOwotCi0gICAgRmNJbml0KCk7Ci0KLSAgICAvLyBTb21lIHRlc3QgY2Fz
ZXMgbWF5IGFkZCBvciByZW1vdmUgYXBwbGljYXRpb24gZm9udHMgKHZpYSBAZm9udC1mYWNlKS4K
LSAgICAvLyBNYWtlIHN1cmUgdG8gcmUtaW5pdGlhbGl6ZSB0aGUgZm9udCBzZXQgaWYgbmVjZXNz
YXJ5LgotICAgIEZjRm9udFNldCogYXBwRm9udFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoMCwgRmNT
ZXRBcHBsaWNhdGlvbik7Ci0gICAgaWYgKGFwcEZvbnRTZXQgJiYgbnVtRm9udHMgPj0gMCAmJiBh
cHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUUJ5
dGVBcnJheSBmb250RGlyID0gZ2V0ZW52KCJXRUJLSVRfVEVTVEZPTlRTIik7Ci0gICAgaWYgKGZv
bnREaXIuaXNFbXB0eSgpIHx8ICFRRGlyKGZvbnREaXIpLmV4aXN0cygpKSB7Ci0gICAgICAgIGZw
cmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICJcblxuIgotICAgICAgICAgICAgICAgICIt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgIldFQktJVF9URVNURk9OVFMgZW52aXJv
bm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCBjb3JyZWN0bHkuXG4iCi0gICAgICAgICAgICAgICAg
IlRoaXMgdmFyaWFibGUgaGFzIHRvIHBvaW50IHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0
aGUgZm9udHNcbiIKLSAgICAgICAgICAgICAgICAieW91IGNhbiBjbG9uZSBmcm9tIGdpdDovL2dp
dG9yaW91cy5vcmcvcXR3ZWJraXQvdGVzdGZvbnRzLmdpdFxuIgotICAgICAgICAgICAgICAgICIt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICApOwotICAgICAgICBleGl0KDEpOwotICAg
IH0KLSAgICBjaGFyIGN1cnJlbnRQYXRoW1BBVEhfTUFYKzFdOwotICAgIGlmICghZ2V0Y3dkKGN1
cnJlbnRQYXRoLCBQQVRIX01BWCkpCi0gICAgICAgIHFGYXRhbCgiQ291bGRuJ3QgZ2V0IGN1cnJl
bnQgd29ya2luZyBkaXJlY3RvcnkiKTsKLSAgICBRQnl0ZUFycmF5IGNvbmZpZ0ZpbGUgPSBjdXJy
ZW50UGF0aDsKLSAgICBGY0NvbmZpZyAqY29uZmlnID0gRmNDb25maWdDcmVhdGUoKTsKLSAgICBj
b25maWdGaWxlICs9ICIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZiI7Ci0gICAg
aWYgKCFGY0NvbmZpZ1BhcnNlQW5kTG9hZCAoY29uZmlnLCAoRmNDaGFyOCopIGNvbmZpZ0ZpbGUu
ZGF0YSgpLCB0cnVlKSkKLSAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBsb2FkIGZvbnQgY29uZmln
dXJhdGlvbiBmaWxlIik7Ci0gICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGREaXIgKGNvbmZpZywg
KEZjQ2hhcjgqKSBmb250RGlyLmRhdGEoKSkpCi0gICAgICAgIHFGYXRhbCgiQ291bGRuJ3QgYWRk
IGZvbnQgZGlyISIpOwotICAgIEZjQ29uZmlnU2V0Q3VycmVudChjb25maWcpOwotCi0gICAgYXBw
Rm9udFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKTsKLSAg
ICBudW1Gb250cyA9IGFwcEZvbnRTZXQtPm5mb250OwotI2VuZGlmCi19Ci0KIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaAppbmRleCA3N2I2ZTQ2MWZhODM2YTEy
MGZhYWY5ZmY3ZTc2MzViOGIwYmFhODlkLi41ZTFkNmI0YjI3YmQzNTliN2NhOTI1ZDg5NTM5MTJl
NTA5OTVkOTZjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVy
VHJlZVF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5o
CkBAIC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgogICAgIFdlYlBhZ2UgKndlYlBhZ2UoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2U7IH0KICAgICBRTGlzdDxXZWJQYWdlKj4gZ2V0QWxsUGFnZXMoKSBj
b25zdDsKIAotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVGb250cygpOwotCiAgICAgdm9pZCBw
cm9jZXNzQXJnc0xpbmUoY29uc3QgUVN0cmluZ0xpc3QmKTsKICAgICB2b2lkIHNldFJlZGlyZWN0
T3V0cHV0RmlsZU5hbWUoY29uc3QgUVN0cmluZyYgZmlsZU5hbWUpIHsgbV9yZWRpcmVjdE91dHB1
dEZpbGVOYW1lID0gZmlsZU5hbWU7IH0KICAgICB2b2lkIHNldFJlZGlyZWN0RXJyb3JGaWxlTmFt
ZShjb25zdCBRU3RyaW5nJiBmaWxlTmFtZSkgeyBtX3JlZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZp
bGVOYW1lOyB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9mb250cy5jb25m
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDk1MDdkNDI1YmRkM2UzNzY2ZGI0ZmY2NTcyNjI5Y2E1OGIzMzgxZi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9mb250cy5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsMjc1ICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/PgotPCFET0NUWVBFIGZvbnRjb25maWcgU1lTVEVNICJmb250cy5k
dGQiPgotPGZvbnRjb25maWc+Ci0KLTwhLS0KLSAgQWNjZXB0IGRlcHJlY2F0ZWQgJ21vbm8nIGFs
aWFzLCByZXBsYWNpbmcgaXQgd2l0aCAnbW9ub3NwYWNlJwotLS0+Ci0JPG1hdGNoIHRhcmdldD0i
cGF0dGVybiI+Ci0JCTx0ZXN0IHF1YWw9ImFueSIgbmFtZT0iZmFtaWx5Ij4KLQkJCTxzdHJpbmc+
bW9ubzwvc3RyaW5nPgotCQk8L3Rlc3Q+Ci0JCTxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXNz
aWduIj4KLQkJCTxzdHJpbmc+bW9ub3NwYWNlPC9zdHJpbmc+Ci0JCTwvZWRpdD4KLQk8L21hdGNo
PgotCi08IS0tCi0gIEFjY2VwdCBhbHRlcm5hdGUgJ3NhbnMgc2VyaWYnIHNwZWxsaW5nLCByZXBs
YWNpbmcgaXQgd2l0aCAnc2Fucy1zZXJpZicKLS0tPgotCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4i
PgotCQk8dGVzdCBxdWFsPSJhbnkiIG5hbWU9ImZhbWlseSI+Ci0JCQk8c3RyaW5nPnNhbnMgc2Vy
aWY8L3N0cmluZz4KLQkJPC90ZXN0PgotCQk8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFzc2ln
biI+Ci0JCQk8c3RyaW5nPnNhbnMtc2VyaWY8L3N0cmluZz4KLQkJPC9lZGl0PgotCTwvbWF0Y2g+
Ci0KLTwhLS0KLSAgQWNjZXB0IGRlcHJlY2F0ZWQgJ3NhbnMnIGFsaWFzLCByZXBsYWNpbmcgaXQg
d2l0aCAnc2Fucy1zZXJpZicKLS0tPgotCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotCQk8dGVz
dCBxdWFsPSJhbnkiIG5hbWU9ImZhbWlseSI+Ci0JCQk8c3RyaW5nPnNhbnM8L3N0cmluZz4KLQkJ
PC90ZXN0PgotCQk8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFzc2lnbiI+Ci0JCQk8c3RyaW5n
PnNhbnMtc2VyaWY8L3N0cmluZz4KLQkJPC9lZGl0PgotCTwvbWF0Y2g+Ci0KLTwhLS0KLSAgSWYg
dGhlIGZvbnQgc3RpbGwgaGFzIG5vIGdlbmVyaWMgbmFtZSwgYWRkIHNhbnMtc2VyaWYKLSAtLT4K
LQk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLQkJPHRlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1p
bHkiIGNvbXBhcmU9Im5vdF9lcSI+Ci0JCQk8c3RyaW5nPnNhbnMtc2VyaWY8L3N0cmluZz4KLQkJ
PC90ZXN0PgotCQk8dGVzdCBxdWFsPSJhbGwiIG5hbWU9ImZhbWlseSIgY29tcGFyZT0ibm90X2Vx
Ij4KLQkJCTxzdHJpbmc+c2VyaWY8L3N0cmluZz4KLQkJPC90ZXN0PgotCQk8dGVzdCBxdWFsPSJh
bGwiIG5hbWU9ImZhbWlseSIgY29tcGFyZT0ibm90X2VxIj4KLQkJCTxzdHJpbmc+bW9ub3NwYWNl
PC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmRf
bGFzdCI+Ci0JCQk8c3RyaW5nPnNhbnMtc2VyaWY8L3N0cmluZz4KLQkJPC9lZGl0PgotCTwvbWF0
Y2g+Ci0KLQk8Y29uZmlnPgotPCEtLQotICBUaGVzZSBhcmUgdGhlIGRlZmF1bHQgVW5pY29kZSBj
aGFycyB0aGF0IGFyZSBleHBlY3RlZCB0byBiZSBibGFuawotICBpbiBmb250cy4gIEFsbCBvdGhl
ciBibGFuayBjaGFycyBhcmUgYXNzdW1lZCB0byBiZSBicm9rZW4gYW5kCi0gIHdvbid0IGFwcGVh
ciBpbiB0aGUgcmVzdWx0aW5nIGNoYXJzZXRzCi0gLS0+Ci0JCTxibGFuaz4KLQkJCTxpbnQ+MHgw
MDIwPC9pbnQ+CTwhLS0gU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MDBBMDwvaW50Pgk8IS0tIE5PLUJS
RUFLIFNQQUNFIC0tPgotCQkJPGludD4weDAwQUQ8L2ludD4JPCEtLSBTT0ZUIEhZUEhFTiAtLT4K
LQkJCTxpbnQ+MHgwMzRGPC9pbnQ+CTwhLS0gQ09NQklOSU5HIEdSQVBIRU1FIEpPSU5FUiAtLT4K
LQkJCTxpbnQ+MHgwNjAwPC9pbnQ+CTwhLS0gQVJBQklDIE5VTUJFUiBTSUdOIC0tPgotCQkJPGlu
dD4weDA2MDE8L2ludD4JPCEtLSBBUkFCSUMgU0lHTiBTQU5BSCAtLT4KLQkJCTxpbnQ+MHgwNjAy
PC9pbnQ+CTwhLS0gQVJBQklDIEZPT1ROT1RFIE1BUktFUiAtLT4KLQkJCTxpbnQ+MHgwNjAzPC9p
bnQ+CTwhLS0gQVJBQklDIFNJR04gU0FGSEEgLS0+Ci0JCQk8aW50PjB4MDZERDwvaW50Pgk8IS0t
IEFSQUJJQyBFTkQgT0YgQVlBSCAtLT4KLQkJCTxpbnQ+MHgwNzBGPC9pbnQ+CTwhLS0gU1lSSUFD
IEFCQlJFVklBVElPTiBNQVJLIC0tPgotCQkJPGludD4weDExNUY8L2ludD4JPCEtLSBIQU5HVUwg
Q0hPU0VPTkcgRklMTEVSIC0tPgotCQkJPGludD4weDExNjA8L2ludD4JPCEtLSBIQU5HVUwgSlVO
R1NFT05HIEZJTExFUiAtLT4KLQkJCTxpbnQ+MHgxNjgwPC9pbnQ+CTwhLS0gT0dIQU0gU1BBQ0Ug
TUFSSyAtLT4KLQkJCTxpbnQ+MHgxN0I0PC9pbnQ+CTwhLS0gS0hNRVIgVk9XRUwgSU5IRVJFTlQg
QVEgLS0+Ci0JCQk8aW50PjB4MTdCNTwvaW50Pgk8IS0tIEtITUVSIFZPV0VMIElOSEVSRU5UIEFB
IC0tPgotCQkJPGludD4weDE4MEU8L2ludD4JPCEtLSBNT05HT0xJQU4gVk9XRUwgU0VQQVJBVE9S
IC0tPgotCQkJPGludD4weDIwMDA8L2ludD4JPCEtLSBFTiBRVUFEIC0tPgotCQkJPGludD4weDIw
MDE8L2ludD4JPCEtLSBFTSBRVUFEIC0tPgotCQkJPGludD4weDIwMDI8L2ludD4JPCEtLSBFTiBT
UEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDAzPC9pbnQ+CTwhLS0gRU0gU1BBQ0UgLS0+Ci0JCQk8aW50
PjB4MjAwNDwvaW50Pgk8IS0tIFRIUkVFLVBFUi1FTSBTUEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDA1
PC9pbnQ+CTwhLS0gRk9VUi1QRVItRU0gU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwNjwvaW50Pgk8
IS0tIFNJWC1QRVItRU0gU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwNzwvaW50Pgk8IS0tIEZJR1VS
RSBTUEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDA4PC9pbnQ+CTwhLS0gUFVOQ1RVQVRJT04gU1BBQ0Ug
LS0+Ci0JCQk8aW50PjB4MjAwOTwvaW50Pgk8IS0tIFRISU4gU1BBQ0UgLS0+Ci0JCQk8aW50PjB4
MjAwQTwvaW50Pgk8IS0tIEhBSVIgU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwQjwvaW50Pgk8IS0t
IFpFUk8gV0lEVEggU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwQzwvaW50Pgk8IS0tIFpFUk8gV0lE
VEggTk9OLUpPSU5FUiAtLT4KLQkJCTxpbnQ+MHgyMDBEPC9pbnQ+CTwhLS0gWkVSTyBXSURUSCBK
T0lORVIgLS0+Ci0JCQk8aW50PjB4MjAwRTwvaW50Pgk8IS0tIExFRlQtVE8tUklHSFQgTUFSSyAt
LT4KLQkJCTxpbnQ+MHgyMDBGPC9pbnQ+CTwhLS0gUklHSFQtVE8tTEVGVCBNQVJLIC0tPgotCQkJ
PGludD4weDIwMjg8L2ludD4JPCEtLSBMSU5FIFNFUEFSQVRPUiAtLT4KLQkJCTxpbnQ+MHgyMDI5
PC9pbnQ+CTwhLS0gUEFSQUdSQVBIIFNFUEFSQVRPUiAtLT4KLQkJCTxpbnQ+MHgyMDJBPC9pbnQ+
CTwhLS0gTEVGVC1UTy1SSUdIVCBFTUJFRERJTkcgLS0+Ci0JCQk8aW50PjB4MjAyQjwvaW50Pgk8
IS0tIFJJR0hULVRPLUxFRlQgRU1CRURESU5HIC0tPgotCQkJPGludD4weDIwMkM8L2ludD4JPCEt
LSBQT1AgRElSRUNUSU9OQUwgRk9STUFUVElORyAtLT4KLQkJCTxpbnQ+MHgyMDJEPC9pbnQ+CTwh
LS0gTEVGVC1UTy1SSUdIVCBPVkVSUklERSAtLT4KLQkJCTxpbnQ+MHgyMDJFPC9pbnQ+CTwhLS0g
UklHSFQtVE8tTEVGVCBPVkVSUklERSAtLT4KLQkJCTxpbnQ+MHgyMDJGPC9pbnQ+CTwhLS0gTkFS
Uk9XIE5PLUJSRUFLIFNQQUNFIC0tPgotCQkJPGludD4weDIwNUY8L2ludD4JPCEtLSBNRURJVU0g
TUFUSEVNQVRJQ0FMIFNQQUNFIC0tPgotCQkJPGludD4weDIwNjA8L2ludD4JPCEtLSBXT1JEIEpP
SU5FUiAtLT4KLQkJCTxpbnQ+MHgyMDYxPC9pbnQ+CTwhLS0gRlVOQ1RJT04gQVBQTElDQVRJT04g
LS0+Ci0JCQk8aW50PjB4MjA2MjwvaW50Pgk8IS0tIElOVklTSUJMRSBUSU1FUyAtLT4KLQkJCTxp
bnQ+MHgyMDYzPC9pbnQ+CTwhLS0gSU5WSVNJQkxFIFNFUEFSQVRPUiAtLT4KLQkJCTxpbnQ+MHgy
MDZBPC9pbnQ+CTwhLS0gSU5ISUJJVCBTWU1NRVRSSUMgU1dBUFBJTkcgLS0+Ci0JCQk8aW50PjB4
MjA2QjwvaW50Pgk8IS0tIEFDVElWQVRFIFNZTU1FVFJJQyBTV0FQUElORyAtLT4KLQkJCTxpbnQ+
MHgyMDZDPC9pbnQ+CTwhLS0gSU5ISUJJVCBBUkFCSUMgRk9STSBTSEFQSU5HIC0tPgotCQkJPGlu
dD4weDIwNkQ8L2ludD4JPCEtLSBBQ1RJVkFURSBBUkFCSUMgRk9STSBTSEFQSU5HIC0tPgotCQkJ
PGludD4weDIwNkU8L2ludD4JPCEtLSBOQVRJT05BTCBESUdJVCBTSEFQRVMgLS0+Ci0JCQk8aW50
PjB4MjA2RjwvaW50Pgk8IS0tIE5PTUlOQUwgRElHSVQgU0hBUEVTIC0tPgotCQkJPGludD4weDMw
MDA8L2ludD4JPCEtLSBJREVPR1JBUEhJQyBTUEFDRSAtLT4KLQkJCTxpbnQ+MHgzMTY0PC9pbnQ+
CTwhLS0gSEFOR1VMIEZJTExFUiAtLT4KLQkJCTxpbnQ+MHhGRUZGPC9pbnQ+CTwhLS0gWkVSTyBX
SURUSCBOTy1CUkVBSyBTUEFDRSAtLT4KLQkJCTxpbnQ+MHhGRkEwPC9pbnQ+CTwhLS0gSEFMRldJ
RFRIIEhBTkdVTCBGSUxMRVIgLS0+Ci0JCQk8aW50PjB4RkZGOTwvaW50Pgk8IS0tIElOVEVSTElO
RUFSIEFOTk9UQVRJT04gQU5DSE9SIC0tPgotCQkJPGludD4weEZGRkE8L2ludD4JPCEtLSBJTlRF
UkxJTkVBUiBBTk5PVEFUSU9OIFNFUEFSQVRPUiAtLT4KLQkJCTxpbnQ+MHhGRkZCPC9pbnQ+CTwh
LS0gSU5URVJMSU5FQVIgQU5OT1RBVElPTiBURVJNSU5BVE9SIC0tPgotCQk8L2JsYW5rPgotPCEt
LQotICBSZXNjYW4gY29uZmlndXJhdGlvbiBldmVyeSAzMCBzZWNvbmRzIHdoZW4gRmNGb250U2V0
TGlzdCBpcyBjYWxsZWQKLSAtLT4KLQkJPHJlc2Nhbj4KLQkJCTxpbnQ+MzA8L2ludD4KLQkJPC9y
ZXNjYW4+Ci0JPC9jb25maWc+Ci0KLTwhLS0KLSAgVVJXIHByb3ZpZGVzIG1ldHJpYyBhbmQgc2hh
cGUgY29tcGF0aWJsZSBmb250cyBmb3IgdGhlc2UgMTAgQWRvYmUgZmFtaWxpZXMuCi0KLSAgSG93
ZXZlciwgdGhlc2UgZm9udHMgYXJlIHF1aXRlIHVnbHkgYW5kIGRvIG5vdCByZW5kZXIgd2VsbCBv
bi1zY3JlZW4sCi0gIHNvIHdlIGF2b2lkIG1hdGNoaW5nIHRoZW0gaWYgdGhlIGFwcGxpY2F0aW9u
IHNhaWQgYGFueW1ldHJpY3MnOyBpbiB0aGF0Ci0gIGNhc2UsIGEgbW9yZSBnZW5lcmljIGZvbnQg
d2l0aCBkaWZmZXJlbnQgbWV0cmljcyBidXQgYmV0dGVyIGFwcGVhcmFuY2UKLSAgd2lsbCBiZSB1
c2VkLgotICAtLT4KLSAgICAgICAJPG1hdGNoIHRhcmdldD0icGF0dGVybiI+Ci0gICAgICAgICAg
PHRlc3QgbmFtZT0iZmFtaWx5Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+QXZhbnQgR2FyZGU8L3N0
cmluZz4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0cmlj
cyIgcXVhbD0iYWxsIiBjb21wYXJlPSJub3RfZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1ZTwv
Ym9vbD4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5IiBt
b2RlPSJhcHBlbmQiPgotICAgICAgICAgICAgPHN0cmluZz5VUlcgR290aGljIEw8L3N0cmluZz4K
LSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2ggdGFyZ2V0
PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAg
PHN0cmluZz5Cb29rbWFuPC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0
ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAg
ICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxl
ZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+VVJX
IEJvb2ttYW4gTDwvc3RyaW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAgICAgCTwvbWF0Y2g+Ci0g
ICAgICAgCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZh
bWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5nPkNvdXJpZXI8L3N0cmluZz4KLSAgICAgICAgICA8
L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0cmljcyIgcXVhbD0iYWxsIiBjb21w
YXJlPSJub3RfZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1ZTwvYm9vbD4KLSAgICAgICAgICA8
L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmQiPgotICAg
ICAgICAgICAgPHN0cmluZz5OaW1idXMgTW9ubyBMPC9zdHJpbmc+Ci0gICAgICAgICAgPC9lZGl0
PgotICAgICAJPC9tYXRjaD4KLSAgICAgICAJPG1hdGNoIHRhcmdldD0icGF0dGVybiI+Ci0gICAg
ICAgICAgPHRlc3QgbmFtZT0iZmFtaWx5Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+SGVsdmV0aWNh
PC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImFueW1l
dHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxib29sPnRy
dWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9ImZhbWls
eSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+TmltYnVzIFNhbnMgTDwvc3Ry
aW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAgICAgCTwvbWF0Y2g+Ci0gICAgICAgCTxtYXRjaCB0
YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZhbWlseSI+Ci0gICAgICAg
ICAgICA8c3RyaW5nPk5ldyBDZW50dXJ5IFNjaG9vbGJvb2s8L3N0cmluZz4KLSAgICAgICAgICA8
L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0cmljcyIgcXVhbD0iYWxsIiBjb21w
YXJlPSJub3RfZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1ZTwvYm9vbD4KLSAgICAgICAgICA8
L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmQiPgotICAg
ICAgICAgICAgPHN0cmluZz5DZW50dXJ5IFNjaG9vbGJvb2sgTDwvc3RyaW5nPgotICAgICAgICAg
IDwvZWRpdD4KLSAgICAgCTwvbWF0Y2g+Ci0gICAgICAgCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4i
PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZhbWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5nPlBh
bGF0aW5vPC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9
ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxi
b29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9
ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+VVJXIFBhbGxhZGlv
IEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8
bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgot
ICAgICAgICAgICAgPHN0cmluZz5UaW1lczwvc3RyaW5nPgotICAgICAgICAgIDwvdGVzdD4KLSAg
ICAgICAgICA8dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBxdWFsPSJhbGwiIGNvbXBhcmU9Im5vdF9l
cSI+Ci0gICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgotICAgICAgICAgIDwvdGVzdD4KLSAg
ICAgICAgICA8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVuZCI+Ci0gICAgICAgICAgICA8
c3RyaW5nPk5pbWJ1cyBSb21hbiBObzkgTDwvc3RyaW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAg
ICAgCTwvbWF0Y2g+Ci0gICAgICAgCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAg
IDx0ZXN0IG5hbWU9ImZhbWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5nPlphcGYgQ2hhbmNlcnk8
L3N0cmluZz4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0
cmljcyIgcXVhbD0iYWxsIiBjb21wYXJlPSJub3RfZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1
ZTwvYm9vbD4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5
IiBtb2RlPSJhcHBlbmQiPgotICAgICAgICAgICAgPHN0cmluZz5VUlcgQ2hhbmNlcnkgTDwvc3Ry
aW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAgICAgCTwvbWF0Y2g+Ci0gICAgICAgCTxtYXRjaCB0
YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZhbWlseSI+Ci0gICAgICAg
ICAgICA8c3RyaW5nPlphcGYgRGluZ2JhdHM8L3N0cmluZz4KLSAgICAgICAgICA8L3Rlc3Q+Ci0g
ICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0cmljcyIgcXVhbD0iYWxsIiBjb21wYXJlPSJub3Rf
ZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1ZTwvYm9vbD4KLSAgICAgICAgICA8L3Rlc3Q+Ci0g
ICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmQiPgotICAgICAgICAgICAg
PHN0cmluZz5EaW5nYmF0czwvc3RyaW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAgICAgCTwvbWF0
Y2g+Ci0gICAgICAgIDxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5h
bWU9ImZhbWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5nPlN5bWJvbDwvc3RyaW5nPgotICAgICAg
ICAgIDwvdGVzdD4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBxdWFsPSJhbGwi
IGNvbXBhcmU9Im5vdF9lcSI+Ci0gICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgotICAgICAg
ICAgIDwvdGVzdD4KLSAgICAgICAgICA8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVuZCIg
YmluZGluZz0ic2FtZSI+Ci0gICAgICAgICAgICA8c3RyaW5nPlN0YW5kYXJkIFN5bWJvbHMgTDwv
c3RyaW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAgICAgICAgPC9tYXRjaD4KLQotPCEtLQotICBT
ZXJpZiBmYWNlcwotIC0tPgotCTxhbGlhcz4KLQkJPGZhbWlseT5OaW1idXMgUm9tYW4gTm85IEw8
L2ZhbWlseT4KLQkJPGRlZmF1bHQ+PGZhbWlseT5zZXJpZjwvZmFtaWx5PjwvZGVmYXVsdD4KLQk8
L2FsaWFzPgotPCEtLQotICBTYW5zLXNlcmlmIGZhY2VzCi0gLS0+Ci0JPGFsaWFzPgotCQk8ZmFt
aWx5Pk5pbWJ1cyBTYW5zIEw8L2ZhbWlseT4KLQkJPGRlZmF1bHQ+PGZhbWlseT5zYW5zLXNlcmlm
PC9mYW1pbHk+PC9kZWZhdWx0PgotCTwvYWxpYXM+Ci08IS0tCi0gIE1vbm9zcGFjZSBmYWNlcwot
IC0tPgotIAk8YWxpYXM+Ci0JCTxmYW1pbHk+TmltYnVzIE1vbm8gTDwvZmFtaWx5PgotCQk8ZGVm
YXVsdD48ZmFtaWx5Pm1vbm9zcGFjZTwvZmFtaWx5PjwvZGVmYXVsdD4KLQk8L2FsaWFzPgotCi0K
LTwvZm9udGNvbmZpZz4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L21haW4u
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHAKaW5kZXggM2Q5NjczYmVlNDFl
MjAzOTU4MmI0OTRlZjNjM2U5YzBlMTc1ZDQ2MC4uMDU3YmRmYThmMDg1YmE4YjY1ZmE3NWRjZTRi
ODg5MTY2MWEyOTZkZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHAKQEAgLTE0OSwxMyArMTQ5
LDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgaWYgKHN1cHByZXNz
UXREZWJ1Z091dHB1dCkKICAgICAgICAgcUluc3RhbGxNc2dIYW5kbGVyKG1lc3NhZ2VIYW5kbGVy
KTsKIAotICAgIFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjppbml0aWFsaXplRm9udHMoKTsKKyAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aW5pdGlhbGl6ZVRlc3RGb250cygpOwogCiAgICAg
UUFwcGxpY2F0aW9uOjpzZXRHcmFwaGljc1N5c3RlbSgicmFzdGVyIik7CiAgICAgUUFwcGxpY2F0
aW9uOjpzZXRTdHlsZShuZXcgUVdpbmRvd3NTdHlsZSk7CiAKICAgICBRQXBwbGljYXRpb24gYXBw
KGFyZ2MsIGFyZ3YpOwogCisjaWYgUVRfVkVSU0lPTiA8PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAs
IDApIC8vIEZJWE1FOiBuZWVkIGEgd2F5IHRvIHBvcnQgdGhpcyB0byBRdDUuCiAjaWZkZWYgUV9X
U19YMTEKICAgICBRWDExSW5mbzo6c2V0QXBwRHBpWSgwLCA5Nik7CiAgICAgUVgxMUluZm86OnNl
dEFwcERwaVgoMCwgOTYpOwpAQCAtMTczLDYgKzE3NCw3IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyKiBhcmd2W10pCiAgICAgKiBkZWZhdWx0IGZvbnQsIGJ1dCB3aXRoIHRoZSBjb3JyZWN0IHBh
aW50LWRldmljZSBEUEkuCiAgICAqLwogICAgIFFBcHBsaWNhdGlvbjo6c2V0Rm9udChRV2lkZ2V0
KCkuZm9udCgpKTsKKyNlbmRpZgogCiAjaWYgSEFWRShTSUdOQUxfSCkKICAgICBzaWduYWwoU0lH
SUxMLCBjcmFzaEhhbmRsZXIpOyAgICAvKiA0OiAgIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gKG5vdCBy
ZXNldCB3aGVuIGNhdWdodCkgKi8KZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1
bmNoZXJ3aW5kb3cuaCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaAppbmRl
eCAzNDk1YmFkYTgyMjg4N2YzNmUzMGQ3NmVlZTUwMjk4NDAwOGRhODZjLi45YWVkNmMwMWFmYTBh
ZDZkNDY4MzQyNmJjNzgyYzhmOTA3YzU4NDI4IDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93
c2VyL2xhdW5jaGVyd2luZG93LmgKKysrIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndp
bmRvdy5oCkBAIC04Myw5ICs4Myw2IEBAIHB1YmxpYzoKICNpZm5kZWYgUVRfTk9fT1BFTkdMCiAg
ICAgICAgICwgdXNlUUdMV2lkZ2V0Vmlld3BvcnQoZmFsc2UpCiAjZW5kaWYKLSNpZiBkZWZpbmVk
KFFfV1NfWDExKQotICAgICAgICAsIHVzZVRlc3RGb250cyhmYWxzZSkKLSNlbmRpZgogICAgICAg
ICAsIHByaW50TG9hZGVkVXJscyhmYWxzZSkKICAgICAgICAgLCBzdGFydE1heGltaXplZChmYWxz
ZSkKICAgICB7CkBAIC0xMDksOSArMTA2LDYgQEAgcHVibGljOgogI2lmbmRlZiBRVF9OT19PUEVO
R0wKICAgICBib29sIHVzZVFHTFdpZGdldFZpZXdwb3J0OwogI2VuZGlmCi0jaWYgZGVmaW5lZChR
X1dTX1gxMSkKLSAgICBib29sIHVzZVRlc3RGb250czsKLSNlbmRpZgogICAgIGJvb2wgcHJpbnRM
b2FkZWRVcmxzOwogICAgIFFVcmwgaW5zcGVjdG9yVXJsOwogICAgIHF1aW50MTYgcmVtb3RlSW5z
cGVjdG9yUG9ydDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbi5jcHAgYi9U
b29scy9RdFRlc3RCcm93c2VyL21haW4uY3BwCmluZGV4IDYwM2FkNjE2MDliMTBmYWFjY2M0ZWI0
MmQ3MDI3ZWYwY2I3OWFmNjIuLjZiNDdjYWNkZWQ0MGE2YjExN2ZhOGU3ZGEyM2MxNzc4OWQ5ZTk0
OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbi5jcHAKKysrIGIvVG9vbHMv
UXRUZXN0QnJvd3Nlci9tYWluLmNwcApAQCAtNDIsNjEgKzQyLDggQEAgV2luZG93T3B0aW9ucyB3
aW5kb3dPcHRpb25zOwogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRRm9udERhdGFi
YXNlPgogCi0jaWYgZGVmaW5lZChRX1dTX1gxMSkKLSNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRj
b25maWcuaD4KLSNlbmRpZgotCi0KLSNpZiBkZWZpbmVkKFFfV1NfWDExKQotLy8gVmVyeSBzaW1p
bGFyIHRvIFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjppbml0aWFsaXplRm9udHMoKTsKLS8vIER1
cGxpY2F0ZWQgaGVyZSBzbyB0aGF0IFF0VGVzdEJyb3dzZXIgd291bGQgZGlzcGxheSBjb250ZW50
cwotLy8gd2l0aCB0aGUgc2FtZSBmb250cyBhcyBydW4td2Via2l0LXRlc3RzL0R1bXBSZW5kZXJU
cmVlLgotc3RhdGljIHZvaWQgaW5pdFRlc3RGb250cygpCi17Ci0gICAgc3RhdGljIGludCBudW1G
b250cyA9IC0xOwotCi0gICAgLy8gU29tZSB0ZXN0IGNhc2VzIG1heSBhZGQgb3IgcmVtb3ZlIGFw
cGxpY2F0aW9uIGZvbnRzICh2aWEgQGZvbnQtZmFjZSkuCi0gICAgLy8gTWFrZSBzdXJlIHRvIHJl
LWluaXRpYWxpemUgdGhlIGZvbnQgc2V0IGlmIG5lY2Vzc2FyeS4KLSAgICBGY0ZvbnRTZXQqIGFw
cEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOwotICAgIGlm
IChhcHBGb250U2V0ICYmIG51bUZvbnRzID49IDAgJiYgYXBwRm9udFNldC0+bmZvbnQgPT0gbnVt
Rm9udHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIFFCeXRlQXJyYXkgZm9udERpciA9IGdldGVu
digiV0VCS0lUX1RFU1RGT05UUyIpOwotICAgIGlmIChmb250RGlyLmlzRW1wdHkoKSB8fCAhUURp
cihmb250RGlyKS5leGlzdHMoKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAg
ICAgICAgICAiXG5cbiIKLSAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAg
ICAgICAgICAgICJXRUJLSVRfVEVTVEZPTlRTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBz
ZXQgY29ycmVjdGx5LlxuIgotICAgICAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGhhcyB0byBw
b2ludCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGZvbnRzXG4iCi0gICAgICAgICAg
ICAgICAgInlvdSBjYW4gY2xvbmUgZnJvbSBnaXQ6Ly9naXRvcmlvdXMub3JnL3F0d2Via2l0L3Rl
c3Rmb250cy5naXRcbiIKLSAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAg
ICAgICAgICAgKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0gICAgLy8gTG9va3MgZm9yIHF0
L2ZvbnRzLmNvbmYgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSBvZiB0aGUgUXRUZXN0QnJvd3Nl
ciAKLSAgICAvLyBleGVjdXRhYmxlLgotICAgIFFTdHJpbmcgY29uZmlnRmlsZVN0cmluZyA9IFFD
b3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uRGlyUGF0aCgpOwotICAgIGNvbmZpZ0ZpbGVTdHJp
bmcgKz0gIi8uLi8uLi8uLi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9mb250cy5jb25mIjsKLSAg
ICBRQnl0ZUFycmF5IGNvbmZpZ0ZpbGVBcnJheSA9IGNvbmZpZ0ZpbGVTdHJpbmcudG9VdGY4KCk7
Ci0gICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29uZmlnQ3JlYXRlKCk7Ci0gICAgaWYgKCFGY0Nv
bmZpZ1BhcnNlQW5kTG9hZCAoY29uZmlnLCAoRmNDaGFyOCopIGNvbmZpZ0ZpbGVBcnJheS5kYXRh
KCksIHRydWUpKQotICAgICAgICBxRmF0YWwoIkNvdWxkbid0IGxvYWQgZm9udCBjb25maWd1cmF0
aW9uIGZpbGUiKTsKLSAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZERpciAoY29uZmlnLCAoRmND
aGFyOCopIGZvbnREaXIuZGF0YSgpKSkKLSAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBhZGQgZm9u
dCBkaXIhIik7Ci0gICAgRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZyk7Ci0KLSAgICBhcHBGb250
U2V0ID0gRmNDb25maWdHZXRGb250cyhjb25maWcsIEZjU2V0QXBwbGljYXRpb24pOwotICAgIG51
bUZvbnRzID0gYXBwRm9udFNldC0+bmZvbnQ7Ci19Ci0jZW5kaWYKLQogaW50IGxhdW5jaGVyTWFp
bihjb25zdCBRQXBwbGljYXRpb24mIGFwcCkKIHsKLSNpZmRlZiBRX1dTX1gxMQotICAgIGlmICh3
aW5kb3dPcHRpb25zLnVzZVRlc3RGb250cykKLSAgICAgICAgaW5pdFRlc3RGb250cygpOwotI2Vu
ZGlmCi0KICNpZm5kZWYgTkRFQlVHCiAgICAgaW50IHJldFZhbCA9IGFwcC5leGVjKCk7CiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CkBAIC0x
OTksNyArMTQ2LDcgQEAgdm9pZCBMYXVuY2hlckFwcGxpY2F0aW9uOjpoYW5kbGVVc2VyT3B0aW9u
cygpCiAgICAgICAgICAgICAgPDwgIlstb2ZmbGluZS1zdG9yYWdlLWRhdGFiYXNlLWVuYWJsZWRd
IgogICAgICAgICAgICAgIDw8ICJbLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uLWNhY2hlLWVuYWJs
ZWRdIgogICAgICAgICAgICAgIDw8ICJbLXNldC1vZmZsaW5lLXN0b3JhZ2UtZGVmYXVsdC1xdW90
YSBtYXhTaXplXSIKLSNpZiBkZWZpbmVkKFFfV1NfWDExKQorI2lmIGRlZmluZWQoSEFWRV9GT05U
Q09ORklHKSAmJiBIQVZFX0ZPTlRDT05GSUcKICAgICAgICAgICAgICA8PCAiWy11c2UtdGVzdC1m
b250c10iCiAjZW5kaWYKICAgICAgICAgICAgICA8PCAiWy1wcmludC1sb2FkZWQtdXJsc10iCkBA
IC0yOTQsOSArMjQxLDkgQEAgdm9pZCBMYXVuY2hlckFwcGxpY2F0aW9uOjpoYW5kbGVVc2VyT3B0
aW9ucygpCiAgICAgfQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFFfV1NfWDExKQorI2lmIGRlZmlu
ZWQoSEFWRV9GT05UQ09ORklHKSAmJiBIQVZFX0ZPTlRDT05GSUcKICAgICBpZiAoYXJncy5jb250
YWlucygiLXVzZS10ZXN0LWZvbnRzIikpCi0gICAgICAgIHdpbmRvd09wdGlvbnMudXNlVGVzdEZv
bnRzID0gdHJ1ZTsKKyAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmluaXRpYWxpemVU
ZXN0Rm9udHMoKTsKICNlbmRpZgogCiAgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1wcmludC1sb2Fk
ZWQtdXJscyIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3BwCmluZGV4IGVlZGY1NzMyOTJiNDM0YTQ1
OGExN2ViNjU3NzQ3NGUwNWQ2MDc2OGYuLjM1YmM5YmRjYTk2YWExNjUyMThhMWJiNjRlMTE4NzM1
OWQzOTU0YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvcXQvQWN0aXZhdGVGb250c1F0LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3F0L0FjdGl2YXRlRm9udHNRdC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFjdGl2YXRlRm9udHMuaCIKKyNpbmNsdWRl
ICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIgogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgog
I2luY2x1ZGUgPFFCeXRlQXJyYXk+CkBAIC0zNyw3OCArMzgsMTggQEAKICNpbmNsdWRlIDxRV2lk
Z2V0PgogI2luY2x1ZGUgPFFXaW5kb3dzU3R5bGU+CiAKLSNpZiBIQVZFKEZPTlRDT05GSUcpCi0j
aW5jbHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+Ci0jZW5kaWYKLQogI2luY2x1ZGUgPGxp
bWl0cy5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIAogdm9pZCBhY3RpdmF0ZUZvbnRzKCkKIHsKLSNp
ZiBIQVZFKEZPTlRDT05GSUcpCi0gICAgRmNJbml0KCk7Ci0KLSAgICBzdGF0aWMgaW50IG51bUZv
bnRzID0gLTE7Ci0KLSAgICAvLyBTb21lIHRlc3QgY2FzZXMgbWF5IGFkZCBvciByZW1vdmUgYXBw
bGljYXRpb24gZm9udHMgKHZpYSBAZm9udC1mYWNlKS4KLSAgICAvLyBNYWtlIHN1cmUgdG8gcmUt
aW5pdGlhbGl6ZSB0aGUgZm9udCBzZXQgaWYgbmVjZXNzYXJ5LgotICAgIEZjRm9udFNldCogYXBw
Rm9udFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoMCwgRmNTZXRBcHBsaWNhdGlvbik7Ci0gICAgaWYg
KGFwcEZvbnRTZXQgJiYgbnVtRm9udHMgPj0gMCAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1G
b250cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2hhciogY29uc3QgZm9udERpciA9IGdldGVu
digiV0VCS0lUX1RFU1RGT05UUyIpOwotICAgIGNvbnN0IFFTdHJpbmcgZm9udERpclN0cmluZyA9
IFFTdHJpbmc6OmZyb21Mb2NhbDhCaXQoZm9udERpcik7Ci0gICAgaWYgKGZvbnREaXJTdHJpbmcu
aXNFbXB0eSgpIHx8ICFRRGlyKGZvbnREaXJTdHJpbmcpLmV4aXN0cygpKSB7Ci0gICAgICAgIGZw
cmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICJcblxuIgotICAgICAgICAgICAgICAgICIt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgIldFQktJVF9URVNURk9OVFMgZW52aXJv
bm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCBjb3JyZWN0bHkuXG4iCi0gICAgICAgICAgICAgICAg
IlRoaXMgdmFyaWFibGUgaGFzIHRvIHBvaW50IHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0
aGUgZm9udHNcbiIKLSAgICAgICAgICAgICAgICAieW91IGNhbiBjbG9uZSBmcm9tIGdpdDovL2dp
dG9yaW91cy5vcmcvcXR3ZWJraXQvdGVzdGZvbnRzLmdpdFxuIgotICAgICAgICAgICAgICAgICIt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICApOwotICAgICAgICBleGl0KDEpOwotICAg
IH0KLSAgICBjaGFyIGN1cnJlbnRQYXRoW1BBVEhfTUFYKzFdOwotICAgIGlmICghZ2V0Y3dkKGN1
cnJlbnRQYXRoLCBQQVRIX01BWCkpCi0gICAgICAgIHFGYXRhbCgiQ291bGRuJ3QgZ2V0IGN1cnJl
bnQgd29ya2luZyBkaXJlY3RvcnkiKTsKLSAgICBRQnl0ZUFycmF5IGNvbmZpZ0ZpbGUgPSBjdXJy
ZW50UGF0aDsKLSAgICBGY0NvbmZpZyogY29uZmlnID0gRmNDb25maWdDcmVhdGUoKTsKLSAgICBj
b25maWdGaWxlICs9ICIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZiI7Ci0gICAg
aWYgKCFGY0NvbmZpZ1BhcnNlQW5kTG9hZCAoY29uZmlnLCAoRmNDaGFyOCopIGNvbmZpZ0ZpbGUu
ZGF0YSgpLCB0cnVlKSkKLSAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBsb2FkIGZvbnQgY29uZmln
dXJhdGlvbiBmaWxlIik7Ci0gICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGREaXIgKGNvbmZpZywg
KEZjQ2hhcjgqKSBmb250RGlyKSkKLSAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBhZGQgZm9udCBk
aXIhIik7Ci0gICAgRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZyk7Ci0KLSAgICBhcHBGb250U2V0
ID0gRmNDb25maWdHZXRGb250cyhjb25maWcsIEZjU2V0QXBwbGljYXRpb24pOwotICAgIG51bUZv
bnRzID0gYXBwRm9udFNldC0+bmZvbnQ7Ci0jZW5kaWYKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6aW5pdGlhbGl6ZVRlc3RGb250cygpOwogCiAgICAgUUFwcGxpY2F0aW9uOjpzZXRHcmFw
aGljc1N5c3RlbShRTGF0aW4xU3RyaW5nKCJyYXN0ZXIiKSk7CiAjaWYgSEFWRShRU1RZTEUpCiAg
ICAgUUFwcGxpY2F0aW9uOjpzZXRTdHlsZShuZXcgUVdpbmRvd3NTdHlsZSk7CiAjZW5kaWYKLQot
I2lmIGRlZmluZWQoUV9XU19YMTEpCi0gICAgUVgxMUluZm86OnNldEFwcERwaVgoMCwgOTYpOwot
ICAgIFFYMTFJbmZvOjpzZXRBcHBEcGlZKDAsIDk2KTsKLSNlbmRpZgotCi0gICAvKgotICAgICog
UUFwcGxpY2F0aW9uIHdpbGwgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBhcHBsaWNhdGlvbiBmb250
IGJhc2VkCi0gICAgKiBvbiB0aGUgYXBwbGljYXRpb24gRFBJIGF0IGNvbnN0cnVjdGlvbiB0aW1l
LCB3aGljaCBtaWdodCBiZQotICAgICogZGlmZmVyZW50IGZyb20gdGhlIERQSSB3ZSBleHBsaWNp
dGx5IHNldCB1c2luZyBRWDExSW5mbyBhYm92ZS4KLSAgICAqIFNlZTogaHR0cHM6Ly9idWdyZXBv
cnRzLnF0Lm5va2lhLmNvbS9icm93c2UvUVRCVUctMjE2MDMKLSAgICAqCi0gICAgKiBUbyBlbnN1
cmUgdGhhdCB0aGUgYXBwbGljYXRpb24gZm9udCBEUEkgbWF0Y2hlcyB0aGUgYXBwbGljYXRpb24K
LSAgICAqIERQSSwgd2Ugb3ZlcnJpZGUgdGhlIGFwcGxpY2F0aW9uIGZvbnQgdXNpbmcgdGhlIGZv
bnQgd2UgZ2V0IGZyb20KLSAgICAqIGEgUVdpZGdldCwgd2hpY2ggaGFzIGFscmVhZHkgYmVlbiBy
ZXNvbHZlZCBhZ2FpbnN0IHRoZSBleGlzdGluZwotICAgICogZGVmYXVsdCBmb250LCBidXQgd2l0
aCB0aGUgY29ycmVjdCBwYWludC1kZXZpY2UgRFBJLgotICAgKi8KLSAgICBRQXBwbGljYXRpb246
OnNldEZvbnQoUVdpZGdldCgpLmZvbnQoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCAxOGY0NTAxMzAyMjQwZTU1ZWU4MjIwMjUzMjdjYjBjNWM2NDc2
OGNiLi42MjQ4YTc1YzhhZjM4NTQ5Y2E3NmUzNWEyOTI2OGE1MzM2MDhmOTMyIDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDEtMTEg
IEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF0gQ2xl
YW51cCB0ZXN0Zm9udHMgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc2MDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRmFjdG9yIHRlc3QgZm9udCBpbml0aWFsaXphdGlvbiBpbnRvIGEgY29t
bW9uIHBsYWNlLgorICAgICAgICBVc2UgZm9udHMuY29uZiBmcm9tIHRoZSB0ZXN0IGZvbnQgZGly
ZWN0b3J5IHRvIG5vdCByZXF1aXJlIHRoZQorICAgICAgICBjdXJyZW50IGRpcmVjdG9yeSB0byBi
ZSB0aGUgV2ViS2l0IHJvb3QuIEZpeCB0aGUgLXVzZS10ZXN0LWZvbnRzCisgICAgICAgIG9wdGlv
biBvZiBRdFRlc3RCcm93c2VyIGJ5IGluaXRpYWxpemluZyB0aGUgZm9udHMgZWFybGllciwgYmVm
b3JlCisgICAgICAgIGl0IGlzIHRvbyBsYXRlIChuYW1lbHkgYmVmb3JlIGNhbGxpbmcgc2hvdyBv
biB0aGUgbWFpbiB3aW5kb3cpLgorCisgICAgICAgICogU291cmNlL2FwaS5wcmk6IExpbmsgYWdh
aW5zdCBmb250Y29uZmlnLiBUaGlzIGlzIHRoZSBkb3duc2lkZQorICAgICAgICBvZiB0aGlzIGNo
YW5nZS4gSG93ZXZlciBRdCBpcyBsaW5raW5nIGFnYWluc3QgZm9udGNvbmZpZyBhbnl3YXkKKyAg
ICAgICAgb24gcGxhdGZvcm1zIHdoZXJlIHdlIGRvIHRoaXMgc28gSSB0aGluayBpdCdzIGFjY2Vw
dGFibGUuCisKIDIwMTItMDEtMDkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIFtBQ10gU2ltcGxpZnkgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgYnVpbGQgb3B0aW9ucwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122653</attachid>
            <date>2012-01-16 09:17:32 -0800</date>
            <delta_ts>2012-01-18 05:26:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76068-20120116181731.patch</filename>
            <type>text/plain</type>
            <size>34134</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc4OTc1ZmYyMDU2ZmM4
ZjBhMjY2ODRlMjg4ZjhmY2M1MzdkMjU5YS4uY2NjNzJmMjY2ZTI4ZDkzMTE0NzdlOGUyMWNjYTFi
OWJiNjRmMWFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTE2ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIENsZWFudXAg
dGVzdGZvbnRzIGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NjA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgRmFjdG9yIHRlc3QgZm9udCBpbml0aWFsaXphdGlvbiBpbnRvIGl0J3Mgb3duIGZpbGUgaW4g
V2ViQ29yZQorICAgICAgICBzbyB0ZXN0IGZvbnQgdXNlcnMgY2FuIHNoYXJlIHRoZSBpbXBsZW1l
bnRhdGlvbiBieSBhZGRpbmcgdGhlIGZpbGUKKyAgICAgICAgdG8gdGhlaXIgYnVpbGQuCisgICAg
ICAgIFVzZSBmb250cy5jb25mIGZyb20gdGhlIHRlc3QgZm9udCBkaXJlY3RvcnkgdG8gbm90IHJl
cXVpcmUgdGhlCisgICAgICAgIGN1cnJlbnQgZGlyZWN0b3J5IHRvIGJlIHRoZSBXZWJLaXQgcm9v
dC4gRml4IHRoZSAtdXNlLXRlc3QtZm9udHMKKyAgICAgICAgb3B0aW9uIG9mIFF0VGVzdEJyb3dz
ZXIgYnkgaW5pdGlhbGl6aW5nIHRoZSBmb250cyBlYXJsaWVyLCBiZWZvcmUKKyAgICAgICAgaXQg
aXMgdG9vIGxhdGUgKG5hbWVseSBiZWZvcmUgY2FsbGluZyBzaG93IG9uIHRoZSBtYWluIHdpbmRv
dykuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9RdEluaXRpYWxpemVUZXN0Rm9udHMuY3BwOiBD
b3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0L0FjdGl2
YXRlRm9udHNRdC5jcHAuCisgICAgICAgIChpbml0aWFsaXplVGVzdEZvbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9RdEluaXRpYWxpemVUZXN0Rm9udHMuaDogQWRkZWQuCisKIDIwMTItMDEt
MTYgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAg
TGFyZ2UgU1ZHIHRleHQgbGF5b3V0IHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaW4gcjgxMTY4CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEluaXRpYWxpemVUZXN0Rm9u
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRJbml0aWFsaXplVGVzdEZvbnRz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZmJiM2FhY2I5N2E3ZTJlNDAyNzMxNzlkMTdlYzQ2NTIxODU1MWMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRJbml0aWFs
aXplVGVzdEZvbnRzLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJRdEluaXRpYWxpemVUZXN0Rm9udHMuaCIKKworI2lmIGRlZmluZWQoSEFWRV9GT05UQ09ORklH
KSAmJiBIQVZFX0ZPTlRDT05GSUcKKyNpbmNsdWRlIDxRQnl0ZUFycmF5PgorI2luY2x1ZGUgPFFE
aXI+CisjaW5jbHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIGluaXRpYWxpemVUZXN0Rm9udHMoKQoreworI2lmIGRlZmlu
ZWQoSEFWRV9GT05UQ09ORklHKSAmJiBIQVZFX0ZPTlRDT05GSUcKKyAgICBzdGF0aWMgaW50IG51
bUZvbnRzID0gLTE7CisKKyAgICBGY0luaXQoKTsKKworICAgIC8vIFNvbWUgdGVzdCBjYXNlcyBt
YXkgYWRkIG9yIHJlbW92ZSBhcHBsaWNhdGlvbiBmb250cyAodmlhIEBmb250LWZhY2UpLgorICAg
IC8vIE1ha2Ugc3VyZSB0byByZS1pbml0aWFsaXplIHRoZSBmb250IHNldCBpZiBuZWNlc3Nhcnku
CisgICAgRmNGb250U2V0KiBhcHBGb250U2V0ID0gRmNDb25maWdHZXRGb250cygwLCBGY1NldEFw
cGxpY2F0aW9uKTsKKyAgICBpZiAoYXBwRm9udFNldCAmJiBudW1Gb250cyA+PSAwICYmIGFwcEZv
bnRTZXQtPm5mb250ID09IG51bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICBRQnl0ZUFy
cmF5IGZvbnREaXIgPSBnZXRlbnYoIldFQktJVF9URVNURk9OVFMiKTsKKyAgICBpZiAoZm9udERp
ci5pc0VtcHR5KCkgfHwgIVFEaXIoUVN0cmluZzo6ZnJvbUxhdGluMShmb250RGlyKSkuZXhpc3Rz
KCkpIHsKKyAgICAgICAgcUZhdGFsKCJcblxuIgorICAgICAgICAgICAgICAgICItLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tXG4iCisgICAgICAgICAgICAgICAgIldFQktJVF9URVNURk9OVFMgZW52aXJvbm1lbnQgdmFy
aWFibGUgaXMgbm90IHNldCBjb3JyZWN0bHkuXG4iCisgICAgICAgICAgICAgICAgIlRoaXMgdmFy
aWFibGUgaGFzIHRvIHBvaW50IHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZm9udHNc
biIKKyAgICAgICAgICAgICAgICAieW91IGNhbiBjbG9uZSBmcm9tIGdpdDovL2dpdG9yaW91cy5v
cmcvcXR3ZWJraXQvdGVzdGZvbnRzLmdpdFxuIgorICAgICAgICAgICAgICAgICItLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tXG4iCisgICAgICAgICAgICAgICApOworICAgIH0KKworICAgIFFCeXRlQXJyYXkgY29uZmln
RmlsZSA9IGZvbnREaXIgKyAiL2ZvbnRzLmNvbmYiOworICAgIEZjQ29uZmlnKiBjb25maWcgPSBG
Y0NvbmZpZ0NyZWF0ZSgpOworICAgIGlmICghRmNDb25maWdQYXJzZUFuZExvYWQoY29uZmlnLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihjb25maWdGaWxlLmNvbnN0RGF0YSgpKSwg
RmNUcnVlKSkKKyAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBsb2FkIGZvbnQgY29uZmlndXJhdGlv
biBmaWxlIik7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGREaXIoY29uZmlnLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmb250RGlyLmRhdGEoKSkpKQorICAgICAgICBxRmF0
YWwoIkNvdWxkbid0IGFkZCBmb250IGRpciEiKTsKKyAgICBGY0NvbmZpZ1NldEN1cnJlbnQoY29u
ZmlnKTsKKworICAgIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRB
cHBsaWNhdGlvbik7CisgICAgbnVtRm9udHMgPSBhcHBGb250U2V0LT5uZm9udDsKKyNlbmRpZgor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEluaXRpYWxp
emVUZXN0Rm9udHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0SW5pdGlhbGl6ZVRl
c3RGb250cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDZmMjA1YTIxNGY3ZjY4Yzk3OTFkNjI1NTY5OTM5Njcw
NTdmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdElu
aXRpYWxpemVUZXN0Rm9udHMuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUXRJbml0aWFsaXplVGVzdEZvbnRzX2gKKyNkZWZpbmUgUXRJbml0aWFsaXplVGVzdEZvbnRz
X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBIZWxwZXIgdG8gc2hhcmUgY29kZSBiZXR3
ZWVuIHRlc3QgZm9udCB1c2Vycy4KK3ZvaWQgaW5pdGlhbGl6ZVRlc3RGb250cygpOworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDljNDJmMjgxNjE1ZDE3MGFiZTViZjc1YTQxNTMxYWEyMWRhNjYwOGQuLmY5ZTcxMTE2OGMw
NjA2MWUwNzU0ZmQ3ZjFhYzRjMWFlMTcxNGU0MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wMS0xNiAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1F0XSBDbGVhbnVw
IHRlc3Rmb250cyBoYW5kbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzYwNjgKKworICAgICAgICBGYWN0b3IgdGVzdCBmb250IGluaXRpYWxpemF0
aW9uIGludG8gaXQncyBvd24gZmlsZSBpbiBXZWJDb3JlCisgICAgICAgIHNvIHRlc3QgZm9udCB1
c2VycyBjYW4gc2hhcmUgdGhlIGltcGxlbWVudGF0aW9uIGJ5IGFkZGluZyB0aGUgZmlsZQorICAg
ICAgICB0byB0aGVpciBidWlsZC4KKyAgICAgICAgVXNlIGZvbnRzLmNvbmYgZnJvbSB0aGUgdGVz
dCBmb250IGRpcmVjdG9yeSB0byBub3QgcmVxdWlyZSB0aGUKKyAgICAgICAgY3VycmVudCBkaXJl
Y3RvcnkgdG8gYmUgdGhlIFdlYktpdCByb290LiBGaXggdGhlIC11c2UtdGVzdC1mb250cworICAg
ICAgICBvcHRpb24gb2YgUXRUZXN0QnJvd3NlciBieSBpbml0aWFsaXppbmcgdGhlIGZvbnRzIGVh
cmxpZXIsIGJlZm9yZQorICAgICAgICBpdCBpcyB0b28gbGF0ZSAobmFtZWx5IGJlZm9yZSBjYWxs
aW5nIHNob3cgb24gdGhlIG1haW4gd2luZG93KS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6Om9wZW4pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9mb250cy5jb25mOiAgUmVtb3ZlZC4gTm8gbmVlZCBmb3IgdGhpcyBzaW5j
ZQorICAgICAgICB3ZSB3aWxsIHVzZSB0aGUgb25lIGZyb20gdGhlIHRlc3QgZm9udHMgZGlyZWN0
b3J5LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwOgorICAgICAgICAobWFp
bik6ICBGaXggdGhlIGlmZGVmcyB0byBtYWtlIGl0IGNsZWFyIHRoYXQgdGhlIGNvZGUgdG8KKyAg
ICAgICAgc2V0IHVwIHRoZSBEUEkgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byBRdDUgeWV0LgorICAg
ICAgICAqIFF0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaDoKKyAgICAgICAgKFdpbmRvd09w
dGlvbnM6OldpbmRvd09wdGlvbnMpOgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbWFpbi5jcHA6
CisgICAgICAgIChsYXVuY2hlck1haW4pOgorICAgICAgICAoTGF1bmNoZXJBcHBsaWNhdGlvbjo6
aGFuZGxlVXNlck9wdGlvbnMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvcXQvQWN0aXZhdGVGb250c1F0LmNwcDoKKyAgICAgICAgKFdUUjo6YWN0aXZhdGVGb250
cyk6IENhbGwgdGhlIGhlbHBlciB0byBpbml0aWFsaXplIHRlc3Rmb250cy4KKyAgICAgICAgUmVt
b3ZlIHRoZSBjb2RlIHRvIHNldCB1cCB0aGUgRFBJIGJlY2F1c2UgaXQgZG9lcyBub3Qgd29yayB3
aXRoIFF0NS4KKwogMjAxMi0wMS0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gbGRmbGFncyBhbmQgY2ZsYWdzIHNob3VsZCB0YWtl
IHByZWNlZGVuY2Ugb3ZlciB0aGUgZXhpc3RpbmcgZmxhZ3MgaW4gZ3RrZG9jLnB5CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8KaW5kZXggYzEyYzNmN2MzZTg5ODAz
ZWE0MzQxNzQyZTM0NWUyYjhhNzIzOTVmZi4uN2ExYWQ5MzE4MWMyODg2Nzg2NTUxYjRhODcwNTcz
MDk4YmFiZGYxMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWUucHJvCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBy
bwpAQCAtMTcsNiArMTcsNyBAQCBDT05GSUcgKz0gcXR3ZWJraXQKIAogSU5DTFVERVBBVEggKz0g
XAogICAgICQkUFdELy4uIFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0IFwKICAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQKIAogUVQgPSBjb3JlIGd1aSBuZXR3b3JrIHRlc3RsaWIKQEAgLTI2LDYg
KzI3LDcgQEAgaGF2ZVF0KDUpOiBRVCArPSB3aWRnZXRzIHByaW50c3VwcG9ydAogY29udGFpbnMo
REVGSU5FUywgSEFWRV9GT05UQ09ORklHPTEpOiBQS0dDT05GSUcgKz0gZm9udGNvbmZpZwogCiBI
RUFERVJTICs9IFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5oIFwKICAgICAkJFBXRC8uLi9Xb3JrUXVldWUu
aCBcCiAgICAgRHVtcFJlbmRlclRyZWVRdC5oIFwKICAgICBFdmVudFNlbmRlclF0LmggXApAQCAt
MzQsMTAgKzM2LDEyIEBAIEhFQURFUlMgKz0gXAogICAgIExheW91dFRlc3RDb250cm9sbGVyUXQu
aCBcCiAgICAgR0NDb250cm9sbGVyUXQuaCBcCiAgICAgUGxhaW5UZXh0Q29udHJvbGxlclF0Lmgg
XAorICAgIFF0SW5pdGlhbGl6ZVRlc3RGb250cy5oIFwKICAgICB0ZXN0cGx1Z2luLmgKIAogU09V
UkNFUyArPSBcCiAgICAgJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0Fzc2VydGlvbnMuY3BwIFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5jcHAgXAogICAgICQkUFdELy4u
L1dvcmtRdWV1ZS5jcHAgXAogICAgIER1bXBSZW5kZXJUcmVlUXQuY3BwIFwKICAgICBFdmVudFNl
bmRlclF0LmNwcCBcCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCmluZGV4IGU3YTQ5ODA1NmYxNWZhNTljYzM4YWJkYTk3YzgxZjhkMzllZGFlZDMuLjNiMDVl
NGM5YTI4OTQ1ZWQ2OGE0YWI5MTk3MDAwMGViNDZhNWYxODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIgogI2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xs
ZXJRdC5oIgogI2luY2x1ZGUgIlBsYWluVGV4dENvbnRyb2xsZXJRdC5oIgorI2luY2x1ZGUgIlF0
SW5pdGlhbGl6ZVRlc3RGb250cy5oIgogI2luY2x1ZGUgInRlc3RwbHVnaW4uaCIKICNpbmNsdWRl
ICJXb3JrUXVldWUuaCIKIApAQCAtNjYsMTAgKzY3LDYgQEAKICNpbmNsdWRlIDxxd2Vic2V0dGlu
Z3MuaD4KICNpbmNsdWRlIDxxd2Vic2VjdXJpdHlvcmlnaW4uaD4KIAotI2lmIEhBVkUoRk9OVENP
TkZJRykKLSNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KLSNlbmRpZgotCiAjaW5j
bHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CiAKQEAgLTYyOSw3ICs2MjYsNyBA
QCB2b2lkIER1bXBSZW5kZXJUcmVlOjpvcGVuKGNvbnN0IFFVcmwmIHVybCkKICNpZiAhKFFUX1ZF
UlNJT04gPD0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2LCAyKSkKICAgICBRRm9udERhdGFiYXNlOjpy
ZW1vdmVBbGxBcHBsaWNhdGlvbkZvbnRzKCk7CiAjZW5kaWYKLSAgICBpbml0aWFsaXplRm9udHMo
KTsKKyAgICBpbml0aWFsaXplVGVzdEZvbnRzKCk7CiAKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6ZHVtcEZyYW1lTG9hZGVyKHVybC50b1N0cmluZygpLmNvbnRhaW5zKCJsb2FkaW5nLyIp
KTsKICAgICBzZXRUZXh0T3V0cHV0RW5hYmxlZCh0cnVlKTsKQEAgLTExNDEsNDYgKzExMzgsNCBA
QCBRTGlzdDxXZWJQYWdlKj4gRHVtcFJlbmRlclRyZWU6OmdldEFsbFBhZ2VzKCkgY29uc3QKICAg
ICByZXR1cm4gcGFnZXM7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWU6OmluaXRpYWxpemVGb250
cygpCi17Ci0jaWYgSEFWRShGT05UQ09ORklHKQotICAgIHN0YXRpYyBpbnQgbnVtRm9udHMgPSAt
MTsKLQotICAgIEZjSW5pdCgpOwotCi0gICAgLy8gU29tZSB0ZXN0IGNhc2VzIG1heSBhZGQgb3Ig
cmVtb3ZlIGFwcGxpY2F0aW9uIGZvbnRzICh2aWEgQGZvbnQtZmFjZSkuCi0gICAgLy8gTWFrZSBz
dXJlIHRvIHJlLWluaXRpYWxpemUgdGhlIGZvbnQgc2V0IGlmIG5lY2Vzc2FyeS4KLSAgICBGY0Zv
bnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24p
OwotICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzID49IDAgJiYgYXBwRm9udFNldC0+bmZv
bnQgPT0gbnVtRm9udHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIFFCeXRlQXJyYXkgZm9udERp
ciA9IGdldGVudigiV0VCS0lUX1RFU1RGT05UUyIpOwotICAgIGlmIChmb250RGlyLmlzRW1wdHko
KSB8fCAhUURpcihmb250RGlyKS5leGlzdHMoKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwK
LSAgICAgICAgICAgICAgICAiXG5cbiIKLSAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxu
IgotICAgICAgICAgICAgICAgICJXRUJLSVRfVEVTVEZPTlRTIGVudmlyb25tZW50IHZhcmlhYmxl
IGlzIG5vdCBzZXQgY29ycmVjdGx5LlxuIgotICAgICAgICAgICAgICAgICJUaGlzIHZhcmlhYmxl
IGhhcyB0byBwb2ludCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGZvbnRzXG4iCi0g
ICAgICAgICAgICAgICAgInlvdSBjYW4gY2xvbmUgZnJvbSBnaXQ6Ly9naXRvcmlvdXMub3JnL3F0
d2Via2l0L3Rlc3Rmb250cy5naXRcbiIKLSAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxu
IgotICAgICAgICAgICAgICAgKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0gICAgY2hhciBj
dXJyZW50UGF0aFtQQVRIX01BWCsxXTsKLSAgICBpZiAoIWdldGN3ZChjdXJyZW50UGF0aCwgUEFU
SF9NQVgpKQotICAgICAgICBxRmF0YWwoIkNvdWxkbid0IGdldCBjdXJyZW50IHdvcmtpbmcgZGly
ZWN0b3J5Iik7Ci0gICAgUUJ5dGVBcnJheSBjb25maWdGaWxlID0gY3VycmVudFBhdGg7Ci0gICAg
RmNDb25maWcgKmNvbmZpZyA9IEZjQ29uZmlnQ3JlYXRlKCk7Ci0gICAgY29uZmlnRmlsZSArPSAi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L2ZvbnRzLmNvbmYiOwotICAgIGlmICghRmNDb25maWdQ
YXJzZUFuZExvYWQgKGNvbmZpZywgKEZjQ2hhcjgqKSBjb25maWdGaWxlLmRhdGEoKSwgdHJ1ZSkp
Ci0gICAgICAgIHFGYXRhbCgiQ291bGRuJ3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSIp
OwotICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRGlyIChjb25maWcsIChGY0NoYXI4KikgZm9u
dERpci5kYXRhKCkpKQotICAgICAgICBxRmF0YWwoIkNvdWxkbid0IGFkZCBmb250IGRpciEiKTsK
LSAgICBGY0NvbmZpZ1NldEN1cnJlbnQoY29uZmlnKTsKLQotICAgIGFwcEZvbnRTZXQgPSBGY0Nv
bmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRBcHBsaWNhdGlvbik7Ci0gICAgbnVtRm9udHMgPSBh
cHBGb250U2V0LT5uZm9udDsKLSNlbmRpZgotfQotCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZVF0LmgKaW5kZXggNzdiNmU0NjFmYTgzNmExMjBmYWFmOWZmN2U3NjM1
YjhiMGJhYTg5ZC4uNWUxZDZiNGIyN2JkMzU5YjdjYTkyNWQ4OTUzOTEyZTUwOTk1ZDk2YyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtMTAyLDggKzEw
Miw2IEBAIHB1YmxpYzoKICAgICBXZWJQYWdlICp3ZWJQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlOyB9CiAgICAgUUxpc3Q8V2ViUGFnZSo+IGdldEFsbFBhZ2VzKCkgY29uc3Q7CiAKLSAgICBz
dGF0aWMgdm9pZCBpbml0aWFsaXplRm9udHMoKTsKLQogICAgIHZvaWQgcHJvY2Vzc0FyZ3NMaW5l
KGNvbnN0IFFTdHJpbmdMaXN0Jik7CiAgICAgdm9pZCBzZXRSZWRpcmVjdE91dHB1dEZpbGVOYW1l
KGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1lKSB7IG1fcmVkaXJlY3RPdXRwdXRGaWxlTmFtZSA9IGZp
bGVOYW1lOyB9CiAgICAgdm9pZCBzZXRSZWRpcmVjdEVycm9yRmlsZU5hbWUoY29uc3QgUVN0cmlu
ZyYgZmlsZU5hbWUpIHsgbV9yZWRpcmVjdEVycm9yRmlsZU5hbWUgPSBmaWxlTmFtZTsgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZiBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L2ZvbnRzLmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5
NTA3ZDQyNWJkZDNlMzc2NmRiNGZmNjU3MjYyOWNhNThiMzM4MWYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9u
dHMuY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDI3NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz4KLTwhRE9DVFlQRSBmb250Y29uZmlnIFNZU1RFTSAiZm9udHMuZHRkIj4KLTxmb250Y29u
ZmlnPgotCi08IS0tCi0gIEFjY2VwdCBkZXByZWNhdGVkICdtb25vJyBhbGlhcywgcmVwbGFjaW5n
IGl0IHdpdGggJ21vbm9zcGFjZScKLS0tPgotCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotCQk8
dGVzdCBxdWFsPSJhbnkiIG5hbWU9ImZhbWlseSI+Ci0JCQk8c3RyaW5nPm1vbm88L3N0cmluZz4K
LQkJPC90ZXN0PgotCQk8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFzc2lnbiI+Ci0JCQk8c3Ry
aW5nPm1vbm9zcGFjZTwvc3RyaW5nPgotCQk8L2VkaXQ+Ci0JPC9tYXRjaD4KLQotPCEtLQotICBB
Y2NlcHQgYWx0ZXJuYXRlICdzYW5zIHNlcmlmJyBzcGVsbGluZywgcmVwbGFjaW5nIGl0IHdpdGgg
J3NhbnMtc2VyaWYnCi0tLT4KLQk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLQkJPHRlc3QgcXVh
bD0iYW55IiBuYW1lPSJmYW1pbHkiPgotCQkJPHN0cmluZz5zYW5zIHNlcmlmPC9zdHJpbmc+Ci0J
CTwvdGVzdD4KLQkJPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhc3NpZ24iPgotCQkJPHN0cmlu
Zz5zYW5zLXNlcmlmPC9zdHJpbmc+Ci0JCTwvZWRpdD4KLQk8L21hdGNoPgotCi08IS0tCi0gIEFj
Y2VwdCBkZXByZWNhdGVkICdzYW5zJyBhbGlhcywgcmVwbGFjaW5nIGl0IHdpdGggJ3NhbnMtc2Vy
aWYnCi0tLT4KLQk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLQkJPHRlc3QgcXVhbD0iYW55IiBu
YW1lPSJmYW1pbHkiPgotCQkJPHN0cmluZz5zYW5zPC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPGVk
aXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhc3NpZ24iPgotCQkJPHN0cmluZz5zYW5zLXNlcmlmPC9z
dHJpbmc+Ci0JCTwvZWRpdD4KLQk8L21hdGNoPgotCi08IS0tCi0gIElmIHRoZSBmb250IHN0aWxs
IGhhcyBubyBnZW5lcmljIG5hbWUsIGFkZCBzYW5zLXNlcmlmCi0gLS0+Ci0JPG1hdGNoIHRhcmdl
dD0icGF0dGVybiI+Ci0JCTx0ZXN0IHF1YWw9ImFsbCIgbmFtZT0iZmFtaWx5IiBjb21wYXJlPSJu
b3RfZXEiPgotCQkJPHN0cmluZz5zYW5zLXNlcmlmPC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPHRl
c3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1pbHkiIGNvbXBhcmU9Im5vdF9lcSI+Ci0JCQk8c3RyaW5n
PnNlcmlmPC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPHRlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1p
bHkiIGNvbXBhcmU9Im5vdF9lcSI+Ci0JCQk8c3RyaW5nPm1vbm9zcGFjZTwvc3RyaW5nPgotCQk8
L3Rlc3Q+Ci0JCTxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kX2xhc3QiPgotCQkJPHN0
cmluZz5zYW5zLXNlcmlmPC9zdHJpbmc+Ci0JCTwvZWRpdD4KLQk8L21hdGNoPgotCi0JPGNvbmZp
Zz4KLTwhLS0KLSAgVGhlc2UgYXJlIHRoZSBkZWZhdWx0IFVuaWNvZGUgY2hhcnMgdGhhdCBhcmUg
ZXhwZWN0ZWQgdG8gYmUgYmxhbmsKLSAgaW4gZm9udHMuICBBbGwgb3RoZXIgYmxhbmsgY2hhcnMg
YXJlIGFzc3VtZWQgdG8gYmUgYnJva2VuIGFuZAotICB3b24ndCBhcHBlYXIgaW4gdGhlIHJlc3Vs
dGluZyBjaGFyc2V0cwotIC0tPgotCQk8Ymxhbms+Ci0JCQk8aW50PjB4MDAyMDwvaW50Pgk8IS0t
IFNQQUNFIC0tPgotCQkJPGludD4weDAwQTA8L2ludD4JPCEtLSBOTy1CUkVBSyBTUEFDRSAtLT4K
LQkJCTxpbnQ+MHgwMEFEPC9pbnQ+CTwhLS0gU09GVCBIWVBIRU4gLS0+Ci0JCQk8aW50PjB4MDM0
RjwvaW50Pgk8IS0tIENPTUJJTklORyBHUkFQSEVNRSBKT0lORVIgLS0+Ci0JCQk8aW50PjB4MDYw
MDwvaW50Pgk8IS0tIEFSQUJJQyBOVU1CRVIgU0lHTiAtLT4KLQkJCTxpbnQ+MHgwNjAxPC9pbnQ+
CTwhLS0gQVJBQklDIFNJR04gU0FOQUggLS0+Ci0JCQk8aW50PjB4MDYwMjwvaW50Pgk8IS0tIEFS
QUJJQyBGT09UTk9URSBNQVJLRVIgLS0+Ci0JCQk8aW50PjB4MDYwMzwvaW50Pgk8IS0tIEFSQUJJ
QyBTSUdOIFNBRkhBIC0tPgotCQkJPGludD4weDA2REQ8L2ludD4JPCEtLSBBUkFCSUMgRU5EIE9G
IEFZQUggLS0+Ci0JCQk8aW50PjB4MDcwRjwvaW50Pgk8IS0tIFNZUklBQyBBQkJSRVZJQVRJT04g
TUFSSyAtLT4KLQkJCTxpbnQ+MHgxMTVGPC9pbnQ+CTwhLS0gSEFOR1VMIENIT1NFT05HIEZJTExF
UiAtLT4KLQkJCTxpbnQ+MHgxMTYwPC9pbnQ+CTwhLS0gSEFOR1VMIEpVTkdTRU9ORyBGSUxMRVIg
LS0+Ci0JCQk8aW50PjB4MTY4MDwvaW50Pgk8IS0tIE9HSEFNIFNQQUNFIE1BUksgLS0+Ci0JCQk8
aW50PjB4MTdCNDwvaW50Pgk8IS0tIEtITUVSIFZPV0VMIElOSEVSRU5UIEFRIC0tPgotCQkJPGlu
dD4weDE3QjU8L2ludD4JPCEtLSBLSE1FUiBWT1dFTCBJTkhFUkVOVCBBQSAtLT4KLQkJCTxpbnQ+
MHgxODBFPC9pbnQ+CTwhLS0gTU9OR09MSUFOIFZPV0VMIFNFUEFSQVRPUiAtLT4KLQkJCTxpbnQ+
MHgyMDAwPC9pbnQ+CTwhLS0gRU4gUVVBRCAtLT4KLQkJCTxpbnQ+MHgyMDAxPC9pbnQ+CTwhLS0g
RU0gUVVBRCAtLT4KLQkJCTxpbnQ+MHgyMDAyPC9pbnQ+CTwhLS0gRU4gU1BBQ0UgLS0+Ci0JCQk8
aW50PjB4MjAwMzwvaW50Pgk8IS0tIEVNIFNQQUNFIC0tPgotCQkJPGludD4weDIwMDQ8L2ludD4J
PCEtLSBUSFJFRS1QRVItRU0gU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwNTwvaW50Pgk8IS0tIEZP
VVItUEVSLUVNIFNQQUNFIC0tPgotCQkJPGludD4weDIwMDY8L2ludD4JPCEtLSBTSVgtUEVSLUVN
IFNQQUNFIC0tPgotCQkJPGludD4weDIwMDc8L2ludD4JPCEtLSBGSUdVUkUgU1BBQ0UgLS0+Ci0J
CQk8aW50PjB4MjAwODwvaW50Pgk8IS0tIFBVTkNUVUFUSU9OIFNQQUNFIC0tPgotCQkJPGludD4w
eDIwMDk8L2ludD4JPCEtLSBUSElOIFNQQUNFIC0tPgotCQkJPGludD4weDIwMEE8L2ludD4JPCEt
LSBIQUlSIFNQQUNFIC0tPgotCQkJPGludD4weDIwMEI8L2ludD4JPCEtLSBaRVJPIFdJRFRIIFNQ
QUNFIC0tPgotCQkJPGludD4weDIwMEM8L2ludD4JPCEtLSBaRVJPIFdJRFRIIE5PTi1KT0lORVIg
LS0+Ci0JCQk8aW50PjB4MjAwRDwvaW50Pgk8IS0tIFpFUk8gV0lEVEggSk9JTkVSIC0tPgotCQkJ
PGludD4weDIwMEU8L2ludD4JPCEtLSBMRUZULVRPLVJJR0hUIE1BUksgLS0+Ci0JCQk8aW50PjB4
MjAwRjwvaW50Pgk8IS0tIFJJR0hULVRPLUxFRlQgTUFSSyAtLT4KLQkJCTxpbnQ+MHgyMDI4PC9p
bnQ+CTwhLS0gTElORSBTRVBBUkFUT1IgLS0+Ci0JCQk8aW50PjB4MjAyOTwvaW50Pgk8IS0tIFBB
UkFHUkFQSCBTRVBBUkFUT1IgLS0+Ci0JCQk8aW50PjB4MjAyQTwvaW50Pgk8IS0tIExFRlQtVE8t
UklHSFQgRU1CRURESU5HIC0tPgotCQkJPGludD4weDIwMkI8L2ludD4JPCEtLSBSSUdIVC1UTy1M
RUZUIEVNQkVERElORyAtLT4KLQkJCTxpbnQ+MHgyMDJDPC9pbnQ+CTwhLS0gUE9QIERJUkVDVElP
TkFMIEZPUk1BVFRJTkcgLS0+Ci0JCQk8aW50PjB4MjAyRDwvaW50Pgk8IS0tIExFRlQtVE8tUklH
SFQgT1ZFUlJJREUgLS0+Ci0JCQk8aW50PjB4MjAyRTwvaW50Pgk8IS0tIFJJR0hULVRPLUxFRlQg
T1ZFUlJJREUgLS0+Ci0JCQk8aW50PjB4MjAyRjwvaW50Pgk8IS0tIE5BUlJPVyBOTy1CUkVBSyBT
UEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDVGPC9pbnQ+CTwhLS0gTUVESVVNIE1BVEhFTUFUSUNBTCBT
UEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDYwPC9pbnQ+CTwhLS0gV09SRCBKT0lORVIgLS0+Ci0JCQk8
aW50PjB4MjA2MTwvaW50Pgk8IS0tIEZVTkNUSU9OIEFQUExJQ0FUSU9OIC0tPgotCQkJPGludD4w
eDIwNjI8L2ludD4JPCEtLSBJTlZJU0lCTEUgVElNRVMgLS0+Ci0JCQk8aW50PjB4MjA2MzwvaW50
Pgk8IS0tIElOVklTSUJMRSBTRVBBUkFUT1IgLS0+Ci0JCQk8aW50PjB4MjA2QTwvaW50Pgk8IS0t
IElOSElCSVQgU1lNTUVUUklDIFNXQVBQSU5HIC0tPgotCQkJPGludD4weDIwNkI8L2ludD4JPCEt
LSBBQ1RJVkFURSBTWU1NRVRSSUMgU1dBUFBJTkcgLS0+Ci0JCQk8aW50PjB4MjA2QzwvaW50Pgk8
IS0tIElOSElCSVQgQVJBQklDIEZPUk0gU0hBUElORyAtLT4KLQkJCTxpbnQ+MHgyMDZEPC9pbnQ+
CTwhLS0gQUNUSVZBVEUgQVJBQklDIEZPUk0gU0hBUElORyAtLT4KLQkJCTxpbnQ+MHgyMDZFPC9p
bnQ+CTwhLS0gTkFUSU9OQUwgRElHSVQgU0hBUEVTIC0tPgotCQkJPGludD4weDIwNkY8L2ludD4J
PCEtLSBOT01JTkFMIERJR0lUIFNIQVBFUyAtLT4KLQkJCTxpbnQ+MHgzMDAwPC9pbnQ+CTwhLS0g
SURFT0dSQVBISUMgU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MzE2NDwvaW50Pgk8IS0tIEhBTkdVTCBG
SUxMRVIgLS0+Ci0JCQk8aW50PjB4RkVGRjwvaW50Pgk8IS0tIFpFUk8gV0lEVEggTk8tQlJFQUsg
U1BBQ0UgLS0+Ci0JCQk8aW50PjB4RkZBMDwvaW50Pgk8IS0tIEhBTEZXSURUSCBIQU5HVUwgRklM
TEVSIC0tPgotCQkJPGludD4weEZGRjk8L2ludD4JPCEtLSBJTlRFUkxJTkVBUiBBTk5PVEFUSU9O
IEFOQ0hPUiAtLT4KLQkJCTxpbnQ+MHhGRkZBPC9pbnQ+CTwhLS0gSU5URVJMSU5FQVIgQU5OT1RB
VElPTiBTRVBBUkFUT1IgLS0+Ci0JCQk8aW50PjB4RkZGQjwvaW50Pgk8IS0tIElOVEVSTElORUFS
IEFOTk9UQVRJT04gVEVSTUlOQVRPUiAtLT4KLQkJPC9ibGFuaz4KLTwhLS0KLSAgUmVzY2FuIGNv
bmZpZ3VyYXRpb24gZXZlcnkgMzAgc2Vjb25kcyB3aGVuIEZjRm9udFNldExpc3QgaXMgY2FsbGVk
Ci0gLS0+Ci0JCTxyZXNjYW4+Ci0JCQk8aW50PjMwPC9pbnQ+Ci0JCTwvcmVzY2FuPgotCTwvY29u
ZmlnPgotCi08IS0tCi0gIFVSVyBwcm92aWRlcyBtZXRyaWMgYW5kIHNoYXBlIGNvbXBhdGlibGUg
Zm9udHMgZm9yIHRoZXNlIDEwIEFkb2JlIGZhbWlsaWVzLgotCi0gIEhvd2V2ZXIsIHRoZXNlIGZv
bnRzIGFyZSBxdWl0ZSB1Z2x5IGFuZCBkbyBub3QgcmVuZGVyIHdlbGwgb24tc2NyZWVuLAotICBz
byB3ZSBhdm9pZCBtYXRjaGluZyB0aGVtIGlmIHRoZSBhcHBsaWNhdGlvbiBzYWlkIGBhbnltZXRy
aWNzJzsgaW4gdGhhdAotICBjYXNlLCBhIG1vcmUgZ2VuZXJpYyBmb250IHdpdGggZGlmZmVyZW50
IG1ldHJpY3MgYnV0IGJldHRlciBhcHBlYXJhbmNlCi0gIHdpbGwgYmUgdXNlZC4KLSAgLS0+Ci0g
ICAgICAgCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZh
bWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5nPkF2YW50IEdhcmRlPC9zdHJpbmc+Ci0gICAgICAg
ICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIg
Y29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAg
ICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4K
LSAgICAgICAgICAgIDxzdHJpbmc+VVJXIEdvdGhpYyBMPC9zdHJpbmc+Ci0gICAgICAgICAgPC9l
ZGl0PgotICAgICAJPC9tYXRjaD4KLSAgICAgICAJPG1hdGNoIHRhcmdldD0icGF0dGVybiI+Ci0g
ICAgICAgICAgPHRlc3QgbmFtZT0iZmFtaWx5Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+Qm9va21h
bjwvc3RyaW5nPgotICAgICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJhbnlt
ZXRyaWNzIiBxdWFsPSJhbGwiIGNvbXBhcmU9Im5vdF9lcSI+Ci0gICAgICAgICAgICA8Ym9vbD50
cnVlPC9ib29sPgotICAgICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8ZWRpdCBuYW1lPSJmYW1p
bHkiIG1vZGU9ImFwcGVuZCI+Ci0gICAgICAgICAgICA8c3RyaW5nPlVSVyBCb29rbWFuIEw8L3N0
cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2gg
dGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAg
ICAgICAgPHN0cmluZz5Db3VyaWVyPC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAg
ICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4K
LSAgICAgICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAg
ICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJp
bmc+TmltYnVzIE1vbm8gTDwvc3RyaW5nPgotICAgICAgICAgIDwvZWRpdD4KLSAgICAgCTwvbWF0
Y2g+Ci0gICAgICAgCTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5h
bWU9ImZhbWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5nPkhlbHZldGljYTwvc3RyaW5nPgotICAg
ICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBxdWFsPSJh
bGwiIGNvbXBhcmU9Im5vdF9lcSI+Ci0gICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgotICAg
ICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVu
ZCI+Ci0gICAgICAgICAgICA8c3RyaW5nPk5pbWJ1cyBTYW5zIEw8L3N0cmluZz4KLSAgICAgICAg
ICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJu
Ij4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5O
ZXcgQ2VudHVyeSBTY2hvb2xib29rPC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAg
ICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4K
LSAgICAgICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAg
ICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJp
bmc+Q2VudHVyeSBTY2hvb2xib29rIEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAg
IAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8
dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5QYWxhdGlubzwvc3RyaW5n
PgotICAgICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBx
dWFsPSJhbGwiIGNvbXBhcmU9Im5vdF9lcSI+Ci0gICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29s
PgotICAgICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9
ImFwcGVuZCI+Ci0gICAgICAgICAgICA8c3RyaW5nPlVSVyBQYWxsYWRpbyBMPC9zdHJpbmc+Ci0g
ICAgICAgICAgPC9lZGl0PgotICAgICAJPC9tYXRjaD4KLSAgICAgICAJPG1hdGNoIHRhcmdldD0i
cGF0dGVybiI+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iZmFtaWx5Ij4KLSAgICAgICAgICAgIDxz
dHJpbmc+VGltZXM8L3N0cmluZz4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3Qg
bmFtZT0iYW55bWV0cmljcyIgcXVhbD0iYWxsIiBjb21wYXJlPSJub3RfZXEiPgotICAgICAgICAg
ICAgPGJvb2w+dHJ1ZTwvYm9vbD4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQg
bmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmQiPgotICAgICAgICAgICAgPHN0cmluZz5OaW1idXMg
Um9tYW4gTm85IEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgot
ICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJm
YW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5aYXBmIENoYW5jZXJ5PC9zdHJpbmc+Ci0gICAg
ICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFs
bCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAg
ICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5k
Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+VVJXIENoYW5jZXJ5IEw8L3N0cmluZz4KLSAgICAgICAg
ICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJu
Ij4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5a
YXBmIERpbmdiYXRzPC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0
IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAg
ICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0
IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+RGluZ2Jh
dHM8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgICA8
bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgot
ICAgICAgICAgICAgPHN0cmluZz5TeW1ib2w8L3N0cmluZz4KLSAgICAgICAgICA8L3Rlc3Q+Ci0g
ICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0cmljcyIgcXVhbD0iYWxsIiBjb21wYXJlPSJub3Rf
ZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1ZTwvYm9vbD4KLSAgICAgICAgICA8L3Rlc3Q+Ci0g
ICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmQiIGJpbmRpbmc9InNhbWUi
PgotICAgICAgICAgICAgPHN0cmluZz5TdGFuZGFyZCBTeW1ib2xzIEw8L3N0cmluZz4KLSAgICAg
ICAgICA8L2VkaXQ+Ci0gICAgICAgIDwvbWF0Y2g+Ci0KLTwhLS0KLSAgU2VyaWYgZmFjZXMKLSAt
LT4KLQk8YWxpYXM+Ci0JCTxmYW1pbHk+TmltYnVzIFJvbWFuIE5vOSBMPC9mYW1pbHk+Ci0JCTxk
ZWZhdWx0PjxmYW1pbHk+c2VyaWY8L2ZhbWlseT48L2RlZmF1bHQ+Ci0JPC9hbGlhcz4KLTwhLS0K
LSAgU2Fucy1zZXJpZiBmYWNlcwotIC0tPgotCTxhbGlhcz4KLQkJPGZhbWlseT5OaW1idXMgU2Fu
cyBMPC9mYW1pbHk+Ci0JCTxkZWZhdWx0PjxmYW1pbHk+c2Fucy1zZXJpZjwvZmFtaWx5PjwvZGVm
YXVsdD4KLQk8L2FsaWFzPgotPCEtLQotICBNb25vc3BhY2UgZmFjZXMKLSAtLT4KLSAJPGFsaWFz
PgotCQk8ZmFtaWx5Pk5pbWJ1cyBNb25vIEw8L2ZhbWlseT4KLQkJPGRlZmF1bHQ+PGZhbWlseT5t
b25vc3BhY2U8L2ZhbWlseT48L2RlZmF1bHQ+Ci0JPC9hbGlhcz4KLQotCi08L2ZvbnRjb25maWc+
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9tYWluLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwCmluZGV4IDNkOTY3M2JlZTQxZTIwMzk1ODJiNDk0ZWYz
YzNlOWMwZTE3NWQ0NjAuLmRhNzljNzc4Y2ZhMjViMjg0YzEyNTM2ZTE3NDViZDRmNmYwNTM0MjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRl
ICJEdW1wUmVuZGVyVHJlZVF0LmgiCiAKKyNpbmNsdWRlICJRdEluaXRpYWxpemVUZXN0Rm9udHMu
aCIKKwogI2luY2x1ZGUgPHd0Zi9BbHdheXNJbmxpbmUuaD4KIAogI2luY2x1ZGUgPHFzdHJpbmds
aXN0Lmg+CkBAIC0xNDksMTMgKzE1MSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJn
dltdKQogICAgIGlmIChzdXBwcmVzc1F0RGVidWdPdXRwdXQpCiAgICAgICAgIHFJbnN0YWxsTXNn
SGFuZGxlcihtZXNzYWdlSGFuZGxlcik7CiAKLSAgICBXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6
aW5pdGlhbGl6ZUZvbnRzKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVRlc3RGb250cygpOwog
CiAgICAgUUFwcGxpY2F0aW9uOjpzZXRHcmFwaGljc1N5c3RlbSgicmFzdGVyIik7CiAgICAgUUFw
cGxpY2F0aW9uOjpzZXRTdHlsZShuZXcgUVdpbmRvd3NTdHlsZSk7CiAKICAgICBRQXBwbGljYXRp
b24gYXBwKGFyZ2MsIGFyZ3YpOwogCisjaWYgUVRfVkVSU0lPTiA8PSBRVF9WRVJTSU9OX0NIRUNL
KDUsIDAsIDApIC8vIEZJWE1FOiBuZWVkIGEgd2F5IHRvIHBvcnQgdGhpcyB0byBRdDUuCiAjaWZk
ZWYgUV9XU19YMTEKICAgICBRWDExSW5mbzo6c2V0QXBwRHBpWSgwLCA5Nik7CiAgICAgUVgxMUlu
Zm86OnNldEFwcERwaVgoMCwgOTYpOwpAQCAtMTczLDYgKzE3Niw3IEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCiAgICAgKiBkZWZhdWx0IGZvbnQsIGJ1dCB3aXRoIHRoZSBjb3Jy
ZWN0IHBhaW50LWRldmljZSBEUEkuCiAgICAqLwogICAgIFFBcHBsaWNhdGlvbjo6c2V0Rm9udChR
V2lkZ2V0KCkuZm9udCgpKTsKKyNlbmRpZgogCiAjaWYgSEFWRShTSUdOQUxfSCkKICAgICBzaWdu
YWwoU0lHSUxMLCBjcmFzaEhhbmRsZXIpOyAgICAvKiA0OiAgIGlsbGVnYWwgaW5zdHJ1Y3Rpb24g
KG5vdCByZXNldCB3aGVuIGNhdWdodCkgKi8KZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dz
ZXIvUXRUZXN0QnJvd3Nlci5wcm8gYi9Ub29scy9RdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIu
cHJvCmluZGV4IDMxNDdkZGFlMGYxNDY1NGVjNzZkOTdiY2Y2MzlkNzI2NzI2MDRiYjQuLmYwZGU1
ZWY4NDRjNmEwM2Q3YTc0YTllOTBlNmIwOWVhMGQ4Mzg3ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0
VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm8KKysrIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9R
dFRlc3RCcm93c2VyLnBybwpAQCAtNiwxMSArNiwxNCBAQAogCiBURU1QTEFURSA9IGFwcAogCi1J
TkNMVURFUEFUSCArPSAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQKK0lOQ0xVREVQQVRIICs9IFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0IFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQgXAogCiBsb2FkKGZlYXR1cmVzKQogCiBTT1VSQ0VTICs9
IFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0
SW5pdGlhbGl6ZVRlc3RGb250cy5jcHAgXAogICAgIGxvY2F0aW9uZWRpdC5jcHAgXAogICAgIGxh
dW5jaGVyd2luZG93LmNwcCBcCiAgICAgbWFpbi5jcHAgXApAQCAtMjMsNiArMjYsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBjb29raWVqYXIuY3BwCiAKIEhFQURFUlMgKz0gXAorICAgICQke1JPT1Rf
V0VCS0lUX0RJUn0vU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRJbml0aWFsaXplVGVzdEZv
bnRzLmggXAogICAgIGxvY2F0aW9uZWRpdC5oIFwKICAgICBsYXVuY2hlcndpbmRvdy5oIFwKICAg
ICBtYWlud2luZG93LmggXApkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hl
cndpbmRvdy5oIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oCmluZGV4IDM0
OTViYWRhODIyODg3ZjM2ZTMwZDc2ZWVlNTAyOTg0MDA4ZGE4NmMuLjlhZWQ2YzAxYWZhMGFkNmQ0
NjgzNDI2YmM3ODJjOGY5MDdjNTg0MjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIv
bGF1bmNoZXJ3aW5kb3cuaAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93
LmgKQEAgLTgzLDkgKzgzLDYgQEAgcHVibGljOgogI2lmbmRlZiBRVF9OT19PUEVOR0wKICAgICAg
ICAgLCB1c2VRR0xXaWRnZXRWaWV3cG9ydChmYWxzZSkKICNlbmRpZgotI2lmIGRlZmluZWQoUV9X
U19YMTEpCi0gICAgICAgICwgdXNlVGVzdEZvbnRzKGZhbHNlKQotI2VuZGlmCiAgICAgICAgICwg
cHJpbnRMb2FkZWRVcmxzKGZhbHNlKQogICAgICAgICAsIHN0YXJ0TWF4aW1pemVkKGZhbHNlKQog
ICAgIHsKQEAgLTEwOSw5ICsxMDYsNiBAQCBwdWJsaWM6CiAjaWZuZGVmIFFUX05PX09QRU5HTAog
ICAgIGJvb2wgdXNlUUdMV2lkZ2V0Vmlld3BvcnQ7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKFFfV1Nf
WDExKQotICAgIGJvb2wgdXNlVGVzdEZvbnRzOwotI2VuZGlmCiAgICAgYm9vbCBwcmludExvYWRl
ZFVybHM7CiAgICAgUVVybCBpbnNwZWN0b3JVcmw7CiAgICAgcXVpbnQxNiByZW1vdGVJbnNwZWN0
b3JQb3J0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWluLmNwcCBiL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvbWFpbi5jcHAKaW5kZXggNjAzYWQ2MTYwOWIxMGZhYWNjYzRlYjQyZDcw
MjdlZjBjYjc5YWY2Mi4uMGVkZTVmZDY2ZWYwZWJjZWRiOGIzYmUxMDFhOTY3YzI1MmM0ZTAwMSAx
MDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWluLmNwcAorKysgYi9Ub29scy9RdFRl
c3RCcm93c2VyL21haW4uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgIkR1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCisjaW5jbHVkZSAiUXRJbml0aWFsaXplVGVzdEZvbnRz
LmgiCiAjaW5jbHVkZSAibGF1bmNoZXJ3aW5kb3cuaCIKICNpbmNsdWRlICJ1cmxsb2FkZXIuaCIK
IApAQCAtNDIsNjEgKzQzLDggQEAgV2luZG93T3B0aW9ucyB3aW5kb3dPcHRpb25zOwogI2luY2x1
ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRRm9udERhdGFiYXNlPgogCi0jaWYgZGVmaW5lZChR
X1dTX1gxMSkKLSNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KLSNlbmRpZgotCi0K
LSNpZiBkZWZpbmVkKFFfV1NfWDExKQotLy8gVmVyeSBzaW1pbGFyIHRvIFdlYkNvcmU6OkR1bXBS
ZW5kZXJUcmVlOjppbml0aWFsaXplRm9udHMoKTsKLS8vIER1cGxpY2F0ZWQgaGVyZSBzbyB0aGF0
IFF0VGVzdEJyb3dzZXIgd291bGQgZGlzcGxheSBjb250ZW50cwotLy8gd2l0aCB0aGUgc2FtZSBm
b250cyBhcyBydW4td2Via2l0LXRlc3RzL0R1bXBSZW5kZXJUcmVlLgotc3RhdGljIHZvaWQgaW5p
dFRlc3RGb250cygpCi17Ci0gICAgc3RhdGljIGludCBudW1Gb250cyA9IC0xOwotCi0gICAgLy8g
U29tZSB0ZXN0IGNhc2VzIG1heSBhZGQgb3IgcmVtb3ZlIGFwcGxpY2F0aW9uIGZvbnRzICh2aWEg
QGZvbnQtZmFjZSkuCi0gICAgLy8gTWFrZSBzdXJlIHRvIHJlLWluaXRpYWxpemUgdGhlIGZvbnQg
c2V0IGlmIG5lY2Vzc2FyeS4KLSAgICBGY0ZvbnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dl
dEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOwotICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZv
bnRzID49IDAgJiYgYXBwRm9udFNldC0+bmZvbnQgPT0gbnVtRm9udHMpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFFCeXRlQXJyYXkgZm9udERpciA9IGdldGVudigiV0VCS0lUX1RFU1RGT05UUyIp
OwotICAgIGlmIChmb250RGlyLmlzRW1wdHkoKSB8fCAhUURpcihmb250RGlyKS5leGlzdHMoKSkg
ewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAiXG5cbiIKLSAgICAg
ICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgICJXRUJLSVRfVEVT
VEZPTlRTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgY29ycmVjdGx5LlxuIgotICAg
ICAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGhhcyB0byBwb2ludCB0byB0aGUgZGlyZWN0b3J5
IGNvbnRhaW5pbmcgdGhlIGZvbnRzXG4iCi0gICAgICAgICAgICAgICAgInlvdSBjYW4gY2xvbmUg
ZnJvbSBnaXQ6Ly9naXRvcmlvdXMub3JnL3F0d2Via2l0L3Rlc3Rmb250cy5naXRcbiIKLSAgICAg
ICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgKTsKLSAgICAgICAg
ZXhpdCgxKTsKLSAgICB9Ci0gICAgLy8gTG9va3MgZm9yIHF0L2ZvbnRzLmNvbmYgcmVsYXRpdmUg
dG8gdGhlIGRpcmVjdG9yeSBvZiB0aGUgUXRUZXN0QnJvd3NlciAKLSAgICAvLyBleGVjdXRhYmxl
LgotICAgIFFTdHJpbmcgY29uZmlnRmlsZVN0cmluZyA9IFFDb3JlQXBwbGljYXRpb246OmFwcGxp
Y2F0aW9uRGlyUGF0aCgpOwotICAgIGNvbmZpZ0ZpbGVTdHJpbmcgKz0gIi8uLi8uLi8uLi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9mb250cy5jb25mIjsKLSAgICBRQnl0ZUFycmF5IGNvbmZpZ0Zp
bGVBcnJheSA9IGNvbmZpZ0ZpbGVTdHJpbmcudG9VdGY4KCk7Ci0gICAgRmNDb25maWcqIGNvbmZp
ZyA9IEZjQ29uZmlnQ3JlYXRlKCk7Ci0gICAgaWYgKCFGY0NvbmZpZ1BhcnNlQW5kTG9hZCAoY29u
ZmlnLCAoRmNDaGFyOCopIGNvbmZpZ0ZpbGVBcnJheS5kYXRhKCksIHRydWUpKQotICAgICAgICBx
RmF0YWwoIkNvdWxkbid0IGxvYWQgZm9udCBjb25maWd1cmF0aW9uIGZpbGUiKTsKLSAgICBpZiAo
IUZjQ29uZmlnQXBwRm9udEFkZERpciAoY29uZmlnLCAoRmNDaGFyOCopIGZvbnREaXIuZGF0YSgp
KSkKLSAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBhZGQgZm9udCBkaXIhIik7Ci0gICAgRmNDb25m
aWdTZXRDdXJyZW50KGNvbmZpZyk7Ci0KLSAgICBhcHBGb250U2V0ID0gRmNDb25maWdHZXRGb250
cyhjb25maWcsIEZjU2V0QXBwbGljYXRpb24pOwotICAgIG51bUZvbnRzID0gYXBwRm9udFNldC0+
bmZvbnQ7Ci19Ci0jZW5kaWYKLQogaW50IGxhdW5jaGVyTWFpbihjb25zdCBRQXBwbGljYXRpb24m
IGFwcCkKIHsKLSNpZmRlZiBRX1dTX1gxMQotICAgIGlmICh3aW5kb3dPcHRpb25zLnVzZVRlc3RG
b250cykKLSAgICAgICAgaW5pdFRlc3RGb250cygpOwotI2VuZGlmCi0KICNpZm5kZWYgTkRFQlVH
CiAgICAgaW50IHJldFZhbCA9IGFwcC5leGVjKCk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OmdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CkBAIC0xOTksNyArMTQ3LDcgQEAgdm9pZCBM
YXVuY2hlckFwcGxpY2F0aW9uOjpoYW5kbGVVc2VyT3B0aW9ucygpCiAgICAgICAgICAgICAgPDwg
Ilstb2ZmbGluZS1zdG9yYWdlLWRhdGFiYXNlLWVuYWJsZWRdIgogICAgICAgICAgICAgIDw8ICJb
LW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uLWNhY2hlLWVuYWJsZWRdIgogICAgICAgICAgICAgIDw8
ICJbLXNldC1vZmZsaW5lLXN0b3JhZ2UtZGVmYXVsdC1xdW90YSBtYXhTaXplXSIKLSNpZiBkZWZp
bmVkKFFfV1NfWDExKQorI2lmIGRlZmluZWQoSEFWRV9GT05UQ09ORklHKSAmJiBIQVZFX0ZPTlRD
T05GSUcKICAgICAgICAgICAgICA8PCAiWy11c2UtdGVzdC1mb250c10iCiAjZW5kaWYKICAgICAg
ICAgICAgICA8PCAiWy1wcmludC1sb2FkZWQtdXJsc10iCkBAIC0yOTQsOSArMjQyLDkgQEAgdm9p
ZCBMYXVuY2hlckFwcGxpY2F0aW9uOjpoYW5kbGVVc2VyT3B0aW9ucygpCiAgICAgfQogI2VuZGlm
CiAKLSNpZiBkZWZpbmVkKFFfV1NfWDExKQorI2lmIGRlZmluZWQoSEFWRV9GT05UQ09ORklHKSAm
JiBIQVZFX0ZPTlRDT05GSUcKICAgICBpZiAoYXJncy5jb250YWlucygiLXVzZS10ZXN0LWZvbnRz
IikpCi0gICAgICAgIHdpbmRvd09wdGlvbnMudXNlVGVzdEZvbnRzID0gdHJ1ZTsKKyAgICAgICAg
V2ViQ29yZTo6aW5pdGlhbGl6ZVRlc3RGb250cygpOwogI2VuZGlmCiAKICAgICBpZiAoYXJncy5j
b250YWlucygiLXByaW50LWxvYWRlZC11cmxzIikpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1RhcmdldC5wcmkgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1RhcmdldC5wcmkKaW5kZXggYjE4NzE1NjQ2ZDMxOTViMzA0MTA1
MzMzMzZiMWVlNDE3ZTBmOWIyMi4uYjlmODMxZjM0MjE1YTY5ZjBkZDk4ZTU2ODc2NTYyMGU0Y2U4
Yjg5OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
YXJnZXQucHJpCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGFy
Z2V0LnByaQpAQCAtOCw2ICs4LDcgQEAgVEVNUExBVEUgPSBsaWIKIFRBUkdFVCA9IFdUUkluamVj
dGVkQnVuZGxlCiAKIFNPVVJDRVMgKz0gXAorICAgICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRJbml0aWFsaXplVGVzdEZvbnRzLmNwcCBcCiAgICAgQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIFwKICAgICBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5j
cHAgXAogICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIFwKQEAgLTM0LDYgKzM1
LDcgQEAgU09VUkNFUyArPSBcCiBpbmNsdWRlKERlcml2ZWRTb3VyY2VzLnByaSkKIAogSEVBREVS
UyArPSBcCisgICAgJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9RdEluaXRpYWxpemVUZXN0Rm9udHMuaCBcCiAgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aCBcCiAgICAgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuaCBcCiAgICAgQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZS5oIFwKQEAgLTYxLDYgKzYzLDcgQEAgY29udGFpbnMoREVGSU5FUywgSEFW
RV9GT05UQ09ORklHPTEpOiBQS0dDT05GSUcgKz0gZm9udGNvbmZpZwogSU5DTFVERVBBVEggKz0g
XAogICAgICQkUFdELy4uIFwKICAgICAkJFBXRC9CaW5kaW5ncyBcCisgICAgJCR7Uk9PVF9XRUJL
SVRfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdCBcCiAgICAgJCR7Uk9PVF9XRUJLSVRf
RElSfS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzIFwKICAgICAkJHtST09UX1dFQktJVF9ESVJ9
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3Bw
CmluZGV4IGVlZGY1NzMyOTJiNDM0YTQ1OGExN2ViNjU3NzQ3NGUwNWQ2MDc2OGYuLjM4ZDI3ZjBi
NGQ5MGEzZDU5NjAyZDZkYmUwOWNmYzgzNmU5MmEwMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvQWN0aXZhdGVGb250c1F0LmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0L0FjdGl2YXRlRm9udHNRdC5j
cHAKQEAgLTI5LDg2ICsyOSwyMyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
QWN0aXZhdGVGb250cy5oIgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCiAK
KyNpbmNsdWRlIDxXZWJDb3JlL1F0SW5pdGlhbGl6ZVRlc3RGb250cy5oPgogI2luY2x1ZGUgPFFB
cHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxRQnl0ZUFycmF5PgotI2luY2x1ZGUgPFFEaXI+Ci0jaW5j
bHVkZSA8UUZvbnQ+CiAjaW5jbHVkZSA8UVdpZGdldD4KICNpbmNsdWRlIDxRV2luZG93c1N0eWxl
PgogCi0jaWYgSEFWRShGT05UQ09ORklHKQotI2luY2x1ZGUgPGZvbnRjb25maWcvZm9udGNvbmZp
Zy5oPgotI2VuZGlmCi0KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLQogbmFtZXNwYWNlIFdUUiB7CiAK
IHZvaWQgYWN0aXZhdGVGb250cygpCiB7Ci0jaWYgSEFWRShGT05UQ09ORklHKQotICAgIEZjSW5p
dCgpOwotCi0gICAgc3RhdGljIGludCBudW1Gb250cyA9IC0xOwotCi0gICAgLy8gU29tZSB0ZXN0
IGNhc2VzIG1heSBhZGQgb3IgcmVtb3ZlIGFwcGxpY2F0aW9uIGZvbnRzICh2aWEgQGZvbnQtZmFj
ZSkuCi0gICAgLy8gTWFrZSBzdXJlIHRvIHJlLWluaXRpYWxpemUgdGhlIGZvbnQgc2V0IGlmIG5l
Y2Vzc2FyeS4KLSAgICBGY0ZvbnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAs
IEZjU2V0QXBwbGljYXRpb24pOwotICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzID49IDAg
JiYgYXBwRm9udFNldC0+bmZvbnQgPT0gbnVtRm9udHMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGNoYXIqIGNvbnN0IGZvbnREaXIgPSBnZXRlbnYoIldFQktJVF9URVNURk9OVFMiKTsKLSAgICBj
b25zdCBRU3RyaW5nIGZvbnREaXJTdHJpbmcgPSBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KGZvbnRE
aXIpOwotICAgIGlmIChmb250RGlyU3RyaW5nLmlzRW1wdHkoKSB8fCAhUURpcihmb250RGlyU3Ry
aW5nKS5leGlzdHMoKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAg
ICAiXG5cbiIKLSAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAg
ICAgICJXRUJLSVRfVEVTVEZPTlRTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgY29y
cmVjdGx5LlxuIgotICAgICAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGhhcyB0byBwb2ludCB0
byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGZvbnRzXG4iCi0gICAgICAgICAgICAgICAg
InlvdSBjYW4gY2xvbmUgZnJvbSBnaXQ6Ly9naXRvcmlvdXMub3JnL3F0d2Via2l0L3Rlc3Rmb250
cy5naXRcbiIKLSAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAg
ICAgKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0gICAgY2hhciBjdXJyZW50UGF0aFtQQVRI
X01BWCsxXTsKLSAgICBpZiAoIWdldGN3ZChjdXJyZW50UGF0aCwgUEFUSF9NQVgpKQotICAgICAg
ICBxRmF0YWwoIkNvdWxkbid0IGdldCBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5Iik7Ci0gICAg
UUJ5dGVBcnJheSBjb25maWdGaWxlID0gY3VycmVudFBhdGg7Ci0gICAgRmNDb25maWcqIGNvbmZp
ZyA9IEZjQ29uZmlnQ3JlYXRlKCk7Ci0gICAgY29uZmlnRmlsZSArPSAiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L2ZvbnRzLmNvbmYiOwotICAgIGlmICghRmNDb25maWdQYXJzZUFuZExvYWQgKGNv
bmZpZywgKEZjQ2hhcjgqKSBjb25maWdGaWxlLmRhdGEoKSwgdHJ1ZSkpCi0gICAgICAgIHFGYXRh
bCgiQ291bGRuJ3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSIpOwotICAgIGlmICghRmND
b25maWdBcHBGb250QWRkRGlyIChjb25maWcsIChGY0NoYXI4KikgZm9udERpcikpCi0gICAgICAg
IHFGYXRhbCgiQ291bGRuJ3QgYWRkIGZvbnQgZGlyISIpOwotICAgIEZjQ29uZmlnU2V0Q3VycmVu
dChjb25maWcpOwotCi0gICAgYXBwRm9udFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmlnLCBG
Y1NldEFwcGxpY2F0aW9uKTsKLSAgICBudW1Gb250cyA9IGFwcEZvbnRTZXQtPm5mb250OwotI2Vu
ZGlmCisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVRlc3RGb250cygpOwogCiAgICAgUUFwcGxpY2F0
aW9uOjpzZXRHcmFwaGljc1N5c3RlbShRTGF0aW4xU3RyaW5nKCJyYXN0ZXIiKSk7CiAjaWYgSEFW
RShRU1RZTEUpCiAgICAgUUFwcGxpY2F0aW9uOjpzZXRTdHlsZShuZXcgUVdpbmRvd3NTdHlsZSk7
CiAjZW5kaWYKLQotI2lmIGRlZmluZWQoUV9XU19YMTEpCi0gICAgUVgxMUluZm86OnNldEFwcERw
aVgoMCwgOTYpOwotICAgIFFYMTFJbmZvOjpzZXRBcHBEcGlZKDAsIDk2KTsKLSNlbmRpZgotCi0g
ICAvKgotICAgICogUUFwcGxpY2F0aW9uIHdpbGwgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBhcHBs
aWNhdGlvbiBmb250IGJhc2VkCi0gICAgKiBvbiB0aGUgYXBwbGljYXRpb24gRFBJIGF0IGNvbnN0
cnVjdGlvbiB0aW1lLCB3aGljaCBtaWdodCBiZQotICAgICogZGlmZmVyZW50IGZyb20gdGhlIERQ
SSB3ZSBleHBsaWNpdGx5IHNldCB1c2luZyBRWDExSW5mbyBhYm92ZS4KLSAgICAqIFNlZTogaHR0
cHM6Ly9idWdyZXBvcnRzLnF0Lm5va2lhLmNvbS9icm93c2UvUVRCVUctMjE2MDMKLSAgICAqCi0g
ICAgKiBUbyBlbnN1cmUgdGhhdCB0aGUgYXBwbGljYXRpb24gZm9udCBEUEkgbWF0Y2hlcyB0aGUg
YXBwbGljYXRpb24KLSAgICAqIERQSSwgd2Ugb3ZlcnJpZGUgdGhlIGFwcGxpY2F0aW9uIGZvbnQg
dXNpbmcgdGhlIGZvbnQgd2UgZ2V0IGZyb20KLSAgICAqIGEgUVdpZGdldCwgd2hpY2ggaGFzIGFs
cmVhZHkgYmVlbiByZXNvbHZlZCBhZ2FpbnN0IHRoZSBleGlzdGluZwotICAgICogZGVmYXVsdCBm
b250LCBidXQgd2l0aCB0aGUgY29ycmVjdCBwYWludC1kZXZpY2UgRFBJLgotICAgKi8KLSAgICBR
QXBwbGljYXRpb246OnNldEZvbnQoUVdpZGdldCgpLmZvbnQoKSk7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122903</attachid>
            <date>2012-01-18 05:26:26 -0800</date>
            <delta_ts>2012-01-25 07:04:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76068-20120118142624.patch</filename>
            <type>text/plain</type>
            <size>32641</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWMzMWVhMGQwODY5NWIwZTdkMjEwMWU3YjliZmFiOTEz
NDljYjJjMS4uMTg1ZGUwZDQ4NWQyYTU3MTUzM2FjYWY0MTliZjIwZjhhYTVhMGEwZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQy
IEBACisyMDEyLTAxLTE4ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbUXRdIENsZWFudXAgdGVzdGZvbnRzIGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA2OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhY3RvciB0ZXN0IGZvbnQgaW5pdGlhbGl6
YXRpb24gaW50byBpdCdzIG93biBmaWxlICBzbyB0ZXN0CisgICAgICAgIGZvbnQgdXNlcnMgY2Fu
IHNoYXJlIHRoZSBpbXBsZW1lbnRhdGlvbiBieSBhZGRpbmcgdGhlIGZpbGUKKyAgICAgICAgdG8g
dGhlaXIgYnVpbGQuCisgICAgICAgIFVzZSBmb250cy5jb25mIGZyb20gdGhlIHRlc3QgZm9udCBk
aXJlY3RvcnkgdG8gbm90IHJlcXVpcmUgdGhlCisgICAgICAgIGN1cnJlbnQgZGlyZWN0b3J5IHRv
IGJlIHRoZSBXZWJLaXQgcm9vdC4KKyAgICAgICAgRml4IHRoZSAtdXNlLXRlc3QtZm9udHMgb3B0
aW9uIG9mIFF0VGVzdEJyb3dzZXIgYnkgaW5pdGlhbGl6aW5nCisgICAgICAgIHRoZSBmb250cyBl
YXJsaWVyLCBiZWZvcmUgaXQgaXMgdG9vIGxhdGUgKG5hbWVseSBiZWZvcmUgY2FsbGluZworICAg
ICAgICBzaG93IG9uIHRoZSBtYWluIHdpbmRvdykuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm86CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVt
cFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6b3Bl
bik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5jcHA6IENvcGll
ZCBmcm9tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvQWN0aXZhdGVG
b250c1F0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVUZXN0Rm9udHMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5oOiBBZGRlZC4K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9mb250cy5jb25mOiBSZW1vdmVkLiBObyBuZWVk
IGZvciB0aGlzIHNpbmNlCisgICAgICAgIHdlIHdpbGwgdXNlIHRoZSBvbmUgZnJvbSB0aGUgdGVz
dCBmb250cyBkaXJlY3RvcnkuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHA6
CisgICAgICAgIChtYWluKTogRml4IHRoZSBpZmRlZnMgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRo
ZSBjb2RlIHRvCisgICAgICAgIHNldCB1cCB0aGUgRHBpIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8g
UXQ1IHlldC4KKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvOgorICAg
ICAgICAqIFF0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaDoKKyAgICAgICAgKFdpbmRvd09w
dGlvbnM6OldpbmRvd09wdGlvbnMpOgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbWFpbi5jcHA6
CisgICAgICAgIChsYXVuY2hlck1haW4pOgorICAgICAgICAoTGF1bmNoZXJBcHBsaWNhdGlvbjo6
aGFuZGxlVXNlck9wdGlvbnMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3F0L0FjdGl2YXRlRm9udHNRdC5jcHA6CisgICAgICAgIChXVFI6OmFjdGl2YXRlRm9udHMp
OiBSZW1vdmUgdGhlIGNvZGUgdG8gc2V0IHVwIHRoZSBEcGkKKyAgICAgICAgYmVjYXVzZSBpdCBk
b2VzIG5vdCB3b3JrIHdpdGggUXQ1LgorCiAyMDEyLTAxLTE3ICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTA1MjQ0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWUucHJvIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvCmlu
ZGV4IGMxMmMzZjdjM2U4OTgwM2VhNDM0MTc0MmUzNDVlMmI4YTcyMzk1ZmYuLjMyZDM5MmM0OWYx
MTkyNzExYjljNDIzMjYxNjc0OGZiOWY0NmEyNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybworKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZS5wcm8KQEAgLTM0LDYgKzM0LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIFwKICAgICBHQ0NvbnRyb2xsZXJRdC5oIFwKICAgICBQ
bGFpblRleHRDb250cm9sbGVyUXQuaCBcCisgICAgUXRJbml0aWFsaXplVGVzdEZvbnRzLmggXAog
ICAgIHRlc3RwbHVnaW4uaAogCiBTT1VSQ0VTICs9IFwKQEAgLTQ2LDYgKzQ3LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgV29ya1F1ZXVlSXRlbVF0LmNwcCBcCiAgICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAgXAogICAgIEdDQ29udHJvbGxlclF0LmNwcCBcCisgICAgUXRJbml0aWFsaXplVGVz
dEZvbnRzLmNwcCBcCiAgICAgdGVzdHBsdWdpbi5jcHAgXAogICAgIG1haW4uY3BwCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKaW5kZXggZTdhNDk4MDU2
ZjE1ZmE1OWNjMzhhYmRhOTdjODFmOGQzOWVkYWVkMy4uM2IwNWU0YzlhMjg5NDVlZDY4YTRhYjkx
OTcwMDAwZWI0NmE1ZjE4NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVt
cFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWVRdC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJMYXlvdXRUZXN0Q29udHJv
bGxlclF0LmgiCiAjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlclF0LmgiCiAjaW5jbHVkZSAi
UGxhaW5UZXh0Q29udHJvbGxlclF0LmgiCisjaW5jbHVkZSAiUXRJbml0aWFsaXplVGVzdEZvbnRz
LmgiCiAjaW5jbHVkZSAidGVzdHBsdWdpbi5oIgogI2luY2x1ZGUgIldvcmtRdWV1ZS5oIgogCkBA
IC02NiwxMCArNjcsNiBAQAogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgogI2luY2x1ZGUgPHF3
ZWJzZWN1cml0eW9yaWdpbi5oPgogCi0jaWYgSEFWRShGT05UQ09ORklHKQotI2luY2x1ZGUgPGZv
bnRjb25maWcvZm9udGNvbmZpZy5oPgotI2VuZGlmCi0KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDxsb2NhbGUuaD4KIApAQCAtNjI5LDcgKzYyNiw3IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWU6Om9wZW4oY29uc3QgUVVybCYgdXJsKQogI2lmICEoUVRfVkVSU0lPTiA8PSBRVF9WRVJTSU9O
X0NIRUNLKDQsIDYsIDIpKQogICAgIFFGb250RGF0YWJhc2U6OnJlbW92ZUFsbEFwcGxpY2F0aW9u
Rm9udHMoKTsKICNlbmRpZgotICAgIGluaXRpYWxpemVGb250cygpOworICAgIGluaXRpYWxpemVU
ZXN0Rm9udHMoKTsKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVMb2Fk
ZXIodXJsLnRvU3RyaW5nKCkuY29udGFpbnMoImxvYWRpbmcvIikpOwogICAgIHNldFRleHRPdXRw
dXRFbmFibGVkKHRydWUpOwpAQCAtMTE0MSw0NiArMTEzOCw0IEBAIFFMaXN0PFdlYlBhZ2UqPiBE
dW1wUmVuZGVyVHJlZTo6Z2V0QWxsUGFnZXMoKSBjb25zdAogICAgIHJldHVybiBwYWdlczsKIH0K
IAotdm9pZCBEdW1wUmVuZGVyVHJlZTo6aW5pdGlhbGl6ZUZvbnRzKCkKLXsKLSNpZiBIQVZFKEZP
TlRDT05GSUcpCi0gICAgc3RhdGljIGludCBudW1Gb250cyA9IC0xOwotCi0gICAgRmNJbml0KCk7
Ci0KLSAgICAvLyBTb21lIHRlc3QgY2FzZXMgbWF5IGFkZCBvciByZW1vdmUgYXBwbGljYXRpb24g
Zm9udHMgKHZpYSBAZm9udC1mYWNlKS4KLSAgICAvLyBNYWtlIHN1cmUgdG8gcmUtaW5pdGlhbGl6
ZSB0aGUgZm9udCBzZXQgaWYgbmVjZXNzYXJ5LgotICAgIEZjRm9udFNldCogYXBwRm9udFNldCA9
IEZjQ29uZmlnR2V0Rm9udHMoMCwgRmNTZXRBcHBsaWNhdGlvbik7Ci0gICAgaWYgKGFwcEZvbnRT
ZXQgJiYgbnVtRm9udHMgPj0gMCAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgUUJ5dGVBcnJheSBmb250RGlyID0gZ2V0ZW52KCJXRUJLSVRf
VEVTVEZPTlRTIik7Ci0gICAgaWYgKGZvbnREaXIuaXNFbXB0eSgpIHx8ICFRRGlyKGZvbnREaXIp
LmV4aXN0cygpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICJc
blxuIgotICAgICAgICAgICAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAg
IldFQktJVF9URVNURk9OVFMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCBjb3JyZWN0
bHkuXG4iCi0gICAgICAgICAgICAgICAgIlRoaXMgdmFyaWFibGUgaGFzIHRvIHBvaW50IHRvIHRo
ZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZm9udHNcbiIKLSAgICAgICAgICAgICAgICAieW91
IGNhbiBjbG9uZSBmcm9tIGdpdDovL2dpdG9yaW91cy5vcmcvcXR3ZWJraXQvdGVzdGZvbnRzLmdp
dFxuIgotICAgICAgICAgICAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAp
OwotICAgICAgICBleGl0KDEpOwotICAgIH0KLSAgICBjaGFyIGN1cnJlbnRQYXRoW1BBVEhfTUFY
KzFdOwotICAgIGlmICghZ2V0Y3dkKGN1cnJlbnRQYXRoLCBQQVRIX01BWCkpCi0gICAgICAgIHFG
YXRhbCgiQ291bGRuJ3QgZ2V0IGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkiKTsKLSAgICBRQnl0
ZUFycmF5IGNvbmZpZ0ZpbGUgPSBjdXJyZW50UGF0aDsKLSAgICBGY0NvbmZpZyAqY29uZmlnID0g
RmNDb25maWdDcmVhdGUoKTsKLSAgICBjb25maWdGaWxlICs9ICIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvZm9udHMuY29uZiI7Ci0gICAgaWYgKCFGY0NvbmZpZ1BhcnNlQW5kTG9hZCAoY29uZmln
LCAoRmNDaGFyOCopIGNvbmZpZ0ZpbGUuZGF0YSgpLCB0cnVlKSkKLSAgICAgICAgcUZhdGFsKCJD
b3VsZG4ndCBsb2FkIGZvbnQgY29uZmlndXJhdGlvbiBmaWxlIik7Ci0gICAgaWYgKCFGY0NvbmZp
Z0FwcEZvbnRBZGREaXIgKGNvbmZpZywgKEZjQ2hhcjgqKSBmb250RGlyLmRhdGEoKSkpCi0gICAg
ICAgIHFGYXRhbCgiQ291bGRuJ3QgYWRkIGZvbnQgZGlyISIpOwotICAgIEZjQ29uZmlnU2V0Q3Vy
cmVudChjb25maWcpOwotCi0gICAgYXBwRm9udFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmln
LCBGY1NldEFwcGxpY2F0aW9uKTsKLSAgICBudW1Gb250cyA9IGFwcEZvbnRTZXQtPm5mb250Owot
I2VuZGlmCi19Ci0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
aAppbmRleCA3N2I2ZTQ2MWZhODM2YTEyMGZhYWY5ZmY3ZTc2MzViOGIwYmFhODlkLi41ZTFkNmI0
YjI3YmQzNTliN2NhOTI1ZDg5NTM5MTJlNTA5OTVkOTZjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgogICAg
IFdlYlBhZ2UgKndlYlBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KICAgICBRTGlzdDxX
ZWJQYWdlKj4gZ2V0QWxsUGFnZXMoKSBjb25zdDsKIAotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxp
emVGb250cygpOwotCiAgICAgdm9pZCBwcm9jZXNzQXJnc0xpbmUoY29uc3QgUVN0cmluZ0xpc3Qm
KTsKICAgICB2b2lkIHNldFJlZGlyZWN0T3V0cHV0RmlsZU5hbWUoY29uc3QgUVN0cmluZyYgZmls
ZU5hbWUpIHsgbV9yZWRpcmVjdE91dHB1dEZpbGVOYW1lID0gZmlsZU5hbWU7IH0KICAgICB2b2lk
IHNldFJlZGlyZWN0RXJyb3JGaWxlTmFtZShjb25zdCBRU3RyaW5nJiBmaWxlTmFtZSkgeyBtX3Jl
ZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9RdEluaXRpYWxpemVUZXN0Rm9udHMuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvUXRJbml0aWFsaXplVGVzdEZvbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmJiM2FhY2I5
N2E3ZTJlNDAyNzMxNzlkMTdlYzQ2NTIxODU1MWMzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvUXRJbml0aWFsaXplVGVzdEZvbnRzLmNwcApAQCAtMCwwICsxLDc2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJRdEluaXRpYWxpemVUZXN0Rm9udHMuaCIKKwor
I2lmIGRlZmluZWQoSEFWRV9GT05UQ09ORklHKSAmJiBIQVZFX0ZPTlRDT05GSUcKKyNpbmNsdWRl
IDxRQnl0ZUFycmF5PgorI2luY2x1ZGUgPFFEaXI+CisjaW5jbHVkZSA8Zm9udGNvbmZpZy9mb250
Y29uZmlnLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGluaXRpYWxp
emVUZXN0Rm9udHMoKQoreworI2lmIGRlZmluZWQoSEFWRV9GT05UQ09ORklHKSAmJiBIQVZFX0ZP
TlRDT05GSUcKKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gLTE7CisKKyAgICBGY0luaXQoKTsK
KworICAgIC8vIFNvbWUgdGVzdCBjYXNlcyBtYXkgYWRkIG9yIHJlbW92ZSBhcHBsaWNhdGlvbiBm
b250cyAodmlhIEBmb250LWZhY2UpLgorICAgIC8vIE1ha2Ugc3VyZSB0byByZS1pbml0aWFsaXpl
IHRoZSBmb250IHNldCBpZiBuZWNlc3NhcnkuCisgICAgRmNGb250U2V0KiBhcHBGb250U2V0ID0g
RmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAgICBpZiAoYXBwRm9udFNl
dCAmJiBudW1Gb250cyA+PSAwICYmIGFwcEZvbnRTZXQtPm5mb250ID09IG51bUZvbnRzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBRQnl0ZUFycmF5IGZvbnREaXIgPSBnZXRlbnYoIldFQktJVF9U
RVNURk9OVFMiKTsKKyAgICBpZiAoZm9udERpci5pc0VtcHR5KCkgfHwgIVFEaXIoUVN0cmluZzo6
ZnJvbUxhdGluMShmb250RGlyKSkuZXhpc3RzKCkpIHsKKyAgICAgICAgcUZhdGFsKCJcblxuIgor
ICAgICAgICAgICAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisgICAgICAgICAgICAgICAgIldFQktJ
VF9URVNURk9OVFMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCBjb3JyZWN0bHkuXG4i
CisgICAgICAgICAgICAgICAgIlRoaXMgdmFyaWFibGUgaGFzIHRvIHBvaW50IHRvIHRoZSBkaXJl
Y3RvcnkgY29udGFpbmluZyB0aGUgZm9udHNcbiIKKyAgICAgICAgICAgICAgICAieW91IGNhbiBj
bG9uZSBmcm9tIGdpdDovL2dpdG9yaW91cy5vcmcvcXR3ZWJraXQvdGVzdGZvbnRzLmdpdFxuIgor
ICAgICAgICAgICAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisgICAgICAgICAgICAgICApOworICAg
IH0KKworICAgIFFCeXRlQXJyYXkgY29uZmlnRmlsZSA9IGZvbnREaXIgKyAiL2ZvbnRzLmNvbmYi
OworICAgIEZjQ29uZmlnKiBjb25maWcgPSBGY0NvbmZpZ0NyZWF0ZSgpOworICAgIGlmICghRmND
b25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgq
Pihjb25maWdGaWxlLmNvbnN0RGF0YSgpKSwgRmNUcnVlKSkKKyAgICAgICAgcUZhdGFsKCJDb3Vs
ZG4ndCBsb2FkIGZvbnQgY29uZmlndXJhdGlvbiBmaWxlIik7CisgICAgaWYgKCFGY0NvbmZpZ0Fw
cEZvbnRBZGREaXIoY29uZmlnLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmb250
RGlyLmRhdGEoKSkpKQorICAgICAgICBxRmF0YWwoIkNvdWxkbid0IGFkZCBmb250IGRpciEiKTsK
KyAgICBGY0NvbmZpZ1NldEN1cnJlbnQoY29uZmlnKTsKKworICAgIGFwcEZvbnRTZXQgPSBGY0Nv
bmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRBcHBsaWNhdGlvbik7CisgICAgbnVtRm9udHMgPSBh
cHBGb250U2V0LT5uZm9udDsKKyNlbmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9RdEluaXRpYWxpemVUZXN0Rm9udHMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDZmMjA1YTIxNGY3
ZjY4Yzk3OTFkNjI1NTY5OTM5NjcwNTdmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9RdEluaXRpYWxpemVUZXN0Rm9udHMuaApAQCAtMCwwICsxLDM5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUXRJbml0aWFsaXplVGVzdEZvbnRzX2gKKyNkZWZpbmUgUXRJ
bml0aWFsaXplVGVzdEZvbnRzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBIZWxwZXIg
dG8gc2hhcmUgY29kZSBiZXR3ZWVuIHRlc3QgZm9udCB1c2Vycy4KK3ZvaWQgaW5pdGlhbGl6ZVRl
c3RGb250cygpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvZm9udHMuY29uZiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L2ZvbnRzLmNvbmYKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5NTA3ZDQyNWJkZDNlMzc2NmRiNGZmNjU3MjYy
OWNhNThiMzM4MWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZgorKysgL2Rldi9udWxsCkBAIC0x
LDI3NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTwhRE9DVFlQRSBmb250Y29uZmln
IFNZU1RFTSAiZm9udHMuZHRkIj4KLTxmb250Y29uZmlnPgotCi08IS0tCi0gIEFjY2VwdCBkZXBy
ZWNhdGVkICdtb25vJyBhbGlhcywgcmVwbGFjaW5nIGl0IHdpdGggJ21vbm9zcGFjZScKLS0tPgot
CTxtYXRjaCB0YXJnZXQ9InBhdHRlcm4iPgotCQk8dGVzdCBxdWFsPSJhbnkiIG5hbWU9ImZhbWls
eSI+Ci0JCQk8c3RyaW5nPm1vbm88L3N0cmluZz4KLQkJPC90ZXN0PgotCQk8ZWRpdCBuYW1lPSJm
YW1pbHkiIG1vZGU9ImFzc2lnbiI+Ci0JCQk8c3RyaW5nPm1vbm9zcGFjZTwvc3RyaW5nPgotCQk8
L2VkaXQ+Ci0JPC9tYXRjaD4KLQotPCEtLQotICBBY2NlcHQgYWx0ZXJuYXRlICdzYW5zIHNlcmlm
JyBzcGVsbGluZywgcmVwbGFjaW5nIGl0IHdpdGggJ3NhbnMtc2VyaWYnCi0tLT4KLQk8bWF0Y2gg
dGFyZ2V0PSJwYXR0ZXJuIj4KLQkJPHRlc3QgcXVhbD0iYW55IiBuYW1lPSJmYW1pbHkiPgotCQkJ
PHN0cmluZz5zYW5zIHNlcmlmPC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPGVkaXQgbmFtZT0iZmFt
aWx5IiBtb2RlPSJhc3NpZ24iPgotCQkJPHN0cmluZz5zYW5zLXNlcmlmPC9zdHJpbmc+Ci0JCTwv
ZWRpdD4KLQk8L21hdGNoPgotCi08IS0tCi0gIEFjY2VwdCBkZXByZWNhdGVkICdzYW5zJyBhbGlh
cywgcmVwbGFjaW5nIGl0IHdpdGggJ3NhbnMtc2VyaWYnCi0tLT4KLQk8bWF0Y2ggdGFyZ2V0PSJw
YXR0ZXJuIj4KLQkJPHRlc3QgcXVhbD0iYW55IiBuYW1lPSJmYW1pbHkiPgotCQkJPHN0cmluZz5z
YW5zPC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhc3Np
Z24iPgotCQkJPHN0cmluZz5zYW5zLXNlcmlmPC9zdHJpbmc+Ci0JCTwvZWRpdD4KLQk8L21hdGNo
PgotCi08IS0tCi0gIElmIHRoZSBmb250IHN0aWxsIGhhcyBubyBnZW5lcmljIG5hbWUsIGFkZCBz
YW5zLXNlcmlmCi0gLS0+Ci0JPG1hdGNoIHRhcmdldD0icGF0dGVybiI+Ci0JCTx0ZXN0IHF1YWw9
ImFsbCIgbmFtZT0iZmFtaWx5IiBjb21wYXJlPSJub3RfZXEiPgotCQkJPHN0cmluZz5zYW5zLXNl
cmlmPC9zdHJpbmc+Ci0JCTwvdGVzdD4KLQkJPHRlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1pbHki
IGNvbXBhcmU9Im5vdF9lcSI+Ci0JCQk8c3RyaW5nPnNlcmlmPC9zdHJpbmc+Ci0JCTwvdGVzdD4K
LQkJPHRlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1pbHkiIGNvbXBhcmU9Im5vdF9lcSI+Ci0JCQk8
c3RyaW5nPm1vbm9zcGFjZTwvc3RyaW5nPgotCQk8L3Rlc3Q+Ci0JCTxlZGl0IG5hbWU9ImZhbWls
eSIgbW9kZT0iYXBwZW5kX2xhc3QiPgotCQkJPHN0cmluZz5zYW5zLXNlcmlmPC9zdHJpbmc+Ci0J
CTwvZWRpdD4KLQk8L21hdGNoPgotCi0JPGNvbmZpZz4KLTwhLS0KLSAgVGhlc2UgYXJlIHRoZSBk
ZWZhdWx0IFVuaWNvZGUgY2hhcnMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gYmUgYmxhbmsKLSAgaW4g
Zm9udHMuICBBbGwgb3RoZXIgYmxhbmsgY2hhcnMgYXJlIGFzc3VtZWQgdG8gYmUgYnJva2VuIGFu
ZAotICB3b24ndCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyBjaGFyc2V0cwotIC0tPgotCQk8Ymxh
bms+Ci0JCQk8aW50PjB4MDAyMDwvaW50Pgk8IS0tIFNQQUNFIC0tPgotCQkJPGludD4weDAwQTA8
L2ludD4JPCEtLSBOTy1CUkVBSyBTUEFDRSAtLT4KLQkJCTxpbnQ+MHgwMEFEPC9pbnQ+CTwhLS0g
U09GVCBIWVBIRU4gLS0+Ci0JCQk8aW50PjB4MDM0RjwvaW50Pgk8IS0tIENPTUJJTklORyBHUkFQ
SEVNRSBKT0lORVIgLS0+Ci0JCQk8aW50PjB4MDYwMDwvaW50Pgk8IS0tIEFSQUJJQyBOVU1CRVIg
U0lHTiAtLT4KLQkJCTxpbnQ+MHgwNjAxPC9pbnQ+CTwhLS0gQVJBQklDIFNJR04gU0FOQUggLS0+
Ci0JCQk8aW50PjB4MDYwMjwvaW50Pgk8IS0tIEFSQUJJQyBGT09UTk9URSBNQVJLRVIgLS0+Ci0J
CQk8aW50PjB4MDYwMzwvaW50Pgk8IS0tIEFSQUJJQyBTSUdOIFNBRkhBIC0tPgotCQkJPGludD4w
eDA2REQ8L2ludD4JPCEtLSBBUkFCSUMgRU5EIE9GIEFZQUggLS0+Ci0JCQk8aW50PjB4MDcwRjwv
aW50Pgk8IS0tIFNZUklBQyBBQkJSRVZJQVRJT04gTUFSSyAtLT4KLQkJCTxpbnQ+MHgxMTVGPC9p
bnQ+CTwhLS0gSEFOR1VMIENIT1NFT05HIEZJTExFUiAtLT4KLQkJCTxpbnQ+MHgxMTYwPC9pbnQ+
CTwhLS0gSEFOR1VMIEpVTkdTRU9ORyBGSUxMRVIgLS0+Ci0JCQk8aW50PjB4MTY4MDwvaW50Pgk8
IS0tIE9HSEFNIFNQQUNFIE1BUksgLS0+Ci0JCQk8aW50PjB4MTdCNDwvaW50Pgk8IS0tIEtITUVS
IFZPV0VMIElOSEVSRU5UIEFRIC0tPgotCQkJPGludD4weDE3QjU8L2ludD4JPCEtLSBLSE1FUiBW
T1dFTCBJTkhFUkVOVCBBQSAtLT4KLQkJCTxpbnQ+MHgxODBFPC9pbnQ+CTwhLS0gTU9OR09MSUFO
IFZPV0VMIFNFUEFSQVRPUiAtLT4KLQkJCTxpbnQ+MHgyMDAwPC9pbnQ+CTwhLS0gRU4gUVVBRCAt
LT4KLQkJCTxpbnQ+MHgyMDAxPC9pbnQ+CTwhLS0gRU0gUVVBRCAtLT4KLQkJCTxpbnQ+MHgyMDAy
PC9pbnQ+CTwhLS0gRU4gU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwMzwvaW50Pgk8IS0tIEVNIFNQ
QUNFIC0tPgotCQkJPGludD4weDIwMDQ8L2ludD4JPCEtLSBUSFJFRS1QRVItRU0gU1BBQ0UgLS0+
Ci0JCQk8aW50PjB4MjAwNTwvaW50Pgk8IS0tIEZPVVItUEVSLUVNIFNQQUNFIC0tPgotCQkJPGlu
dD4weDIwMDY8L2ludD4JPCEtLSBTSVgtUEVSLUVNIFNQQUNFIC0tPgotCQkJPGludD4weDIwMDc8
L2ludD4JPCEtLSBGSUdVUkUgU1BBQ0UgLS0+Ci0JCQk8aW50PjB4MjAwODwvaW50Pgk8IS0tIFBV
TkNUVUFUSU9OIFNQQUNFIC0tPgotCQkJPGludD4weDIwMDk8L2ludD4JPCEtLSBUSElOIFNQQUNF
IC0tPgotCQkJPGludD4weDIwMEE8L2ludD4JPCEtLSBIQUlSIFNQQUNFIC0tPgotCQkJPGludD4w
eDIwMEI8L2ludD4JPCEtLSBaRVJPIFdJRFRIIFNQQUNFIC0tPgotCQkJPGludD4weDIwMEM8L2lu
dD4JPCEtLSBaRVJPIFdJRFRIIE5PTi1KT0lORVIgLS0+Ci0JCQk8aW50PjB4MjAwRDwvaW50Pgk8
IS0tIFpFUk8gV0lEVEggSk9JTkVSIC0tPgotCQkJPGludD4weDIwMEU8L2ludD4JPCEtLSBMRUZU
LVRPLVJJR0hUIE1BUksgLS0+Ci0JCQk8aW50PjB4MjAwRjwvaW50Pgk8IS0tIFJJR0hULVRPLUxF
RlQgTUFSSyAtLT4KLQkJCTxpbnQ+MHgyMDI4PC9pbnQ+CTwhLS0gTElORSBTRVBBUkFUT1IgLS0+
Ci0JCQk8aW50PjB4MjAyOTwvaW50Pgk8IS0tIFBBUkFHUkFQSCBTRVBBUkFUT1IgLS0+Ci0JCQk8
aW50PjB4MjAyQTwvaW50Pgk8IS0tIExFRlQtVE8tUklHSFQgRU1CRURESU5HIC0tPgotCQkJPGlu
dD4weDIwMkI8L2ludD4JPCEtLSBSSUdIVC1UTy1MRUZUIEVNQkVERElORyAtLT4KLQkJCTxpbnQ+
MHgyMDJDPC9pbnQ+CTwhLS0gUE9QIERJUkVDVElPTkFMIEZPUk1BVFRJTkcgLS0+Ci0JCQk8aW50
PjB4MjAyRDwvaW50Pgk8IS0tIExFRlQtVE8tUklHSFQgT1ZFUlJJREUgLS0+Ci0JCQk8aW50PjB4
MjAyRTwvaW50Pgk8IS0tIFJJR0hULVRPLUxFRlQgT1ZFUlJJREUgLS0+Ci0JCQk8aW50PjB4MjAy
RjwvaW50Pgk8IS0tIE5BUlJPVyBOTy1CUkVBSyBTUEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDVGPC9p
bnQ+CTwhLS0gTUVESVVNIE1BVEhFTUFUSUNBTCBTUEFDRSAtLT4KLQkJCTxpbnQ+MHgyMDYwPC9p
bnQ+CTwhLS0gV09SRCBKT0lORVIgLS0+Ci0JCQk8aW50PjB4MjA2MTwvaW50Pgk8IS0tIEZVTkNU
SU9OIEFQUExJQ0FUSU9OIC0tPgotCQkJPGludD4weDIwNjI8L2ludD4JPCEtLSBJTlZJU0lCTEUg
VElNRVMgLS0+Ci0JCQk8aW50PjB4MjA2MzwvaW50Pgk8IS0tIElOVklTSUJMRSBTRVBBUkFUT1Ig
LS0+Ci0JCQk8aW50PjB4MjA2QTwvaW50Pgk8IS0tIElOSElCSVQgU1lNTUVUUklDIFNXQVBQSU5H
IC0tPgotCQkJPGludD4weDIwNkI8L2ludD4JPCEtLSBBQ1RJVkFURSBTWU1NRVRSSUMgU1dBUFBJ
TkcgLS0+Ci0JCQk8aW50PjB4MjA2QzwvaW50Pgk8IS0tIElOSElCSVQgQVJBQklDIEZPUk0gU0hB
UElORyAtLT4KLQkJCTxpbnQ+MHgyMDZEPC9pbnQ+CTwhLS0gQUNUSVZBVEUgQVJBQklDIEZPUk0g
U0hBUElORyAtLT4KLQkJCTxpbnQ+MHgyMDZFPC9pbnQ+CTwhLS0gTkFUSU9OQUwgRElHSVQgU0hB
UEVTIC0tPgotCQkJPGludD4weDIwNkY8L2ludD4JPCEtLSBOT01JTkFMIERJR0lUIFNIQVBFUyAt
LT4KLQkJCTxpbnQ+MHgzMDAwPC9pbnQ+CTwhLS0gSURFT0dSQVBISUMgU1BBQ0UgLS0+Ci0JCQk8
aW50PjB4MzE2NDwvaW50Pgk8IS0tIEhBTkdVTCBGSUxMRVIgLS0+Ci0JCQk8aW50PjB4RkVGRjwv
aW50Pgk8IS0tIFpFUk8gV0lEVEggTk8tQlJFQUsgU1BBQ0UgLS0+Ci0JCQk8aW50PjB4RkZBMDwv
aW50Pgk8IS0tIEhBTEZXSURUSCBIQU5HVUwgRklMTEVSIC0tPgotCQkJPGludD4weEZGRjk8L2lu
dD4JPCEtLSBJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIEFOQ0hPUiAtLT4KLQkJCTxpbnQ+MHhGRkZB
PC9pbnQ+CTwhLS0gSU5URVJMSU5FQVIgQU5OT1RBVElPTiBTRVBBUkFUT1IgLS0+Ci0JCQk8aW50
PjB4RkZGQjwvaW50Pgk8IS0tIElOVEVSTElORUFSIEFOTk9UQVRJT04gVEVSTUlOQVRPUiAtLT4K
LQkJPC9ibGFuaz4KLTwhLS0KLSAgUmVzY2FuIGNvbmZpZ3VyYXRpb24gZXZlcnkgMzAgc2Vjb25k
cyB3aGVuIEZjRm9udFNldExpc3QgaXMgY2FsbGVkCi0gLS0+Ci0JCTxyZXNjYW4+Ci0JCQk8aW50
PjMwPC9pbnQ+Ci0JCTwvcmVzY2FuPgotCTwvY29uZmlnPgotCi08IS0tCi0gIFVSVyBwcm92aWRl
cyBtZXRyaWMgYW5kIHNoYXBlIGNvbXBhdGlibGUgZm9udHMgZm9yIHRoZXNlIDEwIEFkb2JlIGZh
bWlsaWVzLgotCi0gIEhvd2V2ZXIsIHRoZXNlIGZvbnRzIGFyZSBxdWl0ZSB1Z2x5IGFuZCBkbyBu
b3QgcmVuZGVyIHdlbGwgb24tc2NyZWVuLAotICBzbyB3ZSBhdm9pZCBtYXRjaGluZyB0aGVtIGlm
IHRoZSBhcHBsaWNhdGlvbiBzYWlkIGBhbnltZXRyaWNzJzsgaW4gdGhhdAotICBjYXNlLCBhIG1v
cmUgZ2VuZXJpYyBmb250IHdpdGggZGlmZmVyZW50IG1ldHJpY3MgYnV0IGJldHRlciBhcHBlYXJh
bmNlCi0gIHdpbGwgYmUgdXNlZC4KLSAgLS0+Ci0gICAgICAgCTxtYXRjaCB0YXJnZXQ9InBhdHRl
cm4iPgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZhbWlseSI+Ci0gICAgICAgICAgICA8c3RyaW5n
PkF2YW50IEdhcmRlPC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0
IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAg
ICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0
IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+VVJXIEdv
dGhpYyBMPC9zdHJpbmc+Ci0gICAgICAgICAgPC9lZGl0PgotICAgICAJPC9tYXRjaD4KLSAgICAg
ICAJPG1hdGNoIHRhcmdldD0icGF0dGVybiI+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iZmFtaWx5
Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+Qm9va21hbjwvc3RyaW5nPgotICAgICAgICAgIDwvdGVz
dD4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBxdWFsPSJhbGwiIGNvbXBhcmU9
Im5vdF9lcSI+Ci0gICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgotICAgICAgICAgIDwvdGVz
dD4KLSAgICAgICAgICA8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVuZCI+Ci0gICAgICAg
ICAgICA8c3RyaW5nPlVSVyBCb29rbWFuIEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0g
ICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAg
ICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5Db3VyaWVyPC9zdHJp
bmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3Mi
IHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxib29sPnRydWU8L2Jv
b2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9k
ZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+TmltYnVzIE1vbm8gTDwvc3RyaW5nPgot
ICAgICAgICAgIDwvZWRpdD4KLSAgICAgCTwvbWF0Y2g+Ci0gICAgICAgCTxtYXRjaCB0YXJnZXQ9
InBhdHRlcm4iPgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImZhbWlseSI+Ci0gICAgICAgICAgICA8
c3RyaW5nPkhlbHZldGljYTwvc3RyaW5nPgotICAgICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8
dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBxdWFsPSJhbGwiIGNvbXBhcmU9Im5vdF9lcSI+Ci0gICAg
ICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgotICAgICAgICAgIDwvdGVzdD4KLSAgICAgICAgICA8
ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVuZCI+Ci0gICAgICAgICAgICA8c3RyaW5nPk5p
bWJ1cyBTYW5zIEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgot
ICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJm
YW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5OZXcgQ2VudHVyeSBTY2hvb2xib29rPC9zdHJp
bmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3Mi
IHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxib29sPnRydWU8L2Jv
b2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9k
ZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+Q2VudHVyeSBTY2hvb2xib29rIEw8L3N0
cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2gg
dGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAg
ICAgICAgPHN0cmluZz5QYWxhdGlubzwvc3RyaW5nPgotICAgICAgICAgIDwvdGVzdD4KLSAgICAg
ICAgICA8dGVzdCBuYW1lPSJhbnltZXRyaWNzIiBxdWFsPSJhbGwiIGNvbXBhcmU9Im5vdF9lcSI+
Ci0gICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgotICAgICAgICAgIDwvdGVzdD4KLSAgICAg
ICAgICA8ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVuZCI+Ci0gICAgICAgICAgICA8c3Ry
aW5nPlVSVyBQYWxsYWRpbyBMPC9zdHJpbmc+Ci0gICAgICAgICAgPC9lZGl0PgotICAgICAJPC9t
YXRjaD4KLSAgICAgICAJPG1hdGNoIHRhcmdldD0icGF0dGVybiI+Ci0gICAgICAgICAgPHRlc3Qg
bmFtZT0iZmFtaWx5Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+VGltZXM8L3N0cmluZz4KLSAgICAg
ICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0cmljcyIgcXVhbD0iYWxs
IiBjb21wYXJlPSJub3RfZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1ZTwvYm9vbD4KLSAgICAg
ICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmQi
PgotICAgICAgICAgICAgPHN0cmluZz5OaW1idXMgUm9tYW4gTm85IEw8L3N0cmluZz4KLSAgICAg
ICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0
ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAgPHN0cmlu
Zz5aYXBmIENoYW5jZXJ5PC9zdHJpbmc+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0
ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFsbCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAg
ICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAgICAgICAgPC90ZXN0PgotICAgICAgICAgIDxl
ZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5kIj4KLSAgICAgICAgICAgIDxzdHJpbmc+VVJX
IENoYW5jZXJ5IEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgIAk8L21hdGNoPgot
ICAgICAgIAk8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAgICAgICAgICA8dGVzdCBuYW1lPSJm
YW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5aYXBmIERpbmdiYXRzPC9zdHJpbmc+Ci0gICAg
ICAgICAgPC90ZXN0PgotICAgICAgICAgIDx0ZXN0IG5hbWU9ImFueW1ldHJpY3MiIHF1YWw9ImFs
bCIgY29tcGFyZT0ibm90X2VxIj4KLSAgICAgICAgICAgIDxib29sPnRydWU8L2Jvb2w+Ci0gICAg
ICAgICAgPC90ZXN0PgotICAgICAgICAgIDxlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXBwZW5k
Ij4KLSAgICAgICAgICAgIDxzdHJpbmc+RGluZ2JhdHM8L3N0cmluZz4KLSAgICAgICAgICA8L2Vk
aXQ+Ci0gICAgIAk8L21hdGNoPgotICAgICAgICA8bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIj4KLSAg
ICAgICAgICA8dGVzdCBuYW1lPSJmYW1pbHkiPgotICAgICAgICAgICAgPHN0cmluZz5TeW1ib2w8
L3N0cmluZz4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPHRlc3QgbmFtZT0iYW55bWV0
cmljcyIgcXVhbD0iYWxsIiBjb21wYXJlPSJub3RfZXEiPgotICAgICAgICAgICAgPGJvb2w+dHJ1
ZTwvYm9vbD4KLSAgICAgICAgICA8L3Rlc3Q+Ci0gICAgICAgICAgPGVkaXQgbmFtZT0iZmFtaWx5
IiBtb2RlPSJhcHBlbmQiIGJpbmRpbmc9InNhbWUiPgotICAgICAgICAgICAgPHN0cmluZz5TdGFu
ZGFyZCBTeW1ib2xzIEw8L3N0cmluZz4KLSAgICAgICAgICA8L2VkaXQ+Ci0gICAgICAgIDwvbWF0
Y2g+Ci0KLTwhLS0KLSAgU2VyaWYgZmFjZXMKLSAtLT4KLQk8YWxpYXM+Ci0JCTxmYW1pbHk+Tmlt
YnVzIFJvbWFuIE5vOSBMPC9mYW1pbHk+Ci0JCTxkZWZhdWx0PjxmYW1pbHk+c2VyaWY8L2ZhbWls
eT48L2RlZmF1bHQ+Ci0JPC9hbGlhcz4KLTwhLS0KLSAgU2Fucy1zZXJpZiBmYWNlcwotIC0tPgot
CTxhbGlhcz4KLQkJPGZhbWlseT5OaW1idXMgU2FucyBMPC9mYW1pbHk+Ci0JCTxkZWZhdWx0Pjxm
YW1pbHk+c2Fucy1zZXJpZjwvZmFtaWx5PjwvZGVmYXVsdD4KLQk8L2FsaWFzPgotPCEtLQotICBN
b25vc3BhY2UgZmFjZXMKLSAtLT4KLSAJPGFsaWFzPgotCQk8ZmFtaWx5Pk5pbWJ1cyBNb25vIEw8
L2ZhbWlseT4KLQkJPGRlZmF1bHQ+PGZhbWlseT5tb25vc3BhY2U8L2ZhbWlseT48L2RlZmF1bHQ+
Ci0JPC9hbGlhcz4KLQotCi08L2ZvbnRjb25maWc+CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9tYWluLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwCmlu
ZGV4IDNkOTY3M2JlZTQxZTIwMzk1ODJiNDk0ZWYzYzNlOWMwZTE3NWQ0NjAuLmRhNzljNzc4Y2Zh
MjViMjg0YzEyNTM2ZTE3NDViZDRmNmYwNTM0MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L21haW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L21haW4uY3Bw
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVF0LmgiCiAKKyNp
bmNsdWRlICJRdEluaXRpYWxpemVUZXN0Rm9udHMuaCIKKwogI2luY2x1ZGUgPHd0Zi9BbHdheXNJ
bmxpbmUuaD4KIAogI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CkBAIC0xNDksMTMgKzE1MSwxNCBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGlmIChzdXBwcmVzc1F0RGVi
dWdPdXRwdXQpCiAgICAgICAgIHFJbnN0YWxsTXNnSGFuZGxlcihtZXNzYWdlSGFuZGxlcik7CiAK
LSAgICBXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6aW5pdGlhbGl6ZUZvbnRzKCk7CisgICAgV2Vi
Q29yZTo6aW5pdGlhbGl6ZVRlc3RGb250cygpOwogCiAgICAgUUFwcGxpY2F0aW9uOjpzZXRHcmFw
aGljc1N5c3RlbSgicmFzdGVyIik7CiAgICAgUUFwcGxpY2F0aW9uOjpzZXRTdHlsZShuZXcgUVdp
bmRvd3NTdHlsZSk7CiAKICAgICBRQXBwbGljYXRpb24gYXBwKGFyZ2MsIGFyZ3YpOwogCisjaWYg
UVRfVkVSU0lPTiA8PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApIC8vIEZJWE1FOiBuZWVkIGEg
d2F5IHRvIHBvcnQgdGhpcyB0byBRdDUuCiAjaWZkZWYgUV9XU19YMTEKICAgICBRWDExSW5mbzo6
c2V0QXBwRHBpWSgwLCA5Nik7CiAgICAgUVgxMUluZm86OnNldEFwcERwaVgoMCwgOTYpOwpAQCAt
MTczLDYgKzE3Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgKiBk
ZWZhdWx0IGZvbnQsIGJ1dCB3aXRoIHRoZSBjb3JyZWN0IHBhaW50LWRldmljZSBEUEkuCiAgICAq
LwogICAgIFFBcHBsaWNhdGlvbjo6c2V0Rm9udChRV2lkZ2V0KCkuZm9udCgpKTsKKyNlbmRpZgog
CiAjaWYgSEFWRShTSUdOQUxfSCkKICAgICBzaWduYWwoU0lHSUxMLCBjcmFzaEhhbmRsZXIpOyAg
ICAvKiA0OiAgIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gKG5vdCByZXNldCB3aGVuIGNhdWdodCkgKi8K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm8gYi9Ub29s
cy9RdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvCmluZGV4IDMxNDdkZGFlMGYxNDY1NGVj
NzZkOTdiY2Y2MzlkNzI2NzI2MDRiYjQuLjdmYmIxZTkyNDM4NDljMjM1NjFmOWQ0NzNlZTY3NDFl
Mjc2YjM3Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5w
cm8KKysrIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybwpAQCAtNiwxMSAr
NiwxNCBAQAogCiBURU1QTEFURSA9IGFwcAogCi1JTkNMVURFUEFUSCArPSAkJHtST09UX1dFQktJ
VF9ESVJ9L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQKK0lOQ0xVREVQQVRIICs9IFwK
KyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQg
XAorICAgICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvIFwKIAog
bG9hZChmZWF0dXJlcykKIAogU09VUkNFUyArPSBcCisgICAgJCR7Uk9PVF9XRUJLSVRfRElSfS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9RdEluaXRpYWxpemVUZXN0Rm9udHMuY3BwIFwKICAgICBs
b2NhdGlvbmVkaXQuY3BwIFwKICAgICBsYXVuY2hlcndpbmRvdy5jcHAgXAogICAgIG1haW4uY3Bw
IFwKQEAgLTIzLDYgKzI2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY29va2llamFyLmNwcAogCiBI
RUFERVJTICs9IFwKKyAgICAkJHtST09UX1dFQktJVF9ESVJ9L1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5oIFwKICAgICBsb2NhdGlvbmVkaXQuaCBcCiAgICAg
bGF1bmNoZXJ3aW5kb3cuaCBcCiAgICAgbWFpbndpbmRvdy5oIFwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1
bmNoZXJ3aW5kb3cuaAppbmRleCAzNDk1YmFkYTgyMjg4N2YzNmUzMGQ3NmVlZTUwMjk4NDAwOGRh
ODZjLi45YWVkNmMwMWFmYTBhZDZkNDY4MzQyNmJjNzgyYzhmOTA3YzU4NDI4IDEwMDY0NAotLS0g
YS9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmgKKysrIGIvVG9vbHMvUXRUZXN0
QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oCkBAIC04Myw5ICs4Myw2IEBAIHB1YmxpYzoKICNpZm5k
ZWYgUVRfTk9fT1BFTkdMCiAgICAgICAgICwgdXNlUUdMV2lkZ2V0Vmlld3BvcnQoZmFsc2UpCiAj
ZW5kaWYKLSNpZiBkZWZpbmVkKFFfV1NfWDExKQotICAgICAgICAsIHVzZVRlc3RGb250cyhmYWxz
ZSkKLSNlbmRpZgogICAgICAgICAsIHByaW50TG9hZGVkVXJscyhmYWxzZSkKICAgICAgICAgLCBz
dGFydE1heGltaXplZChmYWxzZSkKICAgICB7CkBAIC0xMDksOSArMTA2LDYgQEAgcHVibGljOgog
I2lmbmRlZiBRVF9OT19PUEVOR0wKICAgICBib29sIHVzZVFHTFdpZGdldFZpZXdwb3J0OwogI2Vu
ZGlmCi0jaWYgZGVmaW5lZChRX1dTX1gxMSkKLSAgICBib29sIHVzZVRlc3RGb250czsKLSNlbmRp
ZgogICAgIGJvb2wgcHJpbnRMb2FkZWRVcmxzOwogICAgIFFVcmwgaW5zcGVjdG9yVXJsOwogICAg
IHF1aW50MTYgcmVtb3RlSW5zcGVjdG9yUG9ydDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJy
b3dzZXIvbWFpbi5jcHAgYi9Ub29scy9RdFRlc3RCcm93c2VyL21haW4uY3BwCmluZGV4IDYwM2Fk
NjE2MDliMTBmYWFjY2M0ZWI0MmQ3MDI3ZWYwY2I3OWFmNjIuLjBlZGU1ZmQ2NmVmMGViY2VkYjhi
M2JlMTAxYTk2N2MyNTJjNGUwMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbWFp
bi5jcHAKKysrIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWluLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogICovCiAKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIgorI2luY2x1ZGUg
IlF0SW5pdGlhbGl6ZVRlc3RGb250cy5oIgogI2luY2x1ZGUgImxhdW5jaGVyd2luZG93LmgiCiAj
aW5jbHVkZSAidXJsbG9hZGVyLmgiCiAKQEAgLTQyLDYxICs0Myw4IEBAIFdpbmRvd09wdGlvbnMg
d2luZG93T3B0aW9uczsKICNpbmNsdWRlIDxRRmlsZUluZm8+CiAjaW5jbHVkZSA8UUZvbnREYXRh
YmFzZT4KIAotI2lmIGRlZmluZWQoUV9XU19YMTEpCi0jaW5jbHVkZSA8Zm9udGNvbmZpZy9mb250
Y29uZmlnLmg+Ci0jZW5kaWYKLQotCi0jaWYgZGVmaW5lZChRX1dTX1gxMSkKLS8vIFZlcnkgc2lt
aWxhciB0byBXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6aW5pdGlhbGl6ZUZvbnRzKCk7Ci0vLyBE
dXBsaWNhdGVkIGhlcmUgc28gdGhhdCBRdFRlc3RCcm93c2VyIHdvdWxkIGRpc3BsYXkgY29udGVu
dHMKLS8vIHdpdGggdGhlIHNhbWUgZm9udHMgYXMgcnVuLXdlYmtpdC10ZXN0cy9EdW1wUmVuZGVy
VHJlZS4KLXN0YXRpYyB2b2lkIGluaXRUZXN0Rm9udHMoKQotewotICAgIHN0YXRpYyBpbnQgbnVt
Rm9udHMgPSAtMTsKLQotICAgIC8vIFNvbWUgdGVzdCBjYXNlcyBtYXkgYWRkIG9yIHJlbW92ZSBh
cHBsaWNhdGlvbiBmb250cyAodmlhIEBmb250LWZhY2UpLgotICAgIC8vIE1ha2Ugc3VyZSB0byBy
ZS1pbml0aWFsaXplIHRoZSBmb250IHNldCBpZiBuZWNlc3NhcnkuCi0gICAgRmNGb250U2V0KiBh
cHBGb250U2V0ID0gRmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKLSAgICBp
ZiAoYXBwRm9udFNldCAmJiBudW1Gb250cyA+PSAwICYmIGFwcEZvbnRTZXQtPm5mb250ID09IG51
bUZvbnRzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBRQnl0ZUFycmF5IGZvbnREaXIgPSBnZXRl
bnYoIldFQktJVF9URVNURk9OVFMiKTsKLSAgICBpZiAoZm9udERpci5pc0VtcHR5KCkgfHwgIVFE
aXIoZm9udERpcikuZXhpc3RzKCkpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAg
ICAgICAgICAgIlxuXG4iCi0gICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAg
ICAgICAgICAgICAiV0VCS0lUX1RFU1RGT05UUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qg
c2V0IGNvcnJlY3RseS5cbiIKLSAgICAgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBoYXMgdG8g
cG9pbnQgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmb250c1xuIgotICAgICAgICAg
ICAgICAgICJ5b3UgY2FuIGNsb25lIGZyb20gZ2l0Oi8vZ2l0b3Jpb3VzLm9yZy9xdHdlYmtpdC90
ZXN0Zm9udHMuZ2l0XG4iCi0gICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAg
ICAgICAgICAgICk7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotICAgIC8vIExvb2tzIGZvciBx
dC9mb250cy5jb25mIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIFF0VGVzdEJyb3dz
ZXIgCi0gICAgLy8gZXhlY3V0YWJsZS4KLSAgICBRU3RyaW5nIGNvbmZpZ0ZpbGVTdHJpbmcgPSBR
Q29yZUFwcGxpY2F0aW9uOjphcHBsaWNhdGlvbkRpclBhdGgoKTsKLSAgICBjb25maWdGaWxlU3Ry
aW5nICs9ICIvLi4vLi4vLi4vVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvZm9udHMuY29uZiI7Ci0g
ICAgUUJ5dGVBcnJheSBjb25maWdGaWxlQXJyYXkgPSBjb25maWdGaWxlU3RyaW5nLnRvVXRmOCgp
OwotICAgIEZjQ29uZmlnKiBjb25maWcgPSBGY0NvbmZpZ0NyZWF0ZSgpOwotICAgIGlmICghRmND
b25maWdQYXJzZUFuZExvYWQgKGNvbmZpZywgKEZjQ2hhcjgqKSBjb25maWdGaWxlQXJyYXkuZGF0
YSgpLCB0cnVlKSkKLSAgICAgICAgcUZhdGFsKCJDb3VsZG4ndCBsb2FkIGZvbnQgY29uZmlndXJh
dGlvbiBmaWxlIik7Ci0gICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGREaXIgKGNvbmZpZywgKEZj
Q2hhcjgqKSBmb250RGlyLmRhdGEoKSkpCi0gICAgICAgIHFGYXRhbCgiQ291bGRuJ3QgYWRkIGZv
bnQgZGlyISIpOwotICAgIEZjQ29uZmlnU2V0Q3VycmVudChjb25maWcpOwotCi0gICAgYXBwRm9u
dFNldCA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKTsKLSAgICBu
dW1Gb250cyA9IGFwcEZvbnRTZXQtPm5mb250OwotfQotI2VuZGlmCi0KIGludCBsYXVuY2hlck1h
aW4oY29uc3QgUUFwcGxpY2F0aW9uJiBhcHApCiB7Ci0jaWZkZWYgUV9XU19YMTEKLSAgICBpZiAo
d2luZG93T3B0aW9ucy51c2VUZXN0Rm9udHMpCi0gICAgICAgIGluaXRUZXN0Rm9udHMoKTsKLSNl
bmRpZgotCiAjaWZuZGVmIE5ERUJVRwogICAgIGludCByZXRWYWwgPSBhcHAuZXhlYygpOwogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCgpOwpAQCAt
MTk5LDcgKzE0Nyw3IEBAIHZvaWQgTGF1bmNoZXJBcHBsaWNhdGlvbjo6aGFuZGxlVXNlck9wdGlv
bnMoKQogICAgICAgICAgICAgIDw8ICJbLW9mZmxpbmUtc3RvcmFnZS1kYXRhYmFzZS1lbmFibGVk
XSIKICAgICAgICAgICAgICA8PCAiWy1vZmZsaW5lLXdlYi1hcHBsaWNhdGlvbi1jYWNoZS1lbmFi
bGVkXSIKICAgICAgICAgICAgICA8PCAiWy1zZXQtb2ZmbGluZS1zdG9yYWdlLWRlZmF1bHQtcXVv
dGEgbWF4U2l6ZV0iCi0jaWYgZGVmaW5lZChRX1dTX1gxMSkKKyNpZiBkZWZpbmVkKEhBVkVfRk9O
VENPTkZJRykgJiYgSEFWRV9GT05UQ09ORklHCiAgICAgICAgICAgICAgPDwgIlstdXNlLXRlc3Qt
Zm9udHNdIgogI2VuZGlmCiAgICAgICAgICAgICAgPDwgIlstcHJpbnQtbG9hZGVkLXVybHNdIgpA
QCAtMjk0LDkgKzI0Miw5IEBAIHZvaWQgTGF1bmNoZXJBcHBsaWNhdGlvbjo6aGFuZGxlVXNlck9w
dGlvbnMoKQogICAgIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChRX1dTX1gxMSkKKyNpZiBkZWZp
bmVkKEhBVkVfRk9OVENPTkZJRykgJiYgSEFWRV9GT05UQ09ORklHCiAgICAgaWYgKGFyZ3MuY29u
dGFpbnMoIi11c2UtdGVzdC1mb250cyIpKQotICAgICAgICB3aW5kb3dPcHRpb25zLnVzZVRlc3RG
b250cyA9IHRydWU7CisgICAgICAgIFdlYkNvcmU6OmluaXRpYWxpemVUZXN0Rm9udHMoKTsKICNl
bmRpZgogCiAgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1wcmludC1sb2FkZWQtdXJscyIpKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UYXJnZXQucHJp
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UYXJnZXQucHJpCmluZGV4
IGIxODcxNTY0NmQzMTk1YjMwNDEwNTMzMzM2YjFlZTQxN2UwZjliMjIuLmRlNWI2M2I5MDEyYjZj
OWIxZjRmYjczYjFmNDEwZDhkNjliNDEyNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGFyZ2V0LnByaQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1RhcmdldC5wcmkKQEAgLTgsNiArOCw3IEBAIFRFTVBMQVRFID0g
bGliCiBUQVJHRVQgPSBXVFJJbmplY3RlZEJ1bmRsZQogCiBTT1VSQ0VTICs9IFwKKyAgICAkJHtS
T09UX1dFQktJVF9ESVJ9L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1F0SW5pdGlhbGl6ZVRlc3RG
b250cy5jcHAgXAogICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBcCiAgICAgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIuY3BwIFwKICAgICBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
LmNwcCBcCkBAIC0zNCw2ICszNSw3IEBAIFNPVVJDRVMgKz0gXAogaW5jbHVkZShEZXJpdmVkU291
cmNlcy5wcmkpCiAKIEhFQURFUlMgKz0gXAorICAgICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvUXRJbml0aWFsaXplVGVzdEZvbnRzLmggXAogICAgIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmggXAogICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmggXAogICAg
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaCBcCkBAIC02Miw3ICs2NCw4IEBAIElOQ0xV
REVQQVRIICs9IFwKICAgICAkJFBXRC8uLiBcCiAgICAgJCRQV0QvQmluZGluZ3MgXAogICAgICQk
e1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcyBcCi0gICAgJCR7Uk9P
VF9XRUJLSVRfRElSfS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0CisgICAgJCR7Uk9P
VF9XRUJLSVRfRElSfS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0IFwKKyAgICAkJHtS
T09UX1dFQktJVF9ESVJ9L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0CiAKIFBSRUZJWF9IRUFERVIg
PSAkJFBXRC8uLi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmgKICotZysrKjpRTUFLRV9DWFhGTEFH
UyArPSAiLWluY2x1ZGUgJCRQUkVGSVhfSEVBREVSIgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9BY3RpdmF0ZUZvbnRzUXQuY3BwCmlu
ZGV4IGVlZGY1NzMyOTJiNDM0YTQ1OGExN2ViNjU3NzQ3NGUwNWQ2MDc2OGYuLjIwMWMwOGJhMjMz
MWQ1NGE0NjUwNjk0ZmFiMmUyYTM1Mjk1MTZiMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvQWN0aXZhdGVGb250c1F0LmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0L0FjdGl2YXRlRm9udHNRdC5jcHAK
QEAgLTI5LDg2ICsyOSwyMyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQWN0
aXZhdGVGb250cy5oIgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCisjaW5j
bHVkZSAiUXRJbml0aWFsaXplVGVzdEZvbnRzLmgiCiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+
Ci0jaW5jbHVkZSA8UUJ5dGVBcnJheT4KLSNpbmNsdWRlIDxRRGlyPgotI2luY2x1ZGUgPFFGb250
PgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAjaW5jbHVkZSA8UVdpbmRvd3NTdHlsZT4KIAotI2lmIEhB
VkUoRk9OVENPTkZJRykKLSNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KLSNlbmRp
ZgotCi0jaW5jbHVkZSA8bGltaXRzLmg+Ci0KIG5hbWVzcGFjZSBXVFIgewogCiB2b2lkIGFjdGl2
YXRlRm9udHMoKQogewotI2lmIEhBVkUoRk9OVENPTkZJRykKLSAgICBGY0luaXQoKTsKLQotICAg
IHN0YXRpYyBpbnQgbnVtRm9udHMgPSAtMTsKLQotICAgIC8vIFNvbWUgdGVzdCBjYXNlcyBtYXkg
YWRkIG9yIHJlbW92ZSBhcHBsaWNhdGlvbiBmb250cyAodmlhIEBmb250LWZhY2UpLgotICAgIC8v
IE1ha2Ugc3VyZSB0byByZS1pbml0aWFsaXplIHRoZSBmb250IHNldCBpZiBuZWNlc3NhcnkuCi0g
ICAgRmNGb250U2V0KiBhcHBGb250U2V0ID0gRmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxp
Y2F0aW9uKTsKLSAgICBpZiAoYXBwRm9udFNldCAmJiBudW1Gb250cyA+PSAwICYmIGFwcEZvbnRT
ZXQtPm5mb250ID09IG51bUZvbnRzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjaGFyKiBjb25z
dCBmb250RGlyID0gZ2V0ZW52KCJXRUJLSVRfVEVTVEZPTlRTIik7Ci0gICAgY29uc3QgUVN0cmlu
ZyBmb250RGlyU3RyaW5nID0gUVN0cmluZzo6ZnJvbUxvY2FsOEJpdChmb250RGlyKTsKLSAgICBp
ZiAoZm9udERpclN0cmluZy5pc0VtcHR5KCkgfHwgIVFEaXIoZm9udERpclN0cmluZykuZXhpc3Rz
KCkpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAgICAgIlxuXG4iCi0g
ICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAiV0VCS0lU
X1RFU1RGT05UUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0IGNvcnJlY3RseS5cbiIK
LSAgICAgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBoYXMgdG8gcG9pbnQgdG8gdGhlIGRpcmVj
dG9yeSBjb250YWluaW5nIHRoZSBmb250c1xuIgotICAgICAgICAgICAgICAgICJ5b3UgY2FuIGNs
b25lIGZyb20gZ2l0Oi8vZ2l0b3Jpb3VzLm9yZy9xdHdlYmtpdC90ZXN0Zm9udHMuZ2l0XG4iCi0g
ICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICk7Ci0gICAg
ICAgIGV4aXQoMSk7Ci0gICAgfQotICAgIGNoYXIgY3VycmVudFBhdGhbUEFUSF9NQVgrMV07Ci0g
ICAgaWYgKCFnZXRjd2QoY3VycmVudFBhdGgsIFBBVEhfTUFYKSkKLSAgICAgICAgcUZhdGFsKCJD
b3VsZG4ndCBnZXQgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSIpOwotICAgIFFCeXRlQXJyYXkg
Y29uZmlnRmlsZSA9IGN1cnJlbnRQYXRoOwotICAgIEZjQ29uZmlnKiBjb25maWcgPSBGY0NvbmZp
Z0NyZWF0ZSgpOwotICAgIGNvbmZpZ0ZpbGUgKz0gIi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9m
b250cy5jb25mIjsKLSAgICBpZiAoIUZjQ29uZmlnUGFyc2VBbmRMb2FkIChjb25maWcsIChGY0No
YXI4KikgY29uZmlnRmlsZS5kYXRhKCksIHRydWUpKQotICAgICAgICBxRmF0YWwoIkNvdWxkbid0
IGxvYWQgZm9udCBjb25maWd1cmF0aW9uIGZpbGUiKTsKLSAgICBpZiAoIUZjQ29uZmlnQXBwRm9u
dEFkZERpciAoY29uZmlnLCAoRmNDaGFyOCopIGZvbnREaXIpKQotICAgICAgICBxRmF0YWwoIkNv
dWxkbid0IGFkZCBmb250IGRpciEiKTsKLSAgICBGY0NvbmZpZ1NldEN1cnJlbnQoY29uZmlnKTsK
LQotICAgIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRBcHBsaWNh
dGlvbik7Ci0gICAgbnVtRm9udHMgPSBhcHBGb250U2V0LT5uZm9udDsKLSNlbmRpZgorICAgIFdl
YkNvcmU6OmluaXRpYWxpemVUZXN0Rm9udHMoKTsKIAogICAgIFFBcHBsaWNhdGlvbjo6c2V0R3Jh
cGhpY3NTeXN0ZW0oUUxhdGluMVN0cmluZygicmFzdGVyIikpOwogI2lmIEhBVkUoUVNUWUxFKQog
ICAgIFFBcHBsaWNhdGlvbjo6c2V0U3R5bGUobmV3IFFXaW5kb3dzU3R5bGUpOwogI2VuZGlmCi0K
LSNpZiBkZWZpbmVkKFFfV1NfWDExKQotICAgIFFYMTFJbmZvOjpzZXRBcHBEcGlYKDAsIDk2KTsK
LSAgICBRWDExSW5mbzo6c2V0QXBwRHBpWSgwLCA5Nik7Ci0jZW5kaWYKLQotICAgLyoKLSAgICAq
IFFBcHBsaWNhdGlvbiB3aWxsIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgYXBwbGljYXRpb24gZm9u
dCBiYXNlZAotICAgICogb24gdGhlIGFwcGxpY2F0aW9uIERQSSBhdCBjb25zdHJ1Y3Rpb24gdGlt
ZSwgd2hpY2ggbWlnaHQgYmUKLSAgICAqIGRpZmZlcmVudCBmcm9tIHRoZSBEUEkgd2UgZXhwbGlj
aXRseSBzZXQgdXNpbmcgUVgxMUluZm8gYWJvdmUuCi0gICAgKiBTZWU6IGh0dHBzOi8vYnVncmVw
b3J0cy5xdC5ub2tpYS5jb20vYnJvd3NlL1FUQlVHLTIxNjAzCi0gICAgKgotICAgICogVG8gZW5z
dXJlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGZvbnQgRFBJIG1hdGNoZXMgdGhlIGFwcGxpY2F0aW9u
Ci0gICAgKiBEUEksIHdlIG92ZXJyaWRlIHRoZSBhcHBsaWNhdGlvbiBmb250IHVzaW5nIHRoZSBm
b250IHdlIGdldCBmcm9tCi0gICAgKiBhIFFXaWRnZXQsIHdoaWNoIGhhcyBhbHJlYWR5IGJlZW4g
cmVzb2x2ZWQgYWdhaW5zdCB0aGUgZXhpc3RpbmcKLSAgICAqIGRlZmF1bHQgZm9udCwgYnV0IHdp
dGggdGhlIGNvcnJlY3QgcGFpbnQtZGV2aWNlIERQSS4KLSAgICovCi0gICAgUUFwcGxpY2F0aW9u
OjpzZXRGb250KFFXaWRnZXQoKS5mb250KCkpOwogfQogCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>