<?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>130515</bug_id>
          
          <creation_ts>2014-03-20 09:11:20 -0700</creation_ts>
          <short_desc>Stop using deprecatedCharacters in WebCore/platform/win</short_desc>
          <delta_ts>2014-03-21 08:23:16 -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>Platform</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>
          
          <blocked>126854</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>992541</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 09:11:20 -0700</bug_when>
    <thetext>Stop using deprecatedCharacters in WebCore/platform/win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992542</commentid>
    <comment_count>1</comment_count>
      <attachid>227295</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 09:14:51 -0700</bug_when>
    <thetext>Created attachment 227295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992543</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 09:15:38 -0700</bug_when>
    <thetext>It occurs to me that code getting at TextRun from the platform directory is a layering violation. Annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992547</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 09:22:29 -0700</bug_when>
    <thetext>I coded this on my Mac, so haven’t compiled it on Windows yet. So interested in seeing what EWS shows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992885</commentid>
    <comment_count>4</comment_count>
      <attachid>227375</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 21:10:26 -0700</bug_when>
    <thetext>Created attachment 227375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993100</commentid>
    <comment_count>5</comment_count>
      <attachid>227375</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 08:23:13 -0700</bug_when>
    <thetext>Comment on attachment 227375
Patch

Clearing flags on attachment: 227375

Committed r166063: &lt;http://trac.webkit.org/changeset/166063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993101</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 08:23:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227295</attachid>
            <date>2014-03-20 09:14:51 -0700</date>
            <delta_ts>2014-03-20 21:10:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130515-20140320091438.patch</filename>
            <type>text/plain</type>
            <size>17532</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFlYjJjMGI1MDBlNmZj
MGQwMTRjNWNiZjcwYjk5MWVkYTFmNmYwYi4uMTViM2E0MzhhOTQyMzUxZjAxMGE4ZGExZmQ4NWVj
ZTA1ZTRhMDk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAzLTIwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGRlcHJlY2F0
ZWRDaGFyYWN0ZXJzIGluIFdlYkNvcmUvcGxhdGZvcm0vd2luCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA1MTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4pOiBBZGQgYSBjb25zdHJ1Y3Rv
ciB0aGF0IHRha2VzIGEgU3RyaW5nVmlldy4KKyAgICAgICAgTGF0ZXIsIHdlIG1pZ2h0IHdhbnQg
dG8gZXhjbHVzaXZlbHkgdXNlIHRoZSBTdHJpbmdWaWV3IHZlcnNpb24gYW5kIHJlbW92ZQorICAg
ICAgICBzb21lIG9mIHRoZSBvdGhlcnMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRU
ZXh0KTogQWRkIGEgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBTdHJpbmdW
aWV3LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVy
cyk6IFVzZSBTdHJpbmdWaWV3OjpnZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydC4KKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUdESUZvbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Z2V0VHJhaXRzSW5GYW1pbHkpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
QlN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCU3RyaW5nOjpCU3RyaW5nKTogVXNlIFN0
cmluZ1ZpZXc6OnVwY29udmVydGVkQ2hhcmFjdGVycy4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
Q2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdsb2Jh
bERhdGEpOiBVc2UgU3RyaW5nVmlldzo6Z2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZlcnQuCisgICAg
ICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KTogVXNlIFN0cmluZ0J1aWxkZXIgYW5kIFN0cmluZ1Zp
ZXc6OmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0LgorICAgICAgICAoV2ViQ29yZTo6ZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKTogVXNlIFN0cmluZ1ZpZXc6OnVwY29udmVydGVkQ2hhcmFjdGVy
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpmaWxlc3lzdGVtUGF0aEZyb21VcmxPclRpdGxlKTogVXNlIFN0cmluZ1ZpZXc6Omdl
dENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
d3JpdGVVUkxUb0RhdGFPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUds
b2JhbEltYWdlRmlsZURlc2NyaXB0b3IpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpjYWxj
dWxhdGVQb3NpdGlvbkFuZFNpemUpOiBVc2UgdGhlIG5ldyBUZXh0UnVuIGNvbnN0cnVjdG9yLgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9XZWJDb3JlVGV4dFJlbmRlcmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmRvRHJhd1RleHRBdFBvaW50KTogRGl0dG8uCisKIDIwMTQtMDMtMjAgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNjU5NjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UZXh0UnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmgKaW5kZXggMGIzNGJlZDI0YTY3NmE0YjY2OTM2ZGU0MjQ5NmE5MDhiODVlNmYxNS4u
NWQwYzg3ZDZkODdkYTUzMWE3NTk2NGViYjVjOTQ0Zjg2ZWM0YTIwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaApAQCAtMjYsNyArMjYsNyBAQAogCiAjaW5j
bHVkZSAiVGV4dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwogY2xhc3MgR2x5cGhCdWZmZXI7CiBjbGFzcyBHbHlwaFRvUGF0aFRyYW5z
bGF0b3I7CiBjbGFzcyBTaW1wbGVGb250RGF0YTsKKwogc3RydWN0IEdseXBoRGF0YTsKIHN0cnVj
dCBXaWR0aEl0ZXJhdG9yOwogCkBAIC0xMjUsNiArMTI2LDI5IEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAorICAgIFRleHRSdW4oU3RyaW5nVmlldyBzLCBmbG9hdCB4cG9zID0gMCwgZmxv
YXQgZXhwYW5zaW9uID0gMCwgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IgPSBB
bGxvd1RyYWlsaW5nRXhwYW5zaW9uIHwgRm9yYmlkTGVhZGluZ0V4cGFuc2lvbiwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24gPSBMVFIsIGJvb2wgZGlyZWN0aW9uYWxPdmVycmlkZSA9IGZhbHNlLCBi
b29sIGNoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCA9IHRydWUsIFJvdW5kaW5nSGFja3Mgcm91bmRp
bmdIYWNrcyA9IFJ1blJvdW5kaW5nIHwgV29yZFJvdW5kaW5nKQorICAgICAgICA6IG1fY2hhcmFj
dGVyc0xlbmd0aChzLmxlbmd0aCgpKQorICAgICAgICAsIG1fbGVuKHMubGVuZ3RoKCkpCisgICAg
ICAgICwgbV94cG9zKHhwb3MpCisgICAgICAgICwgbV9ob3Jpem9udGFsR2x5cGhTdHJldGNoKDEp
CisgICAgICAgICwgbV9leHBhbnNpb24oZXhwYW5zaW9uKQorICAgICAgICAsIG1fZXhwYW5zaW9u
QmVoYXZpb3IoZXhwYW5zaW9uQmVoYXZpb3IpCisgICAgICAgICwgbV9pczhCaXQocy5pczhCaXQo
KSkKKyAgICAgICAgLCBtX2FsbG93VGFicyhmYWxzZSkKKyAgICAgICAgLCBtX2RpcmVjdGlvbihk
aXJlY3Rpb24pCisgICAgICAgICwgbV9kaXJlY3Rpb25hbE92ZXJyaWRlKGRpcmVjdGlvbmFsT3Zl
cnJpZGUpCisgICAgICAgICwgbV9jaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoY2hhcmFjdGVyU2Nh
bkZvckNvZGVQYXRoKQorICAgICAgICAsIG1fYXBwbHlSdW5Sb3VuZGluZygocm91bmRpbmdIYWNr
cyAmIFJ1blJvdW5kaW5nKSAmJiBzX2FsbG93c1JvdW5kaW5nSGFja3MpCisgICAgICAgICwgbV9h
cHBseVdvcmRSb3VuZGluZygocm91bmRpbmdIYWNrcyAmIFdvcmRSb3VuZGluZykgJiYgc19hbGxv
d3NSb3VuZGluZ0hhY2tzKQorICAgICAgICAsIG1fZGlzYWJsZVNwYWNpbmcoZmFsc2UpCisgICAg
ICAgICwgbV90YWJTaXplKDApCisgICAgeworICAgICAgICBpZiAocy5pczhCaXQoKSkKKyAgICAg
ICAgICAgIG1fZGF0YS5jaGFyYWN0ZXJzOCA9IHMuY2hhcmFjdGVyczgoKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbV9kYXRhLmNoYXJhY3RlcnMxNiA9IHMuY2hhcmFjdGVyczE2KCk7Cisg
ICAgfQorCiAgICAgVGV4dFJ1biBzdWJSdW4odW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKHN0YXJ0T2Zmc2V0IDwgbV9sZW4pOwpAQCAtMTU4LDYgKzE4Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0VGV4dChjb25zdCBMQ2hhciogYywgdW5zaWduZWQgbGVuKSB7IG1fZGF0
YS5jaGFyYWN0ZXJzOCA9IGM7IG1fbGVuID0gbGVuOyBtX2lzOEJpdCA9IHRydWU7fQogICAgIHZv
aWQgc2V0VGV4dChjb25zdCBVQ2hhciogYywgdW5zaWduZWQgbGVuKSB7IG1fZGF0YS5jaGFyYWN0
ZXJzMTYgPSBjOyBtX2xlbiA9IGxlbjsgbV9pczhCaXQgPSBmYWxzZTt9CisgICAgdm9pZCBzZXRU
ZXh0KFN0cmluZ1ZpZXcpOwogICAgIHZvaWQgc2V0Q2hhcmFjdGVyc0xlbmd0aCh1bnNpZ25lZCBj
aGFyYWN0ZXJzTGVuZ3RoKSB7IG1fY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnNMZW5ndGg7
IH0KIAogICAgIGZsb2F0IGhvcml6b250YWxHbHlwaFN0cmV0Y2goKSBjb25zdCB7IHJldHVybiBt
X2hvcml6b250YWxHbHlwaFN0cmV0Y2g7IH0KQEAgLTI0Miw2ICsyNjcsMTYgQEAgaW5saW5lIHZv
aWQgVGV4dFJ1bjo6c2V0VGFiU2l6ZShib29sIGFsbG93LCB1bnNpZ25lZCBzaXplKQogICAgIG1f
dGFiU2l6ZSA9IHNpemU7CiB9CiAKK2lubGluZSB2b2lkIFRleHRSdW46OnNldFRleHQoU3RyaW5n
VmlldyBzdHJpbmcpCit7CisgICAgbV9sZW4gPSBzdHJpbmcubGVuZ3RoKCk7CisgICAgbV9pczhC
aXQgPSBzdHJpbmcuaXM4Qml0KCk7CisgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKKyAgICAgICAg
bV9kYXRhLmNoYXJhY3RlcnM4ID0gc3RyaW5nLmNoYXJhY3RlcnM4KCk7CisgICAgZWxzZQorICAg
ICAgICBtX2RhdGEuY2hhcmFjdGVyczE2ID0gc3RyaW5nLmNoYXJhY3RlcnMxNigpOworfQorCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udENhY2hlV2luLmNwcAppbmRleCA3ZDBmMzg2NDU2ZTUyMTEwNmM0YjZjYjFlOTI3YmNm
YmM0NDc1NjYxLi44OGJhZGRlOGQ5ZmE3OWM0MWI2NTNmYjFkMjRhNDQxYTdmYzUyODgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hl
V2luLmNwcApAQCAtMzYsNyArMzYsOSBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KICNpbmNsdWRlIDx3dGYvd2luL0dESU9i
amVjdC5oPgorCiAjaWYgVVNFKENHKQogI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBw
bGljYXRpb25TZXJ2aWNlcy5oPgogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KQEAgLTI3Niw3ICsyNzgsNyBAQCBQYXNzUmVmUHRyPFNpbXBs
ZUZvbnREYXRhPiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBG
b250RGVzYwogCiAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKICAgICAgICAgbG9nRm9udC5sZkNo
YXJTZXQgPSBERUZBVUxUX0NIQVJTRVQ7Ci0gICAgICAgIG1lbWNweShsb2dGb250LmxmRmFjZU5h
bWUsIGxpbmtlZEZvbnRzLT5hdChsaW5rZWRGb250SW5kZXgpLmRlcHJlY2F0ZWRDaGFyYWN0ZXJz
KCksIGxpbmtlZEZvbnRzLT5hdChsaW5rZWRGb250SW5kZXgpLmxlbmd0aCgpICogc2l6ZW9mKFdD
SEFSKSk7CisgICAgICAgIFN0cmluZ1ZpZXcobGlua2VkRm9udHMtPmF0KGxpbmtlZEZvbnRJbmRl
eCkpLmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0KGxvZ0ZvbnQubGZGYWNlTmFtZSk7CiAgICAg
ICAgIGxvZ0ZvbnQubGZGYWNlTmFtZVtsaW5rZWRGb250cy0+YXQobGlua2VkRm9udEluZGV4KS5s
ZW5ndGgoKV0gPSAwOwogICAgICAgICBFbnVtRm9udEZhbWlsaWVzRXgoaGRjLCAmbG9nRm9udCwg
bGlua2VkRm9udEVudW1Qcm9jLCByZWludGVycHJldF9jYXN0PExQQVJBTT4oJmhmb250KSwgMCk7
CiAgICAgICAgIGxpbmtlZEZvbnRJbmRleCsrOwpAQCAtNDQ2LDkgKzQ0OCw5IEBAIHN0YXRpYyBH
RElPYmplY3Q8SEZPTlQ+IGNyZWF0ZUdESUZvbnQoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHks
IExPTkcgZGVzaXJlZFdlCiAKICAgICBMT0dGT05UIGxvZ0ZvbnQ7CiAgICAgbG9nRm9udC5sZkNo
YXJTZXQgPSBERUZBVUxUX0NIQVJTRVQ7Ci0gICAgdW5zaWduZWQgZmFtaWx5TGVuZ3RoID0gbWlu
KGZhbWlseS5sZW5ndGgoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExGX0ZBQ0VTSVpFIC0gMSkp
OwotICAgIG1lbWNweShsb2dGb250LmxmRmFjZU5hbWUsIGZhbWlseS5zdHJpbmcoKS5kZXByZWNh
dGVkQ2hhcmFjdGVycygpLCBmYW1pbHlMZW5ndGggKiBzaXplb2YoVUNoYXIpKTsKLSAgICBsb2dG
b250LmxmRmFjZU5hbWVbZmFtaWx5TGVuZ3RoXSA9IDA7CisgICAgU3RyaW5nVmlldyB0cnVuY2F0
ZWRGYW1pbHkgPSBTdHJpbmdWaWV3KGZhbWlseSkuc3Vic3RyaW5nKDAsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihMRl9GQUNFU0laRSAtIDEpKTsKKyAgICB0cnVuY2F0ZWRGYW1pbHkuZ2V0Q2hhcmFj
dGVyc1dpdGhVcGNvbnZlcnQobG9nRm9udC5sZkZhY2VOYW1lKTsKKyAgICBsb2dGb250LmxmRmFj
ZU5hbWVbdHJ1bmNhdGVkRmFtaWx5Lmxlbmd0aCgpXSA9IDA7CiAgICAgbG9nRm9udC5sZlBpdGNo
QW5kRmFtaWx5ID0gMDsKIAogICAgIE1hdGNoSW1wcm92aW5nUHJvY0RhdGEgbWF0Y2hEYXRhKGRl
c2lyZWRXZWlnaHQsIGRlc2lyZWRJdGFsaWMpOwpAQCAtNTI4LDkgKzUzMCw5IEBAIHZvaWQgRm9u
dENhY2hlOjpnZXRUcmFpdHNJbkZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUs
IFZlY3Rvcjx1bnNpZ25lCiAKICAgICBMT0dGT05UIGxvZ0ZvbnQ7CiAgICAgbG9nRm9udC5sZkNo
YXJTZXQgPSBERUZBVUxUX0NIQVJTRVQ7Ci0gICAgdW5zaWduZWQgZmFtaWx5TGVuZ3RoID0gbWlu
KGZhbWlseU5hbWUubGVuZ3RoKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihMRl9GQUNFU0laRSAt
IDEpKTsKLSAgICBtZW1jcHkobG9nRm9udC5sZkZhY2VOYW1lLCBmYW1pbHlOYW1lLnN0cmluZygp
LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGZhbWlseUxlbmd0aCAqIHNpemVvZihVQ2hhcikpOwot
ICAgIGxvZ0ZvbnQubGZGYWNlTmFtZVtmYW1pbHlMZW5ndGhdID0gMDsKKyAgICBTdHJpbmdWaWV3
IHRydW5jYXRlZEZhbWlseSA9IFN0cmluZ1ZpZXcoZmFtaWx5KS5zdWJzdHJpbmcoMCwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KExGX0ZBQ0VTSVpFIC0gMSkpOworICAgIHRydW5jYXRlZEZhbWlseS5n
ZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydChsb2dGb250LmxmRmFjZU5hbWUpOworICAgIGxvZ0Zv
bnQubGZGYWNlTmFtZVt0cnVuY2F0ZWRGYW1pbHkubGVuZ3RoKCldID0gMDsKICAgICBsb2dGb250
LmxmUGl0Y2hBbmRGYW1pbHkgPSAwOwogCiAgICAgVHJhaXRzSW5GYW1pbHlQcm9jRGF0YSBwcm9j
RGF0YShmYW1pbHlOYW1lKTsKQEAgLTU4Nyw0ICs1ODksMyBAQCBQYXNzT3duUHRyPEZvbnRQbGF0
Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVz
Y3JpcAogfQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9C
U3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9CU3RyaW5nLmNwcAppbmRl
eCA3YmYzZTY3YTcwYWM3ZDBjYWVlOTE2ZjliYTlkM2I5MTcxNjJjMThhLi44YmFkOWM0YmMzMzVj
ZGExMWViZjliYWZmNmU0Yjk3MmY2ODI3NWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0JTdHJpbmcuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVk
ZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcu
aD4KIAogI2lmIFVTRShDRikKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlv
bi5oPgpAQCAtNjUsNyArNjUsNyBAQCBCU3RyaW5nOjpCU3RyaW5nKGNvbnN0IFN0cmluZyYgcykK
ICAgICBpZiAocy5pc051bGwoKSkKICAgICAgICAgbV9ic3RyID0gMDsKICAgICBlbHNlCi0gICAg
ICAgIG1fYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVuKHMuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwg
cy5sZW5ndGgoKSk7CisgICAgICAgIG1fYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVuKFN0cmluZ1Zp
ZXcocykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHMubGVuZ3RoKCkpOwogfQogCiBCU3RyaW5n
OjpCU3RyaW5nKGNvbnN0IFVSTCYgdXJsKQpAQCAtNzMsNyArNzMsNyBAQCBCU3RyaW5nOjpCU3Ry
aW5nKGNvbnN0IFVSTCYgdXJsKQogICAgIGlmICh1cmwuaXNOdWxsKCkpCiAgICAgICAgIG1fYnN0
ciA9IDA7CiAgICAgZWxzZQotICAgICAgICBtX2JzdHIgPSBTeXNBbGxvY1N0cmluZ0xlbih1cmwu
c3RyaW5nKCkuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgdXJsLnN0cmluZygpLmxlbmd0aCgpKTsK
KyAgICAgICAgbV9ic3RyID0gU3lzQWxsb2NTdHJpbmdMZW4oU3RyaW5nVmlldyh1cmwuc3RyaW5n
KCkpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCB1cmwuc3RyaW5nKCkubGVuZ3RoKCkpOwogfQog
CiBCU3RyaW5nOjpCU3RyaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgcykKQEAgLTgxLDcgKzgxLDcg
QEAgQlN0cmluZzo6QlN0cmluZyhjb25zdCBBdG9taWNTdHJpbmcmIHMpCiAgICAgaWYgKHMuaXNO
dWxsKCkpCiAgICAgICAgIG1fYnN0ciA9IDA7CiAgICAgZWxzZQotICAgICAgICBtX2JzdHIgPSBT
eXNBbGxvY1N0cmluZ0xlbihzLnN0cmluZygpLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIHMubGVu
Z3RoKCkpOworICAgICAgICBtX2JzdHIgPSBTeXNBbGxvY1N0cmluZ0xlbihTdHJpbmdWaWV3KHMu
c3RyaW5nKCkpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBzLmxlbmd0aCgpKTsKIH0KIAogI2lm
IFVTRShDRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9h
cmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggODE3NDk5MWMzZGMzYWRhMTQ2MGY2YTJhY2MzZmY4YzQ0
ZjI0NjYzNy4uMmJjY2YxYTUwZTI3NmU2MzI4MzY1YzM2MDQ3NWIyNjAwN2Y0OWUyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dp
bi5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmICFPUyhXSU5D
RSkKICNpbmNsdWRlIDxzaGx3YXBpLmg+CkBAIC0xOTQsNyArMTkzLDcgQEAgSEdMT0JBTCBjcmVh
dGVHbG9iYWxEYXRhKGNvbnN0IFN0cmluZyYgc3RyKQogICAgIGlmICghdm0pCiAgICAgICAgIHJl
dHVybiAwOwogICAgIFVDaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcio+KEdsb2JhbExv
Y2sodm0pKTsKLSAgICBtZW1jcHkoYnVmZmVyLCBzdHIuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwg
c3RyLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSk7CisgICAgU3RyaW5nVmlldyhzdHIpLmdldENo
YXJhY3RlcnNXaXRoVXBjb252ZXJ0KGJ1ZmZlcik7CiAgICAgYnVmZmVyW3N0ci5sZW5ndGgoKV0g
PSAwOwogICAgIEdsb2JhbFVubG9jayh2bSk7CiAgICAgcmV0dXJuIHZtOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4IGUyZGRmZDU1ZTk5MjNk
Y2NiOGQ4ZWViYTdiNzhjZTk3ZWFlMWI0ZDMuLmM2NTI5M2QwMjA0OWRiYjJlYTlhYWI3ZjIwYjQy
MGMyNjFlZDQyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxl
U3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2Fs
bHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAj
aW5jbHVkZSA8c2hsb2JqLmg+CkBAIC0xNTYsMzkgKzE1Niw0MyBAQCBib29sIGRlbGV0ZUVtcHR5
RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKIAogU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KQogewot
ICAgIFZlY3RvcjxVQ2hhcj4gYnVmZmVyKE1BWF9QQVRIKTsKLQogI2lmIE9TKFdJTkNFKQotICAg
IGJ1ZmZlci5hcHBlbmQocGF0aC5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBwYXRoLmxlbmd0aCgp
KTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisKKyAgICBidWlsZGVyLmFwcGVuZChwYXRo
KTsKIAogICAgIFVDaGFyIGxhc3RQYXRoQ2hhcmFjdGVyID0gcGF0aFtwYXRoLmxlbmd0aCgpIC0g
MV07CiAgICAgaWYgKGxhc3RQYXRoQ2hhcmFjdGVyICE9IEwnXFwnICYmIGxhc3RQYXRoQ2hhcmFj
dGVyICE9IEwnLycgJiYgY29tcG9uZW50WzBdICE9IEwnXFwnICYmIGNvbXBvbmVudFswXSAhPSBM
Jy8nKQotICAgICAgICBidWZmZXIuYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKTsKIAotICAg
IGJ1ZmZlci5hcHBlbmQoY29tcG9uZW50LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGNvbXBvbmVu
dC5sZW5ndGgoKSk7Ci0gICAgYnVmZmVyLnNocmlua1RvRml0KCk7CisgICAgYnVpbGRlci5hcHBl
bmQoY29tcG9uZW50KTsKKworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiAjZWxzZQor
ICAgIFZlY3RvcjxVQ2hhcj4gYnVmZmVyKE1BWF9QQVRIKTsKKwogICAgIGlmIChwYXRoLmxlbmd0
aCgpICsgMSA+IGJ1ZmZlci5zaXplKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAg
IG1lbWNweShidWZmZXIuZGF0YSgpLCBwYXRoLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIHBhdGgu
bGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICBTdHJpbmdWaWV3KHBhdGgpLmdldENoYXJh
Y3RlcnNXaXRoVXBjb252ZXJ0KGJ1ZmZlci5kYXRhKCkpOwogICAgIGJ1ZmZlcltwYXRoLmxlbmd0
aCgpXSA9ICdcMCc7CiAKLSAgICBTdHJpbmcgY29tcG9uZW50Q29weSA9IGNvbXBvbmVudDsKLSAg
ICBpZiAoIVBhdGhBcHBlbmRXKGJ1ZmZlci5kYXRhKCksIGNvbXBvbmVudENvcHkuY2hhcmFjdGVy
c1dpdGhOdWxsVGVybWluYXRpb24oKS5kYXRhKCkpKQorICAgIGlmICghUGF0aEFwcGVuZFcoYnVm
ZmVyLmRhdGEoKSwgY29tcG9uZW50LmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0
YSgpKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgYnVmZmVyLnJlc2l6ZSh3Y3Ns
ZW4oYnVmZmVyLmRhdGEoKSkpOwotI2VuZGlmCisgICAgYnVmZmVyLnNocmluayh3Y3NsZW4oYnVm
ZmVyLmRhdGEoKSkpOwogCiAgICAgcmV0dXJuIFN0cmluZzo6YWRvcHQoYnVmZmVyKTsKKyNlbmRp
ZgogfQogCiAjaWYgIVVTRShDRikKIAogQ1N0cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
Y29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gcGF0
aC5kZXByZWNhdGVkQ2hhcmFjdGVycygpOworICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJz
ID0gcGF0aC51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKKworICAgIGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzID0gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzOwogICAgIGludCBzaXplID0gV2lkZUNoYXJU
b011bHRpQnl0ZShDUF9BQ1AsIDAsIGNoYXJhY3RlcnMsIHBhdGgubGVuZ3RoKCksIDAsIDAsIDAs
IDApIC0gMTsKIAogICAgIGNoYXIqIGJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCAwNjgwM2NlYzgzM2YyMjQ0YWE5NzFiZTA5YjJh
YTU2MTUzNmU4Y2M5Li5hMmI5ODYxMjU3MmYxMDg3YTg0OGE4OGUyZTc0ZmU2NTNhMmVlZGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC01
MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAibWFya3VwLmgiCiAjaW5jbHVkZSA8d3RmL1dpbmRvd3NF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU1OCw3ICs1NTksNyBAQCBzdGF0aWMgU3RyaW5nIGZpbGVzeXN0
ZW1QYXRoRnJvbVVybE9yVGl0bGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0
bAogCiAgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsKICAgICAgICAgc2l6ZV90IGxlbiA9IHN0
ZDo6bWluPHNpemVfdD4odGl0bGUubGVuZ3RoKCksIGZzUGF0aE1heExlbmd0aEV4Y2x1ZGluZ0V4
dGVuc2lvbik7Ci0gICAgICAgIENvcHlNZW1vcnkoZnNQYXRoQnVmZmVyLCB0aXRsZS5kZXByZWNh
dGVkQ2hhcmFjdGVycygpLCBsZW4gKiBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgU3RyaW5nVmll
dyh0aXRsZSkuc3Vic3RyaW5nKDAsIGxlbikuZ2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZlcnQoZnNQ
YXRoQnVmZmVyKTsKICAgICAgICAgZnNQYXRoQnVmZmVyW2xlbl0gPSAwOwogICAgICAgICBwYXRo
UmVtb3ZlQmFkRlNDaGFyYWN0ZXJzKGZzUGF0aEJ1ZmZlciwgbGVuKTsKICAgICB9CkBAIC01NzMs
MTAgKzU3NCwxMCBAQCBzdGF0aWMgU3RyaW5nIGZpbGVzeXN0ZW1QYXRoRnJvbVVybE9yVGl0bGUo
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bAogICAgICAgICBTdHJpbmcgbGFz
dENvbXBvbmVudCA9IGt1cmwubGFzdFBhdGhDb21wb25lbnQoKTsKICAgICAgICAgaWYgKGt1cmwu
aXNMb2NhbEZpbGUoKSB8fCAoIWlzTGluayAmJiAhbGFzdENvbXBvbmVudC5pc0VtcHR5KCkpKSB7
CiAgICAgICAgICAgICBsZW4gPSBzdGQ6Om1pbjxEV09SRD4oZnNQYXRoTWF4TGVuZ3RoRXhjbHVk
aW5nRXh0ZW5zaW9uLCBsYXN0Q29tcG9uZW50Lmxlbmd0aCgpKTsKLSAgICAgICAgICAgIENvcHlN
ZW1vcnkoZnNQYXRoQnVmZmVyLCBsYXN0Q29tcG9uZW50LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCks
IGxlbiAqIHNpemVvZihVQ2hhcikpOworICAgICAgICAgICAgU3RyaW5nVmlldyhsYXN0Q29tcG9u
ZW50KS5zdWJzdHJpbmcoMCwgbGVuKS5nZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydChmc1BhdGhC
dWZmZXIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbGVuID0gc3RkOjptaW48RFdP
UkQ+KGZzUGF0aE1heExlbmd0aEV4Y2x1ZGluZ0V4dGVuc2lvbiwgdXJsLmxlbmd0aCgpKTsKLSAg
ICAgICAgICAgIENvcHlNZW1vcnkoZnNQYXRoQnVmZmVyLCB1cmwuZGVwcmVjYXRlZENoYXJhY3Rl
cnMoKSwgbGVuICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgICAgICBTdHJpbmdWaWV3KHVybCku
c3Vic3RyaW5nKDAsIGxlbikuZ2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZlcnQoZnNQYXRoQnVmZmVy
KTsKICAgICAgICAgfQogICAgICAgICBmc1BhdGhCdWZmZXJbbGVuXSA9IDA7CiAgICAgICAgIHBh
dGhSZW1vdmVCYWRGU0NoYXJhY3RlcnMoZnNQYXRoQnVmZmVyLCBsZW4pOwpAQCAtNjcyLDcgKzY3
Myw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkxUb0RhdGFPYmplY3QoY29uc3QgVVJMJiBr
dXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyKQogICAgIGZnZC0+ZmdkWzBdLm5GaWxlU2l6ZUxv
dyA9IGNvbnRlbnQubGVuZ3RoKCk7CiAKICAgICB1bnNpZ25lZCBtYXhTaXplID0gc3RkOjptaW48
dW5zaWduZWQ+KGZzUGF0aC5sZW5ndGgoKSwgV1RGX0FSUkFZX0xFTkdUSChmZ2QtPmZnZFswXS5j
RmlsZU5hbWUpKTsKLSAgICBDb3B5TWVtb3J5KGZnZC0+ZmdkWzBdLmNGaWxlTmFtZSwgZnNQYXRo
LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIG1heFNpemUgKiBzaXplb2YoVUNoYXIpKTsKKyAgICBT
dHJpbmdWaWV3KGZzUGF0aCkuc3Vic3RyaW5nKDAsIG1heFNpemUpLmdldENoYXJhY3RlcnNXaXRo
VXBjb252ZXJ0KGZnZC0+ZmdkWzBdLmNGaWxlTmFtZSk7CiAgICAgR2xvYmFsVW5sb2NrKHVybEZp
bGVEZXNjcmlwdG9yKTsKIAogICAgIGNoYXIqIGZpbGVDb250ZW50cyA9IHN0YXRpY19jYXN0PGNo
YXIqPihHbG9iYWxMb2NrKHVybEZpbGVDb250ZW50KSk7CkBAIC05MDcsNyArOTA4LDcgQEAgc3Rh
dGljIEhHTE9CQUwgY3JlYXRlR2xvYmFsSW1hZ2VGaWxlRGVzY3JpcHRvcihjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJgogICAgIH0KIAogICAgIGludCBtYXhTaXplID0gc3RkOjptaW48
aW50Pihmc1BhdGgubGVuZ3RoKCksIFdURl9BUlJBWV9MRU5HVEgoZmdkLT5mZ2RbMF0uY0ZpbGVO
YW1lKSk7Ci0gICAgQ29weU1lbW9yeShmZ2QtPmZnZFswXS5jRmlsZU5hbWUsIChMUENXU1RSKWZz
UGF0aC5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBtYXhTaXplICogc2l6ZW9mKFVDaGFyKSk7Cisg
ICAgU3RyaW5nVmlldyhmc1BhdGgpLnN1YnN0cmluZygwLCBtYXhTaXplKS5nZXRDaGFyYWN0ZXJz
V2l0aFVwY29udmVydChmZ2QtPmZnZFswXS5jRmlsZU5hbWUpOwogICAgIEdsb2JhbFVubG9jayht
ZW1PYmopOwogCiAgICAgcmV0dXJuIG1lbU9iajsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggMGM0N2FkZmFmMDhkOWYxMGY0MDVjMDllYjdhNjQy
NTUzMmU2YmIzMi4uNWYxMmU3ZWIzNTk2NjcwNmIzNjBlNzViYTJhMjdiNDYyYmNmMzgyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAgLTM1MSw3
ICszNTEsNyBAQCB2b2lkIFBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNv
bnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKICAgICAgICAgICAgIGl0ZW1Gb250LnVwZGF0
ZShtX3BvcHVwQ2xpZW50LT5mb250U2VsZWN0b3IoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBw
b3B1cFdpZHRoID0gc3RkOjptYXgocG9wdXBXaWR0aCwgc3RhdGljX2Nhc3Q8aW50PihjZWlsZihp
dGVtRm9udC53aWR0aChUZXh0UnVuKHRleHQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgdGV4dC5s
ZW5ndGgoKSkpKSkpOworICAgICAgICBwb3B1cFdpZHRoID0gc3RkOjptYXgocG9wdXBXaWR0aCwg
c3RhdGljX2Nhc3Q8aW50PihjZWlsZihpdGVtRm9udC53aWR0aChUZXh0UnVuKHRleHQpKSkpKTsK
ICAgICB9CiAKICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heFBvcHVwSGVpZ2h0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dlYkNvcmVUZXh0UmVuZGVyZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dlYkNvcmVUZXh0UmVuZGVyZXIuY3BwCmlu
ZGV4IGE0OWQ5OTNiNzRmYjk3ZDIxZWQ3M2M3NjhhNmM0YmFmMmRhZTNiNGQuLjQzNzgwMGU4OTQ0
ZDU3NjY0MzJkYjJiMmRiYTg1MzRlZWM2Y2RmY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9XZWJDb3JlVGV4dFJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vV2ViQ29yZVRleHRSZW5kZXJlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAg
c3RhdGljIHZvaWQgZG9EcmF3VGV4dEF0UG9pbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnMKIHsKICAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRlciBm
b250Q2FjaGVQdXJnZVByZXZlbnRlcjsKIAotICAgIFRleHRSdW4gcnVuKHRleHQuZGVwcmVjYXRl
ZENoYXJhY3RlcnMoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgVGV4dFJ1biBydW4odGV4dCk7CiAK
ICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiAg
ICAgaWYgKGlzT25lTGVmdFRvUmlnaHRSdW4ocnVuKSkKQEAgLTYzLDEyICs2MywxMiBAQCBzdGF0
aWMgdm9pZCBkb0RyYXdUZXh0QXRQb2ludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29ucwogCiAgICAgICAgIGludCBiZWZvcmVXaWR0aDsKICAgICAgICAg
aWYgKHVuZGVybGluZWRJbmRleCA+IDApIHsKLSAgICAgICAgICAgIFRleHRSdW4gYmVmb3JlUnVu
KHRleHQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgdW5kZXJsaW5lZEluZGV4KTsKKyAgICAgICAg
ICAgIFRleHRSdW4gYmVmb3JlUnVuKFN0cmluZ1ZpZXcodGV4dCkuc3Vic3RyaW5nKDAsIHVuZGVy
bGluZWRJbmRleCkpOwogICAgICAgICAgICAgYmVmb3JlV2lkdGggPSBmb250LndpZHRoKGJlZm9y
ZVJ1bik7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYmVmb3JlV2lkdGggPSAwOwogCi0g
ICAgICAgIFRleHRSdW4gdW5kZXJsaW5lZFJ1bih0ZXh0LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCkg
KyB1bmRlcmxpbmVkSW5kZXgsIDEpOworICAgICAgICBUZXh0UnVuIHVuZGVybGluZWRSdW4oU3Ry
aW5nVmlldyh0ZXh0KS5zdWJzdHJpbmcodW5kZXJsaW5lZEluZGV4LCAxKSk7CiAgICAgICAgIGlu
dCB1bmRlcmxpbmVkV2lkdGggPSBmb250LndpZHRoKHVuZGVybGluZWRSdW4pOwogCiAgICAgICAg
IEludFBvaW50IHVuZGVybGluZVBvaW50KHBvaW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227375</attachid>
            <date>2014-03-20 21:10:26 -0700</date>
            <delta_ts>2014-03-21 08:23:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130515-20140320211014.patch</filename>
            <type>text/plain</type>
            <size>17573</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmIyMGNlOTMzMmEzYWNi
NDMyMDc3OWVlMDI3Yjg3ZjAwZmNiNGExNy4uNmY0ZDA0NDgyMzE1NDY4ZTU3MzQyZDY1NTY3NTgw
OTNhODQ5NGZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAzLTIwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGRlcHJlY2F0
ZWRDaGFyYWN0ZXJzIGluIFdlYkNvcmUvcGxhdGZvcm0vd2luCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA1MTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4pOiBBZGQgYSBjb25zdHJ1Y3Rv
ciB0aGF0IHRha2VzIGEgU3RyaW5nVmlldy4KKyAgICAgICAgTGF0ZXIsIHdlIG1pZ2h0IHdhbnQg
dG8gZXhjbHVzaXZlbHkgdXNlIHRoZSBTdHJpbmdWaWV3IHZlcnNpb24gYW5kIHJlbW92ZQorICAg
ICAgICBzb21lIG9mIHRoZSBvdGhlcnMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRU
ZXh0KTogQWRkIGEgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBTdHJpbmdW
aWV3LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVy
cyk6IFVzZSBTdHJpbmdWaWV3OjpnZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydC4KKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUdESUZvbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Z2V0VHJhaXRzSW5GYW1pbHkpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
QlN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCU3RyaW5nOjpCU3RyaW5nKTogVXNlIFN0
cmluZ1ZpZXc6OnVwY29udmVydGVkQ2hhcmFjdGVycy4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
Q2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdsb2Jh
bERhdGEpOiBVc2UgU3RyaW5nVmlldzo6Z2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZlcnQuCisgICAg
ICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KTogVXNlIFN0cmluZ0J1aWxkZXIgYW5kIFN0cmluZ1Zp
ZXc6OmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0LgorICAgICAgICAoV2ViQ29yZTo6ZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKTogVXNlIFN0cmluZ1ZpZXc6OnVwY29udmVydGVkQ2hhcmFjdGVy
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpmaWxlc3lzdGVtUGF0aEZyb21VcmxPclRpdGxlKTogVXNlIFN0cmluZ1ZpZXc6Omdl
dENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
d3JpdGVVUkxUb0RhdGFPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUds
b2JhbEltYWdlRmlsZURlc2NyaXB0b3IpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpjYWxj
dWxhdGVQb3NpdGlvbkFuZFNpemUpOiBVc2UgdGhlIG5ldyBUZXh0UnVuIGNvbnN0cnVjdG9yLgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9XZWJDb3JlVGV4dFJlbmRlcmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmRvRHJhd1RleHRBdFBvaW50KTogRGl0dG8uCisKIDIwMTQtMDMtMjAgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFN1cHBy
ZXNzIGVycm9ycyBhYm91dCB1c2luZyBnZGtfdGhyZWFkc19lbnRlciBnZGtfdGhyZWFkc19sZWF2
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCmluZGV4IDBiMzRi
ZWQyNGE2NzZhNGI2NjkzNmRlNDI0OTZhOTA4Yjg1ZTZmMTUuLjVkMGM4N2Q2ZDg3ZGE1MzFhNzU5
NjRlYmI1Yzk0NGY4NmVjNGEyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RleHRSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0UnVuLmgKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgIlRleHREaXJlY3Rpb24u
aCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zNyw2ICszNyw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNz
IEdseXBoQnVmZmVyOwogY2xhc3MgR2x5cGhUb1BhdGhUcmFuc2xhdG9yOwogY2xhc3MgU2ltcGxl
Rm9udERhdGE7CisKIHN0cnVjdCBHbHlwaERhdGE7CiBzdHJ1Y3QgV2lkdGhJdGVyYXRvcjsKIApA
QCAtMTI1LDYgKzEyNiwyOSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBUZXh0
UnVuKFN0cmluZ1ZpZXcgcywgZmxvYXQgeHBvcyA9IDAsIGZsb2F0IGV4cGFuc2lvbiA9IDAsIEV4
cGFuc2lvbkJlaGF2aW9yIGV4cGFuc2lvbkJlaGF2aW9yID0gQWxsb3dUcmFpbGluZ0V4cGFuc2lv
biB8IEZvcmJpZExlYWRpbmdFeHBhbnNpb24sIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRS
LCBib29sIGRpcmVjdGlvbmFsT3ZlcnJpZGUgPSBmYWxzZSwgYm9vbCBjaGFyYWN0ZXJTY2FuRm9y
Q29kZVBhdGggPSB0cnVlLCBSb3VuZGluZ0hhY2tzIHJvdW5kaW5nSGFja3MgPSBSdW5Sb3VuZGlu
ZyB8IFdvcmRSb3VuZGluZykKKyAgICAgICAgOiBtX2NoYXJhY3RlcnNMZW5ndGgocy5sZW5ndGgo
KSkKKyAgICAgICAgLCBtX2xlbihzLmxlbmd0aCgpKQorICAgICAgICAsIG1feHBvcyh4cG9zKQor
ICAgICAgICAsIG1faG9yaXpvbnRhbEdseXBoU3RyZXRjaCgxKQorICAgICAgICAsIG1fZXhwYW5z
aW9uKGV4cGFuc2lvbikKKyAgICAgICAgLCBtX2V4cGFuc2lvbkJlaGF2aW9yKGV4cGFuc2lvbkJl
aGF2aW9yKQorICAgICAgICAsIG1faXM4Qml0KHMuaXM4Qml0KCkpCisgICAgICAgICwgbV9hbGxv
d1RhYnMoZmFsc2UpCisgICAgICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0aW9uKQorICAgICAgICAs
IG1fZGlyZWN0aW9uYWxPdmVycmlkZShkaXJlY3Rpb25hbE92ZXJyaWRlKQorICAgICAgICAsIG1f
Y2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKGNoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCkKKyAgICAg
ICAgLCBtX2FwcGx5UnVuUm91bmRpbmcoKHJvdW5kaW5nSGFja3MgJiBSdW5Sb3VuZGluZykgJiYg
c19hbGxvd3NSb3VuZGluZ0hhY2tzKQorICAgICAgICAsIG1fYXBwbHlXb3JkUm91bmRpbmcoKHJv
dW5kaW5nSGFja3MgJiBXb3JkUm91bmRpbmcpICYmIHNfYWxsb3dzUm91bmRpbmdIYWNrcykKKyAg
ICAgICAgLCBtX2Rpc2FibGVTcGFjaW5nKGZhbHNlKQorICAgICAgICAsIG1fdGFiU2l6ZSgwKQor
ICAgIHsKKyAgICAgICAgaWYgKHMuaXM4Qml0KCkpCisgICAgICAgICAgICBtX2RhdGEuY2hhcmFj
dGVyczggPSBzLmNoYXJhY3RlcnM4KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZGF0
YS5jaGFyYWN0ZXJzMTYgPSBzLmNoYXJhY3RlcnMxNigpOworICAgIH0KKwogICAgIFRleHRSdW4g
c3ViUnVuKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihzdGFydE9mZnNldCA8
IG1fbGVuKTsKQEAgLTE1OCw2ICsxODIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFRleHQo
Y29uc3QgTENoYXIqIGMsIHVuc2lnbmVkIGxlbikgeyBtX2RhdGEuY2hhcmFjdGVyczggPSBjOyBt
X2xlbiA9IGxlbjsgbV9pczhCaXQgPSB0cnVlO30KICAgICB2b2lkIHNldFRleHQoY29uc3QgVUNo
YXIqIGMsIHVuc2lnbmVkIGxlbikgeyBtX2RhdGEuY2hhcmFjdGVyczE2ID0gYzsgbV9sZW4gPSBs
ZW47IG1faXM4Qml0ID0gZmFsc2U7fQorICAgIHZvaWQgc2V0VGV4dChTdHJpbmdWaWV3KTsKICAg
ICB2b2lkIHNldENoYXJhY3RlcnNMZW5ndGgodW5zaWduZWQgY2hhcmFjdGVyc0xlbmd0aCkgeyBt
X2NoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzTGVuZ3RoOyB9CiAKICAgICBmbG9hdCBob3Jp
em9udGFsR2x5cGhTdHJldGNoKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsR2x5cGhTdHJl
dGNoOyB9CkBAIC0yNDIsNiArMjY3LDE2IEBAIGlubGluZSB2b2lkIFRleHRSdW46OnNldFRhYlNp
emUoYm9vbCBhbGxvdywgdW5zaWduZWQgc2l6ZSkKICAgICBtX3RhYlNpemUgPSBzaXplOwogfQog
CitpbmxpbmUgdm9pZCBUZXh0UnVuOjpzZXRUZXh0KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAg
IG1fbGVuID0gc3RyaW5nLmxlbmd0aCgpOworICAgIG1faXM4Qml0ID0gc3RyaW5nLmlzOEJpdCgp
OworICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCisgICAgICAgIG1fZGF0YS5jaGFyYWN0ZXJzOCA9
IHN0cmluZy5jaGFyYWN0ZXJzOCgpOworICAgIGVsc2UKKyAgICAgICAgbV9kYXRhLmNoYXJhY3Rl
cnMxNiA9IHN0cmluZy5jaGFyYWN0ZXJzMTYoKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAK
aW5kZXggN2QwZjM4NjQ1NmU1MjExMDZjNGI2Y2IxZTkyN2JjZmJjNDQ3NTY2MS4uOWY2YTJlNDI3
MmM3ZmZlMWE0ZmFkNjI1MDcyZmNmZDM1ZDgxMjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM2LDcgKzM2
LDkgQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL3dpbi9HRElPYmplY3QuaD4KKwogI2lmIFVTRShD
RykKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4K
ICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CkBAIC0yNzYsNyArMjc4LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
OjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2MKIAogICAgICAgICBM
T0dGT05UIGxvZ0ZvbnQ7CiAgICAgICAgIGxvZ0ZvbnQubGZDaGFyU2V0ID0gREVGQVVMVF9DSEFS
U0VUOwotICAgICAgICBtZW1jcHkobG9nRm9udC5sZkZhY2VOYW1lLCBsaW5rZWRGb250cy0+YXQo
bGlua2VkRm9udEluZGV4KS5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBsaW5rZWRGb250cy0+YXQo
bGlua2VkRm9udEluZGV4KS5sZW5ndGgoKSAqIHNpemVvZihXQ0hBUikpOworICAgICAgICBTdHJp
bmdWaWV3KGxpbmtlZEZvbnRzLT5hdChsaW5rZWRGb250SW5kZXgpKS5nZXRDaGFyYWN0ZXJzV2l0
aFVwY29udmVydChsb2dGb250LmxmRmFjZU5hbWUpOwogICAgICAgICBsb2dGb250LmxmRmFjZU5h
bWVbbGlua2VkRm9udHMtPmF0KGxpbmtlZEZvbnRJbmRleCkubGVuZ3RoKCldID0gMDsKICAgICAg
ICAgRW51bUZvbnRGYW1pbGllc0V4KGhkYywgJmxvZ0ZvbnQsIGxpbmtlZEZvbnRFbnVtUHJvYywg
cmVpbnRlcnByZXRfY2FzdDxMUEFSQU0+KCZoZm9udCksIDApOwogICAgICAgICBsaW5rZWRGb250
SW5kZXgrKzsKQEAgLTQ0Niw5ICs0NDgsOSBAQCBzdGF0aWMgR0RJT2JqZWN0PEhGT05UPiBjcmVh
dGVHRElGb250KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBMT05HIGRlc2lyZWRXZQogCiAg
ICAgTE9HRk9OVCBsb2dGb250OwogICAgIGxvZ0ZvbnQubGZDaGFyU2V0ID0gREVGQVVMVF9DSEFS
U0VUOwotICAgIHVuc2lnbmVkIGZhbWlseUxlbmd0aCA9IG1pbihmYW1pbHkubGVuZ3RoKCksIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihMRl9GQUNFU0laRSAtIDEpKTsKLSAgICBtZW1jcHkobG9nRm9u
dC5sZkZhY2VOYW1lLCBmYW1pbHkuc3RyaW5nKCkuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgZmFt
aWx5TGVuZ3RoICogc2l6ZW9mKFVDaGFyKSk7Ci0gICAgbG9nRm9udC5sZkZhY2VOYW1lW2ZhbWls
eUxlbmd0aF0gPSAwOworICAgIFN0cmluZ1ZpZXcgdHJ1bmNhdGVkRmFtaWx5ID0gU3RyaW5nVmll
dyhmYW1pbHkpLnN1YnN0cmluZygwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTEZfRkFDRVNJWkUg
LSAxKSk7CisgICAgdHJ1bmNhdGVkRmFtaWx5LmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0KGxv
Z0ZvbnQubGZGYWNlTmFtZSk7CisgICAgbG9nRm9udC5sZkZhY2VOYW1lW3RydW5jYXRlZEZhbWls
eS5sZW5ndGgoKV0gPSAwOwogICAgIGxvZ0ZvbnQubGZQaXRjaEFuZEZhbWlseSA9IDA7CiAKICAg
ICBNYXRjaEltcHJvdmluZ1Byb2NEYXRhIG1hdGNoRGF0YShkZXNpcmVkV2VpZ2h0LCBkZXNpcmVk
SXRhbGljKTsKQEAgLTUyOCw5ICs1MzAsOSBAQCB2b2lkIEZvbnRDYWNoZTo6Z2V0VHJhaXRzSW5G
YW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLCBWZWN0b3I8dW5zaWduZQogCiAg
ICAgTE9HRk9OVCBsb2dGb250OwogICAgIGxvZ0ZvbnQubGZDaGFyU2V0ID0gREVGQVVMVF9DSEFS
U0VUOwotICAgIHVuc2lnbmVkIGZhbWlseUxlbmd0aCA9IG1pbihmYW1pbHlOYW1lLmxlbmd0aCgp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTEZfRkFDRVNJWkUgLSAxKSk7Ci0gICAgbWVtY3B5KGxv
Z0ZvbnQubGZGYWNlTmFtZSwgZmFtaWx5TmFtZS5zdHJpbmcoKS5kZXByZWNhdGVkQ2hhcmFjdGVy
cygpLCBmYW1pbHlMZW5ndGggKiBzaXplb2YoVUNoYXIpKTsKLSAgICBsb2dGb250LmxmRmFjZU5h
bWVbZmFtaWx5TGVuZ3RoXSA9IDA7CisgICAgU3RyaW5nVmlldyB0cnVuY2F0ZWRGYW1pbHkgPSBT
dHJpbmdWaWV3KGZhbWlseU5hbWUpLnN1YnN0cmluZygwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
TEZfRkFDRVNJWkUgLSAxKSk7CisgICAgdHJ1bmNhdGVkRmFtaWx5LmdldENoYXJhY3RlcnNXaXRo
VXBjb252ZXJ0KGxvZ0ZvbnQubGZGYWNlTmFtZSk7CisgICAgbG9nRm9udC5sZkZhY2VOYW1lW3Ry
dW5jYXRlZEZhbWlseS5sZW5ndGgoKV0gPSAwOwogICAgIGxvZ0ZvbnQubGZQaXRjaEFuZEZhbWls
eSA9IDA7CiAKICAgICBUcmFpdHNJbkZhbWlseVByb2NEYXRhIHByb2NEYXRhKGZhbWlseU5hbWUp
OwpAQCAtNTg3LDQgKzU4OSwzIEBAIFBhc3NPd25QdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENh
Y2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwCiB9CiAKIH0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0JTdHJpbmcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0JTdHJpbmcuY3BwCmluZGV4IDdiZjNlNjdhNzBhYzdk
MGNhZWU5MTZmOWJhOWQzYjkxNzE2MmMxOGEuLjhiYWQ5YzRiYzMzNWNkYTExZWJmOWJhZmY2ZTRi
OTcyZjY4Mjc1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9CU3Ry
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQlN0cmluZy5jcHAKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiAjaWYgVVNFKENG
KQogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC02NSw3ICs2
NSw3IEBAIEJTdHJpbmc6OkJTdHJpbmcoY29uc3QgU3RyaW5nJiBzKQogICAgIGlmIChzLmlzTnVs
bCgpKQogICAgICAgICBtX2JzdHIgPSAwOwogICAgIGVsc2UKLSAgICAgICAgbV9ic3RyID0gU3lz
QWxsb2NTdHJpbmdMZW4ocy5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBzLmxlbmd0aCgpKTsKKyAg
ICAgICAgbV9ic3RyID0gU3lzQWxsb2NTdHJpbmdMZW4oU3RyaW5nVmlldyhzKS51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKSwgcy5sZW5ndGgoKSk7CiB9CiAKIEJTdHJpbmc6OkJTdHJpbmcoY29uc3Qg
VVJMJiB1cmwpCkBAIC03Myw3ICs3Myw3IEBAIEJTdHJpbmc6OkJTdHJpbmcoY29uc3QgVVJMJiB1
cmwpCiAgICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgbV9ic3RyID0gMDsKICAgICBlbHNl
Ci0gICAgICAgIG1fYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVuKHVybC5zdHJpbmcoKS5kZXByZWNh
dGVkQ2hhcmFjdGVycygpLCB1cmwuc3RyaW5nKCkubGVuZ3RoKCkpOworICAgICAgICBtX2JzdHIg
PSBTeXNBbGxvY1N0cmluZ0xlbihTdHJpbmdWaWV3KHVybC5zdHJpbmcoKSkudXBjb252ZXJ0ZWRD
aGFyYWN0ZXJzKCksIHVybC5zdHJpbmcoKS5sZW5ndGgoKSk7CiB9CiAKIEJTdHJpbmc6OkJTdHJp
bmcoY29uc3QgQXRvbWljU3RyaW5nJiBzKQpAQCAtODEsNyArODEsNyBAQCBCU3RyaW5nOjpCU3Ry
aW5nKGNvbnN0IEF0b21pY1N0cmluZyYgcykKICAgICBpZiAocy5pc051bGwoKSkKICAgICAgICAg
bV9ic3RyID0gMDsKICAgICBlbHNlCi0gICAgICAgIG1fYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVu
KHMuc3RyaW5nKCkuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgcy5sZW5ndGgoKSk7CisgICAgICAg
IG1fYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVuKFN0cmluZ1ZpZXcocy5zdHJpbmcoKSkudXBjb252
ZXJ0ZWRDaGFyYWN0ZXJzKCksIHMubGVuZ3RoKCkpOwogfQogCiAjaWYgVVNFKENGKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNw
cAppbmRleCA4MTc0OTkxYzNkYzNhZGExNDYwZjZhMmFjYzNmZjhjNDRmMjQ2NjM3Li4yYmNjZjFh
NTBlMjc2ZTYzMjgzNjVjMzYwNDc1YjI2MDA3ZjQ5ZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApAQCAtMzUsNyAr
MzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgIU9TKFdJTkNFKQogI2luY2x1ZGUgPHNo
bHdhcGkuaD4KQEAgLTE5NCw3ICsxOTMsNyBAQCBIR0xPQkFMIGNyZWF0ZUdsb2JhbERhdGEoY29u
c3QgU3RyaW5nJiBzdHIpCiAgICAgaWYgKCF2bSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgVUNo
YXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PFVDaGFyKj4oR2xvYmFsTG9jayh2bSkpOwotICAgIG1l
bWNweShidWZmZXIsIHN0ci5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBzdHIubGVuZ3RoKCkgKiBz
aXplb2YoVUNoYXIpKTsKKyAgICBTdHJpbmdWaWV3KHN0cikuZ2V0Q2hhcmFjdGVyc1dpdGhVcGNv
bnZlcnQoYnVmZmVyKTsKICAgICBidWZmZXJbc3RyLmxlbmd0aCgpXSA9IDA7CiAgICAgR2xvYmFs
VW5sb2NrKHZtKTsKICAgICByZXR1cm4gdm07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vRmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggZTJkZGZkNTVlOTkyM2RjY2I4ZDhlZWJhN2I3OGNl
OTdlYWUxYjRkMy4uYzY1MjkzZDAyMDQ5ZGJiMmVhOWFhYjdmMjBiNDIwYzI2MWVkNDJlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMzYs
NyArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDxzaGxvYmou
aD4KQEAgLTE1NiwzOSArMTU2LDQzIEBAIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3Qg
U3RyaW5nJiBwYXRoKQogCiBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0
cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25lbnQpCiB7Ci0gICAgVmVjdG9yPFVDaGFy
PiBidWZmZXIoTUFYX1BBVEgpOwotCiAjaWYgT1MoV0lOQ0UpCi0gICAgYnVmZmVyLmFwcGVuZChw
YXRoLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIHBhdGgubGVuZ3RoKCkpOworICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKKworICAgIGJ1aWxkZXIuYXBwZW5kKHBhdGgpOwogCiAgICAgVUNoYXIg
bGFzdFBhdGhDaGFyYWN0ZXIgPSBwYXRoW3BhdGgubGVuZ3RoKCkgLSAxXTsKICAgICBpZiAobGFz
dFBhdGhDaGFyYWN0ZXIgIT0gTCdcXCcgJiYgbGFzdFBhdGhDaGFyYWN0ZXIgIT0gTCcvJyAmJiBj
b21wb25lbnRbMF0gIT0gTCdcXCcgJiYgY29tcG9uZW50WzBdICE9IEwnLycpCi0gICAgICAgIGJ1
ZmZlci5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOwogCi0gICAgYnVmZmVyLmFwcGVuZChj
b21wb25lbnQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgY29tcG9uZW50Lmxlbmd0aCgpKTsKLSAg
ICBidWZmZXIuc2hyaW5rVG9GaXQoKTsKKyAgICBidWlsZGVyLmFwcGVuZChjb21wb25lbnQpOwor
CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKICNlbHNlCisgICAgVmVjdG9yPFVDaGFy
PiBidWZmZXIoTUFYX1BBVEgpOworCiAgICAgaWYgKHBhdGgubGVuZ3RoKCkgKyAxID4gYnVmZmVy
LnNpemUoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgbWVtY3B5KGJ1ZmZlci5k
YXRhKCksIHBhdGguZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgcGF0aC5sZW5ndGgoKSAqIHNpemVv
ZihVQ2hhcikpOworICAgIFN0cmluZ1ZpZXcocGF0aCkuZ2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZl
cnQoYnVmZmVyLmRhdGEoKSk7CiAgICAgYnVmZmVyW3BhdGgubGVuZ3RoKCldID0gJ1wwJzsKIAot
ICAgIFN0cmluZyBjb21wb25lbnRDb3B5ID0gY29tcG9uZW50OwotICAgIGlmICghUGF0aEFwcGVu
ZFcoYnVmZmVyLmRhdGEoKSwgY29tcG9uZW50Q29weS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5h
dGlvbigpLmRhdGEoKSkpCisgICAgaWYgKCFQYXRoQXBwZW5kVyhidWZmZXIuZGF0YSgpLCBjb21w
b25lbnQuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5kYXRhKCkpKQogICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBidWZmZXIucmVzaXplKHdjc2xlbihidWZmZXIuZGF0YSgp
KSk7Ci0jZW5kaWYKKyAgICBidWZmZXIuc2hyaW5rKHdjc2xlbihidWZmZXIuZGF0YSgpKSk7CiAK
ICAgICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOworI2VuZGlmCiB9CiAKICNpZiAhVVNF
KENGKQogCiBDU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHBh
dGgpCiB7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBwYXRoLmRlcHJlY2F0ZWRDaGFy
YWN0ZXJzKCk7CisgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBwYXRoLnVwY29udmVy
dGVkQ2hhcmFjdGVycygpOworCisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB1cGNvbnZl
cnRlZENoYXJhY3RlcnM7CiAgICAgaW50IHNpemUgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FD
UCwgMCwgY2hhcmFjdGVycywgcGF0aC5sZW5ndGgoKSwgMCwgMCwgMCwgMCkgLSAxOwogCiAgICAg
Y2hhciogYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bh
c3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRX
aW4uY3BwCmluZGV4IDA2ODAzY2VjODMzZjIyNDRhYTk3MWJlMDliMmFhNTYxNTM2ZThjYzkuLmEy
Yjk4NjEyNTcyZjEwODdhODQ4YTg4ZTJlNzRmZTY1M2EyZWVkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNp
bmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+
CiAjaW5jbHVkZSA8d3RmL3dpbi9HRElPYmplY3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTU4LDcgKzU1OSw3IEBAIHN0YXRpYyBTdHJpbmcgZmlsZXN5c3RlbVBhdGhGcm9tVXJsT3JU
aXRsZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsCiAKICAgICBpZiAoIXRp
dGxlLmlzRW1wdHkoKSkgewogICAgICAgICBzaXplX3QgbGVuID0gc3RkOjptaW48c2l6ZV90Pih0
aXRsZS5sZW5ndGgoKSwgZnNQYXRoTWF4TGVuZ3RoRXhjbHVkaW5nRXh0ZW5zaW9uKTsKLSAgICAg
ICAgQ29weU1lbW9yeShmc1BhdGhCdWZmZXIsIHRpdGxlLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCks
IGxlbiAqIHNpemVvZihVQ2hhcikpOworICAgICAgICBTdHJpbmdWaWV3KHRpdGxlKS5zdWJzdHJp
bmcoMCwgbGVuKS5nZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydChmc1BhdGhCdWZmZXIpOwogICAg
ICAgICBmc1BhdGhCdWZmZXJbbGVuXSA9IDA7CiAgICAgICAgIHBhdGhSZW1vdmVCYWRGU0NoYXJh
Y3RlcnMoZnNQYXRoQnVmZmVyLCBsZW4pOwogICAgIH0KQEAgLTU3MywxMCArNTc0LDEwIEBAIHN0
YXRpYyBTdHJpbmcgZmlsZXN5c3RlbVBhdGhGcm9tVXJsT3JUaXRsZShjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiB0aXRsCiAgICAgICAgIFN0cmluZyBsYXN0Q29tcG9uZW50ID0ga3Vy
bC5sYXN0UGF0aENvbXBvbmVudCgpOwogICAgICAgICBpZiAoa3VybC5pc0xvY2FsRmlsZSgpIHx8
ICghaXNMaW5rICYmICFsYXN0Q29tcG9uZW50LmlzRW1wdHkoKSkpIHsKICAgICAgICAgICAgIGxl
biA9IHN0ZDo6bWluPERXT1JEPihmc1BhdGhNYXhMZW5ndGhFeGNsdWRpbmdFeHRlbnNpb24sIGxh
c3RDb21wb25lbnQubGVuZ3RoKCkpOwotICAgICAgICAgICAgQ29weU1lbW9yeShmc1BhdGhCdWZm
ZXIsIGxhc3RDb21wb25lbnQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgbGVuICogc2l6ZW9mKFVD
aGFyKSk7CisgICAgICAgICAgICBTdHJpbmdWaWV3KGxhc3RDb21wb25lbnQpLnN1YnN0cmluZygw
LCBsZW4pLmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0KGZzUGF0aEJ1ZmZlcik7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBsZW4gPSBzdGQ6Om1pbjxEV09SRD4oZnNQYXRoTWF4TGVu
Z3RoRXhjbHVkaW5nRXh0ZW5zaW9uLCB1cmwubGVuZ3RoKCkpOwotICAgICAgICAgICAgQ29weU1l
bW9yeShmc1BhdGhCdWZmZXIsIHVybC5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBsZW4gKiBzaXpl
b2YoVUNoYXIpKTsKKyAgICAgICAgICAgIFN0cmluZ1ZpZXcodXJsKS5zdWJzdHJpbmcoMCwgbGVu
KS5nZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydChmc1BhdGhCdWZmZXIpOwogICAgICAgICB9CiAg
ICAgICAgIGZzUGF0aEJ1ZmZlcltsZW5dID0gMDsKICAgICAgICAgcGF0aFJlbW92ZUJhZEZTQ2hh
cmFjdGVycyhmc1BhdGhCdWZmZXIsIGxlbik7CkBAIC02NzIsNyArNjczLDcgQEAgdm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZVVSTFRvRGF0YU9iamVjdChjb25zdCBVUkwmIGt1cmwsIGNvbnN0IFN0cmlu
ZyYgdGl0bGVTdHIpCiAgICAgZmdkLT5mZ2RbMF0ubkZpbGVTaXplTG93ID0gY29udGVudC5sZW5n
dGgoKTsKIAogICAgIHVuc2lnbmVkIG1heFNpemUgPSBzdGQ6Om1pbjx1bnNpZ25lZD4oZnNQYXRo
Lmxlbmd0aCgpLCBXVEZfQVJSQVlfTEVOR1RIKGZnZC0+ZmdkWzBdLmNGaWxlTmFtZSkpOwotICAg
IENvcHlNZW1vcnkoZmdkLT5mZ2RbMF0uY0ZpbGVOYW1lLCBmc1BhdGguZGVwcmVjYXRlZENoYXJh
Y3RlcnMoKSwgbWF4U2l6ZSAqIHNpemVvZihVQ2hhcikpOworICAgIFN0cmluZ1ZpZXcoZnNQYXRo
KS5zdWJzdHJpbmcoMCwgbWF4U2l6ZSkuZ2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZlcnQoZmdkLT5m
Z2RbMF0uY0ZpbGVOYW1lKTsKICAgICBHbG9iYWxVbmxvY2sodXJsRmlsZURlc2NyaXB0b3IpOwog
CiAgICAgY2hhciogZmlsZUNvbnRlbnRzID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
dXJsRmlsZUNvbnRlbnQpKTsKQEAgLTkwNyw3ICs5MDgsNyBAQCBzdGF0aWMgSEdMT0JBTCBjcmVh
dGVHbG9iYWxJbWFnZUZpbGVEZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmCiAgICAgfQogCiAgICAgaW50IG1heFNpemUgPSBzdGQ6Om1pbjxpbnQ+KGZzUGF0aC5sZW5n
dGgoKSwgV1RGX0FSUkFZX0xFTkdUSChmZ2QtPmZnZFswXS5jRmlsZU5hbWUpKTsKLSAgICBDb3B5
TWVtb3J5KGZnZC0+ZmdkWzBdLmNGaWxlTmFtZSwgKExQQ1dTVFIpZnNQYXRoLmRlcHJlY2F0ZWRD
aGFyYWN0ZXJzKCksIG1heFNpemUgKiBzaXplb2YoVUNoYXIpKTsKKyAgICBTdHJpbmdWaWV3KGZz
UGF0aCkuc3Vic3RyaW5nKDAsIG1heFNpemUpLmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0KGZn
ZC0+ZmdkWzBdLmNGaWxlTmFtZSk7CiAgICAgR2xvYmFsVW5sb2NrKG1lbU9iaik7CiAKICAgICBy
ZXR1cm4gbWVtT2JqOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmNwcAppbmRleCAwYzQ3YWRmYWYwOGQ5ZjEwZjQwNWMwOWViN2E2NDI1NTMyZTZiYjMyLi41ZjEy
ZTdlYjM1OTY2NzA2YjM2MGU3NWJhMmEyN2I0NjJiY2YzODJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApAQCAtMzUxLDcgKzM1MSw3IEBAIHZvaWQg
UG9wdXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwg
RnJhbWVWaWV3KiB2KQogICAgICAgICAgICAgaXRlbUZvbnQudXBkYXRlKG1fcG9wdXBDbGllbnQt
PmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAgfQogCi0gICAgICAgIHBvcHVwV2lkdGggPSBzdGQ6
Om1heChwb3B1cFdpZHRoLCBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKGl0ZW1Gb250LndpZHRoKFRl
eHRSdW4odGV4dC5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCB0ZXh0Lmxlbmd0aCgpKSkpKSk7Cisg
ICAgICAgIHBvcHVwV2lkdGggPSBzdGQ6Om1heChwb3B1cFdpZHRoLCBzdGF0aWNfY2FzdDxpbnQ+
KGNlaWxmKGl0ZW1Gb250LndpZHRoKFRleHRSdW4odGV4dCkpKSkpOwogICAgIH0KIAogICAgIGlm
IChuYXR1cmFsSGVpZ2h0ID4gbWF4UG9wdXBIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2ViQ29yZVRleHRSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vV2ViQ29yZVRleHRSZW5kZXJlci5jcHAKaW5kZXggYTQ5ZDk5M2I3NGZi
OTdkMjFlZDczYzc2OGE2YzRiYWYyZGFlM2I0ZC4uNDM3ODAwZTg5NDRkNTc2NjQzMmRiMmIyZGJh
ODUzNGVlYzZjZGZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dl
YkNvcmVUZXh0UmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9X
ZWJDb3JlVGV4dFJlbmRlcmVyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgdm9pZCBkb0Ry
YXdUZXh0QXRQb2ludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29ucwogewogICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJl
dmVudGVyOwogCi0gICAgVGV4dFJ1biBydW4odGV4dC5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCB0
ZXh0Lmxlbmd0aCgpKTsKKyAgICBUZXh0UnVuIHJ1bih0ZXh0KTsKIAogICAgIGNvbnRleHQuc2V0
RmlsbENvbG9yKGNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICBpZiAoaXNPbmVMZWZ0
VG9SaWdodFJ1bihydW4pKQpAQCAtNjMsMTIgKzYzLDEyIEBAIHN0YXRpYyB2b2lkIGRvRHJhd1Rl
eHRBdFBvaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zCiAKICAgICAgICAgaW50IGJlZm9yZVdpZHRoOwogICAgICAgICBpZiAodW5kZXJsaW5lZElu
ZGV4ID4gMCkgewotICAgICAgICAgICAgVGV4dFJ1biBiZWZvcmVSdW4odGV4dC5kZXByZWNhdGVk
Q2hhcmFjdGVycygpLCB1bmRlcmxpbmVkSW5kZXgpOworICAgICAgICAgICAgVGV4dFJ1biBiZWZv
cmVSdW4oU3RyaW5nVmlldyh0ZXh0KS5zdWJzdHJpbmcoMCwgdW5kZXJsaW5lZEluZGV4KSk7CiAg
ICAgICAgICAgICBiZWZvcmVXaWR0aCA9IGZvbnQud2lkdGgoYmVmb3JlUnVuKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBiZWZvcmVXaWR0aCA9IDA7CiAKLSAgICAgICAgVGV4dFJ1biB1
bmRlcmxpbmVkUnVuKHRleHQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSArIHVuZGVybGluZWRJbmRl
eCwgMSk7CisgICAgICAgIFRleHRSdW4gdW5kZXJsaW5lZFJ1bihTdHJpbmdWaWV3KHRleHQpLnN1
YnN0cmluZyh1bmRlcmxpbmVkSW5kZXgsIDEpKTsKICAgICAgICAgaW50IHVuZGVybGluZWRXaWR0
aCA9IGZvbnQud2lkdGgodW5kZXJsaW5lZFJ1bik7CiAKICAgICAgICAgSW50UG9pbnQgdW5kZXJs
aW5lUG9pbnQocG9pbnQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>