<?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>103971</bug_id>
          
          <creation_ts>2012-12-03 21:23:16 -0800</creation_ts>
          <short_desc>FontPlatformData has unnecessary m_textOrientation member</short_desc>
          <delta_ts>2012-12-04 09:59:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>ojan</cc>
    
    <cc>schenney</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782207</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-12-03 21:23:16 -0800</bug_when>
    <thetext>Nothing in SimpleFontData depends on the FontPlatformData’s textOrientation, so we don’t need separate data for vertical-right and upright. We simply use the verticalRightOrientationFontData() and uprightOrientationFontData() based on the textOrientation in the FontDescription.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782228</commentid>
    <comment_count>1</comment_count>
      <attachid>177417</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-03 22:26:17 -0800</bug_when>
    <thetext>Created attachment 177417
Remove FontPlatformData::m_textOrientation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782229</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 22:28:31 -0800</bug_when>
    <thetext>Attachment 177417 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/FontCache.cpp:65:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/FontCache.cpp:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/FontCache.cpp:202:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/chromium/FontCacheAndroid.cpp:181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/chromium/FontCacheAndroid.cpp:205:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp:183:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/css/CSSFontFaceSource.cpp:115:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/FontPlatformData.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/graphics/skia/FontCustomPlatformData.cpp:69:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782248</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-03 23:10:30 -0800</bug_when>
    <thetext>Looks reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782611</commentid>
    <comment_count>4</comment_count>
      <attachid>177417</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-04 09:38:39 -0800</bug_when>
    <thetext>Comment on attachment 177417
Remove FontPlatformData::m_textOrientation

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Nothing in SimpleFontData depends on the FontPlatformDataâs textOrientation, so we donât

Is the strange character here you doing something wrong, or bugs.webkit.org doing something wrong?

&gt;&gt; Source/WebCore/css/CSSFontFaceSource.cpp:115
&gt;&gt; +                       | (fontDescription.orientation() == Vertical ? 4 : 0) | (syntheticBold ? 2 : 0) | (syntheticItalic ? 1 : 0);
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

For what it’s worth I prefer the 4-space indent that the style script calls for. But I don’t think adding formatting changes to this patch is a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782639</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-12-04 09:56:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 177417 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177417&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Nothing in SimpleFontData depends on the FontPlatformDataâs textOrientation, so we donât
&gt; 
&gt; Is the strange character here you doing something wrong, or bugs.webkit.org doing something wrong?

This is our friend bug 75394.

&gt; 
&gt; &gt;&gt; Source/WebCore/css/CSSFontFaceSource.cpp:115
&gt; &gt;&gt; +                       | (fontDescription.orientation() == Vertical ? 4 : 0) | (syntheticBold ? 2 : 0) | (syntheticItalic ? 1 : 0);
&gt; &gt; 
&gt; &gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; 
&gt; For what it’s worth I prefer the 4-space indent that the style script calls for. But I don’t think adding formatting changes to this patch is a good idea.

I agree. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782643</commentid>
    <comment_count>6</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-12-04 09:59:47 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r136520&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177417</attachid>
            <date>2012-12-03 22:26:17 -0800</date>
            <delta_ts>2012-12-04 09:38:39 -0800</delta_ts>
            <desc>Remove FontPlatformData::m_textOrientation</desc>
            <filename>103971_r1.diff</filename>
            <type>text/plain</type>
            <size>47650</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQ3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOCBAQAorMjAxMi0xMi0wMyAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgaGFz
IHVubmVjZXNzYXJ5IG1fdGV4dE9yaWVudGF0aW9uIG1lbWJlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm90aGluZyBpbiBTaW1wbGVGb250RGF0YSBk
ZXBlbmRzIG9uIHRoZSBGb250UGxhdGZvcm1EYXRh4oCZcyB0ZXh0T3JpZW50YXRpb24sIHNvIHdl
IGRvbuKAmXQKKyAgICAgICAgbmVlZCBzZXBhcmF0ZSBkYXRhIGZvciB2ZXJ0aWNhbC1yaWdodCBh
bmQgdXByaWdodC4gV2Ugc2ltcGx5IGNob29zZSBiZXR3ZWVuCisgICAgICAgIHZlcnRpY2FsUmln
aHRPcmllbnRhdGlvbkZvbnREYXRhKCkgYW5kIHVwcmlnaHRPcmllbnRhdGlvbkZvbnREYXRhKCkg
YmFzZWQgb24gdGhlCisgICAgICAgIHRleHRPcmllbnRhdGlvbiBpbiB0aGUgRm9udERlc2NyaXB0
aW9uLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IFVwZGF0ZWQgRm9udFBsYXRmb3JtRGF0
YSBjb25zdHJ1Y3RvciBleHBvcnRzLgorCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjpnZXRGb250RGF0YSk6
IFJlbW92ZWQgdGhlIHRleHQgb3JpZW50YXRpb24gYml0IGZyb20gdGhlIGhhc2gga2V5LAorICAg
ICAgICBhbmQgdXBkYXRlZCBmb3IgdGhlIHJlbW92YWwgb2YgdGhlIFRleHRPcmllbnRhdGlvbiBw
YXJhbWV0ZXIgdG8KKyAgICAgICAgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURh
dGEoKS4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKTogUmVtb3Zl
ZCB0aGUgVGV4dE9yaWVudGF0aW9uIHBhcmFtZXRlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkRm9udC5oOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleTo6Rm9udFBsYXRm
b3JtRGF0YUNhY2hlS2V5KTogUmVtb3ZlZCB0aGUgVGV4dE9yaWVudGF0aW9uCisgICAgICAgIHBh
cmFtZXRlciBhbmQgaW5pdGlhbGl6ZXIuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1E
YXRhQ2FjaGVLZXk6Om9wZXJhdG9yPT0pOiBVcGRhdGVkIGZvciByZW1vdmFsIG9mIG1fdGV4dE9y
aWVudGF0aW9uCisgICAgICAgIG1lbWJlciB2YXJpYWJsZS4KKyAgICAgICAgKEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSk6IFJlbW92ZWQgbV90ZXh0T3JpZW50YXRpb24gbWVtYmVyIHZhcmlhYmxl
LgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUhhc2gpOiBSZW1vdmVkIHRleHQgb3JpZW50YXRp
b24gYml0IGZyb20gdGhlIGhhc2guCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENh
Y2hlZEZvbnRQbGF0Zm9ybURhdGEpOiBVcGRhdGVkIGZvciBGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXkKKyAgICAgICAgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKTogUmVtb3ZlZCBUZXh0T3JpZW50YXRpb24gcGFyYW1ldGVycyBhbmQKKyAg
ICAgICAgaW5pdGlhbGl6ZXJzLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
b3BlcmF0b3I9KTogVXBkYXRlZCBmb3IgcmVtb3ZhbCBvZiBtX3RleHRPcmllbnRhdGlvbgorICAg
ICAgICBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oOgorICAgICAgICAoRm9udFBsYXRmb3JtRGF0YSk6IFJlbW92ZWQgbV90ZXh0
T3JpZW50YXRpb24gbWVtYmVyIHZhcmlhYmxlLCByZW1vdmVkIFRleHRPcmllbnRhdGlvbgorICAg
ICAgICBwYXJhbWV0ZXJzIGZyb20gY29uc3RydWN0b3JzLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6aGFzaCk6IFJlbW92ZWQgdGV4dCBvcmllbnRhdGlvbiBiaXQuCisgICAg
ICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj09KTogVXBkYXRlZCBmb3Ig
cmVtb3ZlZCBtZW1iZXIgdmFyaWFibGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKTogUmVtb3ZlZCBUZXh0T3JpZW50YXRpb24gcGFyYW1l
dGVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlQW5k
cm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9y
bURhdGEpOiBVcGRhdGVkIGZvciBGb250UGxhdGZvcm1EYXRhIGNoYW5nZS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBSZW1vdmVk
IFRleHRPcmllbnRhdGlvbiBwYXJhbWV0ZXIgYW5kCisgICAgICAgIGluaXRpYWxpemVyLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEpOiBSZW1vdmVkIFRleHRPcmllbnRhdGlvbiBwYXJhbWV0ZXIuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udFBsYXRmb3JtRGF0YUhhcmZC
dXp6LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEpOiBSZW1vdmVkIFRleHRPcmllbnRhdGlvbiBwYXJhbWV0ZXIgYW5kCisgICAgICAgIGlu
aXRpYWxpemVycy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9y
PSk6IFVwZGF0ZWQgZm9yIHJlbW92ZWQgbWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9PSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6aGFzaCk6IFJlbW92ZWQgdGV4dCBvcmllbnRhdGlvbiBiaXQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRh
SGFyZkJ1enouaDoKKyAgICAgICAgKEZvbnRQbGF0Zm9ybURhdGEpOiBSZW1vdmVkIFRleHRPcmll
bnRhdGlvbiBwYXJhbWV0ZXIgZnJvbSB0aGUgY29uc3RydWN0b3IgZGVjbGFyYXRpb24uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKTogVXBkYXRlZCBmb3Ig
Rm9udFBsYXRmb3JtRGF0YSBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKTogUmVtb3ZlZCBUZXh0T3JpZW50YXRp
b24gcGFyYW1ldGVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKEZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOiBSZW1v
dmVkIFRleHRPcmllbnRhdGlvbiBwYXJhbWV0ZXIgZnJvbSBkZWNsYXJhdGlvbiBvZgorICAgICAg
ICBmb250UGxhdGZvcm1EYXRhKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U2ltcGxlRm9udERhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
Z2V0Q29tcG9zaXRlRm9udFJlZmVyZW5jZUZvbnREYXRhKTogVXBkYXRlZCBmb3IgRm9udFBsYXRm
b3JtRGF0YQorICAgICAgICBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9w
YW5nby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6IFJlbW92ZWQgVGV4dE9y
aWVudGF0aW9uIHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q2FjaGVTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IFVwZGF0ZWQgZm9yIEZvbnRQbGF0
Zm9ybURhdGEgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0
Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBSZW1vdmVkIFRleHRPcmllbnRhdGlvbiBwYXJh
bWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKTogUmVtb3ZlZCBUZXh0T3JpZW50YXRpb24gcGFyYW1ldGVyLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEpOiBSZW1vdmVkIFRleHRPcmllbnRhdGlvbiBwYXJhbWV0ZXIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5o
OgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDR1dp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1E
YXRhKTogUmVtb3ZlZCBtX3RleHRPcmllbnRhdGlvbiBpbml0aWFsaXplci4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6IERpdHRv
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKTogUmVtb3ZlZCBUZXh0T3JpZW50YXRpb24gcGFyYW1ldGVy
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaDoKKwogMjAxMi0xMi0wMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTM2NDY5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE2MzEsOCArMTYzMSw4IEBAIF9fWk43V2ViQ29y
ZTEyRXZlbnRIYW5kbGVyOW1vdXNlRG93bkVQN04KIF9fWk43V2ViQ29yZTEyUG9wdXBNZW51TWFj
QzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMTN0b0RldmljZVNwYWNlRVJL
TlNfOUZsb2F0UmVjdEVQOE5TV2luZG93CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dEMx
RVA5Q0dDb250ZXh0Ci1fX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGZi
YmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18xNVRleHRPcmllbnRhdGlvbkVOU18xNkZvbnRXaWR0
aFZhcmlhbnRFCi1fX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMkVQNk5TRm9udGZiYmJO
U18xNUZvbnRPcmllbnRhdGlvbkVOU18xNVRleHRPcmllbnRhdGlvbkVOU18xNkZvbnRXaWR0aFZh
cmlhbnRFCitfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGZiYmJOU18x
NUZvbnRPcmllbnRhdGlvbkVOU18xNkZvbnRXaWR0aFZhcmlhbnRFCitfX1pON1dlYkNvcmUxNkZv
bnRQbGF0Zm9ybURhdGFDMkVQNk5TRm9udGZiYmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18xNkZv
bnRXaWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNmNvbG9yRnJvbU5TQ29sb3JFUDdOU0NvbG9y
CiBfX1pON1dlYkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUks3X05TUmVjdAogX19aTjdXZWJDb3Jl
MTZTdHlsZVByb3BlcnR5U2V0MjVlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uRXYKQEAgLTE5Mjcs
NyArMTkyNyw3IEBAIF9fWk43V2ViQ29yZTE1aXNFbmRPZkRvY3VtZW50RVJLTlNfMTVWaXMKIF9f
Wk43V2ViQ29yZTE1c3RhcnRPZkRvY3VtZW50RVBLTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUxNXN0
YXJ0T2ZEb2N1bWVudEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQogX19aTjdXZWJDb3JlMTVzdGFy
dE9mU2VudGVuY2VFUktOU18xNVZpc2libGVQb3NpdGlvbkUKLV9fWk43V2ViQ29yZTE2Rm9udFBs
YXRmb3JtRGF0YUMxRVA4X19HU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTVUZXh0
T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQorX19aTjdXZWJDb3JlMTZGb250UGxh
dGZvcm1EYXRhQzFFUDhfX0dTRm9udGZiYmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18xNkZvbnRX
aWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNlRocmVhZEdsb2JhbERhdGEyNnNoYXJlZE1haW5U
aHJlYWRTdGF0aWNEYXRhRQogX19aTjdXZWJDb3JlMTZWaXNpYmxlU2VsZWN0aW9uMjdzZWxlY3Rp
b25Gcm9tQ29udGVudHNPZk5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMTZWaXNpYmxlU2Vs
ZWN0aW9uQzFFdgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3Bw
CShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOCArMTExLDggQEAgUGFzc1JlZlB0cjxTaW1w
bGVGb250RGF0YT4gQ1NTRm9udEZhY2VTbwogICAgIH0KIAogICAgIC8vIFNlZSBpZiB3ZSBoYXZl
IGEgbWFwcGluZyBpbiBvdXIgRm9udERhdGEgY2FjaGUuCi0gICAgdW5zaWduZWQgaGFzaEtleSA9
IChmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSArIDEpIDw8IDYgfCBmb250RGVz
Y3JpcHRpb24ud2lkdGhWYXJpYW50KCkgPDwgNAotICAgICAgICAgICAgICAgICAgICAgICB8IChm
b250RGVzY3JpcHRpb24udGV4dE9yaWVudGF0aW9uKCkgPT0gVGV4dE9yaWVudGF0aW9uVXByaWdo
dCA/IDggOiAwKSB8IChmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/
IDQgOiAwKSB8IChzeW50aGV0aWNCb2xkID8gMiA6IDApIHwgKHN5bnRoZXRpY0l0YWxpYyA/IDEg
OiAwKTsKKyAgICB1bnNpZ25lZCBoYXNoS2V5ID0gKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBp
eGVsU2l6ZSgpICsgMSkgPDwgNSB8IGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSA8PCAz
CisgICAgICAgICAgICAgICAgICAgICAgIHwgKGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigp
ID09IFZlcnRpY2FsID8gNCA6IDApIHwgKHN5bnRoZXRpY0JvbGQgPyAyIDogMCkgfCAoc3ludGhl
dGljSXRhbGljID8gMSA6IDApOwogCiAgICAgUmVmUHRyPFNpbXBsZUZvbnREYXRhPiYgZm9udERh
dGEgPSBtX2ZvbnREYXRhVGFibGUuYWRkKGhhc2hLZXksIDApLml0ZXJhdG9yLT52YWx1ZTsKICAg
ICBpZiAoZm9udERhdGEpCkBAIC0xNjUsNyArMTY1LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250
RGF0YT4gQ1NTRm9udEZhY2VTbwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAg
ICAgICAgICAgICAgIGZvbnREYXRhID0gU2ltcGxlRm9udERhdGE6OmNyZWF0ZShtX2ZvbnQtPnBs
YXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6
ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsCi0gICAgICAgICAgICAgICAgICAg
IGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24udGV4dE9yaWVu
dGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSwgZm9udERlc2NyaXB0aW9u
LnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgZm9u
dERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQo
KSwgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gMTM2
NDY5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTUsNyArMTE1LDcgQEAgYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0
b21Gb250RGF0YSgpCiAgICAgcmV0dXJuIG1fZm9udERhdGE7CiB9CiAKLUZvbnRQbGF0Zm9ybURh
dGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBUZXh0T3Jp
ZW50YXRpb24gdGV4dE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwg
Rm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVk
Rm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50
IHdpZHRoVmFyaWFudCwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQogICAgIGlmIChtX2V4dGVybmFsU1ZHRG9jdW1lbnQpCkBAIC0xMjMs
NyArMTIzLDcgQEAgRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdAogI2Vu
ZGlmCiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01fUExBVEZPUk1fREFUQQogICAgIEFTU0VSVCht
X2ZvbnREYXRhKTsKLSAgICByZXR1cm4gbV9mb250RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShzdGF0
aWNfY2FzdDxpbnQ+KHNpemUpLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB0ZXh0T3JpZW50
YXRpb24sIHdpZHRoVmFyaWFudCwgcmVuZGVyaW5nTW9kZSk7CisgICAgcmV0dXJuIG1fZm9udERh
dGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nhc3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGlj
LCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCByZW5kZXJpbmdNb2RlKTsKICNlbHNlCiAgICAg
cmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw2IEBACiAjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRl
cmluZ01vZGUuaCIKICNpbmNsdWRlICJGb250V2lkdGhWYXJpYW50LmgiCi0jaW5jbHVkZSAiVGV4
dE9yaWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTYsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzdGlsbE5lZWRzTG9hZCgpIGNvbnN0IHsgcmV0dXJuICFtX2xv
YWRJbml0aWF0ZWQ7IH0KIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKLSAgICBG
b250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIFRleHRP
cmllbnRhdGlvbiA9IFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQsIEZvbnRXaWR0aFZhcmlh
bnQgPSBSZWd1bGFyV2lkdGgsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9k
ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9h
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9u
dGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBib29s
IGVuc3VyZVNWR0ZvbnREYXRhKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYy
LDcgKzYyLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSB7CiBwdWJsaWM6CiAg
ICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5ID0g
QXRvbWljU3RyaW5nKCksIHVuc2lnbmVkIHNpemUgPSAwLCB1bnNpZ25lZCB3ZWlnaHQgPSAwLCBi
b29sIGl0YWxpYyA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlz
UHJpbnRlckZvbnQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IE5v
cm1hbFJlbmRlcmluZ01vZGUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IEhvcml6b250
YWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPcmllbnRhdGlvbiB0ZXh0T3Jp
ZW50YXRpb24gPSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0LCBGb250V2lkdGhWYXJpYW50
IHdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpCiAgICAgICAg
IDogbV9zaXplKHNpemUpCiAgICAgICAgICwgbV93ZWlnaHQod2VpZ2h0KQogICAgICAgICAsIG1f
ZmFtaWx5KGZhbWlseSkKQEAgLTcwLDcgKzcwLDYgQEAgcHVibGljOgogICAgICAgICAsIG1fcHJp
bnRlckZvbnQoaXNQcmludGVyRm9udCkKICAgICAgICAgLCBtX3JlbmRlcmluZ01vZGUocmVuZGVy
aW5nTW9kZSkKICAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQotICAgICAgICAs
IG1fdGV4dE9yaWVudGF0aW9uKHRleHRPcmllbnRhdGlvbikKICAgICAgICAgLCBtX3dpZHRoVmFy
aWFudCh3aWR0aFZhcmlhbnQpCiAgICAgewogICAgIH0KQEAgLTgyLDcgKzgxLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG1fZmFtaWx5LCBvdGhl
ci5tX2ZhbWlseSkgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiAKICAgICAgICAgICAgICAg
IG1fd2VpZ2h0ID09IG90aGVyLm1fd2VpZ2h0ICYmIG1faXRhbGljID09IG90aGVyLm1faXRhbGlj
ICYmIG1fcHJpbnRlckZvbnQgPT0gb3RoZXIubV9wcmludGVyRm9udCAmJgotICAgICAgICAgICAg
ICAgbV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZSAmJiBtX29yaWVudGF0
aW9uID09IG90aGVyLm1fb3JpZW50YXRpb24gJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gb3RoZXIu
bV90ZXh0T3JpZW50YXRpb24gJiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlh
bnQ7CisgICAgICAgICAgICAgICBtX3JlbmRlcmluZ01vZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdN
b2RlICYmIG1fb3JpZW50YXRpb24gPT0gb3RoZXIubV9vcmllbnRhdGlvbiAmJiBtX3dpZHRoVmFy
aWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudDsKICAgICB9CiAKICAgICB1bnNpZ25lZCBtX3Np
emU7CkBAIC05Miw3ICs5MSw2IEBAIHB1YmxpYzoKICAgICBib29sIG1fcHJpbnRlckZvbnQ7CiAg
ICAgRm9udFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlOwogICAgIEZvbnRPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uOwotICAgIFRleHRPcmllbnRhdGlvbiBtX3RleHRPcmllbnRhdGlvbjsK
ICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50OwogCiBwcml2YXRlOgpAQCAtMTA2
LDcgKzEwNCw3IEBAIGlubGluZSB1bnNpZ25lZCBjb21wdXRlSGFzaChjb25zdCBGb250UGwKICAg
ICAgICAgZm9udEtleS5tX3NpemUsCiAgICAgICAgIGZvbnRLZXkubV93ZWlnaHQsCiAgICAgICAg
IGZvbnRLZXkubV93aWR0aFZhcmlhbnQsCi0gICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihm
b250S2V5Lm1fdGV4dE9yaWVudGF0aW9uKSA8PCA0IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZv
bnRLZXkubV9vcmllbnRhdGlvbikgPDwgMyB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5
Lm1faXRhbGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVy
Rm9udCkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9k
ZSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9vcmllbnRhdGlvbikg
PDwgMyB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKICAgICB9OwogICAgIHJldHVy
biBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnk8c2l6ZW9mKGhhc2hDb2Rlcyk+KGhhc2hDb2Rlcyk7
CiB9CkBAIC0yMDEsNyArMTk5LDcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRD
YWNoZWRGbwogCiAgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IGtleShmYW1pbHlOYW1lLCBm
b250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSwgZm9udERlc2NyaXB0aW9uLndlaWdo
dCgpLCBmb250RGVzY3JpcHRpb24uaXRhbGljKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb250RGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSwgZm9udERlc2NyaXB0aW9u
LnJlbmRlcmluZ01vZGUoKSwgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24udGV4dE9yaWVudGF0aW9u
KCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCkpOwogICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIHJlc3VsdCA9IDA7CiAgICAgYm9vbCBmb3VuZFJlc3VsdDsKICAgICBGb250
UGxhdGZvcm1EYXRhQ2FjaGU6Oml0ZXJhdG9yIGl0ID0gZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+
ZmluZChrZXkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw3ICszOSw2IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEo
V1RGOjoKICAgICA6IG1fc3ludGhldGljQm9sZChmYWxzZSkKICAgICAsIG1fc3ludGhldGljT2Js
aXF1ZShmYWxzZSkKICAgICAsIG1fb3JpZW50YXRpb24oSG9yaXpvbnRhbCkKLSAgICAsIG1fdGV4
dE9yaWVudGF0aW9uKFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCiAgICAgLCBtX3NpemUo
MCkKICAgICAsIG1fd2lkdGhWYXJpYW50KFJlZ3VsYXJXaWR0aCkKICNpZiBQTEFURk9STShXSU4p
CkBAIC02Nyw3ICs2Niw2IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoKQog
ICAgIDogbV9zeW50aGV0aWNCb2xkKGZhbHNlKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKGZh
bHNlKQogICAgICwgbV9vcmllbnRhdGlvbihIb3Jpem9udGFsKQotICAgICwgbV90ZXh0T3JpZW50
YXRpb24oVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCkKICAgICAsIG1fc2l6ZSgwKQogICAg
ICwgbV93aWR0aFZhcmlhbnQoUmVndWxhcldpZHRoKQogI2lmIE9TKERBUldJTikKQEAgLTg5LDEx
ICs4NywxMCBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAot
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0
aW9uLCBUZXh0T3JpZW50YXRpb24gdGV4dE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdp
ZHRoVmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCiAgICAgOiBt
X3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShz
eW50aGV0aWNPYmxpcXVlKQogICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAs
IG1fdGV4dE9yaWVudGF0aW9uKHRleHRPcmllbnRhdGlvbikKICAgICAsIG1fc2l6ZShzaXplKQog
ICAgICwgbV93aWR0aFZhcmlhbnQod2lkdGhWYXJpYW50KQogI2lmIE9TKERBUldJTikKQEAgLTEx
NiwxMiArMTEzLDEwIEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQK
IH0KIAogI2lmIE9TKERBUldJTikgJiYgKFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9N
SVVNKSkKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVmIGNnRm9u
dCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUs
IEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVGV4dE9yaWVudGF0aW9uIHRleHRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFu
dCB3aWR0aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENHRm9u
dFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQg
d2lkdGhWYXJpYW50KQogICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCiAgICAg
LCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKICAgICAsIG1fb3JpZW50YXRp
b24ob3JpZW50YXRpb24pCi0gICAgLCBtX3RleHRPcmllbnRhdGlvbih0ZXh0T3JpZW50YXRpb24p
CiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkK
ICAgICAsIG1fZm9udCgwKQpAQCAtMTM3LDcgKzEzMiw2IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZv
bnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICA6IG1fc3ludGhldGljQm9sZChzb3VyY2UubV9zeW50
aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHNvdXJjZS5tX3N5bnRoZXRpY09i
bGlxdWUpCiAgICAgLCBtX29yaWVudGF0aW9uKHNvdXJjZS5tX29yaWVudGF0aW9uKQotICAgICwg
bV90ZXh0T3JpZW50YXRpb24oc291cmNlLm1fdGV4dE9yaWVudGF0aW9uKQogICAgICwgbV9zaXpl
KHNvdXJjZS5tX3NpemUpCiAgICAgLCBtX3dpZHRoVmFyaWFudChzb3VyY2UubV93aWR0aFZhcmlh
bnQpCiAgICAgLCBtX2lzQ29sb3JCaXRtYXBGb250KHNvdXJjZS5tX2lzQ29sb3JCaXRtYXBGb250
KQpAQCAtMTU4LDcgKzE1Miw2IEBAIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9y
bURhdGEKICAgICBtX3N5bnRoZXRpY0JvbGQgPSBvdGhlci5tX3N5bnRoZXRpY0JvbGQ7CiAgICAg
bV9zeW50aGV0aWNPYmxpcXVlID0gb3RoZXIubV9zeW50aGV0aWNPYmxpcXVlOwogICAgIG1fb3Jp
ZW50YXRpb24gPSBvdGhlci5tX29yaWVudGF0aW9uOwotICAgIG1fdGV4dE9yaWVudGF0aW9uID0g
b3RoZXIubV90ZXh0T3JpZW50YXRpb247CiAgICAgbV9zaXplID0gb3RoZXIubV9zaXplOwogICAg
IG1fd2lkdGhWYXJpYW50ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0
bWFwRm9udCA9IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZv
cm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDYgQEAKIAogI2luY2x1ZGUgIkZv
bnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRXaWR0aFZhcmlhbnQuaCIKLSNpbmNsdWRl
ICJUZXh0T3JpZW50YXRpb24uaCIKIAogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlICJSZWZD
b3VudGVkR0RJSGFuZGxlLmgiCkBAIC0xMDYsMTUgKzEwNSwxMyBAQCBwdWJsaWM6CiAgICAgRm9u
dFBsYXRmb3JtRGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsCi0gICAgICAgICAgICAgICAgICAgICBUZXh0T3JpZW50YXRpb24g
PSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0LCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxh
cldpZHRoKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFs
LCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKIAogI2lmIE9TKERBUldJTikKICAg
ICBGb250UGxhdGZvcm1EYXRhKE5TRm9udCosIGZsb2F0IHNpemUsIGJvb2wgaXNQcmludGVyRm9u
dCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxp
cXVlID0gZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBGb250T3JpZW50YXRpb24gPSBIb3Jp
em9udGFsLCBUZXh0T3JpZW50YXRpb24gPSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0LCBG
b250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKKyAgICAgICAgICAgICAgICAgICAgIEZv
bnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lk
dGgpOwogI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NSVVNKQotICAgIEZvbnRQ
bGF0Zm9ybURhdGEoQ0dGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgVGV4dE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50KTsKKyAgICBGb250UGxhdGZvcm1E
YXRhKENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCk7CiAjZW5kaWYK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE2MCw3ICsxNTcsNiBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1ByaW50ZXJGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc1ByaW50ZXJGb250OyB9
CiAjZW5kaWYKICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29yaWVudGF0aW9uOyB9Ci0gICAgVGV4dE9yaWVudGF0aW9uIHRleHRPcmllbnRhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dE9yaWVudGF0aW9uOyB9CiAgICAgRm9udFdpZHRoVmFyaWFu
dCB3aWR0aFZhcmlhbnQoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoVmFyaWFudDsgfQogCiAgICAg
dm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmll
bnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CkBAIC0xODEsNyArMTc3LDcgQEAgcHVibGljOgogI2lm
IFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NSVVNKQogICAgICAgICBBU1NFUlQobV9m
b250IHx8ICFtX2NnRm9udCk7CiAjZW5kaWYKLSAgICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1sz
XSA9IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fd2lkdGhWYXJpYW50LCBzdGF0aWNfY2FzdDx1aW50
cHRyX3Q+KG1faXNQcmludGVyRm9udCA8PCA0IHwgbV90ZXh0T3JpZW50YXRpb24gPDwgMyB8IG1f
b3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxp
cXVlKSB9OworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzNdID0geyAodWludHB0cl90KW1f
Zm9udCwgbV93aWR0aFZhcmlhbnQsIHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV9pc1ByaW50ZXJG
b250IDw8IDMgfCBtX29yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1f
c3ludGhldGljT2JsaXF1ZSkgfTsKICAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6aGFzaE1l
bW9yeTxzaXplb2YoaGFzaENvZGVzKT4oaGFzaENvZGVzKTsKICNlbGlmIFVTRShDQUlSTykKICAg
ICAgICAgcmV0dXJuIFB0ckhhc2g8Y2Fpcm9fc2NhbGVkX2ZvbnRfdCo+OjpoYXNoKG1fc2NhbGVk
Rm9udCk7CkBAIC0yMDIsNyArMTk4LDYgQEAgcHVibGljOgogICAgICAgICAgICAgJiYgbV9pc1By
aW50ZXJGb250ID09IG90aGVyLm1faXNQcmludGVyRm9udAogI2VuZGlmCiAgICAgICAgICAgICAm
JiBtX29yaWVudGF0aW9uID09IG90aGVyLm1fb3JpZW50YXRpb24KLSAgICAgICAgICAgICYmIG1f
dGV4dE9yaWVudGF0aW9uID09IG90aGVyLm1fdGV4dE9yaWVudGF0aW9uCiAgICAgICAgICAgICAm
JiBtX3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudDsKICAgICB9CiAKQEAgLTI1
MCw3ICsyNDUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9v
bCBtX3N5bnRoZXRpY09ibGlxdWU7CiAgICAgRm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247
Ci0gICAgVGV4dE9yaWVudGF0aW9uIG1fdGV4dE9yaWVudGF0aW9uOwogICAgIGZsb2F0IG1fc2l6
ZTsKICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIK
ICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvbnRXaWR0aFZhcmlh
bnQuaCIKLSNpbmNsdWRlICJUZXh0T3JpZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC00Miw3ICs0MSw3IEBAIHN0
cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIHsKIHB1YmxpYzoKICAgICBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKEZUX0ZhY2UsIFNoYXJlZEJ1ZmZlciopOwogICAgIH5Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhKCk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBU
ZXh0T3JpZW50YXRpb24gPSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0LCBGb250V2lkdGhW
YXJpYW50ID0gUmVndWxhcldpZHRoLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmlu
Z01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9u
dFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxS
ZW5kZXJpbmdNb2RlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJp
bmcmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRDYWNoZUFuZHJvaWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUFuZHJvaWQuY3BwCShyZXZp
c2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Gb250Q2FjaGVBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDggKzE3OCw3IEBA
IEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y3JlYXRlRm9udFAKICAgICAgICAgICAgIHJl
c3VsdCA9IG5ldyBGb250UGxhdGZvcm1EYXRhKHR5cGVmYWNlLCBuYW1lLCBmb250RGVzY3JpcHRp
b24uY29tcHV0ZWRTaXplKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc3R5bGUgJiBTa1R5cGVmYWNlOjprQm9sZCkgJiYgIXR5cGVmYWNlLT5pc0JvbGQoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHlsZSAmIFNrVHlw
ZWZhY2U6OmtJdGFsaWMpICYmICF0eXBlZmFjZS0+aXNJdGFsaWMoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0
aW9uLnRleHRPcmllbnRhdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICB0eXBlZmFjZSA9IFNrVHlwZWZhY2U6OkNyZWF0ZUZyb21OYW1lKG5hbWUsIFNrVHlw
ZWZhY2U6OmtOb3JtYWwpOwogCkBAIC0yMDMsOCArMjAyLDcgQEAgRm9udFBsYXRmb3JtRGF0YSog
Rm9udENhY2hlOjpjcmVhdGVGb250UAogICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEZvbnRQbGF0
Zm9ybURhdGEodHlwZWZhY2UsIG5hbWUsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHlsZSAmIFNrVHlw
ZWZhY2U6OmtCb2xkKSAmJiAhdHlwZWZhY2UtPmlzQm9sZCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHN0eWxlICYgU2tUeXBlZmFjZTo6a0l0YWxpYykgJiYg
IXR5cGVmYWNlLT5pc0l0YWxpYygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24udGV4dE9yaWVudGF0aW9u
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2Ny
aXB0aW9uLm9yaWVudGF0aW9uKCkpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YUNvY29hLm1tCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDEyICs0NSwxMCBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OmxvYWRG
b250KE5TRm9udCogCiB9CiAjZW5kaWYgIC8vIFBMQVRGT1JNKE1BQykKIAotRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBp
c1ByaW50ZXJGb250LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUZXh0T3JpZW50YXRpb24gdGV4dE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50
IHdpZHRoVmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250
ICpuc0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wgaXNQcmludGVyRm9udCwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
Rm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCiAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3lu
dGhldGljQm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQog
ICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAsIG1fdGV4dE9yaWVudGF0aW9u
KHRleHRPcmllbnRhdGlvbikKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV93aWR0aFZhcmlh
bnQod2lkdGhWYXJpYW50KQogICAgICwgbV9mb250KG5zRm9udCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVl
VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAkocmV2aXNpb24gMTM2
NDY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTks
NyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgY2Fpcm9f
Zm9udF9mYWNlX2Rlc3Ryb3kobV9mb250RmFjZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBUZXh0T3JpZW50YXRpb24sIEZvbnRXaWR0
aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdN
b2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9udEZhY2UsIHNpemUsIGJv
bGQsIGl0YWxpYyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJm
QnV6ei5jcHAJKHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTk3LDcgKzk3LDYgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShX
VEY6OgogICAgICwgbV9mYWtlQm9sZChmYWxzZSkKICAgICAsIG1fZmFrZUl0YWxpYyhmYWxzZSkK
ICAgICAsIG1fb3JpZW50YXRpb24oSG9yaXpvbnRhbCkKLSAgICAsIG1fdGV4dE9yaWVudGF0aW9u
KFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCiB7CiB9CiAKQEAgLTEwOCw3ICsxMDcsNiBA
QCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKICAgICAsIG1fZmFrZUJvbGQo
ZmFsc2UpCiAgICAgLCBtX2Zha2VJdGFsaWMoZmFsc2UpCiAgICAgLCBtX29yaWVudGF0aW9uKEhv
cml6b250YWwpCi0gICAgLCBtX3RleHRPcmllbnRhdGlvbihUZXh0T3JpZW50YXRpb25WZXJ0aWNh
bFJpZ2h0KQogewogfQogCkBAIC0xMTksNyArMTE3LDYgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdAogICAgICwgbV9mYWtlQm9sZChmYWtlQm9sZCkKICAgICAsIG1f
ZmFrZUl0YWxpYyhmYWtlSXRhbGljKQogICAgICwgbV9vcmllbnRhdGlvbihIb3Jpem9udGFsKQot
ICAgICwgbV90ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCkKIHsK
IH0KIApAQCAtMTMxLDE0ICsxMjgsMTMgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3Jt
RGF0YShjb25zdAogICAgICwgbV9mYWtlQm9sZChzcmMubV9mYWtlQm9sZCkKICAgICAsIG1fZmFr
ZUl0YWxpYyhzcmMubV9mYWtlSXRhbGljKQogICAgICwgbV9vcmllbnRhdGlvbihzcmMubV9vcmll
bnRhdGlvbikKLSAgICAsIG1fdGV4dE9yaWVudGF0aW9uKHNyYy5tX3RleHRPcmllbnRhdGlvbikK
ICAgICAsIG1fc3R5bGUoc3JjLm1fc3R5bGUpCiAgICAgLCBtX2hhcmZidXp6RmFjZShzcmMubV9o
YXJmYnV6ekZhY2UpCiB7CiAgICAgU2tTYWZlUmVmKG1fdHlwZWZhY2UpOwogfQogCi1Gb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKFNrVHlwZWZhY2UqIHRmLCBjb25zdCBjaGFyKiBm
YW1pbHksIGZsb2F0IHRleHRTaXplLCBib29sIGZha2VCb2xkLCBib29sIGZha2VJdGFsaWMsIEZv
bnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgVGV4dE9yaWVudGF0aW9uIHRleHRPcmllbnRhdGlv
bikKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoU2tUeXBlZmFjZSogdGYsIGNv
bnN0IGNoYXIqIGZhbWlseSwgZmxvYXQgdGV4dFNpemUsIGJvb2wgZmFrZUJvbGQsIGJvb2wgZmFr
ZUl0YWxpYywgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogICAgIDogbV90eXBlZmFjZSh0
ZikKICAgICAsIG1fZmFtaWx5KGZhbWlseSkKICAgICAsIG1fdGV4dFNpemUodGV4dFNpemUpCkBA
IC0xNDYsNyArMTQyLDYgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShTa1R5
cAogICAgICwgbV9mYWtlQm9sZChmYWtlQm9sZCkKICAgICAsIG1fZmFrZUl0YWxpYyhmYWtlSXRh
bGljKQogICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAsIG1fdGV4dE9yaWVu
dGF0aW9uKHRleHRPcmllbnRhdGlvbikKIHsKICAgICBTa1NhZmVSZWYobV90eXBlZmFjZSk7CiAg
ICAgcXVlcnlTeXN0ZW1Gb3JSZW5kZXJTdHlsZSgpOwpAQCAtMTYwLDcgKzE1NSw2IEBAIEZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICAsIG1fZmFrZUJvbGQoc3Jj
Lm1fZmFrZUJvbGQpCiAgICAgLCBtX2Zha2VJdGFsaWMoc3JjLm1fZmFrZUl0YWxpYykKICAgICAs
IG1fb3JpZW50YXRpb24oc3JjLm1fb3JpZW50YXRpb24pCi0gICAgLCBtX3RleHRPcmllbnRhdGlv
bihzcmMubV90ZXh0T3JpZW50YXRpb24pCiAgICAgLCBtX2hhcmZidXp6RmFjZShzcmMubV9oYXJm
YnV6ekZhY2UpCiB7CiAgICAgU2tTYWZlUmVmKG1fdHlwZWZhY2UpOwpAQCAtMjAxLDcgKzE5NSw2
IEBAIEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXIKICAgICBtX2Zha2VJ
dGFsaWMgPSBzcmMubV9mYWtlSXRhbGljOwogICAgIG1faGFyZmJ1enpGYWNlID0gc3JjLm1faGFy
ZmJ1enpGYWNlOwogICAgIG1fb3JpZW50YXRpb24gPSBzcmMubV9vcmllbnRhdGlvbjsKLSAgICBt
X3RleHRPcmllbnRhdGlvbiA9IHNyYy5tX3RleHRPcmllbnRhdGlvbjsKICAgICBtX3N0eWxlID0g
c3JjLm1fc3R5bGU7CiAgICAgbV9lbVNpemVJbkZvbnRVbml0cyA9IHNyYy5tX2VtU2l6ZUluRm9u
dFVuaXRzOwogCkBAIC0yNTYsMTQgKzI0OSwxMyBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6Om9w
ZXJhdG9yPT0oY29uc3QgCiAgICAgICAgICYmIG1fZmFrZUJvbGQgPT0gYS5tX2Zha2VCb2xkCiAg
ICAgICAgICYmIG1fZmFrZUl0YWxpYyA9PSBhLm1fZmFrZUl0YWxpYwogICAgICAgICAmJiBtX29y
aWVudGF0aW9uID09IGEubV9vcmllbnRhdGlvbgotICAgICAgICAmJiBtX3RleHRPcmllbnRhdGlv
biA9PSBhLm1fdGV4dE9yaWVudGF0aW9uCiAgICAgICAgICYmIG1fc3R5bGUgPT0gYS5tX3N0eWxl
OwogfQogCiB1bnNpZ25lZCBGb250UGxhdGZvcm1EYXRhOjpoYXNoKCkgY29uc3QKIHsKICAgICB1
bnNpZ25lZCBoID0gU2tUeXBlZmFjZTo6VW5pcXVlSUQobV90eXBlZmFjZSk7Ci0gICAgaCBePSAw
eDAxMDEwMTAxICogKChzdGF0aWNfY2FzdDxpbnQ+KG1fdGV4dE9yaWVudGF0aW9uKSA8PCAzKSB8
IChzdGF0aWNfY2FzdDxpbnQ+KG1fb3JpZW50YXRpb24pIDw8IDIpIHwgKHN0YXRpY19jYXN0PGlu
dD4obV9mYWtlQm9sZCkgPDwgMSkgfCBzdGF0aWNfY2FzdDxpbnQ+KG1fZmFrZUl0YWxpYykpOwor
ICAgIGggXj0gMHgwMTAxMDEwMSAqICgoc3RhdGljX2Nhc3Q8aW50PihtX29yaWVudGF0aW9uKSA8
PCAyKSB8IChzdGF0aWNfY2FzdDxpbnQ+KG1fZmFrZUJvbGQpIDw8IDEpIHwgc3RhdGljX2Nhc3Q8
aW50PihtX2Zha2VJdGFsaWMpKTsKIAogICAgIC8vIFRoaXMgbWVtY3B5IGlzIHRvIGF2b2lkIGEg
cmVpbnRlcnByZXRfY2FzdCB0aGF0IGJyZWFrcyBzdHJpY3QtYWxpYXNpbmcKICAgICAvLyBydWxl
cy4gTWVtY3B5IGlzIGdlbmVyYWxseSBvcHRpbWl6ZWQgZW5vdWdoIHNvIHRoYXQgcGVyZm9ybWFu
Y2UgZG9lc24ndApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmgJ
KHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
cmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3
ICszNiw2IEBACiAjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKICNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTa1BhaW50LmgiCi0jaW5jbHVkZSAiVGV4dE9yaWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNzEsNyArNzAsNyBAQCBwdWJs
aWM6CiAgICAgRm9udFBsYXRmb3JtRGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQg
dGV4dFNpemUsIGJvb2wgZmFrZUJvbGQsIGJvb2wgZmFrZUl0YWxpYyk7CiAgICAgRm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShT
a1R5cGVmYWNlKiwgY29uc3QgY2hhciogbmFtZSwgZmxvYXQgdGV4dFNpemUsIGJvb2wgZmFrZUJv
bGQsIGJvb2wgZmFrZUl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgVGV4dE9y
aWVudGF0aW9uID0gVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCk7CisgICAgRm9udFBsYXRm
b3JtRGF0YShTa1R5cGVmYWNlKiwgY29uc3QgY2hhciogbmFtZSwgZmxvYXQgdGV4dFNpemUsIGJv
b2wgZmFrZUJvbGQsIGJvb2wgZmFrZUl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRh
bCk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBzcmMsIGZs
b2F0IHRleHRTaXplKTsKICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwogCkBAIC0xNDQsNyArMTQz
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZmFrZUJvbGQ7CiAgICAgYm9vbCBtX2Zha2VJdGFs
aWM7CiAgICAgRm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247Ci0gICAgVGV4dE9yaWVudGF0
aW9uIG1fdGV4dE9yaWVudGF0aW9uOwogICAgIEZvbnRSZW5kZXJTdHlsZSBtX3N0eWxlOwogI2lm
IFVTRShIQVJGQlVaWl9ORykKICAgICBtdXRhYmxlIFJlZlB0cjxIYXJmQnV6ek5HRmFjZT4gbV9o
YXJmYnV6ekZhY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udENhY2hlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTIzOCw3ICsyMzgsNyBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmNyZWF0
ZUZvbnRQCiAKICAgICAvLyBGb250UGxhdGZvcm1EYXRhOjpmb250KCkgY2FuIGJlIG51bGwgZm9y
IHRoZSBjYXNlIG9mIENocm9taXVtIG91dC1vZi1wcm9jZXNzIGZvbnQgbG9hZGluZy4KICAgICAv
LyBJbiB0aGF0IGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBwbGF0Zm9ybURhdGEuCi0g
ICAgT3duUHRyPEZvbnRQbGF0Zm9ybURhdGE+IHBsYXRmb3JtRGF0YSA9IGFkb3B0UHRyKG5ldyBG
b250UGxhdGZvcm1EYXRhKHBsYXRmb3JtRm9udCwgc2l6ZSwgZm9udERlc2NyaXB0aW9uLnVzZVBy
aW50ZXJGb250KCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlw
dGlvbi5vcmllbnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24udGV4dE9yaWVudGF0aW9uKCksIGZv
bnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSkpOworICAgIE93blB0cjxGb250UGxhdGZvcm1E
YXRhPiBwbGF0Zm9ybURhdGEgPSBhZG9wdFB0cihuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0Zm9y
bUZvbnQsIHNpemUsIGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSwgZm9u
dERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKSk7CiAgICAgaWYgKCFwbGF0Zm9ybURhdGEtPmZv
bnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHBsYXRmb3JtRGF0YS5sZWFrUHRy
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiAxMzY0Njkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDkgKzg4LDkgQEAgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENHRm9udFJlbGVhc2UobV9jZ0ZvbnQp
OwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgVGV4dE9yaWVudGF0aW9uIHRleHRPcmllbnRhdGlvbiwgRm9udFdpZHRo
VmFyaWFudCB3aWR0aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0
aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBGb250UmVuZGVyaW5nTW9kZSkKIHsKLSAgICByZXR1cm4g
Rm9udFBsYXRmb3JtRGF0YShtX2NnRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlv
biwgdGV4dE9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQpOworICAgIHJldHVybiBGb250UGxhdGZv
cm1EYXRhKG1fY2dGb250LCBzaXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZh
cmlhbnQpOwogfQogCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3
ICsyNCw2IEBACiAjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJl
bmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJGb250V2lkdGhWYXJpYW50LmgiCi0jaW5jbHVkZSAi
VGV4dE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZCYXNlLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAg
LTU2LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
IAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgVGV4dE9yaWVu
dGF0aW9uID0gVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCwgRm9udFdpZHRoVmFyaWFudCA9
IFJlZ3VsYXJXaWR0aCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsK
KyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBSZWd1bGFyV2lkdGgsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnRE
YXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQkocmV2aXNpb24gMTM2NDY5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjcsNyArMTI3LDcgQEAgY29uc3QgU2ltcGxlRm9udERhdGEqIFNpbXBsZUZv
bnREYXRhOjpnZQogICAgICAgICAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gcGxhdGZvcm1EYXRh
KCkuc3ludGhldGljQm9sZCgpICYmICEodHJhaXRzICYga0NURm9udEJvbGRUcmFpdCk7CiAgICAg
ICAgICAgICBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBwbGF0Zm9ybURhdGEoKS5zeW50aGV0aWNP
YmxpcXVlKCkgJiYgISh0cmFpdHMgJiBrQ1RGb250SXRhbGljVHJhaXQpOwogCi0gICAgICAgICAg
ICBGb250UGxhdGZvcm1EYXRhIHN1YnN0aXR1dGVQbGF0Zm9ybShzdWJzdGl0dXRlRm9udCwgcGxh
dGZvcm1EYXRhKCkuc2l6ZSgpLCBpc1VzaW5nUHJpbnRlckZvbnQsIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY09ibGlxdWUsIHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCksIHBsYXRmb3JtRGF0
YSgpLnRleHRPcmllbnRhdGlvbigpLCBwbGF0Zm9ybURhdGEoKS53aWR0aFZhcmlhbnQoKSk7Cisg
ICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHN1YnN0aXR1dGVQbGF0Zm9ybShzdWJzdGl0dXRl
Rm9udCwgcGxhdGZvcm1EYXRhKCkuc2l6ZSgpLCBpc1VzaW5nUHJpbnRlckZvbnQsIHN5bnRoZXRp
Y0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCksIHBs
YXRmb3JtRGF0YSgpLndpZHRoVmFyaWFudCgpKTsKICAgICAgICAgICAgIFNpbXBsZUZvbnREYXRh
KiB2YWx1ZSA9IG5ldyBTaW1wbGVGb250RGF0YShzdWJzdGl0dXRlUGxhdGZvcm0sIGlzQ3VzdG9t
Rm9udCgpKTsKICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKGRpY3Rpb25hcnksIGtleSwgdmFsdWUpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcGFuZ28vRm9udEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdv
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5n
by9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCShyZXZpc2lvbiAxMzY0NjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5nby9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhUGFuZ28uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIFRleHRPcmllbnRhdGlvbiwgRm9udFdp
ZHRoVmFyaWFudCwgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCwgRm9udFJlbmRlcmlu
Z01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwg
Ym9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9u
IDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1
ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAj
aW5jbHVkZSAiRm9udFdpZHRoVmFyaWFudC5oIgotI2luY2x1ZGUgIlRleHRPcmllbnRhdGlvbi5o
IgogI2luY2x1ZGUgPFFSYXdGb250PgogI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQxLDcgKzQwLDcgQEAgc3RydWN0IEZvbnRDdXN0
b21QbGF0Zm9ybURhdGEgewogcHVibGljOgogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKSB7
IH0KIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgVGV4dE9y
aWVudGF0aW9uID0gVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCwKKyAgICBGb250UGxhdGZv
cm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgsIEZvbnRSZW5kZXJp
bmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0
LmNwcAkocmV2aXNpb24gMTM2NDY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBUZXh0T3JpZW50YXRpb24sIEZvbnRXaWR0
aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdN
b2RlKQogewogICAgIFFfQVNTRVJUKG1fcmF3Rm9udC5pc1ZhbGlkKCkpOwogICAgIG1fcmF3Rm9u
dC5zZXRQaXhlbFNpemUocXJlYWwoc2l6ZSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q2FjaGVTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDYWNoZVNraWEuY3BwCShyZXZpc2lv
biAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRD
YWNoZVNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsOCArMTgwLDcgQEAgRm9udFBsYXRm
b3JtRGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250UAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzdHlsZSAmIFNrVHlwZWZhY2U6OmtCb2xkKSAmJiAhdGYtPmlzQm9sZCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3R5bGUgJiBTa1R5cGVmYWNlOjprSXRhbGlj
KSAmJiAhdGYtPmlzSXRhbGljKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b250RGVzY3JpcHRpb24udGV4dE9yaWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSk7CiAgICAgdGYtPnVucmVmKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAkocmV2aXNpb24gMTM2NDY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
NyArNjYsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB9CiAK
IEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRleHRPcmllbnRhdGlvbiB0ZXh0T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlh
bnQsIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFdpZHRoVmFyaWFudCwgRm9udFJlbmRl
cmluZ01vZGUgbW9kZSkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIEFTU0VSVChtX2ZvbnRSZWZl
cmVuY2UpOwpAQCAtMTAzLDcgKzEwMyw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YToKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc2l6ZSwgb3Jp
ZW50YXRpb24pOwogI2VsaWYgT1MoVU5JWCkKICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsK
LSAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShtX2ZvbnRSZWZlcmVuY2UsICIiLCBzaXplLCBi
b2xkICYmICFtX2ZvbnRSZWZlcmVuY2UtPmlzQm9sZCgpLCBpdGFsaWMgJiYgIW1fZm9udFJlZmVy
ZW5jZS0+aXNJdGFsaWMoKSwgb3JpZW50YXRpb24sIHRleHRPcmllbnRhdGlvbik7CisgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250UmVmZXJlbmNlLCAiIiwgc2l6ZSwgYm9sZCAmJiAh
bV9mb250UmVmZXJlbmNlLT5pc0JvbGQoKSwgaXRhbGljICYmICFtX2ZvbnRSZWZlcmVuY2UtPmlz
SXRhbGljKCksIG9yaWVudGF0aW9uKTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgJKHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw2IEBACiAjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJl
bmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJGb250V2lkdGhWYXJpYW50LmgiCi0jaW5jbHVkZSAi
VGV4dE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIApAQCAtNjcsNyArNjYsNyBAQCBwdWJsaWM6CiAKICAgICB+Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24g
PSBIb3Jpem9udGFsLCBUZXh0T3JpZW50YXRpb24gPSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJp
Z2h0LAorICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3Vs
YXJXaWR0aCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAg
IHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gMTM2NDY5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250
Q3VzdG9tUGxhdGYKICAgICB9CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udE9yaWVudGF0aW9uLCBUZXh0T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQsIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCwgRm9udFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKICAg
ICBBU1NFUlQoVDJlbWJlZExpYnJhcnkoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgJKHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0
LDYgQEAKICNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVy
aW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvbnRXaWR0aFZhcmlhbnQuaCIKLSNpbmNsdWRlICJUZXh0
T3JpZW50YXRpb24uaCIKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ4LDcgKzQ3LDcgQEAgcHVi
bGljOgogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9y
bURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Rm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgVGV4dE9yaWVudGF0aW9uID0gVGV4dE9yaWVu
dGF0aW9uVmVydGljYWxSaWdodCwKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRXaWR0
aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVy
aW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcm
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCShyZXZpc2lv
biAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250
X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIFRleHRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFy
aWFudCkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
LCBGb250V2lkdGhWYXJpYW50KQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9u
dEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIH0KICAgICB+Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9u
dGFsLCBUZXh0T3JpZW50YXRpb24gPSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0LCBGb250
V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpOwogCiAg
ICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw2IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0
Zm9ybURhdGEoSEZPTlQKICAgICA6IG1fc3ludGhldGljQm9sZChib2xkKQogICAgICwgbV9zeW50
aGV0aWNPYmxpcXVlKG9ibGlxdWUpCiAgICAgLCBtX29yaWVudGF0aW9uKEhvcml6b250YWwpCi0g
ICAgLCBtX3RleHRPcmllbnRhdGlvbihUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX3dpZHRoVmFyaWFudChSZWd1bGFyV2lkdGgpCiAgICAg
LCBtX2ZvbnQoUmVmQ291bnRlZEdESUhhbmRsZTxIRk9OVD46OmNyZWF0ZShoZm9udCkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNh
aXJvV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAkocmV2aXNpb24gMTM2NDY5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWly
b1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDYgQEAgRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShjYWlybwogICAgIDogbV9mb250KDApCiAgICAgLCBtX3NpemUo
c2l6ZSkKICAgICAsIG1fb3JpZW50YXRpb24oSG9yaXpvbnRhbCkKLSAgICAsIG1fdGV4dE9yaWVu
dGF0aW9uKFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCiAgICAgLCBtX3dpZHRoVmFyaWFu
dChSZWd1bGFyV2lkdGgpCiAgICAgLCBtX3NjYWxlZEZvbnQoMCkKICAgICAsIG1faXNDb2xvckJp
dG1hcEZvbnQoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwCShyZXZpc2lvbiAx
MzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRm
b3JtRGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAgRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVAogICAgIDogbV9mb250KFJlZkNvdW50ZWRH
RElIYW5kbGU8SEZPTlQ+OjpjcmVhdGUoZm9udCkpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAs
IG1fb3JpZW50YXRpb24oSG9yaXpvbnRhbCkKLSAgICAsIG1fdGV4dE9yaWVudGF0aW9uKFRleHRP
cmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCiAgICAgLCBtX3dpZHRoVmFyaWFudChSZWd1bGFyV2lk
dGgpCiAjaWYgVVNFKENHKQogICAgICwgbV9jZ0ZvbnQoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiAxMzY0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1
c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lzdGVyRm9udChtX25h
bWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRh
dGlvbiwgVGV4dE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50LCBGb250UmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUpCiB7CiAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjOwogICAgIGZvbnREZXNjLnNl
dENvbXB1dGVkU2l6ZShzaXplKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDEzNjQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQs
NiBAQAogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJp
bmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFdpZHRoVmFyaWFudC5oIgotI2luY2x1ZGUgIlRleHRP
cmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MCw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgICAgIEZvbnRQ
bGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgVGV4dE9yaWVudGF0aW9uID0gVGV4
dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0
aCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgRm9u
dFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0g
UmVndWxhcldpZHRoLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwog
CiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCg==
</data>
<flag name="review"
          id="193556"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>