<?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>144133</bug_id>
          
          <creation_ts>2015-04-23 17:50:43 -0700</creation_ts>
          <short_desc>[Cocoa] Start cleaning up FontPlatformData</short_desc>
          <delta_ts>2015-04-24 11:13:40 -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>New Bugs</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 name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>enrica</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088112</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-23 17:50:43 -0700</bug_when>
    <thetext>[Cocoa] Start cleaning up FontPlatformData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088117</commentid>
    <comment_count>1</comment_count>
      <attachid>251519</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-23 18:01:56 -0700</bug_when>
    <thetext>Created attachment 251519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088241</commentid>
    <comment_count>2</comment_count>
      <attachid>251519</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2015-04-24 10:15:41 -0700</bug_when>
    <thetext>Comment on attachment 251519
Patch

Please make sure it builds before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088247</commentid>
    <comment_count>3</comment_count>
      <attachid>251557</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-24 10:28:51 -0700</bug_when>
    <thetext>Created attachment 251557
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088273</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-24 11:13:40 -0700</bug_when>
    <thetext>Committed r183269: &lt;http://trac.webkit.org/changeset/183269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251519</attachid>
            <date>2015-04-23 18:01:56 -0700</date>
            <delta_ts>2015-04-24 10:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144133-20150423180051.patch</filename>
            <type>text/plain</type>
            <size>19077</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM3MGVjNWMxYTEzZTgz
NmM5MGI0MTU0YzU2NGJjNmVhYTEwNzM1MC4uODczMDdiODExZmYxNThlN2E2MTA5ODVlNGQ1OTgz
MzkyNmMyMDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTA0LTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBT
dGFydCBjbGVhbmluZyB1cCBGb250UGxhdGZvcm1EYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQxMzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHRoZSBzdGFydCBvZiBhIGNydXNhZGUg
dG8gdWx0aW1hdGVseSByZW1vdmUgb25lIG9mIHRoZSBDVEZvbnRSZWZzIHdoaWNoIHdlIGhhdmUg
aW5zaWRlCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEuIFRoaXMgcGF0Y2ggc3RhcnRzIHRoaXMg
ZWZmb3J0IG91dCBieSByZW1vdmluZyB0aGUgRm9udFBsYXRmb3JtRGF0YQorICAgICAgICBjb25z
dHJ1Y3RvciB3aGljaCBhY2NlcHRzIGFuIE5TRm9udC4gVGhpcyBjb25zdHJ1Y3RvciBzaW1wbHkg
Y2FzdHMgdGhlIE5TRm9udCB0byBhIENURm9udFJlZiwKKyAgICAgICAgYW5kIGZvcndhcmRzIHRv
IGFub3RoZXIgY29uc3RydWN0b3IuIFRoaXMgcGF0Y2ggbW92ZXMgdGhpcyBjYXN0IHRvIGNhbGxl
cnMgb2YgdGhpcyBjb25zdHJ1Y3RvciwKKyAgICAgICAgdGhlcmVieSBlbnVtZXJhdGluZyB0aGUg
cGxhY2VzIHdlIGhhdmUgbGVmdCB0aGF0IHVzZSBOU0ZvbnQgd2l0aCBGb250UGxhdGZvcm1EYXRh
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjbGVhbnMgdXAgdHdvIG9mIHRoZSBjb25zdHJ1
Y3RvcnMgaW4gRm9udFBsYXRmb3JtRGF0YS5jcHAgdG8gZm9yd2FyZCBvbiB0bworICAgICAgICBh
IGNvbW1vbiBjb25zdHJ1Y3Rvci4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gY29sbGVjdHMg
cGxhY2VzIGluc2lkZSBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gd2hlcmUgd2UgY2hlY2sgaWYg
YSBwb2ludGVyIGlzCisgICAgICAgIG5vdCAwIGFuZCBub3QgLTEsIGFuZCBwdXRzIHRoaXMgY29t
bW9uIGNvZGUgaW5zaWRlIGEgbmV3IGZ1bmN0aW9uLAorICAgICAgICBGb250UGxhdGZvcm1EYXRh
Ojppc1ZhbGlkQ1RGb250UmVmKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhl
cmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKTogQ29hbGVzY2UgY29uc3RydWN0b3JzLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmlzVmFsaWRDVEZvbnRSZWYpOiBDaGVjayBpZiBhIHBvaW50ZXIgaXMg
bm90IDAgYW5kIG5vdCAtMS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Omhh
c2hUYWJsZURlbGV0ZWRGb250VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRm
b3JtQ3JlYXRlU2NhbGVkRm9udCk6IFJlY2VpdmUgY2FzdCB3aGljaCBoYXMgYmVlbiBob2lzdGVk
IGZyb20gdGhlIGRlbGV0ZWQKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBjb25zdHJ1Y3Rvci4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmNvbXBvc2l0ZUZvbnRSZWZlcmVuY2VGb250KTogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9y
bURhdGEpOiBVc2UgaXNWYWxpZENURm9udFJlZigpLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhQXNzaWduKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybUlzRXF1YWwpOiBTaW1wbGlmeSBwcmVw
cm9jZXNzb3IgbWFjcm9zLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6YWxs
b3dzTGlnYXR1cmVzKTogUmVtb3ZlIHVubmVjZXNzYXJ5IE5TRm9udCB1c2UuCisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRl
eHQubW06CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RD
b21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKTogUmVtb3ZlIHVubmVjZXNzYXJ5CisgICAgICAg
IE5TRm9udCB1c2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFy
YWN0ZXJzKTogUmVjZWl2ZSBjYXN0IHdoaWNoIGhhcyBiZWVuIGhvaXN0ZWQgZnJvbSB0aGUKKyAg
ICAgICAgZGVsZXRlZCBGb250UGxhdGZvcm1EYXRhIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKTogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRG
cm9tTlNGb250KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp3aWR0aFdpdGhGb250KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpkcmF3QXRQb2ludCk6IERpdHRvLgorCiAyMDE1LTA0LTIy
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFdl
YktpdCBzZXJ2aWNlcyBzaG91bGQgaW5oZXJpdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIGhv
bWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZTZiOTZmODk0NGRjZGVlMjExYzg4NzBkNjUyNzYxMDYw
ZjUxYmNhLi43MjdiOTIyZmVhMjdkY2FiYWNiN2JiNGRmZjg1ZjlkZGEzMDY1ODM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDQtMjMgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFN0YXJ0IGNsZWFuaW5n
IHVwIEZvbnRQbGF0Zm9ybURhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NDEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlY2VpdmUgY2FzdHMgd2hpY2ggaGF2ZSBiZWVuIGhvaXN0ZWQgZnJvbSB0
aGUgZGVsZXRlZCBGb250UGxhdGZvcm1EYXRhIGNvbnN0cnVjdG9yLgorCisgICAgICAgICogTWlz
Yy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbToKKyAgICAgICAgKC1bTlNTdHJpbmcgX3dlYl9kcmF3
QXRQb2ludDpmb250OnRleHRDb2xvcjphbGxvd2luZ0ZvbnRTbW9vdGhpbmc6XSk6IFJlY2VpdmUg
Y2FzdCB3aGljaCBoYXMKKyAgICAgICAgYmVlbiBob2lzdGVkIGZyb20gdGhlIGRlbGV0ZWQgRm9u
dFBsYXRmb3JtRGF0YSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKC1bTlNTdHJpbmcgX3dlYl93aWR0
aFdpdGhGb250Ol0pOiBEaXR0by4KKyAgICAgICAgKiBNaXNjL1dlYlN0cmluZ1RydW5jYXRvci5t
bToKKyAgICAgICAgKGZvbnRGcm9tTlNGb250KTogRGl0dG8uCisKIDIwMTUtMDQtMjMgIEFuZHJl
YXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZSB3YXkgdG8gZ2V0IHRoZSBzeXN0ZW0gbWVtb3J5IHNpemUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4
IDMwM2VmYjIzZTNkMDVhNzg1ZmI0YWNkYWFlNmQ3NzczMzA2YWUxYmIuLmY5MGMwMmVmNzBmYzAz
Y2E5N2IxNjMyZTgwNDhmYWZiNzNjMTlmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCkBAIC02MSwyNSArNjEsMTcg
QEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5
bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGkKIAogI2lmIFVTRShDRykKIEZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVmIGNnRm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCi0gICAgOiBtX3N5bnRoZXRp
Y0JvbGQoc3ludGhldGljQm9sZCkKLSAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNP
YmxpcXVlKQotICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAsIG1fc2l6ZShz
aXplKQotICAgICwgbV93aWR0aFZhcmlhbnQod2lkdGhWYXJpYW50KQotICAgICwgbV9jZ0ZvbnQo
Y2dGb250KQorICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50KQogeworICAgIG1fY2dGb250
ID0gY2dGb250OwogfQogI2VuZGlmCiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNlKQotICAgIDogbV9zeW50aGV0aWNCb2xk
KHNvdXJjZS5tX3N5bnRoZXRpY0JvbGQpCi0gICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc291cmNl
Lm1fc3ludGhldGljT2JsaXF1ZSkKLSAgICAsIG1fb3JpZW50YXRpb24oc291cmNlLm1fb3JpZW50
YXRpb24pCi0gICAgLCBtX3NpemUoc291cmNlLm1fc2l6ZSkKLSAgICAsIG1fd2lkdGhWYXJpYW50
KHNvdXJjZS5tX3dpZHRoVmFyaWFudCkKLSAgICAsIG1faXNDb2xvckJpdG1hcEZvbnQoc291cmNl
Lm1faXNDb2xvckJpdG1hcEZvbnQpCi0gICAgLCBtX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZShz
b3VyY2UubV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2UpCisgICAgOiBGb250UGxhdGZvcm1EYXRh
KHNvdXJjZS5tX3NpemUsIHNvdXJjZS5tX3N5bnRoZXRpY0JvbGQsIHNvdXJjZS5tX3N5bnRoZXRp
Y09ibGlxdWUsIHNvdXJjZS5tX29yaWVudGF0aW9uLCBzb3VyY2UubV93aWR0aFZhcmlhbnQpCiB7
CisgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHNvdXJjZS5tX2lzQ29sb3JCaXRtYXBGb250Owor
ICAgIG1faXNDb21wb3NpdGVGb250UmVmZXJlbmNlID0gc291cmNlLm1faXNDb21wb3NpdGVGb250
UmVmZXJlbmNlOwogICAgIHBsYXRmb3JtRGF0YUluaXQoc291cmNlKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4
IGZkMGNkOGVkZWVmNDI1NGNiMDU5YTU3MDhiMDAyZDM2OTQyYmM1M2QuLjg1ZmI5YTI0NTU5Y2Q2
ZjQ0NTA1ZGQwOWRhZGE0YWVlNjQ1OWE3YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTg2LDEwICs4Niw2IEBAIHB1
YmxpYzoKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0
Zm9ybURhdGEoQ1RGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxz
ZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6
b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpOwotI2lmIFVTRShBUFBLSVQp
Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gYWxsIE5TRm9udCB1c2FnZSBpcyByZW1v
dmVkLgotICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICosIGZsb2F0
IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUg
PSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9
IFJlZ3VsYXJXaWR0aCk7Ci0jZW5kaWYKICNlbmRpZgogCiAjaWYgVVNFKENHKQpAQCAtMjA2LDYg
KzIwMiw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1E
YXRhQXNzaWduKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBzdGF0aWMgQ1RGb250UmVmIGhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKSB7IHJldHVy
biByZWludGVycHJldF9jYXN0PENURm9udFJlZj4oLTEpOyB9CisgICAgc3RhdGljIGJvb2wgaXNW
YWxpZENURm9udFJlZihDVEZvbnRSZWYgZm9udCkgeyByZXR1cm4gZm9udCAmJiBmb250ICE9IGhh
c2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKTsgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oV0lOKQog
ICAgIHZvaWQgcGxhdGZvcm1EYXRhSW5pdChIRk9OVCwgZmxvYXQgc2l6ZSwgSERDLCBXQ0hBUiog
ZmFjZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENvY29hLm1tCmluZGV4IDQ4OTAxZmNiYWFkM2I5NzMzZWUwNWNhNGEwOWE2NjYxMTVl
MzZhZjguLjVlNTAwZjE1MjQ2YzU1MzZlMTNlMGFhNWYyODM2NThkYWUyZmFhZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0K
QEAgLTMyNSw3ICszMjUsNyBAQCBQYXNzUmVmUHRyPEZvbnQ+IEZvbnQ6OnBsYXRmb3JtQ3JlYXRl
U2NhbGVkRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBmbG9hdCBzYwogI2lmIFVTRShBUFBL
SVQpCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgRm9udFBsYXRmb3Jt
RGF0YSBzY2FsZWRGb250RGF0YShbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIGNv
bnZlcnRGb250Om1fcGxhdGZvcm1EYXRhLm5zRm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSwgZmFs
c2UsIGZhbHNlLCBtX3BsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpKTsKKyAgICBGb250UGxhdGZv
cm1EYXRhIHNjYWxlZEZvbnREYXRhKHN0YXRpY19jYXN0PENURm9udFJlZj4oW1tOU0ZvbnRNYW5h
Z2VyIHNoYXJlZEZvbnRNYW5hZ2VyXSBjb252ZXJ0Rm9udDptX3BsYXRmb3JtRGF0YS5uc0ZvbnQo
KSB0b1NpemU6c2l6ZV0pLCBzaXplLCBmYWxzZSwgZmFsc2UsIG1fcGxhdGZvcm1EYXRhLm9yaWVu
dGF0aW9uKCkpOwogCiAgICAgaWYgKHNjYWxlZEZvbnREYXRhLmZvbnQoKSkgewogICAgICAgICBO
U0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5h
Z2VyXTsKQEAgLTU3MSw3ICs1NzEsNyBAQCBjb25zdCBGb250KiBGb250Ojpjb21wb3NpdGVGb250
UmVmZXJlbmNlRm9udChOU0ZvbnQgKmtleSkgY29uc3QKICAgICAgICAgYm9vbCBzeW50aGV0aWNC
b2xkID0gcGxhdGZvcm1EYXRhKCkuc3ludGhldGljQm9sZCgpICYmICEodHJhaXRzICYga0NURm9u
dEJvbGRUcmFpdCk7CiAgICAgICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IHBsYXRmb3JtRGF0
YSgpLnN5bnRoZXRpY09ibGlxdWUoKSAmJiAhKHRyYWl0cyAmIGtDVEZvbnRJdGFsaWNUcmFpdCk7
CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzdWJzdGl0dXRlUGxhdGZvcm0oc3Vic3RpdHV0
ZUZvbnQsIHBsYXRmb3JtRGF0YSgpLnNpemUoKSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2Js
aXF1ZSwgcGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSwgcGxhdGZvcm1EYXRhKCkud2lkdGhW
YXJpYW50KCkpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIHN1YnN0aXR1dGVQbGF0Zm9ybShz
dGF0aWNfY2FzdDxDVEZvbnRSZWY+KHN1YnN0aXR1dGVGb250KSwgcGxhdGZvcm1EYXRhKCkuc2l6
ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBwbGF0Zm9ybURhdGEoKS5vcmll
bnRhdGlvbigpLCBwbGF0Zm9ybURhdGEoKS53aWR0aFZhcmlhbnQoKSk7CiAgICAgICAgIGFkZFJl
c3VsdC5pdGVyYXRvci0+dmFsdWUgPSBGb250OjpjcmVhdGUoc3Vic3RpdHV0ZVBsYXRmb3JtLCBp
c0N1c3RvbUZvbnQoKSk7CiAgICAgfQogICAgIHJldHVybiBhZGRSZXN1bHQuaXRlcmF0b3ItPnZh
bHVlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IDJhNzZhYjNlODg3
YmFjMDFhOWIxZDEzYmNiMmVhZWY0MTkwZWNjNjQuLmVkOWQzNzU5OTM3NWQ2Mzc3OTBmZjAyMjY5
NjZlMjEyOGE2NjBjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTU2LDIz
ICs1NiwxNSBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBm
b250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbAogICAgIENGUmV0YWluKG1fZm9udCk7
CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gYWxsIE5T
Rm9udCB1c2FnZSBpcyByZW1vdmVkLgotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YShOU0ZvbnQgKmZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlh
bnQgd2lkdGhWYXJpYW50KQotICAgIDogRm9udFBsYXRmb3JtRGF0YSgoQ1RGb250UmVmKWZvbnQs
IHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0
aFZhcmlhbnQpCi17Ci19Ci0jZW5kaWYKLQogRm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9y
bURhdGEoKQogewotICAgIGlmIChtX2ZvbnQgJiYgbV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8
Q1RGb250UmVmPigtMSkpCisgICAgaWYgKGlzVmFsaWRDVEZvbnRSZWYobV9mb250KSkKICAgICAg
ICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiB9CiAKIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6cGxhdGZv
cm1EYXRhSW5pdChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQogewotICAgIG1fZm9udCA9IGYu
bV9mb250ICYmIGYubV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPigtMSkgPyBz
dGF0aWNfY2FzdDxDVEZvbnRSZWY+KGNvbnN0X2Nhc3Q8dm9pZCAqPihDRlJldGFpbihmLm1fZm9u
dCkpKSA6IGYubV9mb250OworICAgIG1fZm9udCA9IGlzVmFsaWRDVEZvbnRSZWYoZi5tX2ZvbnQp
ID8gc3RhdGljX2Nhc3Q8Q1RGb250UmVmPihjb25zdF9jYXN0PHZvaWQgKj4oQ0ZSZXRhaW4oZi5t
X2ZvbnQpKSkgOiBmLm1fZm9udDsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBtX2lzRW1vamkg
PSBmLm1faXNFbW9qaTsKQEAgLTg3LDExICs3OSwxMSBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRh
JiBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybURhdGFBc3NpZ24oY29uc3QgRm9udFBsYXRmb3Jt
RAogI2lmIFBMQVRGT1JNKElPUykKICAgICBtX2lzRW1vamkgPSBmLm1faXNFbW9qaTsKICNlbmRp
ZgotICAgIGlmIChtX2ZvbnQgJiYgbV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVm
PigtMSkgJiYgZi5tX2ZvbnQgJiYgZi5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxDVEZvbnRS
ZWY+KC0xKSAmJiBDRkVxdWFsKG1fZm9udCwgZi5tX2ZvbnQpKQorICAgIGlmIChpc1ZhbGlkQ1RG
b250UmVmKG1fZm9udCkgJiYgaXNWYWxpZENURm9udFJlZihmLm1fZm9udCkgJiYgQ0ZFcXVhbCht
X2ZvbnQsIGYubV9mb250KSkKICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIGlmIChmLm1fZm9u
dCAmJiBmLm1fZm9udCAhPSByZWludGVycHJldF9jYXN0PENURm9udFJlZj4oLTEpKQorICAgIGlm
IChpc1ZhbGlkQ1RGb250UmVmKGYubV9mb250KSkKICAgICAgICAgQ0ZSZXRhaW4oZi5tX2ZvbnQp
OwotICAgIGlmIChtX2ZvbnQgJiYgbV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVm
PigtMSkpCisgICAgaWYgKGlzVmFsaWRDVEZvbnRSZWYobV9mb250KSkKICAgICAgICAgQ0ZSZWxl
YXNlKG1fZm9udCk7CiAgICAgbV9mb250ID0gZi5tX2ZvbnQ7CiAgICAgbV9jdEZvbnQgPSBmLm1f
Y3RGb250OwpAQCAtMTA0LDcgKzk2LDcgQEAgYm9vbCBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9y
bUlzRXF1YWwoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgYm9vbCBy
ZXN1bHQgPSBmYWxzZTsKICAgICBpZiAobV9mb250IHx8IG90aGVyLm1fZm9udCkgewogI2lmIFBM
QVRGT1JNKElPUykKLSAgICAgICAgcmVzdWx0ID0gbV9mb250ICYmIG1fZm9udCAhPSByZWludGVy
cHJldF9jYXN0PENURm9udFJlZj4oLTEpICYmIG90aGVyLm1fZm9udCAmJiBvdGhlci5tX2ZvbnQg
IT0gcmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KC0xKSAmJiBDRkVxdWFsKG1fZm9udCwgb3Ro
ZXIubV9mb250KTsKKyAgICAgICAgcmVzdWx0ID0gaXNWYWxpZENURm9udFJlZihtX2ZvbnQpICYm
IGlzVmFsaWRDVEZvbnRSZWYob3RoZXIubV9mb250KSAmJiBDRkVxdWFsKG1fZm9udCwgb3RoZXIu
bV9mb250KTsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIGlmIChyZXN1bHQpCiAgICAg
ICAgICAgICBBU1NFUlQobV9pc0Vtb2ppID09IG90aGVyLm1faXNFbW9qaSk7CkBAIC0xMTQsMTIg
KzEwNiwxMCBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6OnBsYXRmb3JtSXNFcXVhbChjb25zdCBG
b250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotI2lmIFBMQVRGT1JNKElPUykKLSNpZiAhQVNT
RVJUX0RJU0FCTEVECisjaWYgUExBVEZPUk0oSU9TKSAmJiAhQVNTRVJUX0RJU0FCTEVECiAgICAg
aWYgKG1fY2dGb250ID09IG90aGVyLm1fY2dGb250KQogICAgICAgICBBU1NFUlQobV9pc0Vtb2pp
ID09IG90aGVyLm1faXNFbW9qaSk7CiAjZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAg
ICAgcmV0dXJuIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250OwogfQogCkBAIC0xNTcsMTUgKzE0
NywxMSBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6OnJvdW5kc0dseXBoQWR2YW5jZXMoKSBjb25z
dAogCiBib29sIEZvbnRQbGF0Zm9ybURhdGE6OmFsbG93c0xpZ2F0dXJlcygpIGNvbnN0CiB7Ci0j
aWYgVVNFKEFQUEtJVCkKLSAgICByZXR1cm4gIVtbKE5TRm9udCAqKW1fZm9udCBjb3ZlcmVkQ2hh
cmFjdGVyU2V0XSBjaGFyYWN0ZXJJc01lbWJlcjonYSddOwotI2Vsc2UKICAgICBpZiAoIW1fZm9u
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmV0YWluUHRyPENGQ2hhcmFjdGVyU2V0
UmVmPiBjaGFyYWN0ZXJTZXQgPSBhZG9wdENGKENURm9udENvcHlDaGFyYWN0ZXJTZXQoY3RGb250
KCkpKTsKICAgICByZXR1cm4gIShjaGFyYWN0ZXJTZXQuZ2V0KCkgJiYgQ0ZDaGFyYWN0ZXJTZXRJ
c0NoYXJhY3Rlck1lbWJlcihjaGFyYWN0ZXJTZXQuZ2V0KCksICdhJykpOwotI2VuZGlmCiB9CiAK
IGlubGluZSBpbnQgbWFwRm9udFdpZHRoVmFyaWFudFRvQ1RGZWF0dXJlU2VsZWN0b3IoRm9udFdp
ZHRoVmFyaWFudCB2YXJpYW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0
Lm1tCmluZGV4IDNmOTcxMzFkOTU5M2EwMDJkOTVmYmNiZWNiNmExYzQ0MmI0YzhlNTEuLmZhN2Rh
ZmEwYTU5Y2FmNWExYmNhOWU4YmU1Nzc4M2JiODg2NGI3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQubW0KQEAgLTI4Niw3ICsyODYsNyBAQCB2b2lkIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3Qg
VUNoYXIqIGNwLAogICAgICAgICAgICAgICAgICAgICAvLyBDb3JlIFRleHQgbWF5IGhhdmUgdXNl
ZCBhIGZvbnQgdGhhdCBpcyBub3Qga25vd24gdG8gTlNGb250TWFuYWdlci4gSW4gdGhhdCBjYXNl
LCBmYWxsIGJhY2sgb24KICAgICAgICAgICAgICAgICAgICAgLy8gdXNpbmcgdGhlIGZvbnQgYXMg
cmV0dXJuZWQsIGV2ZW4gdGhvdWdoIGl0IG1heSBub3QgaGF2ZSB0aGUgYmVzdCBOU0ZvbnRSZW5k
ZXJpbmdNb2RlLgogICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bkZvbnQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcnVuRm9udFBsYXRmb3JtRGF0YSgoTlNG
b250ICopcnVuQ1RGb250LCBDVEZvbnRHZXRTaXplKHJ1bkNURm9udCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBydW5Gb250UGxhdGZvcm1EYXRhKHJ1bkNURm9u
dCwgQ1RGb250R2V0U2l6ZShydW5DVEZvbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkZvbnQgPSBmb250Q2FjaGUuZm9udEZvclBsYXRmb3JtRGF0YShydW5Gb250UGxhdGZvcm1EYXRh
KS5wdHIoKTsKICAgICAgICAgICAgICAgICAgICAgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IGMxZTc4
NjRmZDJjYzNhYmIxYWU1NmIwNGJhMGY4NTgwYjcxMTFiOWQuLjVkMTlmYTY3Y2U5NGI1ZDJkZjZl
NDE5ZDY4ZmNjOGU4NGM0ZDFmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtNDAzLDcgKzQwMyw3IEBAIFJlZlB0
cjxGb250PiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250
RGVzY3JpcHRpb24mIGRlc2NyCiAgICAgc3Vic3RpdHV0ZUZvbnRUcmFpdHMgPSBbZm9udE1hbmFn
ZXIgdHJhaXRzT2ZGb250OnN1YnN0aXR1dGVGb250XTsKICAgICBzdWJzdGl0dXRlRm9udFdlaWdo
dCA9IFtmb250TWFuYWdlciB3ZWlnaHRPZkZvbnQ6c3Vic3RpdHV0ZUZvbnRdOwogCi0gICAgRm9u
dFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250KHN1YnN0aXR1dGVGb250LCBwbGF0Zm9ybURhdGEu
c2l6ZSgpLAorICAgIEZvbnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udChzdGF0aWNfY2FzdDxD
VEZvbnRSZWY+KHN1YnN0aXR1dGVGb250KSwgcGxhdGZvcm1EYXRhLnNpemUoKSwKICAgICAgICAg
IWlzUGxhdGZvcm1Gb250ICYmIGlzQXBwS2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0KSAmJiAhaXNB
cHBLaXRGb250V2VpZ2h0Qm9sZChzdWJzdGl0dXRlRm9udFdlaWdodCksCiAgICAgICAgICFpc1Bs
YXRmb3JtRm9udCAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0
ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCksCiAgICAgICAgIHBsYXRmb3JtRGF0YS5t
X29yaWVudGF0aW9uKTsKQEAgLTUxMiw3ICs1MTIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBs
YXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRE
ZQogICAgIGJvb2wgc3ludGhldGljQm9sZCA9IGlzQXBwS2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0
KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChhY3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSA9ICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShhY3R1YWxU
cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxGb250UGxhdGZvcm1EYXRhPihwbGF0Zm9ybUZvbnQsIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250RGVzY3Jp
cHRpb24ud2lkdGhWYXJpYW50KCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQ
bGF0Zm9ybURhdGE+KHN0YXRpY19jYXN0PENURm9udFJlZj4ocGxhdGZvcm1Gb250KSwgc2l6ZSwg
c3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0
aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFn
SW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CmluZGV4IGU3OTMxMzQ0OGQ4OTNiZjlkN2UwZDgzOTM3Nzk0ZDU3ZWM4ZjQyNzEuLmE0NTkxZWI1
NDQ4ODhjYWQ1MDhkNGQ0ZWJkMWJjMGVkMGZkNjdhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBGb250
Q2FzY2FkZSYgZm9udEZyb21OU0ZvbnQoTlNGb250ICpmb250KQogICAgICAgICBDRlJlbGVhc2Uo
Y3VycmVudEZvbnQpOwogICAgIGN1cnJlbnRGb250ID0gZm9udDsKICAgICBDRlJldGFpbihjdXJy
ZW50Rm9udCk7Ci0gICAgY3VycmVudFJlbmRlcmVyID0gRm9udENhc2NhZGUoRm9udFBsYXRmb3Jt
RGF0YShmb250LCBbZm9udCBwb2ludFNpemVdKSk7CisgICAgY3VycmVudFJlbmRlcmVyID0gRm9u
dENhc2NhZGUoRm9udFBsYXRmb3JtRGF0YShzdGF0aWNfY2FzdDxDVEZvbnRSZWY+KGZvbnQpLCBb
Zm9udCBwb2ludFNpemVdKSk7CiAgICAgcmV0dXJuIGN1cnJlbnRSZW5kZXJlcjsKIH0KIApAQCAt
MTkxLDcgKzE5MSw3IEBAIHN0YXRpYyBmbG9hdCB3aWR0aFdpdGhGb250KE5TU3RyaW5nICpzdHJp
bmcsIE5TRm9udCAqZm9udCkKICAgICBbc3RyaW5nIGdldENoYXJhY3RlcnM6YnVmZmVyLmRhdGEo
KV07CiAgICAgCiAgICAgaWYgKGNhblVzZUZhc3RSZW5kZXJlcihidWZmZXIuZGF0YSgpLCBsZW5n
dGgpKSB7Ci0gICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250KEZvbnRQbGF0Zm9ybURhdGEo
Zm9udCwgW2ZvbnQgcG9pbnRTaXplXSkpOworICAgICAgICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9u
dChGb250UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PENURm9udFJlZj4oZm9udCksIFtmb250IHBv
aW50U2l6ZV0pKTsKICAgICAgICAgVGV4dFJ1biBydW4oYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKTsK
ICAgICAgICAgcnVuLmRpc2FibGVSb3VuZGluZ0hhY2tzKCk7CiAgICAgICAgIHJldHVybiB3ZWJD
b3JlRm9udC53aWR0aChydW4pOwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyB2b2lkIGRyYXdB
dFBvaW50KE5TU3RyaW5nICpzdHJpbmcsIE5TUG9pbnQgcG9pbnQsIE5TRm9udCAqZm9udCwgTlND
b2xvciAqCiAgICAgICAgIGlmICghZmxpcHBlZCkKICAgICAgICAgICAgIENHQ29udGV4dFNjYWxl
Q1RNKGNnQ29udGV4dCwgMSwgLTEpOwogICAgICAgICAgICAgCi0gICAgICAgIEZvbnRDYXNjYWRl
IHdlYkNvcmVGb250KEZvbnRQbGF0Zm9ybURhdGEoZm9udCwgW2ZvbnQgcG9pbnRTaXplXSksIEFu
dGlhbGlhc2VkKTsKKyAgICAgICAgRm9udENhc2NhZGUgd2ViQ29yZUZvbnQoRm9udFBsYXRmb3Jt
RGF0YShzdGF0aWNfY2FzdDxDVEZvbnRSZWY+KGZvbnQpLCBbZm9udCBwb2ludFNpemVdKSwgQW50
aWFsaWFzZWQpOwogICAgICAgICBUZXh0UnVuIHJ1bihidWZmZXIuZGF0YSgpLCBsZW5ndGgpOwog
ICAgICAgICBydW4uZGlzYWJsZVJvdW5kaW5nSGFja3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KaW5kZXggNTMzNzljNTJiOWNjMTk1ZWRi
YTMwYTlhOWI3OGZiMTgyNTExNGYxMS4uM2QwYzFhMmU1ZjRjYTViMTQyNzZiNGFjMDFmZWIxMzZj
OTFmNTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmlu
Z0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0
cmFzLm1tCkBAIC05Miw3ICs5Miw3IEBAIC0gKHZvaWQpX3dlYl9kcmF3QXRQb2ludDooTlNQb2lu
dClwb2ludCBmb250OihOU0ZvbnQgKilmb250IHRleHRDb2xvcjooTlNDb2xvciAqCiAgICAgICAg
IGlmICghZmxpcHBlZCkKICAgICAgICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwg
MSwgLTEpOwogCi0gICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250KEZvbnRQbGF0Zm9ybURh
dGEoZm9udCwgW2ZvbnQgcG9pbnRTaXplXSksIGZvbnRTbW9vdGhpbmdJc0FsbG93ZWQgPyBBdXRv
U21vb3RoaW5nIDogQW50aWFsaWFzZWQpOworICAgICAgICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9u
dChGb250UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PENURm9udFJlZj4oZm9udCksIFtmb250IHBv
aW50U2l6ZV0pLCBmb250U21vb3RoaW5nSXNBbGxvd2VkID8gQXV0b1Ntb290aGluZyA6IEFudGlh
bGlhc2VkKTsKICAgICAgICAgVGV4dFJ1biBydW4oYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKTsKICAg
ICAgICAgcnVuLmRpc2FibGVSb3VuZGluZ0hhY2tzKCk7CiAKQEAgLTEzOCw3ICsxMzgsNyBAQCAt
IChmbG9hdClfd2ViX3dpZHRoV2l0aEZvbnQ6KE5TRm9udCAqKWZvbnQKICAgICBbc2VsZiBnZXRD
aGFyYWN0ZXJzOmJ1ZmZlci5kYXRhKCldOwogCiAgICAgaWYgKGNhblVzZUZhc3RSZW5kZXJlcihi
dWZmZXIuZGF0YSgpLCBsZW5ndGgpKSB7Ci0gICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250
KEZvbnRQbGF0Zm9ybURhdGEoZm9udCwgW2ZvbnQgcG9pbnRTaXplXSkpOworICAgICAgICBGb250
Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PENURm9udFJl
Zj4oZm9udCksIFtmb250IHBvaW50U2l6ZV0pKTsKICAgICAgICAgVGV4dFJ1biBydW4oYnVmZmVy
LmRhdGEoKSwgbGVuZ3RoKTsKICAgICAgICAgcnVuLmRpc2FibGVSb3VuZGluZ0hhY2tzKCk7CiAg
ICAgICAgIHJldHVybiB3ZWJDb3JlRm9udC53aWR0aChydW4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQppbmRleCAzNjI4Zjg1NDAwNTE3M2E2NDcxNGRm
NmUxNjdkMDIwYjc3MDQxYjNmLi4yOGUyMjkzNzI4Zjk0MzNmZWY2NTkxZWU1YzA5M2NiZGI0YzY5
MDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRv
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQpA
QCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgV2ViQ29yZTo6Rm9udENhc2NhZGUmIGZvbnRGcm9tTlNG
b250KE5TRm9udCAqZm9udCkKICAgICBpZiAoW2ZvbnQgaXNFcXVhbDpjdXJyZW50TlNGb250Lmdl
dCgpLmdldCgpXSkKICAgICAgICAgcmV0dXJuIGN1cnJlbnRGb250OwogICAgIGN1cnJlbnROU0Zv
bnQuZ2V0KCkgPSBmb250OwotICAgIGN1cnJlbnRGb250LmdldCgpID0gV2ViQ29yZTo6Rm9udENh
c2NhZGUoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YShmb250LCBbZm9udCBwb2ludFNpemVdKSk7
CisgICAgY3VycmVudEZvbnQuZ2V0KCkgPSBXZWJDb3JlOjpGb250Q2FzY2FkZShXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PENURm9udFJlZj4oZm9udCksIFtmb250IHBvaW50
U2l6ZV0pKTsKICAgICByZXR1cm4gY3VycmVudEZvbnQ7CiB9CiAK
</data>
<flag name="review"
          id="276304"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251557</attachid>
            <date>2015-04-24 10:28:51 -0700</date>
            <delta_ts>2015-04-24 10:28:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-144133-20150424102745.patch</filename>
            <type>text/plain</type>
            <size>19093</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc5MzFhNGE2ZWEwYTlh
YmJmYzMzY2MwYjIyYjM2MjAyODRhOTI0Ni4uNzMzYWFjNTE1NmY2YWI1OWJiNjM0ZjJjMTk2MDQ1
NGRkZTI2MWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTA0LTI0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBT
dGFydCBjbGVhbmluZyB1cCBGb250UGxhdGZvcm1EYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQxMzMKKworICAgICAgICBSZXZpZXdlZCBieSBF
bnJpY2EgQ2FzdWNjaS4KKworICAgICAgICBUaGlzIGlzIHRoZSBzdGFydCBvZiBhIGNydXNhZGUg
dG8gdWx0aW1hdGVseSByZW1vdmUgb25lIG9mIHRoZSBDVEZvbnRSZWZzIHdoaWNoIHdlIGhhdmUg
aW5zaWRlCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEuIFRoaXMgcGF0Y2ggc3RhcnRzIHRoaXMg
ZWZmb3J0IG91dCBieSByZW1vdmluZyB0aGUgRm9udFBsYXRmb3JtRGF0YQorICAgICAgICBjb25z
dHJ1Y3RvciB3aGljaCBhY2NlcHRzIGFuIE5TRm9udC4gVGhpcyBjb25zdHJ1Y3RvciBzaW1wbHkg
Y2FzdHMgdGhlIE5TRm9udCB0byBhIENURm9udFJlZiwKKyAgICAgICAgYW5kIGZvcndhcmRzIHRv
IGFub3RoZXIgY29uc3RydWN0b3IuIFRoaXMgcGF0Y2ggbW92ZXMgdGhpcyBjYXN0IHRvIGNhbGxl
cnMgb2YgdGhpcyBjb25zdHJ1Y3RvciwKKyAgICAgICAgdGhlcmVieSBlbnVtZXJhdGluZyB0aGUg
cGxhY2VzIHdlIGhhdmUgbGVmdCB0aGF0IHVzZSBOU0ZvbnQgd2l0aCBGb250UGxhdGZvcm1EYXRh
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjbGVhbnMgdXAgdHdvIG9mIHRoZSBjb25zdHJ1
Y3RvcnMgaW4gRm9udFBsYXRmb3JtRGF0YS5jcHAgdG8gZm9yd2FyZCBvbiB0bworICAgICAgICBh
IGNvbW1vbiBjb25zdHJ1Y3Rvci4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gY29sbGVjdHMg
cGxhY2VzIGluc2lkZSBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gd2hlcmUgd2UgY2hlY2sgaWYg
YSBwb2ludGVyIGlzCisgICAgICAgIG5vdCAwIGFuZCBub3QgLTEsIGFuZCBwdXRzIHRoaXMgY29t
bW9uIGNvZGUgaW5zaWRlIGEgbmV3IGZ1bmN0aW9uLAorICAgICAgICBGb250UGxhdGZvcm1EYXRh
Ojppc1ZhbGlkQ1RGb250UmVmKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhl
cmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKTogQ29hbGVzY2UgY29uc3RydWN0b3JzLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmlzVmFsaWRDVEZvbnRSZWYpOiBDaGVjayBpZiBhIHBvaW50ZXIgaXMg
bm90IDAgYW5kIG5vdCAtMS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Omhh
c2hUYWJsZURlbGV0ZWRGb250VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRm
b3JtQ3JlYXRlU2NhbGVkRm9udCk6IFJlY2VpdmUgY2FzdCB3aGljaCBoYXMgYmVlbiBob2lzdGVk
IGZyb20gdGhlIGRlbGV0ZWQKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBjb25zdHJ1Y3Rvci4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmNvbXBvc2l0ZUZvbnRSZWZlcmVuY2VGb250KTogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9y
bURhdGEpOiBVc2UgaXNWYWxpZENURm9udFJlZigpLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhQXNzaWduKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybUlzRXF1YWwpOiBTaW1wbGlmeSBwcmVw
cm9jZXNzb3IgbWFjcm9zLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6YWxs
b3dzTGlnYXR1cmVzKTogUmVtb3ZlIHVubmVjZXNzYXJ5IE5TRm9udCB1c2UuCisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRl
eHQubW06CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RD
b21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKTogUmVtb3ZlIHVubmVjZXNzYXJ5CisgICAgICAg
IE5TRm9udCB1c2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFy
YWN0ZXJzKTogUmVjZWl2ZSBjYXN0IHdoaWNoIGhhcyBiZWVuIGhvaXN0ZWQgZnJvbSB0aGUKKyAg
ICAgICAgZGVsZXRlZCBGb250UGxhdGZvcm1EYXRhIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKTogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRG
cm9tTlNGb250KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp3aWR0aFdpdGhGb250KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpkcmF3QXRQb2ludCk6IERpdHRvLgorCiAyMDE1LTA0LTI0
ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGRiZDk5Y2RlOGQ2YjhmOGZhNWE4NGIwNmUxMWQyNzIyN2U4N2IxNzYuLmFmOTMwMjk4ZWIyMWQ1
NjVlZTA5NzJmMjUyMjlmY2E2NTA4NjEyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxNS0wNC0yNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gU3RhcnQgY2xlYW5pbmcgdXAgRm9udFBsYXRmb3JtRGF0YQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MTMzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCisKKyAgICAgICAgUmVjZWl2ZSBj
YXN0cyB3aGljaCBoYXZlIGJlZW4gaG9pc3RlZCBmcm9tIHRoZSBkZWxldGVkIEZvbnRQbGF0Zm9y
bURhdGEgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBNaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFz
Lm1tOgorICAgICAgICAoLVtOU1N0cmluZyBfd2ViX2RyYXdBdFBvaW50OmZvbnQ6dGV4dENvbG9y
OmFsbG93aW5nRm9udFNtb290aGluZzpdKTogUmVjZWl2ZSBjYXN0IHdoaWNoIGhhcworICAgICAg
ICBiZWVuIGhvaXN0ZWQgZnJvbSB0aGUgZGVsZXRlZCBGb250UGxhdGZvcm1EYXRhIGNvbnN0cnVj
dG9yLgorICAgICAgICAoLVtOU1N0cmluZyBfd2ViX3dpZHRoV2l0aEZvbnQ6XSk6IERpdHRvLgor
ICAgICAgICAqIE1pc2MvV2ViU3RyaW5nVHJ1bmNhdG9yLm1tOgorICAgICAgICAoZm9udEZyb21O
U0ZvbnQpOiBEaXR0by4KKwogMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFw
cGxlLmNvbT4KIAogICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzAzZWZiMjNlM2QwNWE3ODVmYjRhY2RhYWU2ZDc3NzMz
MDZhZTFiYi4uZjkwYzAyZWY3MGZjMDNjYTk3YjE2MzJlODA0OGZhZmI3M2MxOWYwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5jcHAKQEAgLTYxLDI1ICs2MSwxNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1E
YXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aQogCiAjaWYg
VVNFKENHKQogRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dG
b250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1
ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFy
aWFudCkKLSAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQotICAgICwgbV9zeW50
aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCi0gICAgLCBtX29yaWVudGF0aW9uKG9yaWVu
dGF0aW9uKQotICAgICwgbV9zaXplKHNpemUpCi0gICAgLCBtX3dpZHRoVmFyaWFudCh3aWR0aFZh
cmlhbnQpCi0gICAgLCBtX2NnRm9udChjZ0ZvbnQpCisgICAgOiBGb250UGxhdGZvcm1EYXRhKHNp
emUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZh
cmlhbnQpCiB7CisgICAgbV9jZ0ZvbnQgPSBjZ0ZvbnQ7CiB9CiAjZW5kaWYKIAogRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBzb3VyY2Up
Ci0gICAgOiBtX3N5bnRoZXRpY0JvbGQoc291cmNlLm1fc3ludGhldGljQm9sZCkKLSAgICAsIG1f
c3ludGhldGljT2JsaXF1ZShzb3VyY2UubV9zeW50aGV0aWNPYmxpcXVlKQotICAgICwgbV9vcmll
bnRhdGlvbihzb3VyY2UubV9vcmllbnRhdGlvbikKLSAgICAsIG1fc2l6ZShzb3VyY2UubV9zaXpl
KQotICAgICwgbV93aWR0aFZhcmlhbnQoc291cmNlLm1fd2lkdGhWYXJpYW50KQotICAgICwgbV9p
c0NvbG9yQml0bWFwRm9udChzb3VyY2UubV9pc0NvbG9yQml0bWFwRm9udCkKLSAgICAsIG1faXND
b21wb3NpdGVGb250UmVmZXJlbmNlKHNvdXJjZS5tX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZSkK
KyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc291cmNlLm1fc2l6ZSwgc291cmNlLm1fc3ludGhldGlj
Qm9sZCwgc291cmNlLm1fc3ludGhldGljT2JsaXF1ZSwgc291cmNlLm1fb3JpZW50YXRpb24sIHNv
dXJjZS5tX3dpZHRoVmFyaWFudCkKIHsKKyAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gc291cmNl
Lm1faXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2UgPSBz
b3VyY2UubV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2U7CiAgICAgcGxhdGZvcm1EYXRhSW5pdChz
b3VyY2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250UGxhdGZvcm1EYXRhLmgKaW5kZXggZmQwY2Q4ZWRlZWY0MjU0Y2IwNTlhNTcwOGIwMDJkMzY5
NDJiYzUzZC4uODVmYjlhMjQ1NTljZDZmNDQ1MDVkZDA5ZGFkYTRhZWU2NDU5YTdhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
aApAQCAtODYsMTAgKzg2LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
V0VCQ09SRV9FWFBPUlQgRm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwg
Rm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJX
aWR0aCk7Ci0jaWYgVVNFKEFQUEtJVCkKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBh
bGwgTlNGb250IHVzYWdlIGlzIHJlbW92ZWQuCi0gICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRm
b3JtRGF0YShOU0ZvbnQgKiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2Us
IGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9u
dGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKLSNlbmRpZgogI2VuZGlmCiAK
ICNpZiBVU0UoQ0cpCkBAIC0yMDYsNiArMjAyLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGFBc3NpZ24oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYp
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHN0YXRpYyBDVEZvbnRSZWYgaGFzaFRhYmxlRGVs
ZXRlZEZvbnRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPigtMSk7
IH0KKyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkQ1RGb250UmVmKENURm9udFJlZiBmb250KSB7IHJl
dHVybiBmb250ICYmIGZvbnQgIT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpOyB9CiAjZW5k
aWYKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCBwbGF0Zm9ybURhdGFJbml0KEhGT05ULCBm
bG9hdCBzaXplLCBIREMsIFdDSEFSKiBmYWNlTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KaW5kZXggNDg5MDFmY2JhYWQz
Yjk3MzNlZTA1Y2E0YTA5YTY2NjExNWUzNmFmOC4uNmQ2MDgyOGRhNTU5ZWE5ZmUwNzFkYThiN2E0
Mjg4MThmYTcyYzZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRDb2NvYS5tbQpAQCAtMzI1LDcgKzMyNSw3IEBAIFBhc3NSZWZQdHI8Rm9u
dD4gRm9udDo6cGxhdGZvcm1DcmVhdGVTY2FsZWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGZsb2F0IHNjCiAjaWYgVVNFKEFQUEtJVCkKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKFtbTlNGb250TWFuYWdl
ciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEubnNGb250KCkg
dG9TaXplOnNpemVdLCBzaXplLCBmYWxzZSwgZmFsc2UsIG1fcGxhdGZvcm1EYXRhLm9yaWVudGF0
aW9uKCkpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgc2NhbGVkRm9udERhdGEocmVpbnRlcnByZXRf
Y2FzdDxDVEZvbnRSZWY+KFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVy
dEZvbnQ6bV9wbGF0Zm9ybURhdGEubnNGb250KCkgdG9TaXplOnNpemVdKSwgc2l6ZSwgZmFsc2Us
IGZhbHNlLCBtX3BsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpKTsKIAogICAgIGlmIChzY2FsZWRG
b250RGF0YS5mb250KCkpIHsKICAgICAgICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBb
TlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl07CkBAIC01NzEsNyArNTcxLDcgQEAgY29u
c3QgRm9udCogRm9udDo6Y29tcG9zaXRlRm9udFJlZmVyZW5jZUZvbnQoTlNGb250ICprZXkpIGNv
bnN0CiAgICAgICAgIGJvb2wgc3ludGhldGljQm9sZCA9IHBsYXRmb3JtRGF0YSgpLnN5bnRoZXRp
Y0JvbGQoKSAmJiAhKHRyYWl0cyAmIGtDVEZvbnRCb2xkVHJhaXQpOwogICAgICAgICBib29sIHN5
bnRoZXRpY09ibGlxdWUgPSBwbGF0Zm9ybURhdGEoKS5zeW50aGV0aWNPYmxpcXVlKCkgJiYgISh0
cmFpdHMgJiBrQ1RGb250SXRhbGljVHJhaXQpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEg
c3Vic3RpdHV0ZVBsYXRmb3JtKHN1YnN0aXR1dGVGb250LCBwbGF0Zm9ybURhdGEoKS5zaXplKCks
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0
aW9uKCksIHBsYXRmb3JtRGF0YSgpLndpZHRoVmFyaWFudCgpKTsKKyAgICAgICAgRm9udFBsYXRm
b3JtRGF0YSBzdWJzdGl0dXRlUGxhdGZvcm0ocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KHN1
YnN0aXR1dGVGb250KSwgcGxhdGZvcm1EYXRhKCkuc2l6ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNPYmxpcXVlLCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpLCBwbGF0Zm9ybURhdGEo
KS53aWR0aFZhcmlhbnQoKSk7CiAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBG
b250OjpjcmVhdGUoc3Vic3RpdHV0ZVBsYXRmb3JtLCBpc0N1c3RvbUZvbnQoKSk7CiAgICAgfQog
ICAgIHJldHVybiBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRm
b3JtRGF0YUNvY29hLm1tCmluZGV4IDJhNzZhYjNlODg3YmFjMDFhOWIxZDEzYmNiMmVhZWY0MTkw
ZWNjNjQuLmVkOWQzNzU5OTM3NWQ2Mzc3OTBmZjAyMjY5NjZlMjEyOGE2NjBjNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURh
dGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTU2LDIzICs1NiwxNSBAQCBGb250UGxhdGZvcm1E
YXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5
bnRoZXRpY0JvbAogICAgIENGUmV0YWluKG1fZm9udCk7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQot
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gYWxsIE5TRm9udCB1c2FnZSBpcyByZW1vdmVkLgot
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKmZvbnQsIGZsb2F0IHNp
emUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50
YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQotICAgIDog
Rm9udFBsYXRmb3JtRGF0YSgoQ1RGb250UmVmKWZvbnQsIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQpCi17Ci19Ci0jZW5kaWYK
LQogRm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEoKQogewotICAgIGlmIChtX2Zv
bnQgJiYgbV9mb250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPigtMSkpCisgICAgaWYg
KGlzVmFsaWRDVEZvbnRSZWYobV9mb250KSkKICAgICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiB9
CiAKIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdChjb25zdCBGb250UGxh
dGZvcm1EYXRhJiBmKQogewotICAgIG1fZm9udCA9IGYubV9mb250ICYmIGYubV9mb250ICE9IHJl
aW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPigtMSkgPyBzdGF0aWNfY2FzdDxDVEZvbnRSZWY+KGNv
bnN0X2Nhc3Q8dm9pZCAqPihDRlJldGFpbihmLm1fZm9udCkpKSA6IGYubV9mb250OworICAgIG1f
Zm9udCA9IGlzVmFsaWRDVEZvbnRSZWYoZi5tX2ZvbnQpID8gc3RhdGljX2Nhc3Q8Q1RGb250UmVm
Pihjb25zdF9jYXN0PHZvaWQgKj4oQ0ZSZXRhaW4oZi5tX2ZvbnQpKSkgOiBmLm1fZm9udDsKIAog
I2lmIFBMQVRGT1JNKElPUykKICAgICBtX2lzRW1vamkgPSBmLm1faXNFbW9qaTsKQEAgLTg3LDEx
ICs3OSwxMSBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpwbGF0
Zm9ybURhdGFBc3NpZ24oY29uc3QgRm9udFBsYXRmb3JtRAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBtX2lzRW1vamkgPSBmLm1faXNFbW9qaTsKICNlbmRpZgotICAgIGlmIChtX2ZvbnQgJiYgbV9m
b250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPigtMSkgJiYgZi5tX2ZvbnQgJiYgZi5t
X2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KC0xKSAmJiBDRkVxdWFsKG1fZm9u
dCwgZi5tX2ZvbnQpKQorICAgIGlmIChpc1ZhbGlkQ1RGb250UmVmKG1fZm9udCkgJiYgaXNWYWxp
ZENURm9udFJlZihmLm1fZm9udCkgJiYgQ0ZFcXVhbChtX2ZvbnQsIGYubV9mb250KSkKICAgICAg
ICAgcmV0dXJuICp0aGlzOwotICAgIGlmIChmLm1fZm9udCAmJiBmLm1fZm9udCAhPSByZWludGVy
cHJldF9jYXN0PENURm9udFJlZj4oLTEpKQorICAgIGlmIChpc1ZhbGlkQ1RGb250UmVmKGYubV9m
b250KSkKICAgICAgICAgQ0ZSZXRhaW4oZi5tX2ZvbnQpOwotICAgIGlmIChtX2ZvbnQgJiYgbV9m
b250ICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPigtMSkpCisgICAgaWYgKGlzVmFsaWRD
VEZvbnRSZWYobV9mb250KSkKICAgICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiAgICAgbV9mb250
ID0gZi5tX2ZvbnQ7CiAgICAgbV9jdEZvbnQgPSBmLm1fY3RGb250OwpAQCAtMTA0LDcgKzk2LDcg
QEAgYm9vbCBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9udFBsYXRm
b3JtRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBpZiAo
bV9mb250IHx8IG90aGVyLm1fZm9udCkgewogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgcmVz
dWx0ID0gbV9mb250ICYmIG1fZm9udCAhPSByZWludGVycHJldF9jYXN0PENURm9udFJlZj4oLTEp
ICYmIG90aGVyLm1fZm9udCAmJiBvdGhlci5tX2ZvbnQgIT0gcmVpbnRlcnByZXRfY2FzdDxDVEZv
bnRSZWY+KC0xKSAmJiBDRkVxdWFsKG1fZm9udCwgb3RoZXIubV9mb250KTsKKyAgICAgICAgcmVz
dWx0ID0gaXNWYWxpZENURm9udFJlZihtX2ZvbnQpICYmIGlzVmFsaWRDVEZvbnRSZWYob3RoZXIu
bV9mb250KSAmJiBDRkVxdWFsKG1fZm9udCwgb3RoZXIubV9mb250KTsKICNpZiAhQVNTRVJUX0RJ
U0FCTEVECiAgICAgICAgIGlmIChyZXN1bHQpCiAgICAgICAgICAgICBBU1NFUlQobV9pc0Vtb2pp
ID09IG90aGVyLm1faXNFbW9qaSk7CkBAIC0xMTQsMTIgKzEwNiwxMCBAQCBib29sIEZvbnRQbGF0
Zm9ybURhdGE6OnBsYXRmb3JtSXNFcXVhbChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikg
Y29uc3QKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQotI2lmIFBMQVRGT1JNKElPUykKLSNpZiAhQVNTRVJUX0RJU0FCTEVECisjaWYgUExBVEZP
Uk0oSU9TKSAmJiAhQVNTRVJUX0RJU0FCTEVECiAgICAgaWYgKG1fY2dGb250ID09IG90aGVyLm1f
Y2dGb250KQogICAgICAgICBBU1NFUlQobV9pc0Vtb2ppID09IG90aGVyLm1faXNFbW9qaSk7CiAj
ZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgcmV0dXJuIG1fY2dGb250ID09IG90
aGVyLm1fY2dGb250OwogfQogCkBAIC0xNTcsMTUgKzE0NywxMSBAQCBib29sIEZvbnRQbGF0Zm9y
bURhdGE6OnJvdW5kc0dseXBoQWR2YW5jZXMoKSBjb25zdAogCiBib29sIEZvbnRQbGF0Zm9ybURh
dGE6OmFsbG93c0xpZ2F0dXJlcygpIGNvbnN0CiB7Ci0jaWYgVVNFKEFQUEtJVCkKLSAgICByZXR1
cm4gIVtbKE5TRm9udCAqKW1fZm9udCBjb3ZlcmVkQ2hhcmFjdGVyU2V0XSBjaGFyYWN0ZXJJc01l
bWJlcjonYSddOwotI2Vsc2UKICAgICBpZiAoIW1fZm9udCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgUmV0YWluUHRyPENGQ2hhcmFjdGVyU2V0UmVmPiBjaGFyYWN0ZXJTZXQgPSBhZG9w
dENGKENURm9udENvcHlDaGFyYWN0ZXJTZXQoY3RGb250KCkpKTsKICAgICByZXR1cm4gIShjaGFy
YWN0ZXJTZXQuZ2V0KCkgJiYgQ0ZDaGFyYWN0ZXJTZXRJc0NoYXJhY3Rlck1lbWJlcihjaGFyYWN0
ZXJTZXQuZ2V0KCksICdhJykpOwotI2VuZGlmCiB9CiAKIGlubGluZSBpbnQgbWFwRm9udFdpZHRo
VmFyaWFudFRvQ1RGZWF0dXJlU2VsZWN0b3IoRm9udFdpZHRoVmFyaWFudCB2YXJpYW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlckNvcmVUZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCmluZGV4IDNmOTcxMzFkOTU5M2Ew
MDJkOTVmYmNiZWNiNmExYzQ0MmI0YzhlNTEuLmZhN2RhZmEwYTU5Y2FmNWExYmNhOWU4YmU1Nzc4
M2JiODg2NGI3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0K
QEAgLTI4Niw3ICsyODYsNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENv
bXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogICAgICAgICAgICAg
ICAgICAgICAvLyBDb3JlIFRleHQgbWF5IGhhdmUgdXNlZCBhIGZvbnQgdGhhdCBpcyBub3Qga25v
d24gdG8gTlNGb250TWFuYWdlci4gSW4gdGhhdCBjYXNlLCBmYWxsIGJhY2sgb24KICAgICAgICAg
ICAgICAgICAgICAgLy8gdXNpbmcgdGhlIGZvbnQgYXMgcmV0dXJuZWQsIGV2ZW4gdGhvdWdoIGl0
IG1heSBub3QgaGF2ZSB0aGUgYmVzdCBOU0ZvbnRSZW5kZXJpbmdNb2RlLgogICAgICAgICAgICAg
ICAgICAgICBpZiAoIXJ1bkZvbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRQbGF0
Zm9ybURhdGEgcnVuRm9udFBsYXRmb3JtRGF0YSgoTlNGb250ICopcnVuQ1RGb250LCBDVEZvbnRH
ZXRTaXplKHJ1bkNURm9udCkpOworICAgICAgICAgICAgICAgICAgICAgICAgRm9udFBsYXRmb3Jt
RGF0YSBydW5Gb250UGxhdGZvcm1EYXRhKHJ1bkNURm9udCwgQ1RGb250R2V0U2l6ZShydW5DVEZv
bnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkZvbnQgPSBmb250Q2FjaGUuZm9udEZv
clBsYXRmb3JtRGF0YShydW5Gb250UGxhdGZvcm1EYXRhKS5wdHIoKTsKICAgICAgICAgICAgICAg
ICAgICAgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IGMxZTc4NjRmZDJjYzNhYmIxYWU1NmIwNGJhMGY4
NTgwYjcxMTFiOWQuLmNkYzA4M2ExOGU4ZTBiNDUwZDg0ODQxZmFjZjc5ZTgxNDQ1MjlkMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNo
ZU1hYy5tbQpAQCAtNDAzLDcgKzQwMyw3IEBAIFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyCiAgICAg
c3Vic3RpdHV0ZUZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnN1YnN0aXR1
dGVGb250XTsKICAgICBzdWJzdGl0dXRlRm9udFdlaWdodCA9IFtmb250TWFuYWdlciB3ZWlnaHRP
ZkZvbnQ6c3Vic3RpdHV0ZUZvbnRdOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVG
b250KHN1YnN0aXR1dGVGb250LCBwbGF0Zm9ybURhdGEuc2l6ZSgpLAorICAgIEZvbnRQbGF0Zm9y
bURhdGEgYWx0ZXJuYXRlRm9udChyZWludGVycHJldF9jYXN0PENURm9udFJlZj4oc3Vic3RpdHV0
ZUZvbnQpLCBwbGF0Zm9ybURhdGEuc2l6ZSgpLAogICAgICAgICAhaXNQbGF0Zm9ybUZvbnQgJiYg
aXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xk
KHN1YnN0aXR1dGVGb250V2VpZ2h0KSwKICAgICAgICAgIWlzUGxhdGZvcm1Gb250ICYmICh0cmFp
dHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9u
dEl0YWxpY1RyYWl0KSwKICAgICAgICAgcGxhdGZvcm1EYXRhLm1fb3JpZW50YXRpb24pOwpAQCAt
NTEyLDcgKzUxMiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2Fj
aGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0
aWNCb2xkID0gaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRX
ZWlnaHRCb2xkKGFjdHVhbFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKHRy
YWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSAmJiAhKGFjdHVhbFRyYWl0cyAmIE5TRm9udEl0YWxp
Y1RyYWl0KTsKIAotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQbGF0Zm9ybURhdGE+
KHBsYXRmb3JtRm9udCwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgZm9u
dERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQo
KSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4ocmVpbnRl
cnByZXRfY2FzdDxDVEZvbnRSZWY+KHBsYXRmb3JtRm9udCksIHNpemUsIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250RGVz
Y3JpcHRpb24ud2lkdGhWYXJpYW50KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCBlNzkzMTM0
NDhkODkzYmY5ZDdlMGQ4MzkzNzc5NGQ1N2VjOGY0MjcxLi4zNTNlZjhkMjM4NTRkOWE2ZjUxMTQz
NzQ0NDY1YmNhYjJiZmU0YjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFn
SW1hZ2VNYWMubW0KQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgRm9udENhc2NhZGUmIGZvbnRG
cm9tTlNGb250KE5TRm9udCAqZm9udCkKICAgICAgICAgQ0ZSZWxlYXNlKGN1cnJlbnRGb250KTsK
ICAgICBjdXJyZW50Rm9udCA9IGZvbnQ7CiAgICAgQ0ZSZXRhaW4oY3VycmVudEZvbnQpOwotICAg
IGN1cnJlbnRSZW5kZXJlciA9IEZvbnRDYXNjYWRlKEZvbnRQbGF0Zm9ybURhdGEoZm9udCwgW2Zv
bnQgcG9pbnRTaXplXSkpOworICAgIGN1cnJlbnRSZW5kZXJlciA9IEZvbnRDYXNjYWRlKEZvbnRQ
bGF0Zm9ybURhdGEocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KGZvbnQpLCBbZm9udCBwb2lu
dFNpemVdKSk7CiAgICAgcmV0dXJuIGN1cnJlbnRSZW5kZXJlcjsKIH0KIApAQCAtMTkxLDcgKzE5
MSw3IEBAIHN0YXRpYyBmbG9hdCB3aWR0aFdpdGhGb250KE5TU3RyaW5nICpzdHJpbmcsIE5TRm9u
dCAqZm9udCkKICAgICBbc3RyaW5nIGdldENoYXJhY3RlcnM6YnVmZmVyLmRhdGEoKV07CiAgICAg
CiAgICAgaWYgKGNhblVzZUZhc3RSZW5kZXJlcihidWZmZXIuZGF0YSgpLCBsZW5ndGgpKSB7Ci0g
ICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250KEZvbnRQbGF0Zm9ybURhdGEoZm9udCwgW2Zv
bnQgcG9pbnRTaXplXSkpOworICAgICAgICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxh
dGZvcm1EYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihmb250KSwgW2ZvbnQgcG9pbnRT
aXplXSkpOwogICAgICAgICBUZXh0UnVuIHJ1bihidWZmZXIuZGF0YSgpLCBsZW5ndGgpOwogICAg
ICAgICBydW4uZGlzYWJsZVJvdW5kaW5nSGFja3MoKTsKICAgICAgICAgcmV0dXJuIHdlYkNvcmVG
b250LndpZHRoKHJ1bik7CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIHZvaWQgZHJhd0F0UG9p
bnQoTlNTdHJpbmcgKnN0cmluZywgTlNQb2ludCBwb2ludCwgTlNGb250ICpmb250LCBOU0NvbG9y
ICoKICAgICAgICAgaWYgKCFmbGlwcGVkKQogICAgICAgICAgICAgQ0dDb250ZXh0U2NhbGVDVE0o
Y2dDb250ZXh0LCAxLCAtMSk7CiAgICAgICAgICAgICAKLSAgICAgICAgRm9udENhc2NhZGUgd2Vi
Q29yZUZvbnQoRm9udFBsYXRmb3JtRGF0YShmb250LCBbZm9udCBwb2ludFNpemVdKSwgQW50aWFs
aWFzZWQpOworICAgICAgICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1EYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihmb250KSwgW2ZvbnQgcG9pbnRTaXplXSksIEFu
dGlhbGlhc2VkKTsKICAgICAgICAgVGV4dFJ1biBydW4oYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKTsK
ICAgICAgICAgcnVuLmRpc2FibGVSb3VuZGluZ0hhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCmluZGV4IDUzMzc5YzUyYjljYzE5NWVk
YmEzMGE5YTliNzhmYjE4MjUxMTRmMTEuLjNiMGQwYmJjMmU1Yjc0NzEzYmYzNjY2NzQxZWFkOWI0
MDUwOWI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TlNTdHJp
bmdFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4
dHJhcy5tbQpAQCAtOTIsNyArOTIsNyBAQCAtICh2b2lkKV93ZWJfZHJhd0F0UG9pbnQ6KE5TUG9p
bnQpcG9pbnQgZm9udDooTlNGb250ICopZm9udCB0ZXh0Q29sb3I6KE5TQ29sb3IgKgogICAgICAg
ICBpZiAoIWZsaXBwZWQpCiAgICAgICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQs
IDEsIC0xKTsKIAotICAgICAgICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1E
YXRhKGZvbnQsIFtmb250IHBvaW50U2l6ZV0pLCBmb250U21vb3RoaW5nSXNBbGxvd2VkID8gQXV0
b1Ntb290aGluZyA6IEFudGlhbGlhc2VkKTsKKyAgICAgICAgRm9udENhc2NhZGUgd2ViQ29yZUZv
bnQoRm9udFBsYXRmb3JtRGF0YShyZWludGVycHJldF9jYXN0PENURm9udFJlZj4oZm9udCksIFtm
b250IHBvaW50U2l6ZV0pLCBmb250U21vb3RoaW5nSXNBbGxvd2VkID8gQXV0b1Ntb290aGluZyA6
IEFudGlhbGlhc2VkKTsKICAgICAgICAgVGV4dFJ1biBydW4oYnVmZmVyLmRhdGEoKSwgbGVuZ3Ro
KTsKICAgICAgICAgcnVuLmRpc2FibGVSb3VuZGluZ0hhY2tzKCk7CiAKQEAgLTEzOCw3ICsxMzgs
NyBAQCAtIChmbG9hdClfd2ViX3dpZHRoV2l0aEZvbnQ6KE5TRm9udCAqKWZvbnQKICAgICBbc2Vs
ZiBnZXRDaGFyYWN0ZXJzOmJ1ZmZlci5kYXRhKCldOwogCiAgICAgaWYgKGNhblVzZUZhc3RSZW5k
ZXJlcihidWZmZXIuZGF0YSgpLCBsZW5ndGgpKSB7Ci0gICAgICAgIEZvbnRDYXNjYWRlIHdlYkNv
cmVGb250KEZvbnRQbGF0Zm9ybURhdGEoZm9udCwgW2ZvbnQgcG9pbnRTaXplXSkpOworICAgICAg
ICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1EYXRhKHJlaW50ZXJwcmV0X2Nh
c3Q8Q1RGb250UmVmPihmb250KSwgW2ZvbnQgcG9pbnRTaXplXSkpOwogICAgICAgICBUZXh0UnVu
IHJ1bihidWZmZXIuZGF0YSgpLCBsZW5ndGgpOwogICAgICAgICBydW4uZGlzYWJsZVJvdW5kaW5n
SGFja3MoKTsKICAgICAgICAgcmV0dXJuIHdlYkNvcmVGb250LndpZHRoKHJ1bik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViU3RyaW5nVHJ1bmNhdG9yLm1tCmluZGV4IDM2MjhmODU0MDA1
MTczYTY0NzE0ZGY2ZTE2N2QwMjBiNzcwNDFiM2YuLmM2YWIxNTQwN2FjMDc0ZjgxZDBhOWUxOTJi
MzE3MjBlNTFkOGIyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU3Ry
aW5nVHJ1bmNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU3RyaW5nVHJ1
bmNhdG9yLm1tCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyBXZWJDb3JlOjpGb250Q2FzY2FkZSYg
Zm9udEZyb21OU0ZvbnQoTlNGb250ICpmb250KQogICAgIGlmIChbZm9udCBpc0VxdWFsOmN1cnJl
bnROU0ZvbnQuZ2V0KCkuZ2V0KCldKQogICAgICAgICByZXR1cm4gY3VycmVudEZvbnQ7CiAgICAg
Y3VycmVudE5TRm9udC5nZXQoKSA9IGZvbnQ7Ci0gICAgY3VycmVudEZvbnQuZ2V0KCkgPSBXZWJD
b3JlOjpGb250Q2FzY2FkZShXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhKGZvbnQsIFtmb250IHBv
aW50U2l6ZV0pKTsKKyAgICBjdXJyZW50Rm9udC5nZXQoKSA9IFdlYkNvcmU6OkZvbnRDYXNjYWRl
KFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGEocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KGZv
bnQpLCBbZm9udCBwb2ludFNpemVdKSk7CiAgICAgcmV0dXJuIGN1cnJlbnRGb250OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>