<?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>147457</bug_id>
          
          <creation_ts>2015-07-30 15:02:39 -0700</creation_ts>
          <short_desc>Move locale information into FontDescription</short_desc>
          <delta_ts>2015-11-10 20:21:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>147430</dependson>
    
    <dependson>149898</dependson>
          <blocked>147390</blocked>
    
    <blocked>147483</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1113506</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-07-30 15:02:39 -0700</bug_when>
    <thetext>Move locale information into FontDescription</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113507</commentid>
    <comment_count>1</comment_count>
      <attachid>257857</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-07-30 15:04:02 -0700</bug_when>
    <thetext>Created attachment 257857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113513</commentid>
    <comment_count>2</comment_count>
      <attachid>257857</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-07-30 15:20:41 -0700</bug_when>
    <thetext>Comment on attachment 257857
Patch

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

r=me

&gt; Source/WebCore/platform/graphics/FontDescription.cpp:68
&gt; +    : m_families(1)
&gt; +    , m_locale(initialLocale())
&gt; +    , m_specifiedSize(0)
&gt; +    , m_computedSize(0)
&gt; +    , m_orientation(Horizontal)
&gt; +    , m_nonCJKGlyphOrientation(NonCJKGlyphOrientationVerticalRight)
&gt; +    , m_widthVariant(RegularWidth)
&gt; +    , m_italic(FontItalicOff)
&gt; +    , m_smallCaps(FontSmallCapsOff)
&gt; +    , m_isAbsoluteSize(false)
&gt; +    , m_weight(FontWeightNormal)
&gt; +    , m_renderingMode(NormalRenderingMode)
&gt; +    , m_kerning(AutoKerning)
&gt; +    , m_commonLigaturesState(NormalLigaturesState)
&gt; +    , m_discretionaryLigaturesState(NormalLigaturesState)
&gt; +    , m_historicalLigaturesState(NormalLigaturesState)
&gt; +    , m_keywordSize(0)
&gt; +    , m_fontSmoothing(AutoSmoothing)
&gt; +    , m_textRendering(AutoTextRendering)
&gt; +    , m_isSpecifiedFont(false)
&gt; +    , m_script(localeToScriptCodeForFontSelection(m_locale))
&gt; +    , m_fontSynthesis(initialFontSynthesis())

Can we move all these initializers to the member declarations instead? ({ })</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113585</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-07-30 17:12:48 -0700</bug_when>
    <thetext>Committed r187626: &lt;http://trac.webkit.org/changeset/187626&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141009</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-11-10 17:30:13 -0800</bug_when>
    <thetext>Reverted in https://bugs.webkit.org/show_bug.cgi?id=149898</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141013</commentid>
    <comment_count>5</comment_count>
      <attachid>265254</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-11-10 17:32:11 -0800</bug_when>
    <thetext>Created attachment 265254
Retry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141021</commentid>
    <comment_count>6</comment_count>
      <attachid>265254</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-10 18:23:29 -0800</bug_when>
    <thetext>Comment on attachment 265254
Retry

Rejecting attachment 265254 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 265254, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.webkit.org/results/412577</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141044</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-11-10 20:21:35 -0800</bug_when>
    <thetext>Committed r192290: &lt;http://trac.webkit.org/changeset/192290&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257857</attachid>
            <date>2015-07-30 15:04:02 -0700</date>
            <delta_ts>2015-07-30 15:20:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147457-20150730150400.patch</filename>
            <type>text/plain</type>
            <size>21969</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdjZDk2MzlmZTI5NDU4
Y2I3NzlhYTE5NTY3NjhlYzE2NjVjMmYwZi4uMzAxNTkxMDQyNTZiN2JmMTE2ZThkYzhmZDg2MDY0
NmViNTk5MzEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTA3LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsb2Nh
bGUgaW5mb3JtYXRpb24gaW50byBGb250RGVzY3JpcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlICJsYW5nIiBhdHRyaWJ1
dGUgb24gYSBub2RlIHNldHMgbG9jYWxlIGluZm9ybWF0aW9uIGluIFJlbmRlclN0eWxlLgorICAg
ICAgICBGb250IHNlbGVjdGlvbiBpcyBzZW5zaXRpdmUgdG8gdGhpcyBsb2NhbGUgaW5mb3JtYXRp
b24sIGFuZCBvY2N1cnMgZGVlcCB3aXRoaW4KKyAgICAgICAgcGxhdGZvcm0vIGNvZGUsIGZhciBh
d2F5IGZyb20gUmVuZGVyU3R5bGUuIEJlY2F1c2UgZXZlcnkgUmVuZGVyU3R5bGUgb3ducyBhCisg
ICAgICAgIEZvbnREZXNjcmlwdGlvbiwgYW5kIGZvbnQgc2VsZWN0aW9uIGNhbiBjb25zdWx0IHdp
dGggRm9udERlc2NyaXB0aW9ucywgaXQgbWFrZXMKKyAgICAgICAgc2Vuc2UgdG8gbW92ZSB0aGUg
dmFyaWFibGUgZnJvbSBSZW5kZXJTdHlsZSB0byBGb250RGVzY3JpcHRpb24sIGFuZCBwcm92aWRl
CisgICAgICAgIGNvbnZlbmllbmNlIG1ldGhvZHMgb24gUmVuZGVyU3R5bGUgd2hpY2ggaW5zcGVj
dCBpdHMgRm9udERlc2NyaXB0aW9uIGZvciBsb2NhbGUKKyAgICAgICAgaW5mb3JtYXRpb24uCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgY29ycmVjdGx5IG9iZXlp
bmcgbG9jYWxlIGluZm9ybWF0aW9uIHdoZW4KKyAgICAgICAgcGVyZm9ybWluZyBmb250IGZhbGxi
YWNrLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAq
IGNzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRl
ckN1c3RvbTo6YXBwbHlWYWx1ZVdlYmtpdExvY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6
OkZvbnREZXNjcmlwdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25L
ZXk6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRMb2NhbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERlc2NyaXB0aW9uOjpsb2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9u
Ojppbml0aWFsTG9jYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3Bl
cmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlw
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldFNj
cmlwdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1h
cHBpbmdEZWZhdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsZVRvU2NyaXB0Q29kZUZv
ckZvbnRTZWxlY3Rpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6
b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKKwog
MjAxNS0wNy0yOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9u
J3QgdXNlIChEZXRhaWxzKSB3aGVuIGV4cG9zaW5nIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgppbmRleCA1MTIyYzRmYTEyZDRmM2Q2ODc2Yzc1OWI4OTc2ZjNmNmY5MTdm
NWUzLi5lYWViMTRkMTk4MGM0ZmE0NGU5ZDhmNTM4MDBkNzAxYzkzMzZmNGNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTA5LDcgKzEwOSw3IEBAIHRleHQtcmVu
ZGVyaW5nIFtJbmhlcml0ZWQsIEZvbnRQcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9VGV4dFJlbmRl
cmluZ01vZGVdCiAtd2Via2l0LWZvbnQta2VybmluZyBbSW5oZXJpdGVkLCBGb250UHJvcGVydHks
IE5hbWVGb3JNZXRob2RzPUtlcm5pbmddCiAtd2Via2l0LWZvbnQtc21vb3RoaW5nIFtJbmhlcml0
ZWQsIEZvbnRQcm9wZXJ0eV0KIC13ZWJraXQtZm9udC12YXJpYW50LWxpZ2F0dXJlcyBbSW5oZXJp
dGVkLCBDdXN0b209QWxsXQotLXdlYmtpdC1sb2NhbGUgW0luaGVyaXRlZCwgQ3VzdG9tPVZhbHVl
XQorLXdlYmtpdC1sb2NhbGUgW0luaGVyaXRlZCwgRm9udFByb3BlcnR5LCBDdXN0b209VmFsdWVd
CiAtd2Via2l0LXRleHQtb3JpZW50YXRpb24gW0luaGVyaXRlZCwgQ3VzdG9tPVZhbHVlXQogLWVw
dWItdGV4dC1vcmllbnRhdGlvbiA9IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgogI2lmIGRlZmlu
ZWQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICYmIEVOQUJMRV9JT1NfVEVYVF9BVVRPU0la
SU5HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXggMTdlZDI2NTIy
ZjQzNGJmYzk2ZGVjMzFmZTU0ZjFjYTkwNDM0M2NiNS4uMmViMWFhMGIyYjk4OWYxZDI5ZjNkZWEz
YWZmMDMzNjFiZjgzNjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20u
aApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgotI2luY2x1ZGUg
IkxvY2FsZVRvU2NyaXB0TWFwcGluZy5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKQEAgLTY5MSwxNCArNjkwLDEy
IEBAIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUNsaXAoU3R5bGVS
ZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NTCiBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0
b206OmFwcGx5VmFsdWVXZWJraXRMb2NhbGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwg
Q1NTVmFsdWUmIHZhbHVlKQogewogICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKLQotICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRW
YWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCkt
PnNldExvY2FsZShudWxsQXRvbSk7Ci0gICAgZWxzZQotICAgICAgICBzdHlsZVJlc29sdmVyLnN0
eWxlKCktPnNldExvY2FsZShwcmltaXRpdmVWYWx1ZS5nZXRTdHJpbmdWYWx1ZSgpKTsKICAgICAK
ICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gc3R5bGVSZXNvbHZlci5zdHls
ZSgpLT5mb250RGVzY3JpcHRpb24oKTsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0U2NyaXB0KGxv
Y2FsZVRvU2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24oc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5s
b2NhbGUoKSkpOworICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVBdXRvKQorICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0TG9jYWxlKG51bGxBdG9tKTsKKyAg
ICBlbHNlCisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRMb2NhbGUocHJpbWl0aXZlVmFsdWUu
Z2V0U3RyaW5nVmFsdWUoKSk7CiAgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24o
Zm9udERlc2NyaXB0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuaAppbmRleCA4YmJjYzNjNjA5NzViNjQxNDFiMjQ1MjkxMTgwZWM1YjYzYzdl
YTE5Li4xNDk3NGUzZTQyNTVjOGI1MGE0OWJhZDQ0ZTY3YTEzYTY0MDllNjIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNzEsMTEgKzcxLDEz
IEBAIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgICAgICA6IHNpemUoc2l6ZSkKICAg
ICAgICAgLCB3ZWlnaHQoMCkKICAgICAgICAgLCBmbGFncygwKQorICAgICAgICAsIGxvY2FsZUhh
c2goMCkKICAgICB7IH0KICAgICBGb250RGVzY3JpcHRpb25LZXkoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbikKICAgICAgICAgOiBzaXplKGRlc2NyaXB0aW9uLmNvbXB1dGVkUGl4
ZWxTaXplKCkpCiAgICAgICAgICwgd2VpZ2h0KGRlc2NyaXB0aW9uLndlaWdodCgpKQogICAgICAg
ICAsIGZsYWdzKG1ha2VGbGFnS2V5KGRlc2NyaXB0aW9uKSkKKyAgICAgICAgLCBsb2NhbGVIYXNo
KGRlc2NyaXB0aW9uLmxvY2FsZSgpLmlzTnVsbCgpID8gMCA6IGRlc2NyaXB0aW9uLmxvY2FsZSgp
LmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkpCiAgICAgeyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIG1h
a2VGbGFnS2V5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiAgICAgewpAQCAt
ODgsNyArOTAsNyBAQCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICB9CiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbktleSYgb3RoZXIpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gc2l6ZSA9PSBvdGhlci5zaXplICYmIHdlaWdodCA9PSBvdGhlci53
ZWlnaHQgJiYgZmxhZ3MgPT0gb3RoZXIuZmxhZ3M7CisgICAgICAgIHJldHVybiBzaXplID09IG90
aGVyLnNpemUgJiYgd2VpZ2h0ID09IG90aGVyLndlaWdodCAmJiBmbGFncyA9PSBvdGhlci5mbGFn
cyAmJiBsb2NhbGVIYXNoID09IG90aGVyLmxvY2FsZUhhc2g7CiAgICAgfQogICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBGb250RGVzY3JpcHRpb25LZXkmIG90aGVyKSBjb25zdAogICAgIHsKQEAg
LTEwMSw2ICsxMDMsNyBAQCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICB1bnNpZ25l
ZCBzaXplOwogICAgIHVuc2lnbmVkIHdlaWdodDsKICAgICB1bnNpZ25lZCBmbGFnczsKKyAgICB1
bnNpZ25lZCBsb2NhbGVIYXNoOyAvLyBGSVhNRTogSGVyZSwgYW5kIGV2ZXJ5IGNsaWVudCBvZiB1
cywgbWFrZXMgaGFzaGVzIG9mIGhhc2hlcy4KIH07CiAKIGNsYXNzIEZvbnRDYWNoZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXgg
MmJmYWJlNTliZTBjZWNlZTc2MDY2NDllOWFmMmNmYTExMTgzN2UwNy4uODFjNmRmYjg3YjQ4MzZi
NWI1ZmNkY2M4MDMxOWM2NDBmMTM3ZTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcApAQCAtMTc4LDggKzE3OCw3IEBAIGJvb2wgRm9u
dENhc2NhZGU6Om9wZXJhdG9yPT0oY29uc3QgRm9udENhc2NhZGUmIG90aGVyKSBjb25zdAogfQog
CiBzdHJ1Y3QgRm9udENhc2NhZGVDYWNoZUtleSB7Ci0gICAgLy8gVGhpcyBwYXJ0IG9mIHRoZSBr
ZXkgaXMgc2hhcmVkIHdpdGggdGhlIGxvd2VyIGxldmVsIEZvbnRDYWNoZSAoY2FjaGluZyBGb250
RGF0YSBvYmplY3RzKS4KLSAgICBGb250RGVzY3JpcHRpb25LZXkgZm9udERlc2NyaXB0aW9uS2V5
OworICAgIEZvbnREZXNjcmlwdGlvbktleSBmb250RGVzY3JpcHRpb25LZXk7IC8vIFNoYXJlZCB3
aXRoIHRoZSBsb3dlciBsZXZlbCBGb250Q2FjaGUgKGNhY2hpbmcgRm9udCBvYmplY3RzKQogICAg
IFZlY3RvcjxBdG9taWNTdHJpbmcsIDM+IGZhbWlsaWVzOwogICAgIHVuc2lnbmVkIGZvbnRTZWxl
Y3RvcklkOwogICAgIHVuc2lnbmVkIGZvbnRTZWxlY3RvclZlcnNpb247CkBAIC0yNDgsNiArMjQ3
LDcgQEAgc3RhdGljIEZvbnRDYXNjYWRlQ2FjaGVLZXkgbWFrZUZvbnRDYXNjYWRlQ2FjaGVLZXko
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmkKICAgICByZXR1cm4ga2V5OwogfQogCisvLyBG
SVhNRTogV2h5IGNhbid0IHdlIGp1c3QgdGVhY2ggSGFzaE1hcCBhYm91dCBGb250Q2FzY2FkZUNh
Y2hlS2V5IGluc3RlYWQgb2YgaGFzaGluZyBhIGhhc2g/CiBzdGF0aWMgdW5zaWduZWQgY29tcHV0
ZUZvbnRDYXNjYWRlQ2FjaGVIYXNoKGNvbnN0IEZvbnRDYXNjYWRlQ2FjaGVLZXkmIGtleSkKIHsK
ICAgICBWZWN0b3I8dW5zaWduZWQsIDc+IGhhc2hDb2RlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCmluZGV4IGJkNTNhZTBl
OGJlOTYzMWM3YzEyMTQzZTZlYjFmM2QwYzY5YTZjOTAuLjZmY2U1ZDgwZWU0MzY1MDExYzkzNWRk
ODdjNDEzYTkzNDE2OTgzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcApAQCAtMjksMTkgKzI5LDQ2IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJM
b2NhbGVUb1NjcmlwdE1hcHBpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
U2FtZVNpemVBc0ZvbnREZXNjcmlwdGlvbiB7Ci0gICAgdm9pZCogcG9pbnRlcnNbMl07CisgICAg
dm9pZCogcG9pbnRlcnNbM107CiAgICAgZmxvYXQgc2l6ZXNbMl07Ci0gICAgLy8gRlhJTUU6IE1h
a2UgdGhlbSBmaXQgaW50byBvbmUgd29yZC4KKyAgICAvLyBGSVhNRTogTWFrZSB0aGVtIGZpdCBp
bnRvIG9uZSB3b3JkLgogICAgIHVpbnQzMl90IGJpdGZpZWxkczsKICAgICB1aW50MzJfdCBiaXRm
aWVsZHMyIDogODsKIH07CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihGb250RGVzY3JpcHRpb24p
ID09IHNpemVvZihTYW1lU2l6ZUFzRm9udERlc2NyaXB0aW9uKSwgRm9udERlc2NyaXB0aW9uX3No
b3VsZF9zdGF5X3NtYWxsKTsKIAorRm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24oKQor
ICAgIDogbV9mYW1pbGllcygxKQorICAgICwgbV9sb2NhbGUoaW5pdGlhbExvY2FsZSgpKQorICAg
ICwgbV9zcGVjaWZpZWRTaXplKDApCisgICAgLCBtX2NvbXB1dGVkU2l6ZSgwKQorICAgICwgbV9v
cmllbnRhdGlvbihIb3Jpem9udGFsKQorICAgICwgbV9ub25DSktHbHlwaE9yaWVudGF0aW9uKE5v
bkNKS0dseXBoT3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQorICAgICwgbV93aWR0aFZhcmlhbnQo
UmVndWxhcldpZHRoKQorICAgICwgbV9pdGFsaWMoRm9udEl0YWxpY09mZikKKyAgICAsIG1fc21h
bGxDYXBzKEZvbnRTbWFsbENhcHNPZmYpCisgICAgLCBtX2lzQWJzb2x1dGVTaXplKGZhbHNlKQor
ICAgICwgbV93ZWlnaHQoRm9udFdlaWdodE5vcm1hbCkKKyAgICAsIG1fcmVuZGVyaW5nTW9kZShO
b3JtYWxSZW5kZXJpbmdNb2RlKQorICAgICwgbV9rZXJuaW5nKEF1dG9LZXJuaW5nKQorICAgICwg
bV9jb21tb25MaWdhdHVyZXNTdGF0ZShOb3JtYWxMaWdhdHVyZXNTdGF0ZSkKKyAgICAsIG1fZGlz
Y3JldGlvbmFyeUxpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQorICAgICwgbV9o
aXN0b3JpY2FsTGlnYXR1cmVzU3RhdGUoTm9ybWFsTGlnYXR1cmVzU3RhdGUpCisgICAgLCBtX2tl
eXdvcmRTaXplKDApCisgICAgLCBtX2ZvbnRTbW9vdGhpbmcoQXV0b1Ntb290aGluZykKKyAgICAs
IG1fdGV4dFJlbmRlcmluZyhBdXRvVGV4dFJlbmRlcmluZykKKyAgICAsIG1faXNTcGVjaWZpZWRG
b250KGZhbHNlKQorICAgICwgbV9zY3JpcHQobG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVj
dGlvbihtX2xvY2FsZSkpCisgICAgLCBtX2ZvbnRTeW50aGVzaXMoaW5pdGlhbEZvbnRTeW50aGVz
aXMoKSkKK3sKK30KKwogRm9udFdlaWdodCBGb250RGVzY3JpcHRpb246OmxpZ2h0ZXJXZWlnaHQo
dm9pZCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fd2VpZ2h0KSB7CkBAIC05NCw2ICsxMjEsMTIg
QEAgRm9udFRyYWl0c01hc2sgRm9udERlc2NyaXB0aW9uOjp0cmFpdHNNYXNrKCkgY29uc3QKICAg
ICAKIH0KIAordm9pZCBGb250RGVzY3JpcHRpb246OnNldExvY2FsZShjb25zdCBBdG9taWNTdHJp
bmcmIGxvY2FsZSkKK3sKKyAgICBtX2xvY2FsZSA9IGxvY2FsZTsKKyAgICBtX3NjcmlwdCA9IGxv
Y2FsZVRvU2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24obV9sb2NhbGUpOworfQorCiAjaWYgRU5B
QkxFKElPU19URVhUX0FVVE9TSVpJTkcpCiBib29sIEZvbnREZXNjcmlwdGlvbjo6ZmFtaWxpZXNF
cXVhbEZvclRleHRBdXRvU2l6aW5nKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5oCmluZGV4IGQ4MGEyZDU3NWUzMDI3ZDk3YThiN2MzMWQ5MTEyZDNjNWQ1NzBhYTguLjZi
NTZhNDI5MWNkYWFkNzgwYmZmMTgwYjZjNTVlMTk0YzhmYjUzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC00NCwzMCAr
NDQsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVtIExpZ2F0dXJlc1N0YXRlIHsgTm9ybWFsTGlnYXR1
cmVzU3RhdGUsIERpc2FibGVkTGlnYXR1cmVzU3RhdGUsIEVuYWJsZWRMaWdhdHVyZXNTdGF0ZSB9
OwogCi0gICAgRm9udERlc2NyaXB0aW9uKCkKLSAgICAgICAgOiBtX2ZhbWlsaWVzKDEpCi0gICAg
ICAgICwgbV9zcGVjaWZpZWRTaXplKDApCi0gICAgICAgICwgbV9jb21wdXRlZFNpemUoMCkKLSAg
ICAgICAgLCBtX29yaWVudGF0aW9uKEhvcml6b250YWwpCi0gICAgICAgICwgbV9ub25DSktHbHlw
aE9yaWVudGF0aW9uKE5vbkNKS0dseXBoT3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQotICAgICAg
ICAsIG1fd2lkdGhWYXJpYW50KFJlZ3VsYXJXaWR0aCkKLSAgICAgICAgLCBtX2l0YWxpYyhGb250
SXRhbGljT2ZmKQotICAgICAgICAsIG1fc21hbGxDYXBzKEZvbnRTbWFsbENhcHNPZmYpCi0gICAg
ICAgICwgbV9pc0Fic29sdXRlU2l6ZShmYWxzZSkKLSAgICAgICAgLCBtX3dlaWdodChGb250V2Vp
Z2h0Tm9ybWFsKQotICAgICAgICAsIG1fcmVuZGVyaW5nTW9kZShOb3JtYWxSZW5kZXJpbmdNb2Rl
KQotICAgICAgICAsIG1fa2VybmluZyhBdXRvS2VybmluZykKLSAgICAgICAgLCBtX2NvbW1vbkxp
Z2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQotICAgICAgICAsIG1fZGlzY3JldGlv
bmFyeUxpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQotICAgICAgICAsIG1faGlz
dG9yaWNhbExpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQotICAgICAgICAsIG1f
a2V5d29yZFNpemUoMCkKLSAgICAgICAgLCBtX2ZvbnRTbW9vdGhpbmcoQXV0b1Ntb290aGluZykK
LSAgICAgICAgLCBtX3RleHRSZW5kZXJpbmcoQXV0b1RleHRSZW5kZXJpbmcpCi0gICAgICAgICwg
bV9pc1NwZWNpZmllZEZvbnQoZmFsc2UpCi0gICAgICAgICwgbV9zY3JpcHQoVVNDUklQVF9DT01N
T04pCi0gICAgICAgICwgbV9mb250U3ludGhlc2lzKGluaXRpYWxGb250U3ludGhlc2lzKCkpCi0g
ICAgewotICAgIH0KKyAgICBXRUJDT1JFX0VYUE9SVCBGb250RGVzY3JpcHRpb24oKTsKIAogICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKICAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgRm9udERlc2NyaXB0aW9uJiBvdGhlcikgY29uc3QgeyByZXR1cm4g
ISgqdGhpcyA9PSBvdGhlcik7IH0KQEAgLTEwMyw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICBGb250
U21vb3RoaW5nTW9kZSBmb250U21vb3RoaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
Rm9udFNtb290aGluZ01vZGU+KG1fZm9udFNtb290aGluZyk7IH0KICAgICBUZXh0UmVuZGVyaW5n
TW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRS
ZW5kZXJpbmdNb2RlPihtX3RleHRSZW5kZXJpbmcpOyB9CiAgICAgVVNjcmlwdENvZGUgc2NyaXB0
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VVNjcmlwdENvZGU+KG1fc2NyaXB0KTsgfQor
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbGU7
IH0KIAogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2soKSBjb25zdDsKICAgICBib29sIGlz
U3BlY2lmaWVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTcGVjaWZpZWRGb250OyB9CkBAIC0x
NDcsNyArMTI1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50YXRpb24oRm9udE9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAg
IHZvaWQgc2V0Tm9uQ0pLR2x5cGhPcmllbnRhdGlvbihOb25DSktHbHlwaE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKSB7IG1fbm9uQ0pLR2x5cGhPcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAg
ICAgdm9pZCBzZXRXaWR0aFZhcmlhbnQoRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpIHsg
bV93aWR0aFZhcmlhbnQgPSB3aWR0aFZhcmlhbnQ7IH0KLSAgICB2b2lkIHNldFNjcmlwdChVU2Ny
aXB0Q29kZSBzKSB7IG1fc2NyaXB0ID0gczsgfQorICAgIHZvaWQgc2V0TG9jYWxlKGNvbnN0IEF0
b21pY1N0cmluZyYpOwogICAgIHZvaWQgc2V0RmVhdHVyZVNldHRpbmdzKFBhc3NSZWZQdHI8Rm9u
dEZlYXR1cmVTZXR0aW5ncz4gc2V0dGluZ3MpIHsgbV9mZWF0dXJlU2V0dGluZ3MgPSBzZXR0aW5n
czsgfQogICAgIHZvaWQgc2V0Rm9udFN5bnRoZXNpcyhGb250U3ludGhlc2lzIGZvbnRTeW50aGVz
aXMpIHsgbV9mb250U3ludGhlc2lzID0gZm9udFN5bnRoZXNpczsgfQogCkBAIC0xNzAsMTAgKzE0
OCwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnRTbW9vdGhpbmdNb2RlIGluaXRpYWxGb250
U21vb3RoaW5nKCkgeyByZXR1cm4gQXV0b1Ntb290aGluZzsgfQogICAgIHN0YXRpYyBUZXh0UmVu
ZGVyaW5nTW9kZSBpbml0aWFsVGV4dFJlbmRlcmluZ01vZGUoKSB7IHJldHVybiBBdXRvVGV4dFJl
bmRlcmluZzsgfQogICAgIHN0YXRpYyBGb250U3ludGhlc2lzIGluaXRpYWxGb250U3ludGhlc2lz
KCkgeyByZXR1cm4gRm9udFN5bnRoZXNpc1dlaWdodCB8IEZvbnRTeW50aGVzaXNTdHlsZTsgfQor
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxMb2NhbGUoKSB7IHJldHVybiBu
dWxsQXRvbTsgfQogCiBwcml2YXRlOgogICAgIFJlZkNvdW50ZWRBcnJheTxBdG9taWNTdHJpbmc+
IG1fZmFtaWxpZXM7CiAgICAgUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IG1fZmVhdHVyZVNl
dHRpbmdzOworICAgIEF0b21pY1N0cmluZyBtX2xvY2FsZTsKIAogICAgIGZsb2F0IG1fc3BlY2lm
aWVkU2l6ZTsgICAvLyBTcGVjaWZpZWQgQ1NTIHZhbHVlLiBJbmRlcGVuZGVudCBvZiByZW5kZXJp
bmcgaXNzdWVzIHN1Y2ggYXMgaW50ZWdlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyByb3VuZGluZywgbWluaW11bSBmb250IHNpemVzLCBhbmQgem9vbWluZy4KQEAgLTIyOSw3ICsy
MDksNyBAQCBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBvdGhlcikgY29uc3QKICAgICAgICAgJiYgbV9vcmllbnRhdGlvbiA9PSBv
dGhlci5tX29yaWVudGF0aW9uCiAgICAgICAgICYmIG1fbm9uQ0pLR2x5cGhPcmllbnRhdGlvbiA9
PSBvdGhlci5tX25vbkNKS0dseXBoT3JpZW50YXRpb24KICAgICAgICAgJiYgbV93aWR0aFZhcmlh
bnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQKLSAgICAgICAgJiYgbV9zY3JpcHQgPT0gb3RoZXIu
bV9zY3JpcHQKKyAgICAgICAgJiYgbV9sb2NhbGUgPT0gb3RoZXIubV9sb2NhbGUKICAgICAgICAg
JiYgbV9mZWF0dXJlU2V0dGluZ3MgPT0gb3RoZXIubV9mZWF0dXJlU2V0dGluZ3MKICAgICAgICAg
JiYgbV9mb250U3ludGhlc2lzID09IG90aGVyLm1fZm9udFN5bnRoZXNpczsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVm
YXVsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFw
cGluZ0RlZmF1bHQuY3BwCmluZGV4IGQ2NDk1NDRiZThjYmMyMjA5NDg0YjkxYmJjN2Q4ZTY3ODJh
ZjllMjguLjMxNjdmNDA4ZTZmMmE4MWYxY2JjZTc5NDE5OWY1ZGIyYjQ2ODAxZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVm
YXVsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1Njcmlw
dE1hcHBpbmdEZWZhdWx0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzg5LDE2ICszOTAsMTYgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
VVNjcmlwdENvZGUsIERlZmF1bHRIYXNoPFN0cmluZz46Okhhc2gsIExvY2FsZVNjcmlwdE1hcEgK
IAogVVNjcmlwdENvZGUgbG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihjb25zdCBT
dHJpbmcmIGxvY2FsZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9j
YWxlU2NyaXB0TWFwLCBsb2NhbGVTY3JpcHRNYXAsICgpKTsKLSAgICBpZiAobG9jYWxlU2NyaXB0
TWFwLmlzRW1wdHkoKSkgeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NhbGVTY3JpcHRN
YXA+IGxvY2FsZVNjcmlwdE1hcDsKKyAgICBpZiAobG9jYWxlU2NyaXB0TWFwLmdldCgpLmlzRW1w
dHkoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihsb2NhbGVTY3Jp
cHRMaXN0KSAvIHNpemVvZihMb2NhbGVTY3JpcHQpOyArK2kpCi0gICAgICAgICAgICBsb2NhbGVT
Y3JpcHRNYXAuc2V0KEFTQ0lJTGl0ZXJhbChsb2NhbGVTY3JpcHRMaXN0W2ldLmxvY2FsZSksIGxv
Y2FsZVNjcmlwdExpc3RbaV0uc2NyaXB0KTsKKyAgICAgICAgICAgIGxvY2FsZVNjcmlwdE1hcC5n
ZXQoKS5zZXQoQVNDSUlMaXRlcmFsKGxvY2FsZVNjcmlwdExpc3RbaV0ubG9jYWxlKSwgbG9jYWxl
U2NyaXB0TGlzdFtpXS5zY3JpcHQpOwogICAgIH0KIAogICAgIFN0cmluZyBjYW5vbmljYWxMb2Nh
bGUgPSBsb2NhbGUubG93ZXIoKS5yZXBsYWNlKCctJywgJ18nKTsKICAgICB3aGlsZSAoIWNhbm9u
aWNhbExvY2FsZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgTG9jYWxlU2NyaXB0TWFwOjppdGVyYXRv
ciBpdCA9IGxvY2FsZVNjcmlwdE1hcC5maW5kKGNhbm9uaWNhbExvY2FsZSk7Ci0gICAgICAgIGlm
IChpdCAhPSBsb2NhbGVTY3JpcHRNYXAuZW5kKCkpCisgICAgICAgIExvY2FsZVNjcmlwdE1hcDo6
aXRlcmF0b3IgaXQgPSBsb2NhbGVTY3JpcHRNYXAuZ2V0KCkuZmluZChjYW5vbmljYWxMb2NhbGUp
OworICAgICAgICBpZiAoaXQgIT0gbG9jYWxlU2NyaXB0TWFwLmdldCgpLmVuZCgpKQogICAgICAg
ICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKICAgICAgICAgc2l6ZV90IHBvcyA9IGNhbm9uaWNhbExv
Y2FsZS5yZXZlcnNlRmluZCgnXycpOwogICAgICAgICBpZiAocG9zID09IG5vdEZvdW5kKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggM2Qy
MzQ4NDlkYjk5NzVlNzE1ZTM1Y2MxN2YzMTI5OTU3YzVjMjIxZC4uZGRmMDE5OGRhYjhjMmY1NjZk
MzFkZjYxZGZhYjY2ZjAxNjIwM2E4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC01NzYsNyArNTc2LDYgQEAgYm9vbCBSZW5kZXJTdHls
ZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUmIG90aGVyLCB1bnNpZ25l
ZCYgY2hhbmcKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlvbkxp
bWl0QmVmb3JlICE9IG90aGVyLnJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlvbkxpbWl0QmVm
b3JlCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+aHlwaGVuYXRpb25MaW1pdEFm
dGVyICE9IG90aGVyLnJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlvbkxpbWl0QWZ0ZXIKICAg
ICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlvblN0cmluZyAhPSBvdGhl
ci5yYXJlSW5oZXJpdGVkRGF0YS0+aHlwaGVuYXRpb25TdHJpbmcKLSAgICAgICAgICAgIHx8IHJh
cmVJbmhlcml0ZWREYXRhLT5sb2NhbGUgIT0gb3RoZXIucmFyZUluaGVyaXRlZERhdGEtPmxvY2Fs
ZQogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fcnVieVBvc2l0aW9uICE9IG90
aGVyLnJhcmVJbmhlcml0ZWREYXRhLT5tX3J1YnlQb3NpdGlvbgogICAgICAgICAgICAgfHwgcmFy
ZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc01hcmsgIT0gb3RoZXIucmFyZUluaGVyaXRlZERh
dGEtPnRleHRFbXBoYXNpc01hcmsKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50
ZXh0RW1waGFzaXNQb3NpdGlvbiAhPSBvdGhlci5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhh
c2lzUG9zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKaW5kZXggMTQwZjQ5MjcwNGUxNmE4ZjFlNDY2NDE4Y2IzYThmOWI5NDA1ZGMwNC4uMDQzNmYy
YmZiZDdlN2E0YThiN2JjMjM3ZGI3NDA5MjBmOWUzNGIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk5OCw3ICs5OTgsNyBAQCBwdWJsaWM6
CiAgICAgc2hvcnQgaHlwaGVuYXRpb25MaW1pdEFmdGVyKCkgY29uc3QgeyByZXR1cm4gcmFyZUlu
aGVyaXRlZERhdGEtPmh5cGhlbmF0aW9uTGltaXRBZnRlcjsgfQogICAgIHNob3J0IGh5cGhlbmF0
aW9uTGltaXRMaW5lcygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5h
dGlvbkxpbWl0TGluZXM7IH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGh5cGhlbmF0aW9uU3Ry
aW5nKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmh5cGhlbmF0aW9uU3RyaW5n
OyB9Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUoKSBjb25zdCB7IHJldHVybiByYXJl
SW5oZXJpdGVkRGF0YS0+bG9jYWxlOyB9CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUo
KSBjb25zdCB7IHJldHVybiBmb250RGVzY3JpcHRpb24oKS5sb2NhbGUoKTsgfQogICAgIEVCb3Jk
ZXJGaXQgYm9yZGVyRml0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUJvcmRlckZpdD4o
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYm9yZGVyRml0KTsgfQogICAgIEVSZXNpemUgcmVzaXpl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVJlc2l6ZT4ocmFyZUluaGVyaXRlZERhdGEt
PnJlc2l6ZSk7IH0KICAgICBDb2x1bW5BeGlzIGNvbHVtbkF4aXMoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxDb2x1bW5BeGlzPihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+
bV9heGlzKTsgfQpAQCAtMTU3Miw3ICsxNTcyLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SHlw
aGVuYXRpb25MaW1pdEFmdGVyKHNob3J0IGxpbWl0KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERh
dGEsIGh5cGhlbmF0aW9uTGltaXRBZnRlciwgbGltaXQpOyB9CiAgICAgdm9pZCBzZXRIeXBoZW5h
dGlvbkxpbWl0TGluZXMoc2hvcnQgbGltaXQpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwg
aHlwaGVuYXRpb25MaW1pdExpbmVzLCBsaW1pdCk7IH0KICAgICB2b2lkIHNldEh5cGhlbmF0aW9u
U3RyaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgaCkgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRh
LCBoeXBoZW5hdGlvblN0cmluZywgaCk7IH0KLSAgICB2b2lkIHNldExvY2FsZShjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsZSkgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBsb2NhbGUsIGxv
Y2FsZSk7IH0KICAgICB2b2lkIHNldEJvcmRlckZpdChFQm9yZGVyRml0IGIpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9ib3JkZXJGaXQsIGIpOyB9CiAgICAgdm9pZCBzZXRSZXNp
emUoRVJlc2l6ZSByKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHJlc2l6ZSwgcik7IH0K
ICAgICB2b2lkIHNldENvbHVtbkF4aXMoQ29sdW1uQXhpcyBheGlzKSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fYXhpcywgYXhpcyk7IH0KQEAg
LTE5NjYsNyArMTk2NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc2hvcnQgaW5pdGlhbEh5cGhl
bmF0aW9uTGltaXRBZnRlcigpIHsgcmV0dXJuIC0xOyB9CiAgICAgc3RhdGljIHNob3J0IGluaXRp
YWxIeXBoZW5hdGlvbkxpbWl0TGluZXMoKSB7IHJldHVybiAtMTsgfQogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIGluaXRpYWxIeXBoZW5hdGlvblN0cmluZygpIHsgcmV0dXJuIG51bGxB
dG9tOyB9Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhbExvY2FsZSgpIHsg
cmV0dXJuIG51bGxBdG9tOyB9CiAgICAgc3RhdGljIEVCb3JkZXJGaXQgaW5pdGlhbEJvcmRlckZp
dCgpIHsgcmV0dXJuIEJvcmRlckZpdEJvcmRlcjsgfQogICAgIHN0YXRpYyBFUmVzaXplIGluaXRp
YWxSZXNpemUoKSB7IHJldHVybiBSRVNJWkVfTk9ORTsgfQogICAgIHN0YXRpYyBDb250cm9sUGFy
dCBpbml0aWFsQXBwZWFyYW5jZSgpIHsgcmV0dXJuIE5vQ29udHJvbFBhcnQ7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcAppbmRleCBkZmZhOTBlMjYwYWUzMGYzNjAyMzdkNmY5YjM2ZTRkZmYyN2JmNGI5Li5j
NjAyNDBiY2FmNGU1MjU3Njg2YjgwYmEyYzNhNjlkMTBlOTNhMDYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
Y3BwCkBAIC0yMDYsNyArMjA2LDYgQEAgaW5saW5lIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGEKICAgICAsIGh5
cGhlbmF0aW9uTGltaXRCZWZvcmUoby5oeXBoZW5hdGlvbkxpbWl0QmVmb3JlKQogICAgICwgaHlw
aGVuYXRpb25MaW1pdEFmdGVyKG8uaHlwaGVuYXRpb25MaW1pdEFmdGVyKQogICAgICwgaHlwaGVu
YXRpb25MaW1pdExpbmVzKG8uaHlwaGVuYXRpb25MaW1pdExpbmVzKQotICAgICwgbG9jYWxlKG8u
bG9jYWxlKQogICAgICwgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayhvLnRleHRFbXBoYXNpc0N1c3Rv
bU1hcmspCiAgICAgLCBtX2xpbmVHcmlkKG8ubV9saW5lR3JpZCkKICAgICAsIG1fdGFiU2l6ZShv
Lm1fdGFiU2l6ZSkKQEAgLTMwMiw3ICszMDEsNiBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERh
dGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAg
ICAgICAgJiYgdG91Y2hDYWxsb3V0RW5hYmxlZCA9PSBvLnRvdWNoQ2FsbG91dEVuYWJsZWQKICNl
bmRpZgogICAgICAgICAmJiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5n
Ci0gICAgICAgICYmIGxvY2FsZSA9PSBvLmxvY2FsZQogICAgICAgICAmJiB0ZXh0RW1waGFzaXND
dXN0b21NYXJrID09IG8udGV4dEVtcGhhc2lzQ3VzdG9tTWFyawogICAgICAgICAmJiBxdW90ZXNE
YXRhRXF1aXZhbGVudChxdW90ZXMuZ2V0KCksIG8ucXVvdGVzLmdldCgpKQogICAgICAgICAmJiBt
X3RhYlNpemUgPT0gby5tX3RhYlNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDJjZDk5NTQ1ODA5MTQ5
ODBkYzNjY2VjM2Y1Mzg2NGVjMzY3Y2MyODMuLmU4NTAzMWIxODU0Mzg0NTM1N2ViZjVmNzJjZDJm
Yjk0YTc1NzE5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTM5LDggKzEzOSw2IEBAIHB1YmxpYzoK
ICAgICBzaG9ydCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXI7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25M
aW1pdExpbmVzOwogCi0gICAgQXRvbWljU3RyaW5nIGxvY2FsZTsKLQogICAgIEF0b21pY1N0cmlu
ZyB0ZXh0RW1waGFzaXNDdXN0b21NYXJrOwogICAgIFJlZlB0cjxRdW90ZXNEYXRhPiBxdW90ZXM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNw
cAppbmRleCAwZDI1N2QwNWJhMjVkMTRiMzEyYTE4YzYyMzUzMDBmNTBiYjIwN2VhLi5iMGUzNDI0
ZDk0ZTEyY2ZkN2FhYWU5NmNkN2IxNDg4ZThlODU0NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC01OSw3ICs1OSw5IEBAIFJl
ZjxSZW5kZXJTdHlsZT4gcmVzb2x2ZUZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLmdldCgpLnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LnZpc3Vh
bGx5T3JkZXJlZCgpID8gVmlzdWFsT3JkZXIgOiBMb2dpY2FsT3JkZXIpOwogICAgIGRvY3VtZW50
U3R5bGUuZ2V0KCkuc2V0Wm9vbSghZG9jdW1lbnQucHJpbnRpbmcoKSA/IHJlbmRlclZpZXcuZnJh
bWUoKS5wYWdlWm9vbUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRTdHlsZS5nZXQoKS5zZXRQ
YWdlU2NhbGVUcmFuc2Zvcm0ocmVuZGVyVmlldy5mcmFtZSgpLmZyYW1lU2NhbGVGYWN0b3IoKSk7
Ci0gICAgZG9jdW1lbnRTdHlsZS5nZXQoKS5zZXRMb2NhbGUoZG9jdW1lbnQuY29udGVudExhbmd1
YWdlKCkpOworICAgIEZvbnREZXNjcmlwdGlvbiBkb2N1bWVudEZvbnREZXNjcmlwdGlvbiA9IGRv
Y3VtZW50U3R5bGUuZ2V0KCkuZm9udERlc2NyaXB0aW9uKCk7CisgICAgZG9jdW1lbnRGb250RGVz
Y3JpcHRpb24uc2V0TG9jYWxlKGRvY3VtZW50LmNvbnRlbnRMYW5ndWFnZSgpKTsKKyAgICBkb2N1
bWVudFN0eWxlLmdldCgpLnNldEZvbnREZXNjcmlwdGlvbihXVEY6Om1vdmUoZG9jdW1lbnRGb250
RGVzY3JpcHRpb24pKTsKIAogICAgIC8vIFRoaXMgb3ZlcnJpZGVzIGFueSAtd2Via2l0LXVzZXIt
bW9kaWZ5IGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgaWZyYW1lLgogICAgIGRvY3VtZW50U3R5
bGUuZ2V0KCkuc2V0VXNlck1vZGlmeShkb2N1bWVudC5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJ
VEUgOiBSRUFEX09OTFkpOwpAQCAtOTcsNyArOTksNyBAQCBSZWY8UmVuZGVyU3R5bGU+IHJlc29s
dmVGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgY29uc3QgU2V0dGlu
Z3MmIHNldHRpbmdzID0gcmVuZGVyVmlldy5mcmFtZSgpLnNldHRpbmdzKCk7CiAKICAgICBGb250
RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTY3Jp
cHQobG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihkb2N1bWVudFN0eWxlLmdldCgp
LmxvY2FsZSgpKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldExvY2FsZShkb2N1bWVudC5jb250
ZW50TGFuZ3VhZ2UoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0
dGluZ3MuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZh
bWlseShzdGFuZGFyZEZhbWlseSk7CiAK
</data>
<flag name="review"
          id="283045"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265254</attachid>
            <date>2015-11-10 17:32:11 -0800</date>
            <delta_ts>2015-11-10 18:23:29 -0800</delta_ts>
            <desc>Retry</desc>
            <filename>bug-147457-20151110173206.patch</filename>
            <type>text/plain</type>
            <size>16055</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU0OGEwYTc0M2Q2MzJl
MWIyOGQ5YzBiYWZmYjgzODFjNDkwYTQ3ZS4uMTg3YmQzN2E1OWEwZjdlYjM4YjhlYmQ4ZjRkMmY4
YmY2OWJjYWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTExLTEwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsb2Nh
bGUgaW5mb3JtYXRpb24gaW50byBGb250RGVzY3JpcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ1NworCisgICAgICAgIEN1cnJlbnRseSwg
dGhlICJsYW5nIiBhdHRyaWJ1dGUgb24gYSBub2RlIHNldHMgbG9jYWxlIGluZm9ybWF0aW9uIGlu
IFJlbmRlclN0eWxlLgorICAgICAgICBGb250IHNlbGVjdGlvbiBpcyBzZW5zaXRpdmUgdG8gdGhp
cyBsb2NhbGUgaW5mb3JtYXRpb24sIGFuZCBvY2N1cnMgZGVlcCB3aXRoaW4KKyAgICAgICAgcGxh
dGZvcm0vIGNvZGUsIGZhciBhd2F5IGZyb20gUmVuZGVyU3R5bGUuIEJlY2F1c2UgZXZlcnkgUmVu
ZGVyU3R5bGUgb3ducyBhCisgICAgICAgIEZvbnREZXNjcmlwdGlvbiwgYW5kIGZvbnQgc2VsZWN0
aW9uIGNhbiBjb25zdWx0IHdpdGggRm9udERlc2NyaXB0aW9ucywgaXQgbWFrZXMKKyAgICAgICAg
c2Vuc2UgdG8gbW92ZSB0aGUgdmFyaWFibGUgZnJvbSBSZW5kZXJTdHlsZSB0byBGb250RGVzY3Jp
cHRpb24sIGFuZCBwcm92aWRlCisgICAgICAgIGNvbnZlbmllbmNlIG1ldGhvZHMgb24gUmVuZGVy
U3R5bGUgd2hpY2ggaW5zcGVjdCBpdHMgRm9udERlc2NyaXB0aW9uIGZvciBsb2NhbGUKKyAgICAg
ICAgaW5mb3JtYXRpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbiBwcmVwYXJhdGlvbiBm
b3IgY29ycmVjdGx5IG9iZXlpbmcgbG9jYWxlIGluZm9ybWF0aW9uIHdoZW4KKyAgICAgICAgcGVy
Zm9ybWluZyBmb250IGZhbGxiYWNrLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZVdlYmtpdExvY2FsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNj
cmlwdGlvbjo6c2V0TG9jYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6bG9jYWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FzY2FkZURlc2NyaXB0aW9uOjppbml0aWFsTG9jYWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2NyaXB0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzTGF5b3V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmg6CisgICAg
ICAgICogc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCk6CisKIDIwMTUtMTEtMTAgIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggcnVubmluZyB3ZWJhdWRp
by9wYW5uZXItbG9vcC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmlu
ZGV4IGYyYzIwNWFkMTJmNGRkYjk0Mzk0NzcxZGFhODY3MWZlZmRmNzY3N2EuLjM1OTljYjkxNzY2
NDI3MjljNmYwM2YwNTA3Y2Q2NTVlZWIwMjIyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluCkBAIC0xMTUsNyArMTE1LDcgQEAgZm9udC12YXJpYW50LWNhcHMgW0luaGVy
aXRlZCwgRm9udFByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1WYXJpYW50Q2Fwc10KIGZvbnQtdmFy
aWFudC1udW1lcmljIFtJbmhlcml0ZWQsIEZvbnRQcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9VmFy
aWFudE51bWVyaWMsIEN1c3RvbT1BbGxdCiBmb250LXZhcmlhbnQtYWx0ZXJuYXRlcyBbSW5oZXJp
dGVkLCBGb250UHJvcGVydHksIE5hbWVGb3JNZXRob2RzPVZhcmlhbnRBbHRlcm5hdGVzXQogZm9u
dC12YXJpYW50LWVhc3QtYXNpYW4gW0luaGVyaXRlZCwgRm9udFByb3BlcnR5LCBOYW1lRm9yTWV0
aG9kcz1WYXJpYW50RWFzdEFzaWFuLCBDdXN0b209QWxsXQotLXdlYmtpdC1sb2NhbGUgW0luaGVy
aXRlZCwgQ3VzdG9tPVZhbHVlXQorLXdlYmtpdC1sb2NhbGUgW0luaGVyaXRlZCwgRm9udFByb3Bl
cnR5LCBDdXN0b209VmFsdWVdCiAtd2Via2l0LXRleHQtb3JpZW50YXRpb24gW0luaGVyaXRlZCwg
Q3VzdG9tPVZhbHVlXQogLWVwdWItdGV4dC1vcmllbnRhdGlvbiA9IC13ZWJraXQtdGV4dC1vcmll
bnRhdGlvbgogI2lmIGRlZmluZWQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICYmIEVOQUJM
RV9JT1NfVEVYVF9BVVRPU0laSU5HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVCdWlsZGVyQ3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9t
LmgKaW5kZXggZTY0NzM3ODJhMmY4MzUxZTE4NzViNThmODliNzhiMDkyNWVmYmE0MS4uNWNiOGE2
N2IyYjUxOWQ1ZDZjMTk4NGY3NTg4YzU5M2U4MDA2OWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZUJ1aWxkZXJDdXN0b20uaApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkZvbnRWYXJp
YW50QnVpbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKLSNpbmNsdWRlICJMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCIKICNpbmNsdWRlICJSZWN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCkBAIC02
OTYsMTMgKzY5NSwxMiBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFs
dWVDbGlwKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTUwogaW5saW5lIHZvaWQgU3R5
bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0TG9jYWxlKFN0eWxlUmVzb2x2ZXImIHN0
eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1ZSkKIHsKICAgICBhdXRvJiBwcmltaXRpdmVWYWx1
ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2
ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgIHN0eWxlUmVzb2x2
ZXIuc3R5bGUoKS0+c2V0TG9jYWxlKG51bGxBdG9tKTsKLSAgICBlbHNlCi0gICAgICAgIHN0eWxl
UmVzb2x2ZXIuc3R5bGUoKS0+c2V0TG9jYWxlKHByaW1pdGl2ZVZhbHVlLmdldFN0cmluZ1ZhbHVl
KCkpOwogCiAgICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBzdHls
ZVJlc29sdmVyLnN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOwotICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRTY3JpcHQobG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihzdHlsZVJlc29s
dmVyLnN0eWxlKCktPmxvY2FsZSgpKSk7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRMb2NhbGUo
bnVsbEF0b20pOworICAgIGVsc2UKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldExvY2FsZShw
cmltaXRpdmVWYWx1ZS5nZXRTdHJpbmdWYWx1ZSgpKTsKICAgICBzdHlsZVJlc29sdmVyLnNldEZv
bnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCmluZGV4IGYyZWViYTJkYjIwNzAwMWRlY2Q4NDgw
MWVhOWI4ZTk5ODY3NTMwMWYuLmY5Y2ZmZmI5ODQ2OTBjN2MwNjc0ODY1Yzg4NTQzMTE2OTg5YTA5
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBA
IC0xMzksNiArMTM5LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBj
SGFzaFRhYmxlRGVsZXRlZFNpemUgPSAweEZGRkZGRkZGVTsKIAorICAgIC8vIEZvbnRDYXNjYWRl
Ojpsb2NhbGUoKSBpcyBleHBsaWNpdGx5IG5vdCBpbmNsdWRlZCBpbiB0aGlzIHN0cnVjdC4KICAg
ICB1bnNpZ25lZCBtX3NpemUgeyAwIH07CiAgICAgdW5zaWduZWQgbV93ZWlnaHQgeyAwIH07CiAg
ICAgc3RkOjphcnJheTx1bnNpZ25lZCwgMj4gbV9mbGFncyB7eyAwLCAwIH19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKaW5k
ZXggNDBkMDc0NGNjMjViYWY2ZWJiZjI4MDM3OGJkODE3MTE2YzQyNGViOS4uNDVkZGQzMzI4MGFi
ZWRhZjllNTlkMzM0NzM0ZjU5N2QzZjQ1OWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCkBAIC0zMCwxMCArMzAsMTMg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKIAor
I2luY2x1ZGUgIkxvY2FsZVRvU2NyaXB0TWFwcGluZy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBTYW1lU2l6ZUFzRm9udENhc2NhZGVEZXNjcmlwdGlvbiB7CiAgICAgVmVjdG9y
PHZvaWQqPiB2ZWN0b3I7CisgICAgQXRvbWljU3RyaW5nIHN0cmluZzsKICAgICBmbG9hdCBzaXpl
OwogICAgIHVuc2lnbmVkIGJpdGZpZWxkczE7CiAgICAgdW5zaWduZWQgYml0ZmllbGRzMiA6IDIy
OwpAQCAtODEsNiArODQsMTIgQEAgRm9udFRyYWl0c01hc2sgRm9udERlc2NyaXB0aW9uOjp0cmFp
dHNNYXNrKCkgY29uc3QKICAgICAKIH0KIAordm9pZCBGb250RGVzY3JpcHRpb246OnNldExvY2Fs
ZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKK3sKKyAgICBtX2xvY2FsZSA9IGxvY2FsZTsK
KyAgICBtX3NjcmlwdCA9IGxvY2FsZVRvU2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24obV9sb2Nh
bGUpOworfQorCiBGb250Q2FzY2FkZURlc2NyaXB0aW9uOjpGb250Q2FzY2FkZURlc2NyaXB0aW9u
KCkKICAgICA6IG1faXNBYnNvbHV0ZVNpemUoZmFsc2UpCiAgICAgLCBtX2tlcm5pbmcoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEtlcm5pbmc6OkF1dG8pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAppbmRleCBiM2NhNzBkNDZiOWE4Njgw
ZjI4MGViZjE1OTFkNzBhM2Y2YTdhNTU4Li44NWFjZmMwYTdkNjNjZWE5MTBmZWEzNWY0NDZmNDI2
NWI3ODVjZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250RGVzY3JpcHRpb24uaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgRm9udFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRS
ZW5kZXJpbmdNb2RlPihtX3JlbmRlcmluZ01vZGUpOyB9CiAgICAgVGV4dFJlbmRlcmluZ01vZGUg
dGV4dFJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0UmVuZGVy
aW5nTW9kZT4obV90ZXh0UmVuZGVyaW5nKTsgfQogICAgIFVTY3JpcHRDb2RlIHNjcmlwdCgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFVTY3JpcHRDb2RlPihtX3NjcmlwdCk7IH0KKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxlOyB9CiAK
ICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxGb250T3JpZW50YXRpb24+KG1fb3JpZW50YXRpb24pOyB9CiAgICAgTm9uQ0pLR2x5cGhP
cmllbnRhdGlvbiBub25DSktHbHlwaE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8Tm9uQ0pLR2x5cGhPcmllbnRhdGlvbj4obV9ub25DSktHbHlwaE9yaWVudGF0aW9uKTsg
fQpAQCAtMTA2LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9yaWVudGF0aW9uKEZv
bnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247
IH0KICAgICB2b2lkIHNldE5vbkNKS0dseXBoT3JpZW50YXRpb24oTm9uQ0pLR2x5cGhPcmllbnRh
dGlvbiBvcmllbnRhdGlvbikgeyBtX25vbkNKS0dseXBoT3JpZW50YXRpb24gPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ob3JpZW50YXRpb24pOyB9CiAgICAgdm9pZCBzZXRXaWR0aFZhcmlhbnQoRm9u
dFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpIHsgbV93aWR0aFZhcmlhbnQgPSB3aWR0aFZhcmlh
bnQ7IH0gLy8gTWFrZSBzdXJlIG5ldyBjYWxsZXJzIG9mIHRoaXMgc3luYyB3aXRoIEZvbnRQbGF0
Zm9ybURhdGE6OmlzRm9yVGV4dENvbWJpbmUoKSEKLSAgICB2b2lkIHNldFNjcmlwdChVU2NyaXB0
Q29kZSBzKSB7IG1fc2NyaXB0ID0gczsgfQorICAgIHZvaWQgc2V0TG9jYWxlKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwogICAgIHZvaWQgc2V0RmVhdHVyZVNldHRpbmdzKEZvbnRGZWF0dXJlU2V0dGlu
Z3MmJiBzZXR0aW5ncykgeyBtX2ZlYXR1cmVTZXR0aW5ncyA9IFdURjo6bW92ZShzZXR0aW5ncyk7
IH0KICAgICB2b2lkIHNldEZvbnRTeW50aGVzaXMoRm9udFN5bnRoZXNpcyBmb250U3ludGhlc2lz
KSB7IG1fZm9udFN5bnRoZXNpcyA9IGZvbnRTeW50aGVzaXM7IH0KICAgICB2b2lkIHNldFZhcmlh
bnRDb21tb25MaWdhdHVyZXMoRm9udFZhcmlhbnRMaWdhdHVyZXMgdmFyaWFudCkgeyBtX3Zhcmlh
bnRDb21tb25MaWdhdHVyZXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFyaWFudCk7IH0KQEAg
LTEyOSw2ICsxMzAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRm9udEZlYXR1cmVTZXR0
aW5ncyBtX2ZlYXR1cmVTZXR0aW5nczsKKyAgICBBdG9taWNTdHJpbmcgbV9sb2NhbGU7CiAKICAg
ICBmbG9hdCBtX2NvbXB1dGVkU2l6ZSB7IDAgfTsgLy8gQ29tcHV0ZWQgc2l6ZSBhZGp1c3RlZCBm
b3IgdGhlIG1pbmltdW0gZm9udCBzaXplIGFuZCB0aGUgem9vbSBmYWN0b3IuCiAgICAgdW5zaWdu
ZWQgbV9vcmllbnRhdGlvbiA6IDE7IC8vIEZvbnRPcmllbnRhdGlvbiAtIFdoZXRoZXIgdGhlIGZv
bnQgaXMgcmVuZGVyaW5nIG9uIGEgaG9yaXpvbnRhbCBsaW5lIG9yIGEgdmVydGljYWwgbGluZS4K
QEAgLTE2OSw3ICsxNzEsNyBAQCBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9y
PT0oY29uc3QgRm9udERlc2NyaXB0aW9uJiBvdGhlcikgY29uc3QKICAgICAgICAgJiYgbV9vcmll
bnRhdGlvbiA9PSBvdGhlci5tX29yaWVudGF0aW9uCiAgICAgICAgICYmIG1fbm9uQ0pLR2x5cGhP
cmllbnRhdGlvbiA9PSBvdGhlci5tX25vbkNKS0dseXBoT3JpZW50YXRpb24KICAgICAgICAgJiYg
bV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQKLSAgICAgICAgJiYgbV9zY3Jp
cHQgPT0gb3RoZXIubV9zY3JpcHQKKyAgICAgICAgJiYgbV9sb2NhbGUgPT0gb3RoZXIubV9sb2Nh
bGUKICAgICAgICAgJiYgbV9mZWF0dXJlU2V0dGluZ3MgPT0gb3RoZXIubV9mZWF0dXJlU2V0dGlu
Z3MKICAgICAgICAgJiYgbV9mb250U3ludGhlc2lzID09IG90aGVyLm1fZm9udFN5bnRoZXNpcwog
ICAgICAgICAmJiBtX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMgPT0gb3RoZXIubV92YXJpYW50Q29t
bW9uTGlnYXR1cmVzCkBAIC0yNjQsNiArMjY2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGb250
VmFyaWFudFBvc2l0aW9uIGluaXRpYWxWYXJpYW50UG9zaXRpb24oKSB7IHJldHVybiBGb250VmFy
aWFudFBvc2l0aW9uOjpOb3JtYWw7IH0KICAgICBzdGF0aWMgRm9udFZhcmlhbnRDYXBzIGluaXRp
YWxWYXJpYW50Q2FwcygpIHsgcmV0dXJuIEZvbnRWYXJpYW50Q2Fwczo6Tm9ybWFsOyB9CiAgICAg
c3RhdGljIEZvbnRWYXJpYW50QWx0ZXJuYXRlcyBpbml0aWFsVmFyaWFudEFsdGVybmF0ZXMoKSB7
IHJldHVybiBGb250VmFyaWFudEFsdGVybmF0ZXM6Ok5vcm1hbDsgfQorICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIGluaXRpYWxMb2NhbGUoKSB7IHJldHVybiBudWxsQXRvbTsgfQogCiBw
cml2YXRlOgogICAgIFJlZkNvdW50ZWRBcnJheTxBdG9taWNTdHJpbmc+IG1fZmFtaWxpZXMgeyAx
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApp
bmRleCAyYjRjNmY2M2VhZmEwZjMzOTkyZTZiZWQ5Njg0MjdiZTI4MzIwMmUzLi5iYWQ5MDM1ZTFh
YWM2NjZhYWExYTk1MDk2MzYzZWVhMDk2NWNiZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTU5NSw3ICs1OTUsNiBAQCBib29sIFJl
bmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIs
IHVuc2lnbmVkJiBjaGFuZwogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPmh5cGhl
bmF0aW9uTGltaXRCZWZvcmUgIT0gb3RoZXIucmFyZUluaGVyaXRlZERhdGEtPmh5cGhlbmF0aW9u
TGltaXRCZWZvcmUKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlv
bkxpbWl0QWZ0ZXIgIT0gb3RoZXIucmFyZUluaGVyaXRlZERhdGEtPmh5cGhlbmF0aW9uTGltaXRB
ZnRlcgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPmh5cGhlbmF0aW9uU3RyaW5n
ICE9IG90aGVyLnJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlvblN0cmluZwotICAgICAgICAg
ICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPmxvY2FsZSAhPSBvdGhlci5yYXJlSW5oZXJpdGVkRGF0
YS0+bG9jYWxlCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9ydWJ5UG9zaXRp
b24gIT0gb3RoZXIucmFyZUluaGVyaXRlZERhdGEtPm1fcnVieVBvc2l0aW9uCiAgICAgICAgICAg
ICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzTWFyayAhPSBvdGhlci5yYXJlSW5o
ZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzTWFyawogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRl
ZERhdGEtPnRleHRFbXBoYXNpc1Bvc2l0aW9uICE9IG90aGVyLnJhcmVJbmhlcml0ZWREYXRhLT50
ZXh0RW1waGFzaXNQb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAppbmRleCBiZjFjMjE5MDJkMmY0ZjA3NDBlNjdjZGUxZTE0Mzc2ZmIzNjAwOThj
Li40ZjM0ZDc3YWYzZmE1YzU0MjY1MDAyYTE4ZTE4ZDE1N2NhOTMwZjA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTAwNyw3ICsxMDA3LDcg
QEAgcHVibGljOgogICAgIHNob3J0IGh5cGhlbmF0aW9uTGltaXRBZnRlcigpIGNvbnN0IHsgcmV0
dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5hdGlvbkxpbWl0QWZ0ZXI7IH0KICAgICBzaG9y
dCBoeXBoZW5hdGlvbkxpbWl0TGluZXMoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0
YS0+aHlwaGVuYXRpb25MaW1pdExpbmVzOyB9CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBoeXBo
ZW5hdGlvblN0cmluZygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5oeXBoZW5h
dGlvblN0cmluZzsgfQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKCkgY29uc3QgeyBy
ZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmxvY2FsZTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxlKCkgY29uc3QgeyByZXR1cm4gZm9udERlc2NyaXB0aW9uKCkubG9jYWxlKCk7IH0K
ICAgICBFQm9yZGVyRml0IGJvcmRlckZpdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVC
b3JkZXJGaXQ+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JvcmRlckZpdCk7IH0KICAgICBFUmVz
aXplIHJlc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVSZXNpemU+KHJhcmVJbmhl
cml0ZWREYXRhLT5yZXNpemUpOyB9CiAgICAgQ29sdW1uQXhpcyBjb2x1bW5BeGlzKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29sdW1uQXhpcz4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
bXVsdGlDb2wtPm1fYXhpcyk7IH0KQEAgLTE1ODgsNyArMTU4OCw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEh5cGhlbmF0aW9uTGltaXRBZnRlcihzaG9ydCBsaW1pdCkgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIsIGxpbWl0KTsgfQogICAgIHZvaWQg
c2V0SHlwaGVuYXRpb25MaW1pdExpbmVzKHNob3J0IGxpbWl0KSB7IFNFVF9WQVIocmFyZUluaGVy
aXRlZERhdGEsIGh5cGhlbmF0aW9uTGltaXRMaW5lcywgbGltaXQpOyB9CiAgICAgdm9pZCBzZXRI
eXBoZW5hdGlvblN0cmluZyhjb25zdCBBdG9taWNTdHJpbmcmIGgpIHsgU0VUX1ZBUihyYXJlSW5o
ZXJpdGVkRGF0YSwgaHlwaGVuYXRpb25TdHJpbmcsIGgpOyB9Ci0gICAgdm9pZCBzZXRMb2NhbGUo
Y29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwg
bG9jYWxlLCBsb2NhbGUpOyB9CiAgICAgdm9pZCBzZXRCb3JkZXJGaXQoRUJvcmRlckZpdCBiKSB7
IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fYm9yZGVyRml0LCBiKTsgfQogICAgIHZv
aWQgc2V0UmVzaXplKEVSZXNpemUgcikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCByZXNp
emUsIHIpOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5BeGlzKENvbHVtbkF4aXMgYXhpcykgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2F4aXMsIGF4
aXMpOyB9CkBAIC0xOTk3LDcgKzE5OTYsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHNob3J0IGlu
aXRpYWxIeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoKSB7IHJldHVybiAtMTsgfQogICAgIHN0YXRpYyBz
aG9ydCBpbml0aWFsSHlwaGVuYXRpb25MaW1pdExpbmVzKCkgeyByZXR1cm4gLTE7IH0KICAgICBz
dGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWFsSHlwaGVuYXRpb25TdHJpbmcoKSB7IHJl
dHVybiBudWxsQXRvbTsgfQotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxM
b2NhbGUoKSB7IHJldHVybiBudWxsQXRvbTsgfQogICAgIHN0YXRpYyBFQm9yZGVyRml0IGluaXRp
YWxCb3JkZXJGaXQoKSB7IHJldHVybiBCb3JkZXJGaXRCb3JkZXI7IH0KICAgICBzdGF0aWMgRVJl
c2l6ZSBpbml0aWFsUmVzaXplKCkgeyByZXR1cm4gUkVTSVpFX05PTkU7IH0KICAgICBzdGF0aWMg
Q29udHJvbFBhcnQgaW5pdGlhbEFwcGVhcmFuY2UoKSB7IHJldHVybiBOb0NvbnRyb2xQYXJ0OyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZmY4Nzc5NmE0ZDExZTA3NWMxZGEwZWM0MTllNjc0MjMz
ZjAxOTc5Yy4uZDE2YjkxZjU3MWQ0NGY2ZjIxZTEyZDUwZjA5MmY4ZmQwOWQ2MjZhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmNwcApAQCAtMjExLDcgKzIxMSw2IEBAIGlubGluZSBTdHlsZVJhcmVJbmhlcml0
ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERh
CiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVuYXRpb25MaW1pdEJlZm9yZSkK
ICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcihvLmh5cGhlbmF0aW9uTGltaXRBZnRlcikKICAg
ICAsIGh5cGhlbmF0aW9uTGltaXRMaW5lcyhvLmh5cGhlbmF0aW9uTGltaXRMaW5lcykKLSAgICAs
IGxvY2FsZShvLmxvY2FsZSkKICAgICAsIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoby50ZXh0RW1w
aGFzaXNDdXN0b21NYXJrKQogICAgICwgbV9saW5lR3JpZChvLm1fbGluZUdyaWQpCiAgICAgLCBt
X3RhYlNpemUoby5tX3RhYlNpemUpCkBAIC0yODgsNyArMjg3LDYgQEAgYm9vbCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8p
IGNvbnN0CiAgICAgICAgICYmIHRvdWNoQ2FsbG91dEVuYWJsZWQgPT0gby50b3VjaENhbGxvdXRF
bmFibGVkCiAjZW5kaWYKICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5h
dGlvblN0cmluZwotICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUKICAgICAgICAgJiYgdGV4
dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNpc0N1c3RvbU1hcmsKICAgICAgICAg
JiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShxdW90ZXMsIG8ucXVvdGVzKQogICAgICAgICAmJiBt
X3RhYlNpemUgPT0gby5tX3RhYlNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IGVjYmIwNzlmYjA4ZDFj
ZWY3NTFkMTIzNzEzMDc2YTY4MjkxMzYyMTEuLmJmNDAyMWZhZDFkYjMwNTJmYmFjMGY4ZDA4YzEy
MWFiNDM5MmViZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTQyLDggKzE0Miw2IEBAIHB1YmxpYzoK
ICAgICBzaG9ydCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXI7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25M
aW1pdExpbmVzOwogCi0gICAgQXRvbWljU3RyaW5nIGxvY2FsZTsKLQogICAgIEF0b21pY1N0cmlu
ZyB0ZXh0RW1waGFzaXNDdXN0b21NYXJrOwogICAgIFJlZlB0cjxRdW90ZXNEYXRhPiBxdW90ZXM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNw
cAppbmRleCA0YmNiNGM0NWNmZjU2ZmFjNWU2ZTEwMmQ3YTEyZjYwMTBmODFiYjAwLi5kNGQxMTVj
OGNlNDFjNWI4ZDliYWM1NGUzNTViM2U3MGEzZWZhZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC01OSw3ICs1OSw5IEBAIFJl
ZjxSZW5kZXJTdHlsZT4gcmVzb2x2ZUZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLmdldCgpLnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LnZpc3Vh
bGx5T3JkZXJlZCgpID8gVmlzdWFsT3JkZXIgOiBMb2dpY2FsT3JkZXIpOwogICAgIGRvY3VtZW50
U3R5bGUuZ2V0KCkuc2V0Wm9vbSghZG9jdW1lbnQucHJpbnRpbmcoKSA/IHJlbmRlclZpZXcuZnJh
bWUoKS5wYWdlWm9vbUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRTdHlsZS5nZXQoKS5zZXRQ
YWdlU2NhbGVUcmFuc2Zvcm0ocmVuZGVyVmlldy5mcmFtZSgpLmZyYW1lU2NhbGVGYWN0b3IoKSk7
Ci0gICAgZG9jdW1lbnRTdHlsZS5nZXQoKS5zZXRMb2NhbGUoZG9jdW1lbnQuY29udGVudExhbmd1
YWdlKCkpOworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZG9jdW1lbnRGb250RGVzY3JpcHRp
b24gPSBkb2N1bWVudFN0eWxlLmdldCgpLmZvbnREZXNjcmlwdGlvbigpOworICAgIGRvY3VtZW50
Rm9udERlc2NyaXB0aW9uLnNldExvY2FsZShkb2N1bWVudC5jb250ZW50TGFuZ3VhZ2UoKSk7Cisg
ICAgZG9jdW1lbnRTdHlsZS5nZXQoKS5zZXRGb250RGVzY3JpcHRpb24oV1RGOjptb3ZlKGRvY3Vt
ZW50Rm9udERlc2NyaXB0aW9uKSk7CiAKICAgICAvLyBUaGlzIG92ZXJyaWRlcyBhbnkgLXdlYmtp
dC11c2VyLW1vZGlmeSBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IGlmcmFtZS4KICAgICBkb2N1
bWVudFN0eWxlLmdldCgpLnNldFVzZXJNb2RpZnkoZG9jdW1lbnQuaW5EZXNpZ25Nb2RlKCkgPyBS
RUFEX1dSSVRFIDogUkVBRF9PTkxZKTsKQEAgLTk3LDcgKzk5LDcgQEAgUmVmPFJlbmRlclN0eWxl
PiByZXNvbHZlRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIGNvbnN0
IFNldHRpbmdzJiBzZXR0aW5ncyA9IHJlbmRlclZpZXcuZnJhbWUoKS5zZXR0aW5ncygpOwogCiAg
ICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgZm9udERlc2Ny
aXB0aW9uLnNldFNjcmlwdChsb2NhbGVUb1NjcmlwdENvZGVGb3JGb250U2VsZWN0aW9uKGRvY3Vt
ZW50U3R5bGUuZ2V0KCkubG9jYWxlKCkpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0TG9jYWxl
KGRvY3VtZW50LmNvbnRlbnRMYW5ndWFnZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVu
ZGVyaW5nTW9kZShzZXR0aW5ncy5mb250UmVuZGVyaW5nTW9kZSgpKTsKICAgICBmb250RGVzY3Jp
cHRpb24uc2V0T25lRmFtaWx5KHN0YW5kYXJkRmFtaWx5KTsKIAo=
</data>
<flag name="commit-queue"
          id="290318"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>