<?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>41398</bug_id>
          
          <creation_ts>2010-06-30 03:04:27 -0700</creation_ts>
          <short_desc>Unfork Chromium&apos;s FontPlatformDataMac.mm</short_desc>
          <delta_ts>2010-08-31 02:37:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>41148</dependson>
    
    <dependson>44845</dependson>
          <blocked>44937</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Moskovich">playmobil</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>244709</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-06-30 03:04:27 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=41148 forks FontPlatformDataMac.mm for the Chromium port to enable cross-process font loading.

This bug tracks unforking the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268503</commentid>
    <comment_count>1</comment_count>
      <attachid>65262</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-08-24 06:00:18 -0700</bug_when>
    <thetext>Created attachment 65262
platform/graphics/mac -&gt; platform/graphics/cocoa

As a first step, per Joseph&apos;s comment at https://lists.webkit.org/pipermail/webkit-dev/2010-July/013409.html I&apos;ve attached a patch that moves FontPlatformData.h and FontPlatformDataMac.mm to platform/graphics/cocoa .  The next step will be merging the actual code changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268513</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-24 06:20:54 -0700</bug_when>
    <thetext>Attachment 65262 did not build on mac:
Build output: http://queues.webkit.org/results/3705586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268520</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-08-24 06:34:41 -0700</bug_when>
    <thetext>(in response to Mac EWS: builds fine for me locally, I&apos;ll double check before landing),</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268544</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-24 07:27:19 -0700</bug_when>
    <thetext>The EWS is saying:

In file included from /Users/eseidel/Projects/MacEWS/WebCore/platform/graphics/FontFallbackList.h:25,
                 from /Users/eseidel/Projects/MacEWS/WebCore/platform/graphics/Font.h:30,
                 from /Users/eseidel/Projects/MacEWS/WebCore/rendering/style/RenderStyle.h:48,
                 from /Users/eseidel/Projects/MacEWS/WebCore/css/CSSStyleSelector.h:28,
                 from /Users/eseidel/Projects/MacEWS/WebCore/inspector/InspectorDOMAgent.cpp:41:
/Users/eseidel/Projects/MacEWS/WebCore/platform/graphics/SimpleFontData.h:28:30: error: FontPlatformData.h: No such file or directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268560</commentid>
    <comment_count>5</comment_count>
      <attachid>65262</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-08-24 08:20:00 -0700</bug_when>
    <thetext>Comment on attachment 65262
platform/graphics/mac -&gt; platform/graphics/cocoa

something is wrong with the diff. It&apos;s showing FontPlatformData* as removed, not copied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269212</commentid>
    <comment_count>6</comment_count>
      <attachid>65411</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-08-25 06:37:23 -0700</bug_when>
    <thetext>Created attachment 65411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269213</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-08-25 06:40:09 -0700</bug_when>
    <thetext>New patch uploaded with the help of the webkit-patch script, hopefully making for a better diff.  In case it&apos;s not clear from the changelog, the only changes in this patch are:
* Move 2 source files.
* Update WebCore XCodeproj &amp; Chromium .gypi file to point to the new files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269220</commentid>
    <comment_count>8</comment_count>
      <attachid>65411</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-08-25 06:58:59 -0700</bug_when>
    <thetext>Comment on attachment 65411
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271120</commentid>
    <comment_count>9</comment_count>
      <attachid>65847</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-08-28 22:31:43 -0700</bug_when>
    <thetext>Created attachment 65847
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271129</commentid>
    <comment_count>10</comment_count>
      <attachid>65847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-28 23:46:18 -0700</bug_when>
    <thetext>Comment on attachment 65847
Patch for landing

Clearing flags on attachment: 65847

Committed r66329: &lt;http://trac.webkit.org/changeset/66329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271130</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-28 23:46:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271131</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-29 00:13:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66329 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271217</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 14:37:09 -0700</bug_when>
    <thetext>I think this broke the build.

The failures here &lt;http://build.webkit.org/builders/Chromium%20Mac%20Release/builds/12791/steps/compile-webkit/logs/stdio&gt; look related to this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271252</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-08-29 18:31:08 -0700</bug_when>
    <thetext>It most definitely did.  Reverted at r66342.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271295</commentid>
    <comment_count>15</comment_count>
      <attachid>65878</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2010-08-29 22:36:58 -0700</bug_when>
    <thetext>Created attachment 65878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271296</commentid>
    <comment_count>16</comment_count>
      <attachid>65878</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-08-29 22:46:15 -0700</bug_when>
    <thetext>Comment on attachment 65878
Patch

Looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271301</commentid>
    <comment_count>17</comment_count>
      <attachid>65878</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-29 23:13:06 -0700</bug_when>
    <thetext>Comment on attachment 65878
Patch

Clearing flags on attachment: 65878

Committed r66358: &lt;http://trac.webkit.org/changeset/66358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271302</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-29 23:13:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271322</commentid>
    <comment_count>19</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-08-29 23:57:00 -0700</bug_when>
    <thetext>We rely on header include path order to compile?  That&apos;s incredibly fragile :(.  Is there really no better way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271327</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-30 00:06:39 -0700</bug_when>
    <thetext>This header include path dependency was added during the Chromium merge. Before that we used to use differently named header files and #if&apos;s in the central header but some Google folks wanted to use header paths because it scales better and does not require a single header with #ifs for each platform.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65262</attachid>
            <date>2010-08-24 06:00:18 -0700</date>
            <delta_ts>2010-08-25 06:37:10 -0700</delta_ts>
            <desc>platform/graphics/mac -&gt; platform/graphics/cocoa</desc>
            <filename>platform_cocoa.patch</filename>
            <type>text/plain</type>
            <size>27436</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDgtMjQgIEplcmVteSBNb3Nrb3ZpY2ggIDxqZXJlbXlAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpcnN0IHN0ZXAgaW4gdW5mb3JraW5nIENocm9tZSdzIEZvbnRQbGF0Zm9ybURhdGFNYWMu
bW0uCisgICAgICAgIE1vdmUgZmlsZXMgZnJvbSBwbGF0Zm9ybS9ncmFwaGljcy9tYWMgdG8gcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDEzOTgKKworICAgICAgICBKdXN0IG1vdmluZyBmaWxlcyBhcm91bmQg
c28gbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YS5oOiBDb3BpZWQgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250UGxhdGZvcm1EYXRhLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOiBDb3BpZWQgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhTWFjLm1tLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW06IFJlbW92ZWQuCisKIDIwMTAt
MDgtMjQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2NTg5MCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBp
bnRlcm5hbCBmb250IGltcGxlbWVudGF0aW9uLgotICogSXQgc2hvdWxkIG5vdCBiZSBpbmNsdWRl
ZCBieSBzb3VyY2UgZmlsZXMgb3V0c2lkZSBvZiBpdC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0g
Ki8KLQotI2lmbmRlZiBGb250UGxhdGZvcm1EYXRhX2gKLSNkZWZpbmUgRm9udFBsYXRmb3JtRGF0
YV9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+Ci0KLSNpZmRlZiBfX09CSkNf
XwotQGNsYXNzIE5TRm9udDsKLSNlbHNlCi1jbGFzcyBOU0ZvbnQ7Ci0jZW5kaWYKLQotdHlwZWRl
ZiBzdHJ1Y3QgQ0dGb250KiBDR0ZvbnRSZWY7Ci0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi10
eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udCogQ1RGb250UmVmOwotI2VuZGlmCi0KLSNpbmNs
dWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KLSNpbmNsdWRlIDxvYmpjL29iamMtYXV0by5o
PgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgot
Ci10eXBlZGVmIFVJbnQzMiBBVFNVRm9udElEOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNp
Zm5kZWYgQlVJTERJTkdfT05fVElHRVIKLWlubGluZSBDVEZvbnRSZWYgdG9DVEZvbnRSZWYoTlNG
b250ICpuc0ZvbnQpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihuc0ZvbnQp
OyB9Ci0jZW5kaWYKLQotY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7Ci0gIHB1YmxpYzoKLSAgICBG
b250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNPYmxpcXVlKQotICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQot
ICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQotICAgICAgICAs
IG1fYXRzdUZvbnRJRCgwKQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgICAgICAsIG1fZm9u
dCgwKQotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgICAgICwgbV9jZ0ZvbnQoMCkKLSNl
bmRpZgotICAgICAgICAsIG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCi0gICAgewotICAgIH0K
LQotICAgIEZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9s
ZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7Ci0gICAgCi0gICAgRm9u
dFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxvYXQg
c2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCi0gICAgICAg
IDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCi0gICAgICAgICwgbV9zeW50aGV0aWNP
YmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCi0gICAgICAgICwgbV9hdHN1Rm9udElEKGZvbnRJRCkK
LSAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAgICAgLCBtX2ZvbnQoMCkKLSAgICAgICAgLCBt
X2NnRm9udChjZ0ZvbnQpCi0gICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChmYWxzZSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRh
Jik7Ci0gICAgCi0gICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKLQotICAgIEZvbnRQbGF0Zm9ybURh
dGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fZm9udChoYXNoVGFibGVEZWxl
dGVkRm9udFZhbHVlKCkpIHsgfQotICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnQgPT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpOyB9Ci0K
LSAgICBmbG9hdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0gICAgYm9vbCBzeW50
aGV0aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9Ci0gICAgYm9vbCBz
eW50aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9Ci0K
LSAgICBib29sIG1fc3ludGhldGljQm9sZDsKLSAgICBib29sIG1fc3ludGhldGljT2JsaXF1ZTsK
LQotICAgIEFUU1VGb250SUQgbV9hdHN1Rm9udElEOwotICAgIGZsb2F0IG1fc2l6ZTsKLQotICAg
IHVuc2lnbmVkIGhhc2goKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fZm9udCAhPSAw
IHx8IG1fY2dGb250ID09IDApOwotICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0geyAo
dWludHB0cl90KW1fZm9udCwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlx
dWUgfTsKLSAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0
X2Nhc3Q8VUNoYXIqPihoYXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hh
cikpOwotICAgIH0KLQotICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJhdG9yPShjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBmKTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1cm4gbV9mb250
ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIubV9zeW50aGV0aWNC
b2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09ibGlxdWUgJiYg
Ci0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3NpemUgPT0g
b3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQ7Ci0gICAg
fQotCi0gICAgTlNGb250ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9Ci0gICAgdm9p
ZCBzZXRGb250KE5TRm9udCAqZm9udCk7Ci0KLSNpZiBVU0UoQ09SRV9URVhUKQotICAgIENURm9u
dFJlZiBjdEZvbnQoKSBjb25zdDsKLSNlbmRpZgotCi0gICAgYm9vbCByb3VuZHNHbHlwaEFkdmFu
Y2VzKCkgY29uc3Q7Ci0gICAgYm9vbCBhbGxvd3NMaWdhdHVyZXMoKSBjb25zdDsKLSAgICBib29s
IGlzQ29sb3JCaXRtYXBGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbG9yQml0bWFwRm9udDsg
fQotCi0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgQ0dGb250UmVmIGNnRm9udCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2dGb250LmdldCgpOyB9Ci0jZWxzZQotICAgIENHRm9udFJlZiBjZ0Zv
bnQoKSBjb25zdCB7IHJldHVybiBtX2NnRm9udDsgfQotI2VuZGlmCi0KLSNpZm5kZWYgTkRFQlVH
Ci0gICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgTlNGb250ICpoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkgeyByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpOyB9Ci0KLSAgICBOU0ZvbnQgKm1fZm9udDsKLQot
I2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IG1fY2dG
b250OwotI2Vsc2UKLSAgICBDR0ZvbnRSZWYgbV9jZ0ZvbnQ7IC8vIEl0IGlzIG5vdCBuZWNlc3Nh
cnkgdG8gcmVmY291bnQgdGhpcywgc2luY2UgZWl0aGVyIGFuIE5TRm9udCBvd25zIGl0IG9yIHNv
bWUgQ2FjaGVkRm9udCBoYXMgaXQgcmVmZXJlbmNlZC4KLSNlbmRpZgotCi0jaWYgVVNFKENPUkVf
VEVYVCkKLSAgICBtdXRhYmxlIFJldGFpblB0cjxDVEZvbnRSZWY+IG1fQ1RGb250OwotI2VuZGlm
Ci0KLSAgICBib29sIG1faXNDb2xvckJpdG1hcEZvbnQ7Ci19OwotCi19Ci0KLSNlbmRpZgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YU1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1E
YXRhTWFjLm1tCShyZXZpc2lvbiA2NTg5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsMTU0ICswLDAg
QEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgaW50ZXJuYWwgZm9udCBpbXBsZW1l
bnRhdGlvbi4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJGb250UGxhdGZvcm1EYXRhLmgiCi0KLSNpbXBvcnQgIlBsYXRmb3JtU3RyaW5n
LmgiCi0jaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxBcHBLaXQv
TlNGb250Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY09ibGlxdWUpCi0gICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKLSAg
ICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQotICAgICwgbV9mb250KG5z
Rm9udCkKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAg
ICwgbV9pc0NvbG9yQml0bWFwRm9udChDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0b0NURm9udFJl
Zihuc0ZvbnQpKSAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0KQotI2Vsc2UKLSAgICAsIG1faXND
b2xvckJpdG1hcEZvbnQoZmFsc2UpCi0jZW5kaWYKLXsKLSAgICBBU1NFUlRfQVJHKG5zRm9udCwg
bnNGb250KTsKLQotICAgIENGUmV0YWluKG5zRm9udCk7Ci0gICAgbV9zaXplID0gW25zRm9udCBw
b2ludFNpemVdOwotI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIG1fY2dGb250LmFkb3B0
Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udCh0b0NURm9udFJlZihuc0ZvbnQpLCAwKSk7Ci0gICAg
bV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKG5zRm9udCks
IDApOwotI2Vsc2UKLSAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJvbU5TRm9udChuc0ZvbnQp
OwotICAgIG1fYXRzdUZvbnRJRCA9IHdrR2V0TlNGb250QVRTVUZvbnRJZChuc0ZvbnQpOwotI2Vu
ZGlmCi19Ci0KLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgZikKLXsKLSAgICBtX2ZvbnQgPSBmLm1fZm9udCAmJiBmLm1fZm9udCAhPSBy
ZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkgPyBjb25zdF9jYXN0PE5TRm9udCAqPihzdGF0
aWNfY2FzdDxjb25zdCBOU0ZvbnQgKj4oQ0ZSZXRhaW4oZi5tX2ZvbnQpKSkgOiBmLm1fZm9udDsK
LQotICAgIG1fc3ludGhldGljQm9sZCA9IGYubV9zeW50aGV0aWNCb2xkOwotICAgIG1fc3ludGhl
dGljT2JsaXF1ZSA9IGYubV9zeW50aGV0aWNPYmxpcXVlOwotICAgIG1fc2l6ZSA9IGYubV9zaXpl
OwotICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKLSAgICBtX2F0c3VGb250SUQgPSBmLm1fYXRz
dUZvbnRJRDsKLSAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250
OwotI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwotI2VuZGlm
Ci19Ci0KLUZvbnRQbGF0Zm9ybURhdGE6OiB+Rm9udFBsYXRmb3JtRGF0YSgpCi17Ci0gICAgaWYg
KG1fZm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpKQotICAg
ICAgICBDRlJlbGVhc2UobV9mb250KTsKLX0KLQotY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgRm9u
dFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYpCi17Ci0g
ICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRoZXRpY0JvbGQ7Ci0gICAgbV9zeW50aGV0aWNP
YmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7Ci0gICAgbV9zaXplID0gZi5tX3NpemU7Ci0g
ICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwotICAgIG1fYXRzdUZvbnRJRCA9IGYubV9hdHN1Rm9u
dElEOwotICAgIGlmIChtX2ZvbnQgPT0gZi5tX2ZvbnQpCi0gICAgICAgIHJldHVybiAqdGhpczsK
LSAgICBpZiAoZi5tX2ZvbnQgJiYgZi5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQg
Kj4oLTEpKQotICAgICAgICBDRlJldGFpbihmLm1fZm9udCk7Ci0gICAgaWYgKG1fZm9udCAmJiBt
X2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpKQotICAgICAgICBDRlJlbGVh
c2UobV9mb250KTsKLSAgICBtX2ZvbnQgPSBmLm1fZm9udDsKLSAgICBtX2lzQ29sb3JCaXRtYXBG
b250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OwotI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgbV9D
VEZvbnQgPSBmLm1fQ1RGb250OwotI2VuZGlmCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi12b2lk
IEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQotewotICAgIEFTU0VSVF9B
UkcoZm9udCwgZm9udCk7Ci0gICAgQVNTRVJUKG1fZm9udCAhPSByZWludGVycHJldF9jYXN0PE5T
Rm9udCAqPigtMSkpOwotCi0gICAgaWYgKG1fZm9udCA9PSBmb250KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBDRlJldGFpbihmb250KTsKLSAgICBpZiAobV9mb250KQotICAgICAgICBDRlJlbGVh
c2UobV9mb250KTsKLSAgICBtX2ZvbnQgPSBmb250OwotICAgIG1fc2l6ZSA9IFtmb250IHBvaW50
U2l6ZV07Ci0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgbV9jZ0ZvbnQuYWRvcHRDRihD
VEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250UmVmKGZvbnQpLCAwKSk7Ci0gICAgbV9hdHN1
Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKGZvbnQpLCAwKTsKLSNl
bHNlCi0gICAgbV9jZ0ZvbnQgPSB3a0dldENHRm9udEZyb21OU0ZvbnQoZm9udCk7Ci0gICAgbV9h
dHN1Rm9udElEID0gd2tHZXROU0ZvbnRBVFNVRm9udElkKGZvbnQpOwotI2VuZGlmCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBtX2lzQ29sb3JCaXRt
YXBGb250ID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZvbnRSZWYoZm9udCkpICYga0NU
Rm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jZW5kaWYKLSNpZiBVU0UoQ09SRV9URVhUKQotICAgIG1f
Q1RGb250ID0gMDsKLSNlbmRpZgotfQotCi1ib29sIEZvbnRQbGF0Zm9ybURhdGE6OnJvdW5kc0ds
eXBoQWR2YW5jZXMoKSBjb25zdAotewotICAgIHJldHVybiBbbV9mb250IHJlbmRlcmluZ01vZGVd
ID09IE5TRm9udEFudGlhbGlhc2VkSW50ZWdlckFkdmFuY2VtZW50c1JlbmRlcmluZ01vZGU7Ci19
Ci0KLWJvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3RlcklzTWVtYmVy
OidhJ107Ci19Ci0KLSNpZiBVU0UoQ09SRV9URVhUKQotQ1RGb250UmVmIEZvbnRQbGF0Zm9ybURh
dGE6OmN0Rm9udCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fZm9udCkKLSAgICAgICAgcmV0dXJuIHRv
Q1RGb250UmVmKG1fZm9udCk7Ci0gICAgaWYgKCFtX0NURm9udCkKLSAgICAgICAgbV9DVEZvbnQu
YWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoR3JhcGhpY3NGb250KG1fY2dGb250LmdldCgpLCBtX3Np
emUsIDAsIDApKTsKLSAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7Ci19Ci0jZW5kaWYgLy8gVVNF
KENPUkVfVEVYVCkKLQotI2lmbmRlZiBOREVCVUcKLVN0cmluZyBGb250UGxhdGZvcm1EYXRhOjpk
ZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZ0ZvbnRE
ZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkpOwotICAgIHJl
dHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5nOjpudW1i
ZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6ICIiKSAr
IChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKTsKLX0KLSNl
bmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lw
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjU4OTApCisr
KyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjI4Myw2ICsyMjgzLDcg
QEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxw
ZXJUZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Zp
ZGVvTGF5ZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVCbGVuZC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwJywKQEAgLTIzMzcsNyArMjMzOCw2IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbScsCi0g
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1h
Yy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJD
QS5oJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA2NTg5MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MTAxLDEzICs0MTAxLDkgQEAKIAkJQjJBMUYyQjAwQ0VG
MEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTcwQ0VGMEFCRjAwNDQyRjZB
IC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwICovOyB9OwogCQlCMkExRjJCMTBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNW
R01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKIAkJQjJBRTlCOUQwQzNBRjI3NDAwRjIzRjdG
IC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAvKiBET01TVkdUZXh0
UGF0aEVsZW1lbnQubW0gKi87IH07Ci0JCUIyQUZGQzdDMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250
Q2FjaGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkFGRkM3NDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1tICovOyB9OwotCQlC
MkFGRkM3RDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NTBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi87IH07CiAJCUIyQUZG
QzdFMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NjBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovOyB9OwogCQlCMkFGRkM3RjBEMDBB
NUMxMDAzMDA3NEQgLyogU2ltcGxlRm9udERhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NzBEMDBBNUMxMDAzMDA3NEQgLyogU2lt
cGxlRm9udERhdGFNYWMubW0gKi87IH07CiAJCUIyQUZGQzgwMEQwMEE1QzEwMDMwMDc0RCAvKiBG
b250TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBRkZDNzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gKi87IH07Ci0JCUIyQUZGQzgx
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3OTBEMDBBNUMxMDAzMDA3NEQgLyog
Rm9udFBsYXRmb3JtRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUIyQUZGQzgyMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRh
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJB
RkZDN0EwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGFNYWMubW0gKi87IH07CiAJ
CUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3QjBEMDBB
NUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwICovOyB9OwogCQlCMkFGRkM5
MzBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzg4MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFw
ZUFyYWJpYy5jICovOyB9OwogCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFi
aWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZG
Qzg5MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5oICovOyB9OwpAQCAtNDQyNiw2ICs0
NDIyLDggQEAKIAkJQjUyM0NGMDkxMTgyNjc1NDAwRUJCMjlDIC8qIFNRTFRyYW5zYWN0aW9uU3lu
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTIz
Q0YwMjExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJhbnNhY3Rpb25TeW5jLmNwcCAqLzsgfTsKIAkJ
QjUyM0NGMEExMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTIzQ0YwMzExODI2NzU0MDBFQkIy
OUMgLyogRGF0YWJhc2VTeW5jLmNwcCAqLzsgfTsKIAkJQjUyM0NGMEIxMTgyNjc1NDAwRUJCMjlD
IC8qIERhdGFiYXNlU3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjUyM0NGMDQxMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5oICovOyB9
OworCQlCNTI1QTc5MzEyMjNFMzU3MDBBRDIxNjUgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUyNUE3OTExMjIzRTM1
NzAwQUQyMTY1IC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCNTI1QTc5NDEyMjNFMzU3MDBBRDIxNjUgLyogRm9u
dFBsYXRmb3JtRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjUyNUE3OTIxMjIzRTM1NzAwQUQyMTY1IC8qIEZvbnRQbGF0Zm9ybURhdGFD
b2NvYS5tbSAqLzsgfTsKIAkJQjUyNUE5NjUxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTI1
QTk2MzExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uaCAqLzsgfTsKIAkJQjUyNUE5
NjYxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1MjVBOTY0MTFDQTIzNDAwMDNBMjNBOCAv
KiBKU1NRTEV4Y2VwdGlvbi5jcHAgKi87IH07CiAJCUI1NTBCNTI1MTFEQzY4QTgwMDkyMzg4NSAv
KiBTUUxTdGF0ZW1lbnRTeW5jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEI1NTBCNTIxMTFEQzY4QTgwMDkyMzg4NSAvKiBTUUxTdGF0ZW1lbnRTeW5j
LmNwcCAqLzsgfTsKQEAgLTQ0NTcsNiArNDQ1NSw4IEBACiAJCUI1RDMxREZBMTFDRjYxMEIwMDlG
MjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNUQzMURGODExQ0Y2MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9N
Q2FsbGJhY2suY3BwICovOyB9OwogCQlCNUQzMURGQjExQ0Y2MTBCMDA5RjIyQjQgLyogQWN0aXZl
RE9NQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEI1RDMxREY5MTFDRjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5oICovOyB9
OwogCQlCNUQzNjAxQTExMkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVEMzYwMTkxMTJGOEI1
NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAqLzsgfTsKKwkJQjVGQjQ3NjgxMjIzRUU2
QjAwMzAwODQyIC8qIEZvbnRDYWNoZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI1RkI0NzY3MTIyM0VFNkIwMDMwMDg0MiAvKiBGb250Q2FjaGVN
YWMubW0gKi87IH07CisJCUI1RkI0NzZEMTIyM0VFRDgwMDMwMDg0MiAvKiBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEI1RkI0NzZDMTIyM0VFRDgwMDMwMDg0MiAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cCAqLzsgfTsKIAkJQjYxNzYyNTQxMjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjYxNzYyNTMxMjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZS5oICovOyB9OwogCQlCNjE3NjI2MjEyMDM0OTA4MDBFRjkxMTQgLyogSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjYxNzYyNjExMjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCAqLzsg
fTsKIAkJQjY1NjYyNkExMjBCMTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NTY2MjY3MTIwQjEx
NUEwMDZFQTg1QyAvKiBJREJUcmFuc2FjdGlvbi5jcHAgKi87IH07CkBAIC05ODU4LDEzICs5ODU4
LDkgQEAKIAkJQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBMUYyQTkwQ0VGMEFCRjAw
NDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjJBRTlCOUMwQzNBRjI3NDAwRjIzRjdGIC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdUZXh0UGF0
aEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQUZGQzc0MEQwMEE1
QzEwMDMwMDc0RCAvKiBGb250Q2FjaGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRm9udENhY2hlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCMkFGRkM3NTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzc2MEQwMEE1
QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyQUZGQzc3MEQwMEE1QzEwMDMwMDc0RCAvKiBTaW1wbGVGb250RGF0
YU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaW1wbGVG
b250RGF0YU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBRkZDNzgwRDAw
QTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRm9udE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJB
RkZDNzkwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRQbGF0Zm9ybURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQjJBRkZDN0EwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURh
dGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udFBs
YXRmb3JtRGF0YU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBRkZDN0Iw
RDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzg1MEQwMEE1REYwMDMwMDc0RCAvKiBjaGFy
YWN0ZXItc2V0cy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJjaGFyYWN0ZXItc2V0cy50
eHQiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkFGRkM4NjBEMDBBNURGMDAzMDA3
NEQgLyogbWFjLWVuY29kaW5ncy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJtYWMtZW5j
b2RpbmdzLnR4dCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDE4Nyw2ICsxMDE4
Myw4IEBACiAJCUI1MjNDRjAyMTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25T
eW5jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjUyM0NGMDMxMTgyNjc1NDAw
RUJCMjlDIC8qIERhdGFiYXNlU3luYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEYXRhYmFzZVN5bmMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
NTIzQ0YwNDExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlU3luYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCNTI1QTc5MTEyMjNFMzU3MDBBRDIxNjUgLyogRm9udFBsYXRmb3JtRGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGb250UGxhdGZvcm1EYXRhLmg7IHBhdGgg
PSBjb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUI1MjVBNzkyMTIyM0UzNTcwMEFEMjE2NSAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBGb250UGxhdGZvcm1EYXRhQ29j
b2EubW07IHBhdGggPSBjb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUI1MjVBOTYzMTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2Vw
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTEV4Y2VwdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTI1QTk2NDExQ0EyMzQwMDAzQTIzQTgg
LyogSlNTUUxFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNTUUxFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTUw
QjUyMTExREM2OEE4MDA5MjM4ODUgLyogU1FMU3RhdGVtZW50U3luYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxTdGF0ZW1lbnRTeW5jLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjI3LDYgKzEwMjI1LDggQEAKIAkJQjVEMzFERjgxMUNG
NjEwQjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEFjdGl2ZURPTUNhbGxiYWNrLmNwcDsgcGF0aCA9IGdlbmVyaWMv
QWN0aXZlRE9NQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNUQz
MURGOTExQ0Y2MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9NQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQWN0aXZlRE9NQ2FsbGJhY2suaDsgcGF0aCA9IGdlbmVyaWMv
QWN0aXZlRE9NQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjVEMzYw
MTkxMTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCNUZCNDc2NzEyMjNFRTZCMDAzMDA4NDIgLyogRm9udENhY2hlTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udENhY2hlTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNUZCNDc2QzEyMjNFRUQ4MDAzMDA4NDIgLyog
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjYxNzYyNTMxMjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjYxNzYyNjEx
MjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCNjU2NjI2NzEyMEIxMTVBMDA2RUE4NUMgLyogSURCVHJhbnNh
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCVHJhbnNh
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3NjksNiArMTU3Njks
OCBAQAogCQlCMjc1MzU0OTBCMDUzODE0MDAyQ0U2NEYgLyogbWFjICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCNUZCNDc2QzEyMjNFRUQ4MDAzMDA4NDIg
LyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi8sCisJCQkJQjVGQjQ3NjcxMjIzRUU2QjAw
MzAwODQyIC8qIEZvbnRDYWNoZU1hYy5tbSAqLywKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZB
MzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlCMjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29s
b3JNYWMubW0gKi8sCiAJCQkJMzdDMjM2MEUxMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0
Q29udHJvbGxlci5jcHAgKi8sCkBAIC0xNTc3OCwxMyArMTU3ODAsOSBAQAogCQkJCUIyNzUzNTRC
MEIwNTM4MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50TWFjLm1tICovLAogCQkJCUIyNzUzNTRDMEIw
NTM4MTQwMDJDRTY0RiAvKiBGbG9hdFJlY3RNYWMubW0gKi8sCiAJCQkJQjI3NTM1NEQwQjA1Mzgx
NDAwMkNFNjRGIC8qIEZsb2F0U2l6ZU1hYy5tbSAqLywKLQkJCQlCMkFGRkM3NDBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udENhY2hlTWFjLm1tICovLAogCQkJCTM3QzIzNjBBMTA5N0VERUQwMEVGOUY3
MiAvKiBGb250Q29tcGxleFRleHRNYWMuY3BwICovLAotCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMw
MDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCAqLywKIAkJCQlCMkFGRkM3NjBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovLAogCQkJCUIyQUZGQzc4
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250TWFjLm1tICovLAotCQkJCUIyQUZGQzc5MEQwMEE1QzEw
MDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmggKi8sCi0JCQkJQjJBRkZDN0EwRDAwQTVDMTAw
MzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGFNYWMubW0gKi8sCiAJCQkJQjJBRkZDN0IwRDAwQTVD
MTAwMzAwNzREIC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCAqLywKIAkJCQk0OUZGQkYxQzEx
Qzg1NTBFMDA2QTcxMTggLyogR3JhcGhpY3NDb250ZXh0M0RNYWMubW0gKi8sCiAJCQkJQjI3N0I0
MDMwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5tbSAqLywKQEAgLTE1ODE0
LDYgKzE1ODEyLDcgQEAKIAkJQjJBMDE1OTEwQUY2Q0Q1MzAwNkJDRTBFIC8qIGdyYXBoaWNzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCNTI1QTc5MDEy
MjNFMzQwMDBBRDIxNjUgLyogY29jb2EgKi8sCiAJCQkJQjI3NTM1MjkwQjA1MzgxNDAwMkNFNjRG
IC8qIGNnICovLAogCQkJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovLAog
CQkJCUIyNzUzNTQ5MEIwNTM4MTQwMDJDRTY0RiAvKiBtYWMgKi8sCkBAIC0xNjAxMSw2ICsxNjAx
MCwxNSBAQAogCQkJbmFtZSA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
KwkJQjUyNUE3OTAxMjIzRTM0MDAwQUQyMTY1IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCNTI1QTc5MTEyMjNFMzU3MDBBRDIxNjUgLyog
Rm9udFBsYXRmb3JtRGF0YS5oICovLAorCQkJCUI1MjVBNzkyMTIyM0UzNTcwMEFEMjE2NSAvKiBG
b250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IGNvY29hOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQjVEMzFERjcxMUNGNjBFNTAwOUYyMkI0
IC8qIGdlbmVyaWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtMTg3MzMsNyArMTg3NDEsNiBAQAogCQkJCUIyQzNEQTY4MEQwMDZDRDYwMEVGNkYyNiAvKiBG
b250RmFsbGJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2QTBEMDA2Q0Q2MDBF
RjZGMjYgLyogRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjMwQTE5ODlD
QTAwN0ZCOEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjJBRkZD
ODEwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3QUNDRTQyMERBMjk4MEYwMDg5RTYwMiAvKiBGb250UmVuZGVyaW5nTW9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJDM0RBNkIwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyMDIxOTkxMDYyMTNDNjAwRjI1QzRCIC8qIEZvbnRTbW9v
dGhpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTIwMzYxLDYgKzIwMzY4LDcgQEAKIAkJCQlD
RTA1N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVCNEJDRDMxMjFGMDNFMzAwRUM0ODg1
IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjUyNUE3OTMxMjIz
RTM1NzAwQUQyMTY1IC8qIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjEy
MzgsOSArMjEyNDYsNyBAQAogCQkJCTE0OTkzQkU1MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0Nv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNjAwRDAwNkNENjAwRUY2RjI2
IC8qIEZvbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNjIwRDAwNkNENjAwRUY2RjI2
IC8qIEZvbnRDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMkFGRkM3QzBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdDMjM2MEIxMDk3
RURFRDAwRUY5RjcyIC8qIEZvbnRDb21wbGV4VGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlCMkFGRkM3RDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzFGNEY0MTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdBQ0NGNjkwREE0MTRFNzAwODlFNjAyIC8qIEZvbnRE
ZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkMzREE2NzBEMDA2Q0Q2MDBFRjZG
MjYgLyogRm9udEZhbGxiYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIxMjQ4LDcgKzIx
MjU0LDYgQEAKIAkJCQlBODBFNkNFQzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZhbWlseVZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcyNjI2RTAyMEVGMDIyRkUwMEEwN0UyMCAvKiBGb250
RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODAwRDAwQTVDMTAwMzAwNzRE
IC8qIEZvbnRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCMkFGRkM4MjBEMDBBNUMxMDAzMDA3
NEQgLyogRm9udFBsYXRmb3JtRGF0YU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUI3MzRCMTgx
MTE5Qjk5MTEwMDY1ODdCRCAvKiBGb250VHJhbnNjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODBFNkNGMTBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUQwNUNFRDI5MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yMjgxNiw2ICsyMjgyMSw5IEBACiAJCQkJQ0UwNTdGQTUxMjIw
NzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4ODUgLyogQmxv
YlJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUI1MjVBNzk0MTIyM0UzNTcw
MEFEMjE2NSAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQlC
NUZCNDc2ODEyMjNFRTZCMDAzMDA4NDIgLyogRm9udENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQjVGQjQ3NkQxMjIzRUVEODAwMzAwODQyIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65411</attachid>
            <date>2010-08-25 06:37:23 -0700</date>
            <delta_ts>2010-08-28 22:31:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41398-20100825163717.patch</filename>
            <type>text/plain</type>
            <size>37788</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDgtMjQgIEplcmVteSBNb3Nrb3ZpY2ggIDxqZXJlbXlAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpcnN0IHN0ZXAgaW4gdW5mb3JraW5nIENocm9tZSdzIEZvbnRQbGF0Zm9ybURhdGFNYWMu
bW0uCisgICAgICAgIE1vdmUgZmlsZXMgZnJvbSBwbGF0Zm9ybS9ncmFwaGljcy9tYWMgdG8gcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDEzOTgKKworICAgICAgICBKdXN0IG1vdmluZyBmaWxlcyBhcm91bmQg
c28gbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YS5oOiBDb3BpZWQgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250UGxhdGZvcm1EYXRhLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOiBDb3BpZWQgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhTWFjLm1tLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW06IFJlbW92ZWQuCisKIDIwMTAt
MDgtMjQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjU4OTApCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjI4Myw2ICsyMjgzLDcgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJU
ZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVv
TGF5ZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVCbGVuZC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29sb3JNYXRyaXguY3BwJywKQEAgLTIzMzcsNyArMjMzOCw2IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbScsCi0gICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5t
bScsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5o
JywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiA2NTg5MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC00MTAxLDEzICs0MTAxLDkgQEAKIAkJQjJBMUYyQjAwQ0VGMEFC
RjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTcwQ0VGMEFCRjAwNDQyRjZBIC8q
IFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwICovOyB9OwogCQlCMkExRjJCMTBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKIAkJQjJBRTlCOUQwQzNBRjI3NDAwRjIzRjdGIC8q
IERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQUU5QjlDMEMzQUYyNzQwMEYyM0Y3RiAvKiBET01TVkdUZXh0UGF0
aEVsZW1lbnQubW0gKi87IH07Ci0JCUIyQUZGQzdDMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q2Fj
aGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MkFGRkM3NDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1tICovOyB9OwotCQlCMkFG
RkM3RDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NTBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi87IH07CiAJCUIyQUZGQzdF
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NjBEMDBBNUMxMDAzMDA3
NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovOyB9OwogCQlCMkFGRkM3RjBEMDBBNUMx
MDAzMDA3NEQgLyogU2ltcGxlRm9udERhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NzBEMDBBNUMxMDAzMDA3NEQgLyogU2ltcGxl
Rm9udERhdGFNYWMubW0gKi87IH07CiAJCUIyQUZGQzgwMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJB
RkZDNzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gKi87IH07Ci0JCUIyQUZGQzgxMEQw
MEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3OTBEMDBBNUMxMDAzMDA3NEQgLyogRm9u
dFBsYXRmb3JtRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCUIyQUZGQzgyMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZD
N0EwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGFNYWMubW0gKi87IH07CiAJCUIy
QUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3QjBEMDBBNUMx
MDAzMDA3NEQgLyogR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwICovOyB9OwogCQlCMkFGRkM5MzBE
MDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzg4MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFy
YWJpYy5jICovOyB9OwogCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzg5
MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5oICovOyB9OwpAQCAtNDQyNiw2ICs0NDIy
LDggQEAKIAkJQjUyM0NGMDkxMTgyNjc1NDAwRUJCMjlDIC8qIFNRTFRyYW5zYWN0aW9uU3luYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTIzQ0Yw
MjExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJhbnNhY3Rpb25TeW5jLmNwcCAqLzsgfTsKIAkJQjUy
M0NGMEExMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTIzQ0YwMzExODI2NzU0MDBFQkIyOUMg
LyogRGF0YWJhc2VTeW5jLmNwcCAqLzsgfTsKIAkJQjUyM0NGMEIxMTgyNjc1NDAwRUJCMjlDIC8q
IERhdGFiYXNlU3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjUyM0NGMDQxMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5oICovOyB9Owor
CQlCNTI1QTc5MzEyMjNFMzU3MDBBRDIxNjUgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUyNUE3OTExMjIzRTM1NzAw
QUQyMTY1IC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCNTI1QTc5NDEyMjNFMzU3MDBBRDIxNjUgLyogRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjUyNUE3OTIxMjIzRTM1NzAwQUQyMTY1IC8qIEZvbnRQbGF0Zm9ybURhdGFDb2Nv
YS5tbSAqLzsgfTsKIAkJQjUyNUE5NjUxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTI1QTk2
MzExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uaCAqLzsgfTsKIAkJQjUyNUE5NjYx
MUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1MjVBOTY0MTFDQTIzNDAwMDNBMjNBOCAvKiBK
U1NRTEV4Y2VwdGlvbi5jcHAgKi87IH07CiAJCUI1NTBCNTI1MTFEQzY4QTgwMDkyMzg4NSAvKiBT
UUxTdGF0ZW1lbnRTeW5jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEI1NTBCNTIxMTFEQzY4QTgwMDkyMzg4NSAvKiBTUUxTdGF0ZW1lbnRTeW5jLmNw
cCAqLzsgfTsKQEAgLTQ0NTcsNiArNDQ1NSw4IEBACiAJCUI1RDMxREZBMTFDRjYxMEIwMDlGMjJC
NCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCNUQzMURGODExQ0Y2MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9NQ2Fs
bGJhY2suY3BwICovOyB9OwogCQlCNUQzMURGQjExQ0Y2MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9N
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1RDMxREY5MTFDRjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5oICovOyB9Owog
CQlCNUQzNjAxQTExMkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVEMzYwMTkxMTJGOEI1NjAw
NDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAqLzsgfTsKKwkJQjVGQjQ3NjgxMjIzRUU2QjAw
MzAwODQyIC8qIEZvbnRDYWNoZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEI1RkI0NzY3MTIyM0VFNkIwMDMwMDg0MiAvKiBGb250Q2FjaGVNYWMu
bW0gKi87IH07CisJCUI1RkI0NzZEMTIyM0VFRDgwMDMwMDg0MiAvKiBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1RkI0NzZDMTIyM0VFRDgwMDMwMDg0MiAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCAq
LzsgfTsKIAkJQjYxNzYyNTQxMjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjYxNzYyNTMxMjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5o
ICovOyB9OwogCQlCNjE3NjI2MjEyMDM0OTA4MDBFRjkxMTQgLyogSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjYx
NzYyNjExMjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCAqLzsgfTsK
IAkJQjY1NjYyNkExMjBCMTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NTY2MjY3MTIwQjExNUEw
MDZFQTg1QyAvKiBJREJUcmFuc2FjdGlvbi5jcHAgKi87IH07CkBAIC05ODU4LDEzICs5ODU4LDkg
QEAKIAkJQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBMUYyQTkwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjJBRTlCOUMwQzNBRjI3NDAwRjIzRjdGIC8qIERPTVNWR1RleHRQYXRoRWxlbWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdUZXh0UGF0aEVs
ZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQUZGQzc0MEQwMEE1QzEw
MDMwMDc0RCAvKiBGb250Q2FjaGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRm9udENhY2hlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCMkFGRkM3NTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzc2MEQwMEE1QzEw
MDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUIyQUZGQzc3MEQwMEE1QzEwMDMwMDc0RCAvKiBTaW1wbGVGb250RGF0YU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaW1wbGVGb250
RGF0YU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBRkZDNzgwRDAwQTVD
MTAwMzAwNzREIC8qIEZvbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRm9udE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJBRkZD
NzkwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRQbGF0Zm9ybURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQjJBRkZDN0EwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGFN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udFBsYXRm
b3JtRGF0YU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBRkZDN0IwRDAw
QTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzg1MEQwMEE1REYwMDMwMDc0RCAvKiBjaGFyYWN0
ZXItc2V0cy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJjaGFyYWN0ZXItc2V0cy50eHQi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkFGRkM4NjBEMDBBNURGMDAzMDA3NEQg
LyogbWFjLWVuY29kaW5ncy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJtYWMtZW5jb2Rp
bmdzLnR4dCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDE4Nyw2ICsxMDE4Myw4
IEBACiAJCUI1MjNDRjAyMTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25TeW5j
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjUyM0NGMDMxMTgyNjc1NDAwRUJC
MjlDIC8qIERhdGFiYXNlU3luYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEYXRhYmFzZVN5bmMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTIz
Q0YwNDExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlU3luYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCNTI1QTc5MTEyMjNFMzU3MDBBRDIxNjUgLyogRm9udFBsYXRmb3JtRGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGb250UGxhdGZvcm1EYXRhLmg7IHBhdGggPSBj
b2NvYS9Gb250UGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI1
MjVBNzkyMTIyM0UzNTcwMEFEMjE2NSAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBGb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW07IHBhdGggPSBjb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUI1MjVBOTYzMTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTEV4Y2VwdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTI1QTk2NDExQ0EyMzQwMDAzQTIzQTggLyog
SlNTUUxFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTUUxFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTUwQjUy
MTExREM2OEE4MDA5MjM4ODUgLyogU1FMU3RhdGVtZW50U3luYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxTdGF0ZW1lbnRTeW5jLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjI3LDYgKzEwMjI1LDggQEAKIAkJQjVEMzFERjgxMUNGNjEw
QjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEFjdGl2ZURPTUNhbGxiYWNrLmNwcDsgcGF0aCA9IGdlbmVyaWMvQWN0
aXZlRE9NQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNUQzMURG
OTExQ0Y2MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9NQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQWN0aXZlRE9NQ2FsbGJhY2suaDsgcGF0aCA9IGdlbmVyaWMvQWN0
aXZlRE9NQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjVEMzYwMTkx
MTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCNUZCNDc2NzEyMjNFRTZCMDAzMDA4NDIgLyogRm9udENhY2hlTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udENhY2hlTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNUZCNDc2QzEyMjNFRUQ4MDAzMDA4NDIgLyogRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjYxNzYyNTMxMjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjYxNzYyNjExMjAz
NDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCNjU2NjI2NzEyMEIxMTVBMDA2RUE4NUMgLyogSURCVHJhbnNhY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCVHJhbnNhY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3NjksNiArMTU3NjksOCBA
QAogCQlCMjc1MzU0OTBCMDUzODE0MDAyQ0U2NEYgLyogbWFjICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCNUZCNDc2QzEyMjNFRUQ4MDAzMDA4NDIgLyog
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi8sCisJCQkJQjVGQjQ3NjcxMjIzRUU2QjAwMzAw
ODQyIC8qIEZvbnRDYWNoZU1hYy5tbSAqLywKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcg
LyogQ29sb3JNYWMuaCAqLywKIAkJCQlCMjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JN
YWMubW0gKi8sCiAJCQkJMzdDMjM2MEUxMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29u
dHJvbGxlci5jcHAgKi8sCkBAIC0xNTc3OCwxMyArMTU3ODAsOSBAQAogCQkJCUIyNzUzNTRCMEIw
NTM4MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50TWFjLm1tICovLAogCQkJCUIyNzUzNTRDMEIwNTM4
MTQwMDJDRTY0RiAvKiBGbG9hdFJlY3RNYWMubW0gKi8sCiAJCQkJQjI3NTM1NEQwQjA1MzgxNDAw
MkNFNjRGIC8qIEZsb2F0U2l6ZU1hYy5tbSAqLywKLQkJCQlCMkFGRkM3NDBEMDBBNUMxMDAzMDA3
NEQgLyogRm9udENhY2hlTWFjLm1tICovLAogCQkJCTM3QzIzNjBBMTA5N0VERUQwMEVGOUY3MiAv
KiBGb250Q29tcGxleFRleHRNYWMuY3BwICovLAotCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0
RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCAqLywKIAkJCQlCMkFGRkM3NjBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovLAogCQkJCUIyQUZGQzc4MEQw
MEE1QzEwMDMwMDc0RCAvKiBGb250TWFjLm1tICovLAotCQkJCUIyQUZGQzc5MEQwMEE1QzEwMDMw
MDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmggKi8sCi0JCQkJQjJBRkZDN0EwRDAwQTVDMTAwMzAw
NzREIC8qIEZvbnRQbGF0Zm9ybURhdGFNYWMubW0gKi8sCiAJCQkJQjJBRkZDN0IwRDAwQTVDMTAw
MzAwNzREIC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCAqLywKIAkJCQk0OUZGQkYxQzExQzg1
NTBFMDA2QTcxMTggLyogR3JhcGhpY3NDb250ZXh0M0RNYWMubW0gKi8sCiAJCQkJQjI3N0I0MDMw
QjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5tbSAqLywKQEAgLTE1ODE0LDYg
KzE1ODEyLDcgQEAKIAkJQjJBMDE1OTEwQUY2Q0Q1MzAwNkJDRTBFIC8qIGdyYXBoaWNzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCNTI1QTc5MDEyMjNF
MzQwMDBBRDIxNjUgLyogY29jb2EgKi8sCiAJCQkJQjI3NTM1MjkwQjA1MzgxNDAwMkNFNjRGIC8q
IGNnICovLAogCQkJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovLAogCQkJ
CUIyNzUzNTQ5MEIwNTM4MTQwMDJDRTY0RiAvKiBtYWMgKi8sCkBAIC0xNjAxMSw2ICsxNjAxMCwx
NSBAQAogCQkJbmFtZSA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
QjUyNUE3OTAxMjIzRTM0MDAwQUQyMTY1IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCNTI1QTc5MTEyMjNFMzU3MDBBRDIxNjUgLyogRm9u
dFBsYXRmb3JtRGF0YS5oICovLAorCQkJCUI1MjVBNzkyMTIyM0UzNTcwMEFEMjE2NSAvKiBGb250
UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IGNvY29hOworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQjVEMzFERjcxMUNGNjBFNTAwOUYyMkI0IC8q
IGdlbmVyaWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MTg3MzMsNyArMTg3NDEsNiBAQAogCQkJCUIyQzNEQTY4MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250
RmFsbGJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2QTBEMDA2Q0Q2MDBFRjZG
MjYgLyogRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjMwQTE5ODlDQTAw
N0ZCOEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjJBRkZDODEw
RDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3QUNDRTQyMERBMjk4MEYwMDg5RTYwMiAvKiBGb250UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBNkIwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzcyMDIxOTkxMDYyMTNDNjAwRjI1QzRCIC8qIEZvbnRTbW9vdGhp
bmdNb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTIwMzYxLDYgKzIwMzY4LDcgQEAKIAkJCQlDRTA1
N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVCNEJDRDMxMjFGMDNFMzAwRUM0ODg1IC8q
IEJsb2JSZXNvdXJjZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjUyNUE3OTMxMjIzRTM1
NzAwQUQyMTY1IC8qIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjEyMzgs
OSArMjEyNDYsNyBAQAogCQkJCTE0OTkzQkU1MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNjAwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNjIwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnRDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMkFGRkM3QzBEMDBBNUMxMDAzMDA3
NEQgLyogRm9udENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdDMjM2MEIxMDk3RURF
RDAwRUY5RjcyIC8qIEZvbnRDb21wbGV4VGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
MkFGRkM3RDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzNzFGNEY0MTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzdBQ0NGNjkwREE0MTRFNzAwODlFNjAyIC8qIEZvbnREZXNj
cmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkMzREE2NzBEMDA2Q0Q2MDBFRjZGMjYg
LyogRm9udEZhbGxiYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIxMjQ4LDcgKzIxMjU0
LDYgQEAKIAkJCQlBODBFNkNFQzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZhbWlseVZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTcyNjI2RTAyMEVGMDIyRkUwMEEwN0UyMCAvKiBGb250RmFz
dFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODAwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCMkFGRkM4MjBEMDBBNUMxMDAzMDA3NEQg
LyogRm9udFBsYXRmb3JtRGF0YU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUI3MzRCMTgxMTE5
Qjk5MTEwMDY1ODdCRCAvKiBGb250VHJhbnNjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODBFNkNGMTBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUQwNUNFRDI5MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yMjgxNiw2ICsyMjgyMSw5IEBACiAJCQkJQ0UwNTdGQTUxMjIwNzMx
MTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJl
c291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUI1MjVBNzk0MTIyM0UzNTcwMEFE
MjE2NSAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQlCNUZC
NDc2ODEyMjNFRTZCMDAzMDA4NDIgLyogRm9udENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJQjVGQjQ3NkQxMjIzRUVEODAwMzAwODQyIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjU4ODYpCShmcm9tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaDo2NTg4NikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGlu
dGVybmFsIGZvbnQgaW1wbGVtZW50YXRpb24uCisgKiBJdCBzaG91bGQgbm90IGJlIGluY2x1ZGVk
IGJ5IHNvdXJjZSBmaWxlcyBvdXRzaWRlIG9mIGl0LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAq
LworCisjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAorI2RlZmluZSBGb250UGxhdGZvcm1EYXRh
X2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KKworI2lmZGVmIF9fT0JKQ19f
CitAY2xhc3MgTlNGb250OworI2Vsc2UKK2NsYXNzIE5TRm9udDsKKyNlbmRpZgorCit0eXBlZGVm
IHN0cnVjdCBDR0ZvbnQqIENHRm9udFJlZjsKKyNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IF9fQ1RGb250KiBDVEZvbnRSZWY7CisjZW5kaWYKKworI2luY2x1
ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgorI2luY2x1ZGUgPG9iamMvb2JqYy1hdXRvLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisK
K3R5cGVkZWYgVUludDMyIEFUU1VGb250SUQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
bmRlZiBCVUlMRElOR19PTl9USUdFUgoraW5saW5lIENURm9udFJlZiB0b0NURm9udFJlZihOU0Zv
bnQgKm5zRm9udCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KG5zRm9udCk7
IH0KKyNlbmRpZgorCitjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKKyAgcHVibGljOgorICAgIEZv
bnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUpCisgICAgICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCisg
ICAgICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICwg
bV9hdHN1Rm9udElEKDApCisgICAgICAgICwgbV9zaXplKHNpemUpCisgICAgICAgICwgbV9mb250
KDApCisjaWZkZWYgQlVJTERJTkdfT05fVElHRVIKKyAgICAgICAgLCBtX2NnRm9udCgwKQorI2Vu
ZGlmCisgICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChmYWxzZSkKKyAgICB7CisgICAgfQor
CisgICAgRm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xk
ID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlKTsKKyAgICAKKyAgICBGb250
UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VGb250SUQgZm9udElELCBmbG9hdCBz
aXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAg
OiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKKyAgICAgICAgLCBtX3N5bnRoZXRpY09i
bGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgLCBtX2F0c3VGb250SUQoZm9udElEKQor
ICAgICAgICAsIG1fc2l6ZShzaXplKQorICAgICAgICAsIG1fZm9udCgwKQorICAgICAgICAsIG1f
Y2dGb250KGNnRm9udCkKKyAgICAgICAgLCBtX2lzQ29sb3JCaXRtYXBGb250KGZhbHNlKQorICAg
IHsKKyAgICB9CisKKyAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
KTsKKyAgICAKKyAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOworCisgICAgRm9udFBsYXRmb3JtRGF0
YShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9mb250KGhhc2hUYWJsZURlbGV0
ZWRGb250VmFsdWUoKSkgeyB9CisgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9udCA9PSBoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCk7IH0KKwor
ICAgIGZsb2F0IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKyAgICBib29sIHN5bnRo
ZXRpY0JvbGQoKSBjb25zdCB7IHJldHVybiBtX3N5bnRoZXRpY0JvbGQ7IH0KKyAgICBib29sIHN5
bnRoZXRpY09ibGlxdWUoKSBjb25zdCB7IHJldHVybiBtX3N5bnRoZXRpY09ibGlxdWU7IH0KKwor
ICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkOworICAgIGJvb2wgbV9zeW50aGV0aWNPYmxpcXVlOwor
CisgICAgQVRTVUZvbnRJRCBtX2F0c3VGb250SUQ7CisgICAgZmxvYXQgbV9zaXplOworCisgICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9mb250ICE9IDAg
fHwgbV9jZ0ZvbnQgPT0gMCk7CisgICAgICAgIHVpbnRwdHJfdCBoYXNoQ29kZXNbMl0gPSB7ICh1
aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1
ZSB9OworICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRf
Y2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFy
KSk7CisgICAgfQorCisgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3BlcmF0b3I9KGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmIGYpOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQ
bGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAorICAgIHsgCisgICAgICAgIHJldHVybiBtX2ZvbnQg
PT0gb3RoZXIubV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5bnRoZXRpY0Jv
bGQgJiYgbV9zeW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2JsaXF1ZSAmJiAK
KyAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBv
dGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRDsKKyAgICB9
CisKKyAgICBOU0ZvbnQgKmZvbnQoKSBjb25zdCB7IHJldHVybiBtX2ZvbnQ7IH0KKyAgICB2b2lk
IHNldEZvbnQoTlNGb250ICpmb250KTsKKworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgQ1RGb250
UmVmIGN0Rm9udCgpIGNvbnN0OworI2VuZGlmCisKKyAgICBib29sIHJvdW5kc0dseXBoQWR2YW5j
ZXMoKSBjb25zdDsKKyAgICBib29sIGFsbG93c0xpZ2F0dXJlcygpIGNvbnN0OworICAgIGJvb2wg
aXNDb2xvckJpdG1hcEZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzQ29sb3JCaXRtYXBGb250OyB9
CisKKyNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKKyAgICBDR0ZvbnRSZWYgY2dGb250KCkgY29u
c3QgeyByZXR1cm4gbV9jZ0ZvbnQuZ2V0KCk7IH0KKyNlbHNlCisgICAgQ0dGb250UmVmIGNnRm9u
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2dGb250OyB9CisjZW5kaWYKKworI2lmbmRlZiBOREVCVUcK
KyAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAg
IHN0YXRpYyBOU0ZvbnQgKmhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKSB7IHJldHVybiByZWlu
dGVycHJldF9jYXN0PE5TRm9udCAqPigtMSk7IH0KKworICAgIE5TRm9udCAqbV9mb250OworCisj
aWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCisgICAgUmV0YWluUHRyPENHRm9udFJlZj4gbV9jZ0Zv
bnQ7CisjZWxzZQorICAgIENHRm9udFJlZiBtX2NnRm9udDsgLy8gSXQgaXMgbm90IG5lY2Vzc2Fy
eSB0byByZWZjb3VudCB0aGlzLCBzaW5jZSBlaXRoZXIgYW4gTlNGb250IG93bnMgaXQgb3Igc29t
ZSBDYWNoZWRGb250IGhhcyBpdCByZWZlcmVuY2VkLgorI2VuZGlmCisKKyNpZiBVU0UoQ09SRV9U
RVhUKQorICAgIG11dGFibGUgUmV0YWluUHRyPENURm9udFJlZj4gbV9DVEZvbnQ7CisjZW5kaWYK
KworICAgIGJvb2wgbV9pc0NvbG9yQml0bWFwRm9udDsKK307CisKK30KKworI2VuZGlmCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbQkocmV2aXNpb24gNjU4ODYpCShmcm9tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW06NjU4ODYpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBp
bnRlcm5hbCBmb250IGltcGxlbWVudGF0aW9uLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKworI2lt
cG9ydCAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKKyNpbXBvcnQgPEFwcEtpdC9OU0ZvbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5
bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKKyAgICA6IG1fc3ludGhldGljQm9s
ZChzeW50aGV0aWNCb2xkKQorICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlx
dWUpCisgICAgLCBtX2ZvbnQobnNGb250KQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VS
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisgICAgLCBtX2lzQ29sb3JCaXRtYXBGb250KENURm9udEdldFN5bWJv
bGljVHJhaXRzKHRvQ1RGb250UmVmKG5zRm9udCkpICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQp
CisjZWxzZQorICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChmYWxzZSkKKyNlbmRpZgoreworICAg
IEFTU0VSVF9BUkcobnNGb250LCBuc0ZvbnQpOworCisgICAgQ0ZSZXRhaW4obnNGb250KTsKKyAg
ICBtX3NpemUgPSBbbnNGb250IHBvaW50U2l6ZV07CisjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VS
CisgICAgbV9jZ0ZvbnQuYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250UmVm
KG5zRm9udCksIDApKTsKKyAgICBtX2F0c3VGb250SUQgPSBDVEZvbnRHZXRQbGF0Zm9ybUZvbnQo
dG9DVEZvbnRSZWYobnNGb250KSwgMCk7CisjZWxzZQorICAgIG1fY2dGb250ID0gd2tHZXRDR0Zv
bnRGcm9tTlNGb250KG5zRm9udCk7CisgICAgbV9hdHN1Rm9udElEID0gd2tHZXROU0ZvbnRBVFNV
Rm9udElkKG5zRm9udCk7CisjZW5kaWYKK30KKworRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQoreworICAgIG1fZm9udCA9IGYubV9m
b250ICYmIGYubV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8TlNGb250ICo+KC0xKSA/IGNvbnN0
X2Nhc3Q8TlNGb250ICo+KHN0YXRpY19jYXN0PGNvbnN0IE5TRm9udCAqPihDRlJldGFpbihmLm1f
Zm9udCkpKSA6IGYubV9mb250OworCisgICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRoZXRp
Y0JvbGQ7CisgICAgbV9zeW50aGV0aWNPYmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7Cisg
ICAgbV9zaXplID0gZi5tX3NpemU7CisgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OworICAgIG1f
YXRzdUZvbnRJRCA9IGYubV9hdHN1Rm9udElEOworICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBm
Lm1faXNDb2xvckJpdG1hcEZvbnQ7CisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICBtX0NURm9udCA9
IGYubV9DVEZvbnQ7CisjZW5kaWYKK30KKworRm9udFBsYXRmb3JtRGF0YTo6IH5Gb250UGxhdGZv
cm1EYXRhKCkKK3sKKyAgICBpZiAobV9mb250ICYmIG1fZm9udCAhPSByZWludGVycHJldF9jYXN0
PE5TRm9udCAqPigtMSkpCisgICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOworfQorCitjb25zdCBG
b250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0oY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgZikKK3sKKyAgICBtX3N5bnRoZXRpY0JvbGQgPSBmLm1fc3ludGhldGljQm9s
ZDsKKyAgICBtX3N5bnRoZXRpY09ibGlxdWUgPSBmLm1fc3ludGhldGljT2JsaXF1ZTsKKyAgICBt
X3NpemUgPSBmLm1fc2l6ZTsKKyAgICBtX2NnRm9udCA9IGYubV9jZ0ZvbnQ7CisgICAgbV9hdHN1
Rm9udElEID0gZi5tX2F0c3VGb250SUQ7CisgICAgaWYgKG1fZm9udCA9PSBmLm1fZm9udCkKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgIGlmIChmLm1fZm9udCAmJiBmLm1fZm9udCAhPSByZWlu
dGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkpCisgICAgICAgIENGUmV0YWluKGYubV9mb250KTsK
KyAgICBpZiAobV9mb250ICYmIG1fZm9udCAhPSByZWludGVycHJldF9jYXN0PE5TRm9udCAqPigt
MSkpCisgICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOworICAgIG1fZm9udCA9IGYubV9mb250Owor
ICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1faXNDb2xvckJpdG1hcEZvbnQ7CisjaWYgVVNF
KENPUkVfVEVYVCkKKyAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7CisjZW5kaWYKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK3ZvaWQgRm9udFBsYXRmb3JtRGF0YTo6c2V0Rm9udChOU0ZvbnQgKmZv
bnQpCit7CisgICAgQVNTRVJUX0FSRyhmb250LCBmb250KTsKKyAgICBBU1NFUlQobV9mb250ICE9
IHJlaW50ZXJwcmV0X2Nhc3Q8TlNGb250ICo+KC0xKSk7CisKKyAgICBpZiAobV9mb250ID09IGZv
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIENGUmV0YWluKGZvbnQpOworICAgIGlmIChtX2Zv
bnQpCisgICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOworICAgIG1fZm9udCA9IGZvbnQ7CisgICAg
bV9zaXplID0gW2ZvbnQgcG9pbnRTaXplXTsKKyNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKKyAg
ICBtX2NnRm9udC5hZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQodG9DVEZvbnRSZWYoZm9u
dCksIDApKTsKKyAgICBtX2F0c3VGb250SUQgPSBDVEZvbnRHZXRQbGF0Zm9ybUZvbnQodG9DVEZv
bnRSZWYoZm9udCksIDApOworI2Vsc2UKKyAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJvbU5T
Rm9udChmb250KTsKKyAgICBtX2F0c3VGb250SUQgPSB3a0dldE5TRm9udEFUU1VGb250SWQoZm9u
dCk7CisjZW5kaWYKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0b0NU
Rm9udFJlZihmb250KSkgJiBrQ1RGb250Q29sb3JHbHlwaHNUcmFpdDsKKyNlbmRpZgorI2lmIFVT
RShDT1JFX1RFWFQpCisgICAgbV9DVEZvbnQgPSAwOworI2VuZGlmCit9CisKK2Jvb2wgRm9udFBs
YXRmb3JtRGF0YTo6cm91bmRzR2x5cGhBZHZhbmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFtt
X2ZvbnQgcmVuZGVyaW5nTW9kZV0gPT0gTlNGb250QW50aWFsaWFzZWRJbnRlZ2VyQWR2YW5jZW1l
bnRzUmVuZGVyaW5nTW9kZTsKK30KKworYm9vbCBGb250UGxhdGZvcm1EYXRhOjphbGxvd3NMaWdh
dHVyZXMoKSBjb25zdAoreworICAgIHJldHVybiAhW1ttX2ZvbnQgY292ZXJlZENoYXJhY3RlclNl
dF0gY2hhcmFjdGVySXNNZW1iZXI6J2EnXTsKK30KKworI2lmIFVTRShDT1JFX1RFWFQpCitDVEZv
bnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uc3QKK3sKKyAgICBpZiAobV9mb250
KQorICAgICAgICByZXR1cm4gdG9DVEZvbnRSZWYobV9mb250KTsKKyAgICBpZiAoIW1fQ1RGb250
KQorICAgICAgICBtX0NURm9udC5hZG9wdENGKENURm9udENyZWF0ZVdpdGhHcmFwaGljc0ZvbnQo
bV9jZ0ZvbnQuZ2V0KCksIG1fc2l6ZSwgMCwgMCkpOworICAgIHJldHVybiBtX0NURm9udC5nZXQo
KTsKK30KKyNlbmRpZiAvLyBVU0UoQ09SRV9URVhUKQorCisjaWZuZGVmIE5ERUJVRworU3RyaW5n
IEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGNnRm9udERlc2NyaXB0aW9uKEFkb3B0Q0YsIENGQ29weURlc2NyaXB0aW9u
KGNnRm9udCgpKSk7CisgICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5nZXQoKSkg
KyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpICsgKG1fc3ludGhldGljQm9sZCA/ICIgc3lu
dGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGljIG9i
bGlxdWUiIDogIiIpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDY1ODkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBs
YXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIGludGVybmFsIGZvbnQgaW1wbGVtZW50YXRpb24uCi0gKiBJ
dCBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGJ5IHNvdXJjZSBmaWxlcyBvdXRzaWRlIG9mIGl0Lgot
ICoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAot
I2RlZmluZSBGb250UGxhdGZvcm1EYXRhX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0lt
cGwuaD4KLQotI2lmZGVmIF9fT0JKQ19fCi1AY2xhc3MgTlNGb250OwotI2Vsc2UKLWNsYXNzIE5T
Rm9udDsKLSNlbmRpZgotCi10eXBlZGVmIHN0cnVjdCBDR0ZvbnQqIENHRm9udFJlZjsKLSNpZm5k
ZWYgQlVJTERJTkdfT05fVElHRVIKLXR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ1RGb250KiBDVEZv
bnRSZWY7Ci0jZW5kaWYKLQotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgotI2lu
Y2x1ZGUgPG9iamMvb2JqYy1hdXRvLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0KLXR5cGVkZWYgVUludDMyIEFUU1VGb250SUQ7Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotaW5saW5lIENU
Rm9udFJlZiB0b0NURm9udFJlZihOU0ZvbnQgKm5zRm9udCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxDVEZvbnRSZWY+KG5zRm9udCk7IH0KLSNlbmRpZgotCi1jbGFzcyBGb250UGxhdGZvcm1E
YXRhIHsKLSAgcHVibGljOgotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCi0gICAgICAgIDogbV9zeW50aGV0
aWNCb2xkKHN5bnRoZXRpY0JvbGQpCi0gICAgICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRo
ZXRpY09ibGlxdWUpCi0gICAgICAgICwgbV9hdHN1Rm9udElEKDApCi0gICAgICAgICwgbV9zaXpl
KHNpemUpCi0gICAgICAgICwgbV9mb250KDApCi0jaWZkZWYgQlVJTERJTkdfT05fVElHRVIKLSAg
ICAgICAgLCBtX2NnRm9udCgwKQotI2VuZGlmCi0gICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9u
dChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgRm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5z
Rm9udCwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9
IGZhbHNlKTsKLSAgICAKLSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFU
U1VGb250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSkKLSAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkK
LSAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAg
LCBtX2F0c3VGb250SUQoZm9udElEKQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgICAgICAs
IG1fZm9udCgwKQotICAgICAgICAsIG1fY2dGb250KGNnRm9udCkKLSAgICAgICAgLCBtX2lzQ29s
b3JCaXRtYXBGb250KGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICBGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKLSAgICAKLSAgICB+Rm9udFBsYXRmb3JtRGF0YSgp
OwotCi0gICAgRm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUp
IDogbV9mb250KGhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKSkgeyB9Ci0gICAgYm9vbCBpc0hh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udCA9PSBoYXNoVGFibGVE
ZWxldGVkRm9udFZhbHVlKCk7IH0KLQotICAgIGZsb2F0IHNpemUoKSBjb25zdCB7IHJldHVybiBt
X3NpemU7IH0KLSAgICBib29sIHN5bnRoZXRpY0JvbGQoKSBjb25zdCB7IHJldHVybiBtX3N5bnRo
ZXRpY0JvbGQ7IH0KLSAgICBib29sIHN5bnRoZXRpY09ibGlxdWUoKSBjb25zdCB7IHJldHVybiBt
X3N5bnRoZXRpY09ibGlxdWU7IH0KLQotICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkOwotICAgIGJv
b2wgbV9zeW50aGV0aWNPYmxpcXVlOwotCi0gICAgQVRTVUZvbnRJRCBtX2F0c3VGb250SUQ7Ci0g
ICAgZmxvYXQgbV9zaXplOwotCi0gICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICBBU1NFUlQobV9mb250ICE9IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAgIHVpbnRw
dHJfdCBoYXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRpY0JvbGQg
PDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OwotICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6
Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZiho
YXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7Ci0gICAgfQotCi0gICAgY29uc3QgRm9udFBsYXRm
b3JtRGF0YSYgb3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYpOwotCi0gICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAotICAgIHsg
Ci0gICAgICAgIHJldHVybiBtX2ZvbnQgPT0gb3RoZXIubV9mb250ICYmIG1fc3ludGhldGljQm9s
ZCA9PSBvdGhlci5tX3N5bnRoZXRpY0JvbGQgJiYgbV9zeW50aGV0aWNPYmxpcXVlID09IG90aGVy
Lm1fc3ludGhldGljT2JsaXF1ZSAmJiAKLSAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVy
Lm1fY2dGb250ICYmIG1fc2l6ZSA9PSBvdGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90
aGVyLm1fYXRzdUZvbnRJRDsKLSAgICB9Ci0KLSAgICBOU0ZvbnQgKmZvbnQoKSBjb25zdCB7IHJl
dHVybiBtX2ZvbnQ7IH0KLSAgICB2b2lkIHNldEZvbnQoTlNGb250ICpmb250KTsKLQotI2lmIFVT
RShDT1JFX1RFWFQpCi0gICAgQ1RGb250UmVmIGN0Rm9udCgpIGNvbnN0OwotI2VuZGlmCi0KLSAg
ICBib29sIHJvdW5kc0dseXBoQWR2YW5jZXMoKSBjb25zdDsKLSAgICBib29sIGFsbG93c0xpZ2F0
dXJlcygpIGNvbnN0OwotICAgIGJvb2wgaXNDb2xvckJpdG1hcEZvbnQoKSBjb25zdCB7IHJldHVy
biBtX2lzQ29sb3JCaXRtYXBGb250OyB9Ci0KLSNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLSAg
ICBDR0ZvbnRSZWYgY2dGb250KCkgY29uc3QgeyByZXR1cm4gbV9jZ0ZvbnQuZ2V0KCk7IH0KLSNl
bHNlCi0gICAgQ0dGb250UmVmIGNnRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fY2dGb250OyB9Ci0j
ZW5kaWYKLQotI2lmbmRlZiBOREVCVUcKLSAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsK
LSNlbmRpZgotCi1wcml2YXRlOgotICAgIHN0YXRpYyBOU0ZvbnQgKmhhc2hUYWJsZURlbGV0ZWRG
b250VmFsdWUoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSk7IH0KLQot
ICAgIE5TRm9udCAqbV9mb250OwotCi0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgUmV0
YWluUHRyPENHRm9udFJlZj4gbV9jZ0ZvbnQ7Ci0jZWxzZQotICAgIENHRm9udFJlZiBtX2NnRm9u
dDsgLy8gSXQgaXMgbm90IG5lY2Vzc2FyeSB0byByZWZjb3VudCB0aGlzLCBzaW5jZSBlaXRoZXIg
YW4gTlNGb250IG93bnMgaXQgb3Igc29tZSBDYWNoZWRGb250IGhhcyBpdCByZWZlcmVuY2VkLgot
I2VuZGlmCi0KLSNpZiBVU0UoQ09SRV9URVhUKQotICAgIG11dGFibGUgUmV0YWluUHRyPENURm9u
dFJlZj4gbV9DVEZvbnQ7Ci0jZW5kaWYKLQotICAgIGJvb2wgbV9pc0NvbG9yQml0bWFwRm9udDsK
LX07Ci0KLX0KLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250UGxhdGZvcm1EYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW0JKHJldmlzaW9uIDY1ODkwKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBpbnRlcm5hbCBmb250IGltcGxlbWVudGF0aW9uLgotICoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkZvbnRQbGF0Zm9ybURhdGEuaCIKLQot
I2ltcG9ydCAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKLSNpbXBvcnQgPEFwcEtpdC9OU0ZvbnQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29s
IHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKLSAgICA6IG1fc3ludGhldGlj
Qm9sZChzeW50aGV0aWNCb2xkKQotICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09i
bGlxdWUpCi0gICAgLCBtX2ZvbnQobnNGb250KQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJ
R0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCi0gICAgLCBtX2lzQ29sb3JCaXRtYXBGb250KENURm9udEdldFN5
bWJvbGljVHJhaXRzKHRvQ1RGb250UmVmKG5zRm9udCkpICYga0NURm9udENvbG9yR2x5cGhzVHJh
aXQpCi0jZWxzZQotICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChmYWxzZSkKLSNlbmRpZgotewot
ICAgIEFTU0VSVF9BUkcobnNGb250LCBuc0ZvbnQpOwotCi0gICAgQ0ZSZXRhaW4obnNGb250KTsK
LSAgICBtX3NpemUgPSBbbnNGb250IHBvaW50U2l6ZV07Ci0jaWZuZGVmIEJVSUxESU5HX09OX1RJ
R0VSCi0gICAgbV9jZ0ZvbnQuYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250
UmVmKG5zRm9udCksIDApKTsKLSAgICBtX2F0c3VGb250SUQgPSBDVEZvbnRHZXRQbGF0Zm9ybUZv
bnQodG9DVEZvbnRSZWYobnNGb250KSwgMCk7Ci0jZWxzZQotICAgIG1fY2dGb250ID0gd2tHZXRD
R0ZvbnRGcm9tTlNGb250KG5zRm9udCk7Ci0gICAgbV9hdHN1Rm9udElEID0gd2tHZXROU0ZvbnRB
VFNVRm9udElkKG5zRm9udCk7Ci0jZW5kaWYKLX0KLQotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQotewotICAgIG1fZm9udCA9IGYu
bV9mb250ICYmIGYubV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8TlNGb250ICo+KC0xKSA/IGNv
bnN0X2Nhc3Q8TlNGb250ICo+KHN0YXRpY19jYXN0PGNvbnN0IE5TRm9udCAqPihDRlJldGFpbihm
Lm1fZm9udCkpKSA6IGYubV9mb250OwotCi0gICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRo
ZXRpY0JvbGQ7Ci0gICAgbV9zeW50aGV0aWNPYmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7
Ci0gICAgbV9zaXplID0gZi5tX3NpemU7Ci0gICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwotICAg
IG1fYXRzdUZvbnRJRCA9IGYubV9hdHN1Rm9udElEOwotICAgIG1faXNDb2xvckJpdG1hcEZvbnQg
PSBmLm1faXNDb2xvckJpdG1hcEZvbnQ7Ci0jaWYgVVNFKENPUkVfVEVYVCkKLSAgICBtX0NURm9u
dCA9IGYubV9DVEZvbnQ7Ci0jZW5kaWYKLX0KLQotRm9udFBsYXRmb3JtRGF0YTo6IH5Gb250UGxh
dGZvcm1EYXRhKCkKLXsKLSAgICBpZiAobV9mb250ICYmIG1fZm9udCAhPSByZWludGVycHJldF9j
YXN0PE5TRm9udCAqPigtMSkpCi0gICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOwotfQotCi1jb25z
dCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0oY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYgZikKLXsKLSAgICBtX3N5bnRoZXRpY0JvbGQgPSBmLm1fc3ludGhldGlj
Qm9sZDsKLSAgICBtX3N5bnRoZXRpY09ibGlxdWUgPSBmLm1fc3ludGhldGljT2JsaXF1ZTsKLSAg
ICBtX3NpemUgPSBmLm1fc2l6ZTsKLSAgICBtX2NnRm9udCA9IGYubV9jZ0ZvbnQ7Ci0gICAgbV9h
dHN1Rm9udElEID0gZi5tX2F0c3VGb250SUQ7Ci0gICAgaWYgKG1fZm9udCA9PSBmLm1fZm9udCkK
LSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIGlmIChmLm1fZm9udCAmJiBmLm1fZm9udCAhPSBy
ZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkpCi0gICAgICAgIENGUmV0YWluKGYubV9mb250
KTsKLSAgICBpZiAobV9mb250ICYmIG1fZm9udCAhPSByZWludGVycHJldF9jYXN0PE5TRm9udCAq
PigtMSkpCi0gICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOwotICAgIG1fZm9udCA9IGYubV9mb250
OwotICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1faXNDb2xvckJpdG1hcEZvbnQ7Ci0jaWYg
VVNFKENPUkVfVEVYVCkKLSAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7Ci0jZW5kaWYKLSAgICBy
ZXR1cm4gKnRoaXM7Ci19Ci0KLXZvaWQgRm9udFBsYXRmb3JtRGF0YTo6c2V0Rm9udChOU0ZvbnQg
KmZvbnQpCi17Ci0gICAgQVNTRVJUX0FSRyhmb250LCBmb250KTsKLSAgICBBU1NFUlQobV9mb250
ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8TlNGb250ICo+KC0xKSk7Ci0KLSAgICBpZiAobV9mb250ID09
IGZvbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIENGUmV0YWluKGZvbnQpOwotICAgIGlmICht
X2ZvbnQpCi0gICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOwotICAgIG1fZm9udCA9IGZvbnQ7Ci0g
ICAgbV9zaXplID0gW2ZvbnQgcG9pbnRTaXplXTsKLSNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIK
LSAgICBtX2NnRm9udC5hZG9wdENGKENURm9udENvcHlHcmFwaGljc0ZvbnQodG9DVEZvbnRSZWYo
Zm9udCksIDApKTsKLSAgICBtX2F0c3VGb250SUQgPSBDVEZvbnRHZXRQbGF0Zm9ybUZvbnQodG9D
VEZvbnRSZWYoZm9udCksIDApOwotI2Vsc2UKLSAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJv
bU5TRm9udChmb250KTsKLSAgICBtX2F0c3VGb250SUQgPSB3a0dldE5TRm9udEFUU1VGb250SWQo
Zm9udCk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQotICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0
b0NURm9udFJlZihmb250KSkgJiBrQ1RGb250Q29sb3JHbHlwaHNUcmFpdDsKLSNlbmRpZgotI2lm
IFVTRShDT1JFX1RFWFQpCi0gICAgbV9DVEZvbnQgPSAwOwotI2VuZGlmCi19Ci0KLWJvb2wgRm9u
dFBsYXRmb3JtRGF0YTo6cm91bmRzR2x5cGhBZHZhbmNlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IFttX2ZvbnQgcmVuZGVyaW5nTW9kZV0gPT0gTlNGb250QW50aWFsaWFzZWRJbnRlZ2VyQWR2YW5j
ZW1lbnRzUmVuZGVyaW5nTW9kZTsKLX0KLQotYm9vbCBGb250UGxhdGZvcm1EYXRhOjphbGxvd3NM
aWdhdHVyZXMoKSBjb25zdAotewotICAgIHJldHVybiAhW1ttX2ZvbnQgY292ZXJlZENoYXJhY3Rl
clNldF0gY2hhcmFjdGVySXNNZW1iZXI6J2EnXTsKLX0KLQotI2lmIFVTRShDT1JFX1RFWFQpCi1D
VEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uc3QKLXsKLSAgICBpZiAobV9m
b250KQotICAgICAgICByZXR1cm4gdG9DVEZvbnRSZWYobV9mb250KTsKLSAgICBpZiAoIW1fQ1RG
b250KQotICAgICAgICBtX0NURm9udC5hZG9wdENGKENURm9udENyZWF0ZVdpdGhHcmFwaGljc0Zv
bnQobV9jZ0ZvbnQuZ2V0KCksIG1fc2l6ZSwgMCwgMCkpOwotICAgIHJldHVybiBtX0NURm9udC5n
ZXQoKTsKLX0KLSNlbmRpZiAvLyBVU0UoQ09SRV9URVhUKQotCi0jaWZuZGVmIE5ERUJVRwotU3Ry
aW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IGNnRm9udERlc2NyaXB0aW9uKEFkb3B0Q0YsIENGQ29weURlc2NyaXB0
aW9uKGNnRm9udCgpKSk7Ci0gICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5nZXQo
KSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpICsgKG1fc3ludGhldGljQm9sZCA/ICIg
c3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGlj
IG9ibGlxdWUiIDogIiIpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65847</attachid>
            <date>2010-08-28 22:31:43 -0700</date>
            <delta_ts>2010-08-29 22:36:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41398-20100829083140.patch</filename>
            <type>text/plain</type>
            <size>31561</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjMyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDgtMjQgIEplcmVteSBNb3Nrb3ZpY2ggIDxqZXJlbXlAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAg
ICAgICBGaXJzdCBzdGVwIGluIHVuZm9ya2luZyBDaHJvbWUncyBGb250UGxhdGZvcm1EYXRhTWFj
Lm1tLgorICAgICAgICBNb3ZlIGZpbGVzIGZyb20gcGxhdGZvcm0vZ3JhcGhpY3MvbWFjIHRvIHBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMzk4CisKKyAgICAgICAgSnVzdCBtb3ZpbmcgZmlsZXMgYXJvdW5k
IHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2E6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGEuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udFBsYXRmb3JtRGF0YS5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbTogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YU1hYy5tbS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhTWFjLm1tOiBSZW1vdmVkLgorCiAyMDEw
LTA4LTI3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY2MzI0KQorKysgV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTIyODMsNiArMjI4Myw3IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRl
b0xheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udFBsYXRmb3JtRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQmxlbmQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bG9yTWF0cml4LmNwcCcsCkBAIC0yMzQ3LDcgKzIzNDgsNiBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0nLAotICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW0nLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EuaCcsCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjYz
MjQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNDEyNiw4ICs0MTI2LDYgQEAKIAkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzRE
IC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmggKi87IH07CiAJCUIyQUZGQzdGMEQwMEE1QzEwMDMwMDc0RCAvKiBTaW1w
bGVGb250RGF0YU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyQUZGQzc3MEQwMEE1QzEwMDMwMDc0RCAvKiBTaW1wbGVGb250RGF0YU1hYy5tbSAq
LzsgfTsKIAkJQjJBRkZDODAwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3ODBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udE1hYy5tbSAqLzsgfTsKLQkJQjJBRkZDODEwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyQUZGQzc5MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjJBRkZD
ODIwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGFNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3QTBEMDBBNUMxMDAzMDA3
NEQgLyogRm9udFBsYXRmb3JtRGF0YU1hYy5tbSAqLzsgfTsKIAkJQjJBRkZDODMwRDAwQTVDMTAw
MzAwNzREIC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzdCMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlw
aFBhZ2VUcmVlTm9kZU1hYy5jcHAgKi87IH07CiAJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAv
KiBTaGFwZUFyYWJpYy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJBRkZDODgwRDAwQTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmMgKi87IH07CiAJ
CUIyQUZGQzk0MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZDODkwRDAwQTVERjAwMzAwNzRE
IC8qIFNoYXBlQXJhYmljLmggKi87IH07CkBAIC00NDQ4LDYgKzQ0NDYsOCBAQAogCQlCNTIzQ0Yw
QjExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTIzQ0YwNDExODI2NzU0MDBFQkIyOUMgLyogRGF0
YWJhc2VTeW5jLmggKi87IH07CiAJCUI1MjVBOTY1MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4
Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjUyNUE5NjMxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmggKi87IH07CiAJCUI1
MjVBOTY2MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTI1QTk2NDExQ0EyMzQwMDAzQTIz
QTggLyogSlNTUUxFeGNlcHRpb24uY3BwICovOyB9OworCQlCNTMyMEQ2QjEyMkEyNEU5MDAyRDE0
NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjUzMjBENjkxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlC
NTMyMEQ2QzEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUzMjBENkExMjJBMjRF
OTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSAqLzsgfTsKIAkJQjU1MEI1MjUx
MURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU1MEI1MjExMURDNjhBODAwOTIzODg1IC8q
IFNRTFN0YXRlbWVudFN5bmMuY3BwICovOyB9OwogCQlCNTUwQjUyNjExREM2OEE4MDA5MjM4ODUg
LyogU1FMU3RhdGVtZW50U3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjU1MEI1MjIxMURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMu
aCAqLzsgfTsKIAkJQjU1RDVBQTQxMTkxMzFGQzAwQkNDMzE1IC8qIEpTU1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEI1NUQ1QUEyMTE5MTMxRkMwMEJDQzMxNSAvKiBKU1NRTFRyYW5zYWN0aW9uU3luY0NhbGxi
YWNrLmggKi87IH07CkBAIC05ODk5LDggKzk4OTksNiBAQAogCQlCMkFGRkM3NjBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMkFGRkM3NzBEMDBBNUMxMDAzMDA3NEQgLyogU2ltcGxlRm9udERhdGFNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2ltcGxlRm9udERh
dGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzc4MEQwMEE1QzEw
MDMwMDc0RCAvKiBGb250TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEZvbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQUZGQzc5
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250UGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUIyQUZGQzdBMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRQbGF0Zm9y
bURhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzdCMEQwMEE1
QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCMkFGRkM4NTBEMDBBNURGMDAzMDA3NEQgLyogY2hhcmFjdGVy
LXNldHMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY2hhcmFjdGVyLXNldHMudHh0Ijsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBRkZDODYwRDAwQTVERjAwMzAwNzREIC8q
IG1hYy1lbmNvZGluZ3MudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAibWFjLWVuY29kaW5n
cy50eHQiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAyMjUsNiArMTAyMjMsOCBA
QAogCQlCNTIzQ0YwNDExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlU3luYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCNTI1QTk2MzExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxFeGNlcHRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjUyNUE5NjQxMUNBMjM0MDAwM0EyM0E4IC8qIEpT
U1FMRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1FMRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjUzMjBENjkx
MjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRm9udFBsYXRmb3JtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCNTMyMEQ2QTEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udFBsYXRmb3Jt
RGF0YUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTUwQjUyMTExREM2
OEE4MDA5MjM4ODUgLyogU1FMU3RhdGVtZW50U3luYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTUUxTdGF0ZW1lbnRTeW5jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjU1MEI1MjIxMURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMU3RhdGVtZW50U3luYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTVENUFBMjExOTEzMUZDMDBCQ0MzMTUgLyog
SlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1NRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNTgzMiw4ICsxNTgzMiw2IEBACiAJCQkJQjJBRkZDNzUwRDAwQTVDMTAw
MzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwICovLAogCQkJCUIyQUZGQzc2MEQw
MEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi8sCiAJCQkJQjJBRkZD
NzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gKi8sCi0JCQkJQjJBRkZDNzkwRDAwQTVD
MTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLywKLQkJCQlCMkFGRkM3QTBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udFBsYXRmb3JtRGF0YU1hYy5tbSAqLywKIAkJCQlCMkFGRkM3QjBEMDBB
NUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwICovLAogCQkJCTQ5RkZCRjFD
MTFDODU1MEUwMDZBNzExOCAvKiBHcmFwaGljc0NvbnRleHQzRE1hYy5tbSAqLywKIAkJCQlCMjc3
QjQwMzBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovLApAQCAtMTU4
NjQsNiArMTU4NjIsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2NEYgLyogY2cgKi8sCisJCQkJQjUzMjBENjgxMjJBMjRF
OTAwMkQxNDQwIC8qIGNvY29hICovLAogCQkJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBm
aWx0ZXJzICovLAogCQkJCUIyNzUzNTQ5MEIwNTM4MTQwMDJDRTY0RiAvKiBtYWMgKi8sCiAJCQkJ
RjRFQUY0QUIxMEM3NDI2ODAwOTEwMEQzIC8qIG9wZW50eXBlICovLApAQCAtMTYwNjAsNiArMTYw
NTksMTUgQEAKIAkJCW5hbWUgPSBjZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCUI1MzIwRDY4MTIyQTI0RTkwMDJEMTQ0MCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQjUzMjBENjkxMjJBMjRFOTAwMkQxNDQwIC8q
IEZvbnRQbGF0Zm9ybURhdGEuaCAqLywKKwkJCQlCNTMyMEQ2QTEyMkEyNEU5MDAyRDE0NDAgLyog
Rm9udFBsYXRmb3JtRGF0YUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUI1RDMxREY3MTFDRjYwRTUwMDlGMjJC
NCAvKiBnZW5lcmljICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTE3NjkzLDYgKzE3NzAxLDcgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUI1MzIw
RDZCMTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCNUI1REM2QTExOUJCM0Q1MDAyQTg3OTAgLyogQWJzdHJhY3REYXRhYmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFFMUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIyRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODc4NCw3ICsxODc5Myw2
IEBACiAJCQkJQjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYWxsYmFja0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZBMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZh
bWlseVZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMkFGRkM4MTBEMDBBNUMxMDAzMDA3NEQg
LyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdBQ0NFNDIwREEyOTgw
RjAwODlFNjAyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMz
REE2QjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzIwMjE5OTEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01vZGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjEzMTEsNyArMjEzMTksNiBAQAogCQkJCUE4MEU2Q0VDMEExOTg5Q0EwMDdG
QjhDNSAvKiBGb250RmFtaWx5VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzI2MjZFMDIw
RUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkFGRkM4MDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udE1hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJ
CUIyQUZGQzgyMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjczNEIxODExMTlCOTkxMTAwNjU4N0JEIC8qIEZvbnRUcmFuc2NvZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0YxMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDA1Q0VEMjkwQTQwQkIyQzAwQzVBRjM4IC8q
IEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyODg3LDYgKzIyODk0
LDcgQEAKIAkJCQk5NzdCMzg3NDEyMjg4M0U5MDBCODFGRjggLyogSFRNTFNjcmlwdFJ1bm5lci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzg3NzEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRv
a2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzg3OTEyMjg4M0U5MDBCODFGRjgg
LyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjUzMjBENkMx
MjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxh
dGZvcm1EYXRhLmgJKHJldmlzaW9uIDY1ODg2KQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmg6NjU4ODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE1NCBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBpbnRlcm5hbCBmb250IGlt
cGxlbWVudGF0aW9uLgorICogSXQgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBieSBzb3VyY2UgZmls
ZXMgb3V0c2lkZSBvZiBpdC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBG
b250UGxhdGZvcm1EYXRhX2gKKyNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCisKKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisKKyNpZmRlZiBfX09CSkNfXworQGNsYXNzIE5TRm9u
dDsKKyNlbHNlCitjbGFzcyBOU0ZvbnQ7CisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgQ0dGb250
KiBDR0ZvbnRSZWY7CisjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCit0eXBlZGVmIGNvbnN0IHN0
cnVjdCBfX0NURm9udCogQ1RGb250UmVmOworI2VuZGlmCisKKyNpbmNsdWRlIDxDb3JlRm91bmRh
dGlvbi9DRkJhc2UuaD4KKyNpbmNsdWRlIDxvYmpjL29iamMtYXV0by5oPgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIFVJbnQz
MiBBVFNVRm9udElEOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZm5kZWYgQlVJTERJTkdf
T05fVElHRVIKK2lubGluZSBDVEZvbnRSZWYgdG9DVEZvbnRSZWYoTlNGb250ICpuc0ZvbnQpIHsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihuc0ZvbnQpOyB9CisjZW5kaWYKKwor
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CisgIHB1YmxpYzoKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQor
ICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQorICAgICAgICAsIG1fc3lu
dGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1fYXRzdUZvbnRJRCgw
KQorICAgICAgICAsIG1fc2l6ZShzaXplKQorICAgICAgICAsIG1fZm9udCgwKQorI2lmZGVmIEJV
SUxESU5HX09OX1RJR0VSCisgICAgICAgICwgbV9jZ0ZvbnQoMCkKKyNlbmRpZgorICAgICAgICAs
IG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCisgICAgeworICAgIH0KKworICAgIEZvbnRQbGF0
Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29s
IHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7CisgICAgCisgICAgRm9udFBsYXRmb3JtRGF0YShD
R0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50
aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCisgICAgICAgIDogbV9zeW50aGV0aWNC
b2xkKHN5bnRoZXRpY0JvbGQpCisgICAgICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRp
Y09ibGlxdWUpCisgICAgICAgICwgbV9hdHN1Rm9udElEKGZvbnRJRCkKKyAgICAgICAgLCBtX3Np
emUoc2l6ZSkKKyAgICAgICAgLCBtX2ZvbnQoMCkKKyAgICAgICAgLCBtX2NnRm9udChjZ0ZvbnQp
CisgICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChmYWxzZSkKKyAgICB7CisgICAgfQorCisg
ICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CisgICAgCisgICAg
fkZvbnRQbGF0Zm9ybURhdGEoKTsKKworICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fZm9udChoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkp
IHsgfQorICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2ZvbnQgPT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpOyB9CisKKyAgICBmbG9hdCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgYm9vbCBzeW50aGV0aWNCb2xkKCkgY29u
c3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CisgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CisKKyAgICBib29sIG1fc3lu
dGhldGljQm9sZDsKKyAgICBib29sIG1fc3ludGhldGljT2JsaXF1ZTsKKworICAgIEFUU1VGb250
SUQgbV9hdHN1Rm9udElEOworICAgIGZsb2F0IG1fc2l6ZTsKKworICAgIHVuc2lnbmVkIGhhc2go
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZm9udCAhPSAwIHx8IG1fY2dGb250ID09
IDApOworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9u
dCwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPiho
YXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOworICAgIH0KKwor
ICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBmKTsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBv
dGhlcikgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gbV9mb250ID09IG90aGVyLm1fZm9u
dCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIubV9zeW50aGV0aWNCb2xkICYmIG1fc3ludGhl
dGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09ibGlxdWUgJiYgCisgICAgICAgICAgICAg
ICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYm
IG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQ7CisgICAgfQorCisgICAgTlNGb250
ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CisgICAgdm9pZCBzZXRGb250KE5TRm9u
dCAqZm9udCk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIENURm9udFJlZiBjdEZvbnQoKSBj
b25zdDsKKyNlbmRpZgorCisgICAgYm9vbCByb3VuZHNHbHlwaEFkdmFuY2VzKCkgY29uc3Q7Cisg
ICAgYm9vbCBhbGxvd3NMaWdhdHVyZXMoKSBjb25zdDsKKyAgICBib29sIGlzQ29sb3JCaXRtYXBG
b250KCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbG9yQml0bWFwRm9udDsgfQorCisjaWZuZGVmIEJV
SUxESU5HX09OX1RJR0VSCisgICAgQ0dGb250UmVmIGNnRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2dGb250LmdldCgpOyB9CisjZWxzZQorICAgIENHRm9udFJlZiBjZ0ZvbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NnRm9udDsgfQorI2VuZGlmCisKKyNpZm5kZWYgTkRFQlVHCisgICAgU3RyaW5nIGRl
c2NyaXB0aW9uKCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgTlNGb250
ICpoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxO
U0ZvbnQgKj4oLTEpOyB9CisKKyAgICBOU0ZvbnQgKm1fZm9udDsKKworI2lmbmRlZiBCVUlMRElO
R19PTl9USUdFUgorICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IG1fY2dGb250OworI2Vsc2UKKyAg
ICBDR0ZvbnRSZWYgbV9jZ0ZvbnQ7IC8vIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gcmVmY291bnQg
dGhpcywgc2luY2UgZWl0aGVyIGFuIE5TRm9udCBvd25zIGl0IG9yIHNvbWUgQ2FjaGVkRm9udCBo
YXMgaXQgcmVmZXJlbmNlZC4KKyNlbmRpZgorCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICBtdXRh
YmxlIFJldGFpblB0cjxDVEZvbnRSZWY+IG1fQ1RGb250OworI2VuZGlmCisKKyAgICBib29sIG1f
aXNDb2xvckJpdG1hcEZvbnQ7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW0JKHJldmlzaW9uIDY1ODg2KQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250UGxhdGZvcm1EYXRhTWFjLm1tOjY1ODg2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNTQgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgaW50ZXJuYWwgZm9udCBp
bXBsZW1lbnRhdGlvbi4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJGb250UGxhdGZvcm1EYXRhLmgiCisKKyNpbXBvcnQgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxB
cHBLaXQvTlNGb250Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBi
b29sIHN5bnRoZXRpY09ibGlxdWUpCisgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9s
ZCkKKyAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwgbV9m
b250KG5zRm9udCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0b0NU
Rm9udFJlZihuc0ZvbnQpKSAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0KQorI2Vsc2UKKyAgICAs
IG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCisjZW5kaWYKK3sKKyAgICBBU1NFUlRfQVJHKG5z
Rm9udCwgbnNGb250KTsKKworICAgIENGUmV0YWluKG5zRm9udCk7CisgICAgbV9zaXplID0gW25z
Rm9udCBwb2ludFNpemVdOworI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgorICAgIG1fY2dGb250
LmFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udCh0b0NURm9udFJlZihuc0ZvbnQpLCAwKSk7
CisgICAgbV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKG5z
Rm9udCksIDApOworI2Vsc2UKKyAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJvbU5TRm9udChu
c0ZvbnQpOworICAgIG1fYXRzdUZvbnRJRCA9IHdrR2V0TlNGb250QVRTVUZvbnRJZChuc0ZvbnQp
OworI2VuZGlmCit9CisKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgZikKK3sKKyAgICBtX2ZvbnQgPSBmLm1fZm9udCAmJiBmLm1fZm9u
dCAhPSByZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkgPyBjb25zdF9jYXN0PE5TRm9udCAq
PihzdGF0aWNfY2FzdDxjb25zdCBOU0ZvbnQgKj4oQ0ZSZXRhaW4oZi5tX2ZvbnQpKSkgOiBmLm1f
Zm9udDsKKworICAgIG1fc3ludGhldGljQm9sZCA9IGYubV9zeW50aGV0aWNCb2xkOworICAgIG1f
c3ludGhldGljT2JsaXF1ZSA9IGYubV9zeW50aGV0aWNPYmxpcXVlOworICAgIG1fc2l6ZSA9IGYu
bV9zaXplOworICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKKyAgICBtX2F0c3VGb250SUQgPSBm
Lm1fYXRzdUZvbnRJRDsKKyAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRt
YXBGb250OworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250Owor
I2VuZGlmCit9CisKK0ZvbnRQbGF0Zm9ybURhdGE6OiB+Rm9udFBsYXRmb3JtRGF0YSgpCit7Cisg
ICAgaWYgKG1fZm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEp
KQorICAgICAgICBDRlJlbGVhc2UobV9mb250KTsKK30KKworY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYp
Cit7CisgICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRoZXRpY0JvbGQ7CisgICAgbV9zeW50
aGV0aWNPYmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7CisgICAgbV9zaXplID0gZi5tX3Np
emU7CisgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OworICAgIG1fYXRzdUZvbnRJRCA9IGYubV9h
dHN1Rm9udElEOworICAgIGlmIChtX2ZvbnQgPT0gZi5tX2ZvbnQpCisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICBpZiAoZi5tX2ZvbnQgJiYgZi5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxO
U0ZvbnQgKj4oLTEpKQorICAgICAgICBDRlJldGFpbihmLm1fZm9udCk7CisgICAgaWYgKG1fZm9u
dCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpKQorICAgICAgICBD
RlJlbGVhc2UobV9mb250KTsKKyAgICBtX2ZvbnQgPSBmLm1fZm9udDsKKyAgICBtX2lzQ29sb3JC
aXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OworI2lmIFVTRShDT1JFX1RFWFQpCisg
ICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OworI2VuZGlmCisgICAgcmV0dXJuICp0aGlzOworfQor
Cit2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQoreworICAgIEFT
U0VSVF9BUkcoZm9udCwgZm9udCk7CisgICAgQVNTRVJUKG1fZm9udCAhPSByZWludGVycHJldF9j
YXN0PE5TRm9udCAqPigtMSkpOworCisgICAgaWYgKG1fZm9udCA9PSBmb250KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBDRlJldGFpbihmb250KTsKKyAgICBpZiAobV9mb250KQorICAgICAgICBD
RlJlbGVhc2UobV9mb250KTsKKyAgICBtX2ZvbnQgPSBmb250OworICAgIG1fc2l6ZSA9IFtmb250
IHBvaW50U2l6ZV07CisjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCisgICAgbV9jZ0ZvbnQuYWRv
cHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250UmVmKGZvbnQpLCAwKSk7CisgICAg
bV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKGZvbnQpLCAw
KTsKKyNlbHNlCisgICAgbV9jZ0ZvbnQgPSB3a0dldENHRm9udEZyb21OU0ZvbnQoZm9udCk7Cisg
ICAgbV9hdHN1Rm9udElEID0gd2tHZXROU0ZvbnRBVFNVRm9udElkKGZvbnQpOworI2VuZGlmCisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBtX2lzQ29s
b3JCaXRtYXBGb250ID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZvbnRSZWYoZm9udCkp
ICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQ7CisjZW5kaWYKKyNpZiBVU0UoQ09SRV9URVhUKQor
ICAgIG1fQ1RGb250ID0gMDsKKyNlbmRpZgorfQorCitib29sIEZvbnRQbGF0Zm9ybURhdGE6OnJv
dW5kc0dseXBoQWR2YW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiBbbV9mb250IHJlbmRlcmlu
Z01vZGVdID09IE5TRm9udEFudGlhbGlhc2VkSW50ZWdlckFkdmFuY2VtZW50c1JlbmRlcmluZ01v
ZGU7Cit9CisKK2Jvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3Rlcklz
TWVtYmVyOidhJ107Cit9CisKKyNpZiBVU0UoQ09SRV9URVhUKQorQ1RGb250UmVmIEZvbnRQbGF0
Zm9ybURhdGE6OmN0Rm9udCgpIGNvbnN0Cit7CisgICAgaWYgKG1fZm9udCkKKyAgICAgICAgcmV0
dXJuIHRvQ1RGb250UmVmKG1fZm9udCk7CisgICAgaWYgKCFtX0NURm9udCkKKyAgICAgICAgbV9D
VEZvbnQuYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoR3JhcGhpY3NGb250KG1fY2dGb250LmdldCgp
LCBtX3NpemUsIDAsIDApKTsKKyAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7Cit9CisjZW5kaWYg
Ly8gVVNFKENPUkVfVEVYVCkKKworI2lmbmRlZiBOREVCVUcKK1N0cmluZyBGb250UGxhdGZvcm1E
YXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBj
Z0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkpOwor
ICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5n
OjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6
ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKTsK
K30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2NjMy
NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBpbnRlcm5hbCBmb250IGltcGxlbWVudGF0aW9uLgotICogSXQgc2hvdWxkIG5vdCBi
ZSBpbmNsdWRlZCBieSBzb3VyY2UgZmlsZXMgb3V0c2lkZSBvZiBpdC4KLSAqCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqCi0gKi8KLQotI2lmbmRlZiBGb250UGxhdGZvcm1EYXRhX2gKLSNkZWZpbmUgRm9udFBs
YXRmb3JtRGF0YV9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+Ci0KLSNpZmRl
ZiBfX09CSkNfXwotQGNsYXNzIE5TRm9udDsKLSNlbHNlCi1jbGFzcyBOU0ZvbnQ7Ci0jZW5kaWYK
LQotdHlwZWRlZiBzdHJ1Y3QgQ0dGb250KiBDR0ZvbnRSZWY7Ci0jaWZuZGVmIEJVSUxESU5HX09O
X1RJR0VSCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udCogQ1RGb250UmVmOwotI2VuZGlm
Ci0KLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KLSNpbmNsdWRlIDxvYmpjL29i
amMtYXV0by5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgotCi10eXBlZGVmIFVJbnQzMiBBVFNVRm9udElEOwotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLSNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLWlubGluZSBDVEZvbnRSZWYgdG9DVEZv
bnRSZWYoTlNGb250ICpuc0ZvbnQpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVm
Pihuc0ZvbnQpOyB9Ci0jZW5kaWYKLQotY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7Ci0gIHB1Ymxp
YzoKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNPYmxpcXVlKQotICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0
aWNCb2xkKQotICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQot
ICAgICAgICAsIG1fYXRzdUZvbnRJRCgwKQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgICAg
ICAsIG1fZm9udCgwKQotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgICAgICwgbV9jZ0Zv
bnQoMCkKLSNlbmRpZgotICAgICAgICAsIG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCi0gICAg
ewotICAgIH0KLQotICAgIEZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3lu
dGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7Ci0gICAg
Ci0gICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJ
RCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUp
Ci0gICAgICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCi0gICAgICAgICwgbV9z
eW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCi0gICAgICAgICwgbV9hdHN1Rm9udElE
KGZvbnRJRCkKLSAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAgICAgLCBtX2ZvbnQoMCkKLSAg
ICAgICAgLCBtX2NnRm9udChjZ0ZvbnQpCi0gICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChm
YWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxh
dGZvcm1EYXRhJik7Ci0gICAgCi0gICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKLQotICAgIEZvbnRQ
bGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fZm9udChoYXNo
VGFibGVEZWxldGVkRm9udFZhbHVlKCkpIHsgfQotICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVk
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2ZvbnQgPT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1
ZSgpOyB9Ci0KLSAgICBmbG9hdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0gICAg
Ym9vbCBzeW50aGV0aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9Ci0g
ICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxp
cXVlOyB9Ci0KLSAgICBib29sIG1fc3ludGhldGljQm9sZDsKLSAgICBib29sIG1fc3ludGhldGlj
T2JsaXF1ZTsKLQotICAgIEFUU1VGb250SUQgbV9hdHN1Rm9udElEOwotICAgIGZsb2F0IG1fc2l6
ZTsKLQotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
Zm9udCAhPSAwIHx8IG1fY2dGb250ID09IDApOwotICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVz
WzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRo
ZXRpY09ibGlxdWUgfTsKLSAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJl
aW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNp
emVvZihVQ2hhcikpOwotICAgIH0KLQotICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJh
dG9yPShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1
cm4gbV9mb250ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIubV9z
eW50aGV0aWNCb2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09i
bGlxdWUgJiYgCi0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBt
X3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250
SUQ7Ci0gICAgfQotCi0gICAgTlNGb250ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9
Ci0gICAgdm9pZCBzZXRGb250KE5TRm9udCAqZm9udCk7Ci0KLSNpZiBVU0UoQ09SRV9URVhUKQot
ICAgIENURm9udFJlZiBjdEZvbnQoKSBjb25zdDsKLSNlbmRpZgotCi0gICAgYm9vbCByb3VuZHNH
bHlwaEFkdmFuY2VzKCkgY29uc3Q7Ci0gICAgYm9vbCBhbGxvd3NMaWdhdHVyZXMoKSBjb25zdDsK
LSAgICBib29sIGlzQ29sb3JCaXRtYXBGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbG9yQml0
bWFwRm9udDsgfQotCi0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgQ0dGb250UmVmIGNn
Rm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fY2dGb250LmdldCgpOyB9Ci0jZWxzZQotICAgIENHRm9u
dFJlZiBjZ0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2NnRm9udDsgfQotI2VuZGlmCi0KLSNpZm5k
ZWYgTkRFQlVHCi0gICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJp
dmF0ZToKLSAgICBzdGF0aWMgTlNGb250ICpoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkgeyBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpOyB9Ci0KLSAgICBOU0ZvbnQgKm1f
Zm9udDsKLQotI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIFJldGFpblB0cjxDR0ZvbnRS
ZWY+IG1fY2dGb250OwotI2Vsc2UKLSAgICBDR0ZvbnRSZWYgbV9jZ0ZvbnQ7IC8vIEl0IGlzIG5v
dCBuZWNlc3NhcnkgdG8gcmVmY291bnQgdGhpcywgc2luY2UgZWl0aGVyIGFuIE5TRm9udCBvd25z
IGl0IG9yIHNvbWUgQ2FjaGVkRm9udCBoYXMgaXQgcmVmZXJlbmNlZC4KLSNlbmRpZgotCi0jaWYg
VVNFKENPUkVfVEVYVCkKLSAgICBtdXRhYmxlIFJldGFpblB0cjxDVEZvbnRSZWY+IG1fQ1RGb250
OwotI2VuZGlmCi0KLSAgICBib29sIG1faXNDb2xvckJpdG1hcEZvbnQ7Ci19OwotCi19Ci0KLSNl
bmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0
YU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
UGxhdGZvcm1EYXRhTWFjLm1tCShyZXZpc2lvbiA2NjMyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEs
MTU0ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgaW50ZXJuYWwgZm9u
dCBpbXBsZW1lbnRhdGlvbi4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2ltcG9ydCAi
Y29uZmlnLmgiCi0jaW1wb3J0ICJGb250UGxhdGZvcm1EYXRhLmgiCi0KLSNpbXBvcnQgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0
IDxBcHBLaXQvTlNGb250Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xk
LCBib29sIHN5bnRoZXRpY09ibGlxdWUpCi0gICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGlj
Qm9sZCkKLSAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQotICAgICwg
bV9mb250KG5zRm9udCkKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQotICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0
b0NURm9udFJlZihuc0ZvbnQpKSAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0KQotI2Vsc2UKLSAg
ICAsIG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCi0jZW5kaWYKLXsKLSAgICBBU1NFUlRfQVJH
KG5zRm9udCwgbnNGb250KTsKLQotICAgIENGUmV0YWluKG5zRm9udCk7Ci0gICAgbV9zaXplID0g
W25zRm9udCBwb2ludFNpemVdOwotI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIG1fY2dG
b250LmFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udCh0b0NURm9udFJlZihuc0ZvbnQpLCAw
KSk7Ci0gICAgbV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVm
KG5zRm9udCksIDApOwotI2Vsc2UKLSAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJvbU5TRm9u
dChuc0ZvbnQpOwotICAgIG1fYXRzdUZvbnRJRCA9IHdrR2V0TlNGb250QVRTVUZvbnRJZChuc0Zv
bnQpOwotI2VuZGlmCi19Ci0KLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgZikKLXsKLSAgICBtX2ZvbnQgPSBmLm1fZm9udCAmJiBmLm1f
Zm9udCAhPSByZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkgPyBjb25zdF9jYXN0PE5TRm9u
dCAqPihzdGF0aWNfY2FzdDxjb25zdCBOU0ZvbnQgKj4oQ0ZSZXRhaW4oZi5tX2ZvbnQpKSkgOiBm
Lm1fZm9udDsKLQotICAgIG1fc3ludGhldGljQm9sZCA9IGYubV9zeW50aGV0aWNCb2xkOwotICAg
IG1fc3ludGhldGljT2JsaXF1ZSA9IGYubV9zeW50aGV0aWNPYmxpcXVlOwotICAgIG1fc2l6ZSA9
IGYubV9zaXplOwotICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKLSAgICBtX2F0c3VGb250SUQg
PSBmLm1fYXRzdUZvbnRJRDsKLSAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JC
aXRtYXBGb250OwotI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250
OwotI2VuZGlmCi19Ci0KLUZvbnRQbGF0Zm9ybURhdGE6OiB+Rm9udFBsYXRmb3JtRGF0YSgpCi17
Ci0gICAgaWYgKG1fZm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4o
LTEpKQotICAgICAgICBDRlJlbGVhc2UobV9mb250KTsKLX0KLQotY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IGYpCi17Ci0gICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRoZXRpY0JvbGQ7Ci0gICAgbV9z
eW50aGV0aWNPYmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7Ci0gICAgbV9zaXplID0gZi5t
X3NpemU7Ci0gICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwotICAgIG1fYXRzdUZvbnRJRCA9IGYu
bV9hdHN1Rm9udElEOwotICAgIGlmIChtX2ZvbnQgPT0gZi5tX2ZvbnQpCi0gICAgICAgIHJldHVy
biAqdGhpczsKLSAgICBpZiAoZi5tX2ZvbnQgJiYgZi5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2Fz
dDxOU0ZvbnQgKj4oLTEpKQotICAgICAgICBDRlJldGFpbihmLm1fZm9udCk7Ci0gICAgaWYgKG1f
Zm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpKQotICAgICAg
ICBDRlJlbGVhc2UobV9mb250KTsKLSAgICBtX2ZvbnQgPSBmLm1fZm9udDsKLSAgICBtX2lzQ29s
b3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OwotI2lmIFVTRShDT1JFX1RFWFQp
Ci0gICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwotI2VuZGlmCi0gICAgcmV0dXJuICp0aGlzOwot
fQotCi12b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQotewotICAg
IEFTU0VSVF9BUkcoZm9udCwgZm9udCk7Ci0gICAgQVNTRVJUKG1fZm9udCAhPSByZWludGVycHJl
dF9jYXN0PE5TRm9udCAqPigtMSkpOwotCi0gICAgaWYgKG1fZm9udCA9PSBmb250KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBDRlJldGFpbihmb250KTsKLSAgICBpZiAobV9mb250KQotICAgICAg
ICBDRlJlbGVhc2UobV9mb250KTsKLSAgICBtX2ZvbnQgPSBmb250OwotICAgIG1fc2l6ZSA9IFtm
b250IHBvaW50U2l6ZV07Ci0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgbV9jZ0ZvbnQu
YWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250UmVmKGZvbnQpLCAwKSk7Ci0g
ICAgbV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKGZvbnQp
LCAwKTsKLSNlbHNlCi0gICAgbV9jZ0ZvbnQgPSB3a0dldENHRm9udEZyb21OU0ZvbnQoZm9udCk7
Ci0gICAgbV9hdHN1Rm9udElEID0gd2tHZXROU0ZvbnRBVFNVRm9udElkKGZvbnQpOwotI2VuZGlm
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBtX2lz
Q29sb3JCaXRtYXBGb250ID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZvbnRSZWYoZm9u
dCkpICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jZW5kaWYKLSNpZiBVU0UoQ09SRV9URVhU
KQotICAgIG1fQ1RGb250ID0gMDsKLSNlbmRpZgotfQotCi1ib29sIEZvbnRQbGF0Zm9ybURhdGE6
OnJvdW5kc0dseXBoQWR2YW5jZXMoKSBjb25zdAotewotICAgIHJldHVybiBbbV9mb250IHJlbmRl
cmluZ01vZGVdID09IE5TRm9udEFudGlhbGlhc2VkSW50ZWdlckFkdmFuY2VtZW50c1JlbmRlcmlu
Z01vZGU7Ci19Ci0KLWJvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3Rl
cklzTWVtYmVyOidhJ107Ci19Ci0KLSNpZiBVU0UoQ09SRV9URVhUKQotQ1RGb250UmVmIEZvbnRQ
bGF0Zm9ybURhdGE6OmN0Rm9udCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fZm9udCkKLSAgICAgICAg
cmV0dXJuIHRvQ1RGb250UmVmKG1fZm9udCk7Ci0gICAgaWYgKCFtX0NURm9udCkKLSAgICAgICAg
bV9DVEZvbnQuYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoR3JhcGhpY3NGb250KG1fY2dGb250Lmdl
dCgpLCBtX3NpemUsIDAsIDApKTsKLSAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7Ci19Ci0jZW5k
aWYgLy8gVVNFKENPUkVfVEVYVCkKLQotI2lmbmRlZiBOREVCVUcKLVN0cmluZyBGb250UGxhdGZv
cm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBjZ0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkp
OwotICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3Ry
aW5nOjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xk
IiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIi
KTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65878</attachid>
            <date>2010-08-29 22:36:58 -0700</date>
            <delta_ts>2010-08-29 23:13:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41398-20100830083654.patch</filename>
            <type>text/plain</type>
            <size>33727</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjM1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMjkgIEplcmVteSBNb3Nrb3ZpY2ggIDxqZXJlbXlAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAg
ICAgICBGaXJzdCBzdGVwIGluIHVuZm9ya2luZyBDaHJvbWUncyBGb250UGxhdGZvcm1EYXRhTWFj
Lm1tLgorICAgICAgICBNb3ZlIGZpbGVzIGZyb20gcGxhdGZvcm0vZ3JhcGhpY3MvbWFjIHRvIHBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMzk4CisKKyAgICAgICAgSnVzdCBtb3ZpbmcgZmlsZXMgYXJvdW5k
IHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBs
YXRmb3JtRGF0YUNocm9taXVtTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRQbGF0Zm9ybURhdGEuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbTogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YU1hYy5tbS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhTWFjLm1tOiBSZW1vdmVkLgor
CiAyMDEwLTA4LTI5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA2NjM1NikKKysrIFdl
YkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgzLDYgKzIyODMsNyBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRl
eHRSdW4uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9M
YXllckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVmlkZW9MYXllckNocm9taXVtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUJsZW5kLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUJsZW5kLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb2xvck1hdHJpeC5jcHAnLApAQCAtMjM0Nyw3ICsyMzQ4LDYgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1t
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLmgn
LApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA2NjM1NikKKysrIFdlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTIxNywyMiArMjE3
LDIzIEBACiAgICAgICB9XSwKICAgICAgIFsnT1M9PSJtYWMiJywgewogICAgICAgICAnd2ViY29y
ZV9pbmNsdWRlX2RpcnMrJzogWwotICAgICAgICAgICMgcGxhdGZvcm0vZ3JhcGhpY3MvY2cgYW5k
IG1hYyBuZWVkcyB0byBjb21lIGJlZm9yZQorICAgICAgICAgICMgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cgYW5kIGNvY29hIG5lZWQgdG8gY29tZSBiZWZvcmUKICAgICAgICAgICAjIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtIHNvIHRoYXQgdGhlIE1hYyBidWlsZCBwaWNrcyB1cCB0aGUKICAgICAg
ICAgICAjIHZlcnNpb24gb2YgSW1hZ2VCdWZmZXJEYXRhLmggaW4gdGhlIGNnIGRpcmVjdG9yeSBh
bmQKLSAgICAgICAgICAjIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiB0aGUgbWFjIGRpcmVjdG9yeS4g
IFRoZSArIHByZXBlbmRzIHRoaXMKKyAgICAgICAgICAjIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiB0
aGUgY29jb2EgZGlyZWN0b3J5LiAgVGhlICsgcHJlcGVuZHMgdGhpcwogICAgICAgICAgICMgZGly
ZWN0b3J5IHRvIHRoZSBsaXN0LgogICAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkbid0IG5l
ZWQgdG8gYmUgcHJlcGVuZGVkLgotICAgICAgICAgICMgRklYTUU6IEVsaW1pbmF0ZSBkZXBlbmRl
bmN5IG9uIHBsYXRmb3JtL2dyYXBoaWNzL21hYyBhbmQKLSAgICAgICAgICAjIHJlbGF0ZWQgZGly
ZWN0b3JpZXMuCi0gICAgICAgICAgIyBwbGF0Zm9ybS9ncmFwaGljcy9jZyBtYXkgbmVlZCB0byBz
dGljayBhcm91bmQsIHRob3VnaC4KLSAgICAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
JywKKyAgICAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EnLAogICAgICAgICAgICcu
Li9wbGF0Zm9ybS9ncmFwaGljcy9jZycsCiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX2lu
Y2x1ZGVfZGlycyc6IFsKICAgICAgICAgICAjIEZJWE1FOiBFbGltaW5hdGUgZGVwZW5kZW5jeSBv
biBwbGF0Zm9ybS9tYWMgYW5kIHJlbGF0ZWQKICAgICAgICAgICAjIGRpcmVjdG9yaWVzLgorICAg
ICAgICAgICMgRklYTUU6IEVsaW1pbmF0ZSBkZXBlbmRlbmN5IG9uIHBsYXRmb3JtL2dyYXBoaWNz
L21hYyBhbmQKKyAgICAgICAgICAjIHJlbGF0ZWQgZGlyZWN0b3JpZXMuCisgICAgICAgICAgIyBw
bGF0Zm9ybS9ncmFwaGljcy9jZyBtYXkgbmVlZCB0byBzdGljayBhcm91bmQsIHRob3VnaC4KICAg
ICAgICAgICAnLi4vbG9hZGVyL2FyY2hpdmUvY2YnLAorICAgICAgICAgICcuLi9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMnLAogICAgICAgICAgICcuLi9wbGF0Zm9ybS9tYWMnLAogICAgICAgICAgICcu
Li9wbGF0Zm9ybS90ZXh0L21hYycsCiAgICAgICAgIF0sCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjYzNTYpCisrKyBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDEyNiw4
ICs0MTI2LDYgQEAKIAkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyQUZGQzc2MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi87
IH07CiAJCUIyQUZGQzdGMEQwMEE1QzEwMDMwMDc0RCAvKiBTaW1wbGVGb250RGF0YU1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc3MEQw
MEE1QzEwMDMwMDc0RCAvKiBTaW1wbGVGb250RGF0YU1hYy5tbSAqLzsgfTsKIAkJQjJBRkZDODAw
RDAwQTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3ODBEMDBBNUMxMDAzMDA3NEQgLyogRm9udE1hYy5t
bSAqLzsgfTsKLQkJQjJBRkZDODEwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc5
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjJBRkZDODIwRDAwQTVDMTAwMzAwNzRE
IC8qIEZvbnRQbGF0Zm9ybURhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3QTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udFBsYXRmb3Jt
RGF0YU1hYy5tbSAqLzsgfTsKIAkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFn
ZVRyZWVOb2RlTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyQUZGQzdCMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5j
cHAgKi87IH07CiAJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZDODgwRDAw
QTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmMgKi87IH07CiAJCUIyQUZGQzk0MEQwMEE1REYw
MDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjJBRkZDODkwRDAwQTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmgg
Ki87IH07CkBAIC00NDQ4LDYgKzQ0NDYsOCBAQAogCQlCNTIzQ0YwQjExODI2NzU0MDBFQkIyOUMg
LyogRGF0YWJhc2VTeW5jLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCNTIzQ0YwNDExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi87IH07
CiAJCUI1MjVBOTY1MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUyNUE5NjMxMUNBMjM0MDAw
M0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmggKi87IH07CiAJCUI1MjVBOTY2MTFDQTIzNDAwMDNB
MjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCNTI1QTk2NDExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRp
b24uY3BwICovOyB9OworCQlCNTMyMEQ2QjEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3Jt
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUz
MjBENjkxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCNTMyMEQ2QzEyMkEyNEU5MDAy
RDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUzMjBENkExMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQ
bGF0Zm9ybURhdGFDb2NvYS5tbSAqLzsgfTsKIAkJQjU1MEI1MjUxMURDNjhBODAwOTIzODg1IC8q
IFNRTFN0YXRlbWVudFN5bmMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjU1MEI1MjExMURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMu
Y3BwICovOyB9OwogCQlCNTUwQjUyNjExREM2OEE4MDA5MjM4ODUgLyogU1FMU3RhdGVtZW50U3lu
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU1MEI1
MjIxMURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMuaCAqLzsgfTsKIAkJQjU1RDVB
QTQxMTkxMzFGQzAwQkNDMzE1IC8qIEpTU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1NUQ1QUEyMTE5MTMx
RkMwMEJDQzMxNSAvKiBKU1NRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrLmggKi87IH07CkBAIC05
ODk5LDggKzk4OTksNiBAQAogCQlCMkFGRkM3NjBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkFGRkM3
NzBEMDBBNUMxMDAzMDA3NEQgLyogU2ltcGxlRm9udERhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2ltcGxlRm9udERhdGFNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzc4MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250TWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQUZGQzc5MEQwMEE1QzEwMDMwMDc0RCAv
KiBGb250UGxhdGZvcm1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
b250UGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQUZGQzdB
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRQbGF0Zm9ybURhdGFNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQUZGQzdCMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlw
aFBhZ2VUcmVlTm9kZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMkFGRkM4NTBEMDBBNURGMDAzMDA3NEQgLyogY2hhcmFjdGVyLXNldHMudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSAiY2hhcmFjdGVyLXNldHMudHh0Ijsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjJBRkZDODYwRDAwQTVERjAwMzAwNzREIC8qIG1hYy1lbmNvZGluZ3MudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAibWFjLWVuY29kaW5ncy50eHQiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTAyMjUsNiArMTAyMjMsOCBAQAogCQlCNTIzQ0YwNDExODI2
NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERhdGFiYXNlU3luYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTI1
QTk2MzExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjUyNUE5NjQxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1FMRXhjZXB0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjUzMjBENjkxMjJBMjRFOTAwMkQxNDQwIC8q
IEZvbnRQbGF0Zm9ybURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9u
dFBsYXRmb3JtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTMyMEQ2QTEy
MkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTUwQjUyMTExREM2OEE4MDA5MjM4ODUgLyogU1FM
U3RhdGVtZW50U3luYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
UUxTdGF0ZW1lbnRTeW5jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU1MEI1
MjIxMURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1FMU3RhdGVtZW50U3luYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCNTVENUFBMjExOTEzMUZDMDBCQ0MzMTUgLyogSlNTUUxUcmFuc2FjdGlvblN5
bmNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTFRyYW5z
YWN0aW9uU3luY0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTgz
Miw4ICsxNTgzMiw2IEBACiAJCQkJQjJBRkZDNzUwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwICovLAogCQkJCUIyQUZGQzc2MEQwMEE1QzEwMDMwMDc0RCAvKiBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi8sCiAJCQkJQjJBRkZDNzgwRDAwQTVDMTAwMzAwNzRE
IC8qIEZvbnRNYWMubW0gKi8sCi0JCQkJQjJBRkZDNzkwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRQ
bGF0Zm9ybURhdGEuaCAqLywKLQkJCQlCMkFGRkM3QTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udFBs
YXRmb3JtRGF0YU1hYy5tbSAqLywKIAkJCQlCMkFGRkM3QjBEMDBBNUMxMDAzMDA3NEQgLyogR2x5
cGhQYWdlVHJlZU5vZGVNYWMuY3BwICovLAogCQkJCTQ5RkZCRjFDMTFDODU1MEUwMDZBNzExOCAv
KiBHcmFwaGljc0NvbnRleHQzRE1hYy5tbSAqLywKIAkJCQlCMjc3QjQwMzBCMjJGMzdDMDAwNEJF
QzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovLApAQCAtMTU4NjQsNiArMTU4NjIsNyBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCMjc1MzUyOTBCMDUzODE0
MDAyQ0U2NEYgLyogY2cgKi8sCisJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQxNDQwIC8qIGNvY29h
ICovLAogCQkJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovLAogCQkJCUIy
NzUzNTQ5MEIwNTM4MTQwMDJDRTY0RiAvKiBtYWMgKi8sCiAJCQkJRjRFQUY0QUIxMEM3NDI2ODAw
OTEwMEQzIC8qIG9wZW50eXBlICovLApAQCAtMTYwNjAsNiArMTYwNTksMTUgQEAKIAkJCW5hbWUg
PSBjZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUI1MzIwRDY4MTIyQTI0
RTkwMDJEMTQ0MCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQjUzMjBENjkxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEu
aCAqLywKKwkJCQlCNTMyMEQ2QTEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNv
Y29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCUI1RDMxREY3MTFDRjYwRTUwMDlGMjJCNCAvKiBnZW5lcmljICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE3NjkzLDYgKzE3NzAx
LDcgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUI1MzIwRDZCMTIyQTI0RTkwMDJEMTQ0
MCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNUI1REM2QTExOUJC
M0Q1MDAyQTg3OTAgLyogQWJzdHJhY3REYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFF
MUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyOUE4MTIyRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2Vs
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODc4NCw3ICsxODc5Myw2IEBACiAJCQkJQjJDM0RBNjgw
RDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYWxsYmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTZBMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFNkNGMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZhbWlseVZhbHVlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCMkFGRkM4MTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udFBsYXRmb3JtRGF0
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdBQ0NFNDIwREEyOTgwRjAwODlFNjAyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2MDBFRjZG
MjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzIwMjE5OTEwNjIxM0M2
MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEzMTEs
NyArMjEzMTksNiBAQAogCQkJCUE4MEU2Q0VDMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzI2MjZFMDIwRUYwMjJGRTAwQTA3RTIwIC8q
IEZvbnRGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MDBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udE1hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUIyQUZGQzgyMEQwMEE1QzEw
MDMwMDc0RCAvKiBGb250UGxhdGZvcm1EYXRhTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjcz
NEIxODExMTlCOTkxMTAwNjU4N0JEIC8qIEZvbnRUcmFuc2NvZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4MEU2Q0YxMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDA1Q0VEMjkwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyODg3LDYgKzIyODk0LDcgQEAKIAkJCQk5NzdCMzg3
NDEyMjg4M0U5MDBCODFGRjggLyogSFRNTFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzdCMzg3NzEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzdCMzg3OTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3VyY2VQ
YXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjUzMjBENkMxMjJBMjRFOTAwMkQxNDQwIC8q
IEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1NYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxh
dGZvcm1EYXRhQ2hyb21pdW1NYWMubW0JKHJldmlzaW9uIDY2MzU2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1NYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogLy8gU3RhcnQgQ2hyb21pdW0gQ2hhbmdl
CiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIi4uL2dyYXBoaWNzL21hYy9Gb250UGxhdGZv
cm1EYXRhLmgiCisjaW1wb3J0ICIuLi9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgi
CiAKICNpbXBvcnQgIkNocm9taXVtQnJpZGdlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVN0cmluZy5o
IgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxh
dGZvcm1EYXRhLmgJKHJldmlzaW9uIDY2MzU2KQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmg6NjYzNTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE1NCBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBpbnRlcm5hbCBmb250IGlt
cGxlbWVudGF0aW9uLgorICogSXQgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBieSBzb3VyY2UgZmls
ZXMgb3V0c2lkZSBvZiBpdC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBG
b250UGxhdGZvcm1EYXRhX2gKKyNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCisKKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisKKyNpZmRlZiBfX09CSkNfXworQGNsYXNzIE5TRm9u
dDsKKyNlbHNlCitjbGFzcyBOU0ZvbnQ7CisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgQ0dGb250
KiBDR0ZvbnRSZWY7CisjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCit0eXBlZGVmIGNvbnN0IHN0
cnVjdCBfX0NURm9udCogQ1RGb250UmVmOworI2VuZGlmCisKKyNpbmNsdWRlIDxDb3JlRm91bmRh
dGlvbi9DRkJhc2UuaD4KKyNpbmNsdWRlIDxvYmpjL29iamMtYXV0by5oPgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIFVJbnQz
MiBBVFNVRm9udElEOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZm5kZWYgQlVJTERJTkdf
T05fVElHRVIKK2lubGluZSBDVEZvbnRSZWYgdG9DVEZvbnRSZWYoTlNGb250ICpuc0ZvbnQpIHsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihuc0ZvbnQpOyB9CisjZW5kaWYKKwor
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CisgIHB1YmxpYzoKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQor
ICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQorICAgICAgICAsIG1fc3lu
dGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1fYXRzdUZvbnRJRCgw
KQorICAgICAgICAsIG1fc2l6ZShzaXplKQorICAgICAgICAsIG1fZm9udCgwKQorI2lmZGVmIEJV
SUxESU5HX09OX1RJR0VSCisgICAgICAgICwgbV9jZ0ZvbnQoMCkKKyNlbmRpZgorICAgICAgICAs
IG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCisgICAgeworICAgIH0KKworICAgIEZvbnRQbGF0
Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29s
IHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7CisgICAgCisgICAgRm9udFBsYXRmb3JtRGF0YShD
R0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50
aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCisgICAgICAgIDogbV9zeW50aGV0aWNC
b2xkKHN5bnRoZXRpY0JvbGQpCisgICAgICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRp
Y09ibGlxdWUpCisgICAgICAgICwgbV9hdHN1Rm9udElEKGZvbnRJRCkKKyAgICAgICAgLCBtX3Np
emUoc2l6ZSkKKyAgICAgICAgLCBtX2ZvbnQoMCkKKyAgICAgICAgLCBtX2NnRm9udChjZ0ZvbnQp
CisgICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChmYWxzZSkKKyAgICB7CisgICAgfQorCisg
ICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CisgICAgCisgICAg
fkZvbnRQbGF0Zm9ybURhdGEoKTsKKworICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fZm9udChoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkp
IHsgfQorICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2ZvbnQgPT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpOyB9CisKKyAgICBmbG9hdCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgYm9vbCBzeW50aGV0aWNCb2xkKCkgY29u
c3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CisgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CisKKyAgICBib29sIG1fc3lu
dGhldGljQm9sZDsKKyAgICBib29sIG1fc3ludGhldGljT2JsaXF1ZTsKKworICAgIEFUU1VGb250
SUQgbV9hdHN1Rm9udElEOworICAgIGZsb2F0IG1fc2l6ZTsKKworICAgIHVuc2lnbmVkIGhhc2go
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZm9udCAhPSAwIHx8IG1fY2dGb250ID09
IDApOworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9u
dCwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPiho
YXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOworICAgIH0KKwor
ICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBmKTsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBv
dGhlcikgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gbV9mb250ID09IG90aGVyLm1fZm9u
dCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIubV9zeW50aGV0aWNCb2xkICYmIG1fc3ludGhl
dGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09ibGlxdWUgJiYgCisgICAgICAgICAgICAg
ICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYm
IG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQ7CisgICAgfQorCisgICAgTlNGb250
ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CisgICAgdm9pZCBzZXRGb250KE5TRm9u
dCAqZm9udCk7CisKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIENURm9udFJlZiBjdEZvbnQoKSBj
b25zdDsKKyNlbmRpZgorCisgICAgYm9vbCByb3VuZHNHbHlwaEFkdmFuY2VzKCkgY29uc3Q7Cisg
ICAgYm9vbCBhbGxvd3NMaWdhdHVyZXMoKSBjb25zdDsKKyAgICBib29sIGlzQ29sb3JCaXRtYXBG
b250KCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbG9yQml0bWFwRm9udDsgfQorCisjaWZuZGVmIEJV
SUxESU5HX09OX1RJR0VSCisgICAgQ0dGb250UmVmIGNnRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2dGb250LmdldCgpOyB9CisjZWxzZQorICAgIENHRm9udFJlZiBjZ0ZvbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NnRm9udDsgfQorI2VuZGlmCisKKyNpZm5kZWYgTkRFQlVHCisgICAgU3RyaW5nIGRl
c2NyaXB0aW9uKCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgTlNGb250
ICpoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxO
U0ZvbnQgKj4oLTEpOyB9CisKKyAgICBOU0ZvbnQgKm1fZm9udDsKKworI2lmbmRlZiBCVUlMRElO
R19PTl9USUdFUgorICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IG1fY2dGb250OworI2Vsc2UKKyAg
ICBDR0ZvbnRSZWYgbV9jZ0ZvbnQ7IC8vIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gcmVmY291bnQg
dGhpcywgc2luY2UgZWl0aGVyIGFuIE5TRm9udCBvd25zIGl0IG9yIHNvbWUgQ2FjaGVkRm9udCBo
YXMgaXQgcmVmZXJlbmNlZC4KKyNlbmRpZgorCisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICBtdXRh
YmxlIFJldGFpblB0cjxDVEZvbnRSZWY+IG1fQ1RGb250OworI2VuZGlmCisKKyAgICBib29sIG1f
aXNDb2xvckJpdG1hcEZvbnQ7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW0JKHJldmlzaW9uIDY2MzU2KQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250UGxhdGZvcm1EYXRhTWFjLm1tOjY2MzU2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNTQgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgaW50ZXJuYWwgZm9udCBp
bXBsZW1lbnRhdGlvbi4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJGb250UGxhdGZvcm1EYXRhLmgiCisKKyNpbXBvcnQgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxB
cHBLaXQvTlNGb250Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBi
b29sIHN5bnRoZXRpY09ibGlxdWUpCisgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9s
ZCkKKyAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwgbV9m
b250KG5zRm9udCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0b0NU
Rm9udFJlZihuc0ZvbnQpKSAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0KQorI2Vsc2UKKyAgICAs
IG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCisjZW5kaWYKK3sKKyAgICBBU1NFUlRfQVJHKG5z
Rm9udCwgbnNGb250KTsKKworICAgIENGUmV0YWluKG5zRm9udCk7CisgICAgbV9zaXplID0gW25z
Rm9udCBwb2ludFNpemVdOworI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgorICAgIG1fY2dGb250
LmFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udCh0b0NURm9udFJlZihuc0ZvbnQpLCAwKSk7
CisgICAgbV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKG5z
Rm9udCksIDApOworI2Vsc2UKKyAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJvbU5TRm9udChu
c0ZvbnQpOworICAgIG1fYXRzdUZvbnRJRCA9IHdrR2V0TlNGb250QVRTVUZvbnRJZChuc0ZvbnQp
OworI2VuZGlmCit9CisKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgZikKK3sKKyAgICBtX2ZvbnQgPSBmLm1fZm9udCAmJiBmLm1fZm9u
dCAhPSByZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkgPyBjb25zdF9jYXN0PE5TRm9udCAq
PihzdGF0aWNfY2FzdDxjb25zdCBOU0ZvbnQgKj4oQ0ZSZXRhaW4oZi5tX2ZvbnQpKSkgOiBmLm1f
Zm9udDsKKworICAgIG1fc3ludGhldGljQm9sZCA9IGYubV9zeW50aGV0aWNCb2xkOworICAgIG1f
c3ludGhldGljT2JsaXF1ZSA9IGYubV9zeW50aGV0aWNPYmxpcXVlOworICAgIG1fc2l6ZSA9IGYu
bV9zaXplOworICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKKyAgICBtX2F0c3VGb250SUQgPSBm
Lm1fYXRzdUZvbnRJRDsKKyAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRt
YXBGb250OworI2lmIFVTRShDT1JFX1RFWFQpCisgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250Owor
I2VuZGlmCit9CisKK0ZvbnRQbGF0Zm9ybURhdGE6OiB+Rm9udFBsYXRmb3JtRGF0YSgpCit7Cisg
ICAgaWYgKG1fZm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEp
KQorICAgICAgICBDRlJlbGVhc2UobV9mb250KTsKK30KKworY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYp
Cit7CisgICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRoZXRpY0JvbGQ7CisgICAgbV9zeW50
aGV0aWNPYmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7CisgICAgbV9zaXplID0gZi5tX3Np
emU7CisgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OworICAgIG1fYXRzdUZvbnRJRCA9IGYubV9h
dHN1Rm9udElEOworICAgIGlmIChtX2ZvbnQgPT0gZi5tX2ZvbnQpCisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICBpZiAoZi5tX2ZvbnQgJiYgZi5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxO
U0ZvbnQgKj4oLTEpKQorICAgICAgICBDRlJldGFpbihmLm1fZm9udCk7CisgICAgaWYgKG1fZm9u
dCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpKQorICAgICAgICBD
RlJlbGVhc2UobV9mb250KTsKKyAgICBtX2ZvbnQgPSBmLm1fZm9udDsKKyAgICBtX2lzQ29sb3JC
aXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OworI2lmIFVTRShDT1JFX1RFWFQpCisg
ICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OworI2VuZGlmCisgICAgcmV0dXJuICp0aGlzOworfQor
Cit2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQoreworICAgIEFT
U0VSVF9BUkcoZm9udCwgZm9udCk7CisgICAgQVNTRVJUKG1fZm9udCAhPSByZWludGVycHJldF9j
YXN0PE5TRm9udCAqPigtMSkpOworCisgICAgaWYgKG1fZm9udCA9PSBmb250KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBDRlJldGFpbihmb250KTsKKyAgICBpZiAobV9mb250KQorICAgICAgICBD
RlJlbGVhc2UobV9mb250KTsKKyAgICBtX2ZvbnQgPSBmb250OworICAgIG1fc2l6ZSA9IFtmb250
IHBvaW50U2l6ZV07CisjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCisgICAgbV9jZ0ZvbnQuYWRv
cHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250UmVmKGZvbnQpLCAwKSk7CisgICAg
bV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKGZvbnQpLCAw
KTsKKyNlbHNlCisgICAgbV9jZ0ZvbnQgPSB3a0dldENHRm9udEZyb21OU0ZvbnQoZm9udCk7Cisg
ICAgbV9hdHN1Rm9udElEID0gd2tHZXROU0ZvbnRBVFNVRm9udElkKGZvbnQpOworI2VuZGlmCisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBtX2lzQ29s
b3JCaXRtYXBGb250ID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZvbnRSZWYoZm9udCkp
ICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQ7CisjZW5kaWYKKyNpZiBVU0UoQ09SRV9URVhUKQor
ICAgIG1fQ1RGb250ID0gMDsKKyNlbmRpZgorfQorCitib29sIEZvbnRQbGF0Zm9ybURhdGE6OnJv
dW5kc0dseXBoQWR2YW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiBbbV9mb250IHJlbmRlcmlu
Z01vZGVdID09IE5TRm9udEFudGlhbGlhc2VkSW50ZWdlckFkdmFuY2VtZW50c1JlbmRlcmluZ01v
ZGU7Cit9CisKK2Jvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3Rlcklz
TWVtYmVyOidhJ107Cit9CisKKyNpZiBVU0UoQ09SRV9URVhUKQorQ1RGb250UmVmIEZvbnRQbGF0
Zm9ybURhdGE6OmN0Rm9udCgpIGNvbnN0Cit7CisgICAgaWYgKG1fZm9udCkKKyAgICAgICAgcmV0
dXJuIHRvQ1RGb250UmVmKG1fZm9udCk7CisgICAgaWYgKCFtX0NURm9udCkKKyAgICAgICAgbV9D
VEZvbnQuYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoR3JhcGhpY3NGb250KG1fY2dGb250LmdldCgp
LCBtX3NpemUsIDAsIDApKTsKKyAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7Cit9CisjZW5kaWYg
Ly8gVVNFKENPUkVfVEVYVCkKKworI2lmbmRlZiBOREVCVUcKK1N0cmluZyBGb250UGxhdGZvcm1E
YXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBj
Z0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkpOwor
ICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5n
OjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6
ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKTsK
K30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2NjM1
NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBpbnRlcm5hbCBmb250IGltcGxlbWVudGF0aW9uLgotICogSXQgc2hvdWxkIG5vdCBi
ZSBpbmNsdWRlZCBieSBzb3VyY2UgZmlsZXMgb3V0c2lkZSBvZiBpdC4KLSAqCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqCi0gKi8KLQotI2lmbmRlZiBGb250UGxhdGZvcm1EYXRhX2gKLSNkZWZpbmUgRm9udFBs
YXRmb3JtRGF0YV9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+Ci0KLSNpZmRl
ZiBfX09CSkNfXwotQGNsYXNzIE5TRm9udDsKLSNlbHNlCi1jbGFzcyBOU0ZvbnQ7Ci0jZW5kaWYK
LQotdHlwZWRlZiBzdHJ1Y3QgQ0dGb250KiBDR0ZvbnRSZWY7Ci0jaWZuZGVmIEJVSUxESU5HX09O
X1RJR0VSCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udCogQ1RGb250UmVmOwotI2VuZGlm
Ci0KLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KLSNpbmNsdWRlIDxvYmpjL29i
amMtYXV0by5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgotCi10eXBlZGVmIFVJbnQzMiBBVFNVRm9udElEOwotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLSNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLWlubGluZSBDVEZvbnRSZWYgdG9DVEZv
bnRSZWYoTlNGb250ICpuc0ZvbnQpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVm
Pihuc0ZvbnQpOyB9Ci0jZW5kaWYKLQotY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7Ci0gIHB1Ymxp
YzoKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNPYmxpcXVlKQotICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0
aWNCb2xkKQotICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQot
ICAgICAgICAsIG1fYXRzdUZvbnRJRCgwKQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgICAg
ICAsIG1fZm9udCgwKQotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgICAgICwgbV9jZ0Zv
bnQoMCkKLSNlbmRpZgotICAgICAgICAsIG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCi0gICAg
ewotICAgIH0KLQotICAgIEZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3lu
dGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7Ci0gICAg
Ci0gICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJ
RCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUp
Ci0gICAgICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCi0gICAgICAgICwgbV9z
eW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCi0gICAgICAgICwgbV9hdHN1Rm9udElE
KGZvbnRJRCkKLSAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAgICAgLCBtX2ZvbnQoMCkKLSAg
ICAgICAgLCBtX2NnRm9udChjZ0ZvbnQpCi0gICAgICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChm
YWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxh
dGZvcm1EYXRhJik7Ci0gICAgCi0gICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKLQotICAgIEZvbnRQ
bGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fZm9udChoYXNo
VGFibGVEZWxldGVkRm9udFZhbHVlKCkpIHsgfQotICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVk
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2ZvbnQgPT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1
ZSgpOyB9Ci0KLSAgICBmbG9hdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0gICAg
Ym9vbCBzeW50aGV0aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9Ci0g
ICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxp
cXVlOyB9Ci0KLSAgICBib29sIG1fc3ludGhldGljQm9sZDsKLSAgICBib29sIG1fc3ludGhldGlj
T2JsaXF1ZTsKLQotICAgIEFUU1VGb250SUQgbV9hdHN1Rm9udElEOwotICAgIGZsb2F0IG1fc2l6
ZTsKLQotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
Zm9udCAhPSAwIHx8IG1fY2dGb250ID09IDApOwotICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVz
WzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRo
ZXRpY09ibGlxdWUgfTsKLSAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJl
aW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNp
emVvZihVQ2hhcikpOwotICAgIH0KLQotICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJh
dG9yPShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1
cm4gbV9mb250ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIubV9z
eW50aGV0aWNCb2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09i
bGlxdWUgJiYgCi0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBt
X3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250
SUQ7Ci0gICAgfQotCi0gICAgTlNGb250ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9
Ci0gICAgdm9pZCBzZXRGb250KE5TRm9udCAqZm9udCk7Ci0KLSNpZiBVU0UoQ09SRV9URVhUKQot
ICAgIENURm9udFJlZiBjdEZvbnQoKSBjb25zdDsKLSNlbmRpZgotCi0gICAgYm9vbCByb3VuZHNH
bHlwaEFkdmFuY2VzKCkgY29uc3Q7Ci0gICAgYm9vbCBhbGxvd3NMaWdhdHVyZXMoKSBjb25zdDsK
LSAgICBib29sIGlzQ29sb3JCaXRtYXBGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbG9yQml0
bWFwRm9udDsgfQotCi0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgQ0dGb250UmVmIGNn
Rm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fY2dGb250LmdldCgpOyB9Ci0jZWxzZQotICAgIENHRm9u
dFJlZiBjZ0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2NnRm9udDsgfQotI2VuZGlmCi0KLSNpZm5k
ZWYgTkRFQlVHCi0gICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJp
dmF0ZToKLSAgICBzdGF0aWMgTlNGb250ICpoYXNoVGFibGVEZWxldGVkRm9udFZhbHVlKCkgeyBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpOyB9Ci0KLSAgICBOU0ZvbnQgKm1f
Zm9udDsKLQotI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIFJldGFpblB0cjxDR0ZvbnRS
ZWY+IG1fY2dGb250OwotI2Vsc2UKLSAgICBDR0ZvbnRSZWYgbV9jZ0ZvbnQ7IC8vIEl0IGlzIG5v
dCBuZWNlc3NhcnkgdG8gcmVmY291bnQgdGhpcywgc2luY2UgZWl0aGVyIGFuIE5TRm9udCBvd25z
IGl0IG9yIHNvbWUgQ2FjaGVkRm9udCBoYXMgaXQgcmVmZXJlbmNlZC4KLSNlbmRpZgotCi0jaWYg
VVNFKENPUkVfVEVYVCkKLSAgICBtdXRhYmxlIFJldGFpblB0cjxDVEZvbnRSZWY+IG1fQ1RGb250
OwotI2VuZGlmCi0KLSAgICBib29sIG1faXNDb2xvckJpdG1hcEZvbnQ7Ci19OwotCi19Ci0KLSNl
bmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udFBsYXRmb3JtRGF0
YU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
UGxhdGZvcm1EYXRhTWFjLm1tCShyZXZpc2lvbiA2NjM1NikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRQbGF0Zm9ybURhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEs
MTU0ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgaW50ZXJuYWwgZm9u
dCBpbXBsZW1lbnRhdGlvbi4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2ltcG9ydCAi
Y29uZmlnLmgiCi0jaW1wb3J0ICJGb250UGxhdGZvcm1EYXRhLmgiCi0KLSNpbXBvcnQgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0
IDxBcHBLaXQvTlNGb250Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xk
LCBib29sIHN5bnRoZXRpY09ibGlxdWUpCi0gICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGlj
Qm9sZCkKLSAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQotICAgICwg
bV9mb250KG5zRm9udCkKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQotICAgICwgbV9pc0NvbG9yQml0bWFwRm9udChDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0
b0NURm9udFJlZihuc0ZvbnQpKSAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0KQotI2Vsc2UKLSAg
ICAsIG1faXNDb2xvckJpdG1hcEZvbnQoZmFsc2UpCi0jZW5kaWYKLXsKLSAgICBBU1NFUlRfQVJH
KG5zRm9udCwgbnNGb250KTsKLQotICAgIENGUmV0YWluKG5zRm9udCk7Ci0gICAgbV9zaXplID0g
W25zRm9udCBwb2ludFNpemVdOwotI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIG1fY2dG
b250LmFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udCh0b0NURm9udFJlZihuc0ZvbnQpLCAw
KSk7Ci0gICAgbV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVm
KG5zRm9udCksIDApOwotI2Vsc2UKLSAgICBtX2NnRm9udCA9IHdrR2V0Q0dGb250RnJvbU5TRm9u
dChuc0ZvbnQpOwotICAgIG1fYXRzdUZvbnRJRCA9IHdrR2V0TlNGb250QVRTVUZvbnRJZChuc0Zv
bnQpOwotI2VuZGlmCi19Ci0KLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgZikKLXsKLSAgICBtX2ZvbnQgPSBmLm1fZm9udCAmJiBmLm1f
Zm9udCAhPSByZWludGVycHJldF9jYXN0PE5TRm9udCAqPigtMSkgPyBjb25zdF9jYXN0PE5TRm9u
dCAqPihzdGF0aWNfY2FzdDxjb25zdCBOU0ZvbnQgKj4oQ0ZSZXRhaW4oZi5tX2ZvbnQpKSkgOiBm
Lm1fZm9udDsKLQotICAgIG1fc3ludGhldGljQm9sZCA9IGYubV9zeW50aGV0aWNCb2xkOwotICAg
IG1fc3ludGhldGljT2JsaXF1ZSA9IGYubV9zeW50aGV0aWNPYmxpcXVlOwotICAgIG1fc2l6ZSA9
IGYubV9zaXplOwotICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKLSAgICBtX2F0c3VGb250SUQg
PSBmLm1fYXRzdUZvbnRJRDsKLSAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JC
aXRtYXBGb250OwotI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250
OwotI2VuZGlmCi19Ci0KLUZvbnRQbGF0Zm9ybURhdGE6OiB+Rm9udFBsYXRmb3JtRGF0YSgpCi17
Ci0gICAgaWYgKG1fZm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4o
LTEpKQotICAgICAgICBDRlJlbGVhc2UobV9mb250KTsKLX0KLQotY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IGYpCi17Ci0gICAgbV9zeW50aGV0aWNCb2xkID0gZi5tX3N5bnRoZXRpY0JvbGQ7Ci0gICAgbV9z
eW50aGV0aWNPYmxpcXVlID0gZi5tX3N5bnRoZXRpY09ibGlxdWU7Ci0gICAgbV9zaXplID0gZi5t
X3NpemU7Ci0gICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwotICAgIG1fYXRzdUZvbnRJRCA9IGYu
bV9hdHN1Rm9udElEOwotICAgIGlmIChtX2ZvbnQgPT0gZi5tX2ZvbnQpCi0gICAgICAgIHJldHVy
biAqdGhpczsKLSAgICBpZiAoZi5tX2ZvbnQgJiYgZi5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2Fz
dDxOU0ZvbnQgKj4oLTEpKQotICAgICAgICBDRlJldGFpbihmLm1fZm9udCk7Ci0gICAgaWYgKG1f
Zm9udCAmJiBtX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxOU0ZvbnQgKj4oLTEpKQotICAgICAg
ICBDRlJlbGVhc2UobV9mb250KTsKLSAgICBtX2ZvbnQgPSBmLm1fZm9udDsKLSAgICBtX2lzQ29s
b3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OwotI2lmIFVTRShDT1JFX1RFWFQp
Ci0gICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwotI2VuZGlmCi0gICAgcmV0dXJuICp0aGlzOwot
fQotCi12b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQotewotICAg
IEFTU0VSVF9BUkcoZm9udCwgZm9udCk7Ci0gICAgQVNTRVJUKG1fZm9udCAhPSByZWludGVycHJl
dF9jYXN0PE5TRm9udCAqPigtMSkpOwotCi0gICAgaWYgKG1fZm9udCA9PSBmb250KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBDRlJldGFpbihmb250KTsKLSAgICBpZiAobV9mb250KQotICAgICAg
ICBDRlJlbGVhc2UobV9mb250KTsKLSAgICBtX2ZvbnQgPSBmb250OwotICAgIG1fc2l6ZSA9IFtm
b250IHBvaW50U2l6ZV07Ci0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgbV9jZ0ZvbnQu
YWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KHRvQ1RGb250UmVmKGZvbnQpLCAwKSk7Ci0g
ICAgbV9hdHN1Rm9udElEID0gQ1RGb250R2V0UGxhdGZvcm1Gb250KHRvQ1RGb250UmVmKGZvbnQp
LCAwKTsKLSNlbHNlCi0gICAgbV9jZ0ZvbnQgPSB3a0dldENHRm9udEZyb21OU0ZvbnQoZm9udCk7
Ci0gICAgbV9hdHN1Rm9udElEID0gd2tHZXROU0ZvbnRBVFNVRm9udElkKGZvbnQpOwotI2VuZGlm
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBtX2lz
Q29sb3JCaXRtYXBGb250ID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZvbnRSZWYoZm9u
dCkpICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jZW5kaWYKLSNpZiBVU0UoQ09SRV9URVhU
KQotICAgIG1fQ1RGb250ID0gMDsKLSNlbmRpZgotfQotCi1ib29sIEZvbnRQbGF0Zm9ybURhdGE6
OnJvdW5kc0dseXBoQWR2YW5jZXMoKSBjb25zdAotewotICAgIHJldHVybiBbbV9mb250IHJlbmRl
cmluZ01vZGVdID09IE5TRm9udEFudGlhbGlhc2VkSW50ZWdlckFkdmFuY2VtZW50c1JlbmRlcmlu
Z01vZGU7Ci19Ci0KLWJvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3Rl
cklzTWVtYmVyOidhJ107Ci19Ci0KLSNpZiBVU0UoQ09SRV9URVhUKQotQ1RGb250UmVmIEZvbnRQ
bGF0Zm9ybURhdGE6OmN0Rm9udCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fZm9udCkKLSAgICAgICAg
cmV0dXJuIHRvQ1RGb250UmVmKG1fZm9udCk7Ci0gICAgaWYgKCFtX0NURm9udCkKLSAgICAgICAg
bV9DVEZvbnQuYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoR3JhcGhpY3NGb250KG1fY2dGb250Lmdl
dCgpLCBtX3NpemUsIDAsIDApKTsKLSAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7Ci19Ci0jZW5k
aWYgLy8gVVNFKENPUkVfVEVYVCkKLQotI2lmbmRlZiBOREVCVUcKLVN0cmluZyBGb250UGxhdGZv
cm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBjZ0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkp
OwotICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3Ry
aW5nOjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xk
IiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIi
KTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>