<?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>162781</bug_id>
          
          <creation_ts>2016-09-30 03:18:22 -0700</creation_ts>
          <short_desc>Parse font-variation-settings</short_desc>
          <delta_ts>2016-09-30 15:01:41 -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>Text</component>
          <version>Other</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>162490</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235182</commentid>
    <comment_count>0</comment_count>
      <attachid>290317</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 03:18:22 -0700</bug_when>
    <thetext>Created attachment 290317
Patch

Parse font-variation-settings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235418</commentid>
    <comment_count>1</comment_count>
      <attachid>290383</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 14:25:04 -0700</bug_when>
    <thetext>Created attachment 290383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235422</commentid>
    <comment_count>2</comment_count>
      <attachid>290383</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-09-30 14:34:59 -0700</bug_when>
    <thetext>Comment on attachment 290383
Patch

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

&gt; Source/WebCore/css/CSSFontVariationValue.h:35
&gt; +    static Ref&lt;CSSFontVariationValue&gt; create(FontTag&amp;&amp; tag, float value)

Do you really need to use an r-value reference for something that&apos;s 4 bytes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235436</commentid>
    <comment_count>3</comment_count>
      <attachid>290389</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 14:48:30 -0700</bug_when>
    <thetext>Created attachment 290389
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235445</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 15:01:41 -0700</bug_when>
    <thetext>Committed r206679: &lt;http://trac.webkit.org/changeset/206679&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290317</attachid>
            <date>2016-09-30 03:18:22 -0700</date>
            <delta_ts>2016-09-30 14:25:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>33971</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGE2NjYzZWU1ZWNmNGZkYzU3ODA3OTFkOTk2YzRmMzc1MDRlZmQ0ZGYKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgU2VwIDMw
IDAwOjQ3OjM0IDIwMTYgLTA3MDAKCiAgICBQYXJzaW5nCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvdmFyaWF0aW9ucy9nZXRDb21wdXRlZFN0eWxlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWEwMTQyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRT
dHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDAnKSkuZ2V0UHJvcGVydHlWYWx1
ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAiJ3dnaHQnIDIiCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpKS5nZXRQcm9w
ZXJ0eVZhbHVlKCdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycpIGlzICInd2dodCcgMyIKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykp
LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykgaXMgIid3Z2h0JyAy
LCAnd2R0aCcgMS4yIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDInKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0
dGluZ3MnKSBpcyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKQor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAibm9y
bWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDUnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBp
cyAibm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDYnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGlu
Z3MnKSBpcyAibm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24t
c2V0dGluZ3MnKSBpcyAiJ3dnaHQnIDI3IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC92
YXJpYXRpb25zL2dldENvbXB1dGVkU3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC92
YXJpYXRpb25zL2dldENvbXB1dGVkU3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45ZmM4ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0VmFyaWF0aW9uRm9udHNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0idGVzdDAiIHN0eWxlPSJmb250LWZhbWlseTogJ1NraWEnOyBmb250
LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDI7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3QxIiBz
dHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0
JyAyLCAnd2dodCcgMzsiPjwvZGl2PgorPGRpdiBpZD0idGVzdDIiIHN0eWxlPSJmb250LWZhbWls
eTogJ1NraWEnOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDIsICd3ZHRoJyAxLjI7
Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3QzIiBzdHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9u
dC12YXJpYXRpb24tc2V0dGluZ3M6ICd3ZHRoJyAxLjIsICd3Z2h0JyAyOyI+PC9kaXY+Cis8ZGl2
IGlkPSJ0ZXN0NCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnU2tpYSc7IGZvbnQtdmFyaWF0aW9uLXNl
dHRpbmdzOiBub3JtYWw7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3Q1IiBzdHlsZT0iZm9udC1mYW1p
bHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICdhYmNkZScgMzsiPjwvZGl2Pgor
PGRpdiBpZD0idGVzdDYiIHN0eWxlPSJmb250LWZhbWlseTogJ1NraWEnOyBmb250LXZhcmlhdGlv
bi1zZXR0aW5nczogJ2FiY+2VnOq1reyWtGUnIDM7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3Q3IiBz
dHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0
JyAyNzsiPjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QwJykpLmdldFByb3Bl
cnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQnIDIiKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QxJykpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRp
bmdzJykiLCAiJ3dnaHQnIDMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykpLmdldFByb3BlcnR5
VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQnIDIsICd3ZHRoJyAxLjIi
KTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDInKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3Mn
KSIsICJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0
dGluZ3MnKSIsICJub3JtYWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykpLmdldFByb3BlcnR5
VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAibm9ybWFsIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NicpKS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycp
IiwgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJvcGVydHlWYWx1ZSgn
Zm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSIsICInd2dodCcgMjciKTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3ODc3ZmVkLi43Mjk2MTE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTI2Niw2ICsxMjY2LDcgQEAgc2V0KFdlYkNvcmVf
U09VUkNFUwogICAgIGNzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcAogICAgIGNzcy9DU1NGb250
U2VsZWN0b3IuY3BwCiAgICAgY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKKyAgICBjc3MvQ1NTRm9udFZh
cmlhdGlvblZhbHVlLmNwcAogICAgIGNzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAogICAgIGNzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcAogICAgIGNzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDhiMjYzOWIuLjBmMmIzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NjksNiArNTQ2OSw4IEBACiAJCUMxMDVEQTYy
MEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MTBGM0FBNjhGMDAx
REQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwICovOyB9OwogCQlDMTA1REE2NDBG
M0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMjAxNUMwQTFCRTZGRUIyMDA4MjIz
ODkgLyogRm9udFZhcmlhbnRCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9udFZhcmlhbnRC
dWlsZGVyLmggKi87IH07CisJCUMyMURGMkU5MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFy
aWF0aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzIxREYyRTcxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5j
cHAgKi87IH07CisJCUMyMURGMkVBMUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9u
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMy
MURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUuaCAqLzsgfTsK
IAkJQzI2MDE3QTMxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNjAxN0ExMUM3MkRDOTkw
MEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5jcHAgKi87IH07CiAJCUMyNjAxN0E0MUM3MkRDOTkw
MEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNl
U2V0LmggKi87IH07CiAJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjgwODMzRTFD
NkRDMjJDMDAxNDUxQjYgLyogSlNGb250RmFjZS5oICovOyB9OwpAQCAtMTI5NzAsNiArMTI5NzIs
OCBAQAogCQlDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3JJ
Q1UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEVuY29kaW5n
RGV0ZWN0b3JJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTA1REE2MzBG
M0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGV4dEVuY29kaW5nRGV0ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVp
bGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb250VmFyaWFudEJ1aWxkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzIxREYyRTcxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJp
YXRpb25WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMjFE
RjJFODFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMjQ2ODUxMzFBMTQ4RTE4MDA4MTE3OTIgLyogQ29yZUdy
YXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVHcmFwaGlj
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJEQzk5MDBG
NzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyNjAwLDYgKzIyNjA0LDggQEAKIAkJCQkzRkZGRjlBNjE1OUQ5QTU1
MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCAqLywKIAkJCQkzRkZGRjlBNzE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi8sCiAJCQkJM0YyQjMz
RTMxNjVBQkQzNTAwRTM5ODdDIC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwgKi8sCisJCQkJ
QzIxREYyRTcxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgKi8s
CisJCQkJQzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBjc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjQ3MDksNiArMjQ3MTUsNyBAQAogCQkJCUE4RDIyM0ZFMTZCNTJFNEUwMDE1NzI4OCAvKiBI
VE1MUmVzb3VyY2VQcmVsb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQzI1MEExNTIw
NTcwMEIxMkE2OCAvKiBIVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3
QjM4NzUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCUMyMURGMkVBMUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODc2MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2Ny
aXB0UnVubmVySG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RDgwOTczNzRGNjAwRDc0
NDYzIC8qIEhUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjY5RDNCNTFC
OThGRkU5MDBFMzUxMkIgLyogSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI4
NDcwLDYgKzI4NDc3LDcgQEAKIAkJCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50
T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3MTM4RUYxQkVEMUQxQTAw
MEQ1RjAxIC8qIEluZGV4S2V5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRUVBQTczMUJFRkZB
QjEwMDIxODAwOCAvKiBJbmRleFZhbHVlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzIx
REYyRTkxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTcxMzhGNzFCRjEyOEJCMDAwRDVGMDEgLyogSW5kZXhWYWx1ZVN0b3Jl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNUU2MEExNTVBMDUwMDBBNDIzNCAvKiBJbmxp
bmVCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU3Q0I1MkQxODJBM0VFRDAwNzlBNjQ3IC8q
IElubGluZUVsZW1lbnRCb3guY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbElu
T25lLmNwcAppbmRleCBiNGY5OWU4Li5kYTc4Zjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbGxJbk9u
ZS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmVhdHVyZVZhbHVlLmNw
cCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuY3BwIgogI2luY2x1ZGUgIkNTU0ZvbnRWYWx1
ZS5jcHAiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCIKICNpbmNsdWRlICJD
U1NGdW5jdGlvblZhbHVlLmNwcCIKICNpbmNsdWRlICJDU1NHcmFkaWVudFZhbHVlLmNwcCIKICNp
bmNsdWRlICJDU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2MDUwOGM5Li5kMmM5
MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkNTU0N1c3RvbVByb3BlcnR5
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVhdHVyZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
Rm9udFZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgiCisjaW5jbHVk
ZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5o
IgogI2luY2x1ZGUgIkNTU0xpbmVCb3hDb250YWluVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJz
ZXIuaCIKQEAgLTYyLDYgKzY0LDggQEAKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcGVWYWx1ZS5oIgog
I2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGll
cy5oIgpAQCAtMjg3OSw2ICsyODgzLDE4IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHls
ZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAg
ICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU0ZvbnRGZWF0dXJlVmFsdWU6OmNyZWF0ZShGb250
VGFnKGZlYXR1cmUudGFnKCkpLCBmZWF0dXJlLnZhbHVlKCkpKTsKICAgICAgICAgICAgIHJldHVy
biBsaXN0OwogICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFyaWF0aW9u
U2V0dGluZ3M6IHsKKyAgICAgICAgICAgIGlmIChzdHlsZWROb2RlLT5kb2N1bWVudCgpLnNldHRp
bmdzKCkgJiYgc3R5bGVkTm9kZS0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpLT52YXJpYXRpb25Gb250
c0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5n
cyYgdmFyaWF0aW9uU2V0dGluZ3MgPSBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkudmFyaWF0aW9u
U2V0dGluZ3MoKTsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWF0aW9uU2V0dGluZ3MuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAgICAgICAgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAg
ICAgICAgICAgICAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiB2YXJpYXRpb25TZXR0aW5ncykKKyAg
ICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3Jl
YXRlKEZvbnRUYWcoZmVhdHVyZS50YWcoKSksIGZlYXR1cmUudmFsdWUoKSkpOworICAgICAgICAg
ICAgICAgIHJldHVybiBsaXN0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICBjYXNlIENTU1By
b3BlcnR5R3JpZEF1dG9GbG93OiB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBs
aXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43OTlhODRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDU1NGb250VmFyaWF0aW9uVmFsdWUuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NGb250VmFyaWF0
aW9uVmFsdWU6OkNTU0ZvbnRWYXJpYXRpb25WYWx1ZShGb250VGFnJiYgdGFnLCBmbG9hdCB2YWx1
ZSkKKyAgICA6IENTU1ZhbHVlKEZvbnRWYXJpYXRpb25DbGFzcykKKyAgICAsIG1fdGFnKFdURk1v
dmUodGFnKSkKKyAgICAsIG1fdmFsdWUodmFsdWUpCit7Cit9CisKK1N0cmluZyBDU1NGb250VmFy
aWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgnXCcnKTsKKyAgICBmb3IgKGNoYXIgYyA6IG1f
dGFnKQorICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIicgIik7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV92YWx1ZSk7CisgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKworYm9vbCBDU1NGb250VmFyaWF0aW9uVmFsdWU6OmVx
dWFscyhjb25zdCBDU1NGb250VmFyaWF0aW9uVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJl
dHVybiBtX3RhZyA9PSBvdGhlci5tX3RhZyAmJiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWNiMTczCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiRm9udFRhZ2dlZFNldHRp
bmdzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTRm9udFZhcmlhdGlvblZh
bHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENT
U0ZvbnRWYXJpYXRpb25WYWx1ZT4gY3JlYXRlKEZvbnRUYWcmJiB0YWcsIGZsb2F0IHZhbHVlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udFZhcmlhdGlvblZhbHVl
KFdURk1vdmUodGFnKSwgdmFsdWUpKTsKKyAgICB9CisKKyAgICBjb25zdCBGb250VGFnJiB0YWco
KSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQorICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZTsgfQorICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CisKKyAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NGb250VmFyaWF0aW9uVmFsdWUmKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBDU1NGb250VmFyaWF0aW9uVmFsdWUoRm9udFRhZyYmLCBmbG9hdCk7CisKKyAgICBG
b250VGFnIG1fdGFnOworICAgIGNvbnN0IGZsb2F0IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU0ZvbnRW
YXJpYXRpb25WYWx1ZSwgaXNGb250VmFyaWF0aW9uVmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggNjc0NWJmZC4uMTMzN2ZkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTEwNSw2ICsxMDUsNyBAQCBmb250LXN0eWxlIFtJ
bmhlcml0ZWQsIEZvbnRQcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9SXRhbGljXQogZm9udC13ZWln
aHQgW0luaGVyaXRlZCwgQ3VzdG9tPUFsbF0KIHRleHQtcmVuZGVyaW5nIFtJbmhlcml0ZWQsIEZv
bnRQcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9VGV4dFJlbmRlcmluZ01vZGVdCiBmb250LWZlYXR1
cmUtc2V0dGluZ3MgW0luaGVyaXRlZCwgRm9udFByb3BlcnR5LCBDdXN0b209SW5pdGlhbHxJbmhl
cml0LCBDb252ZXJ0ZXI9Rm9udEZlYXR1cmVTZXR0aW5ncywgTmFtZUZvck1ldGhvZHM9RmVhdHVy
ZVNldHRpbmdzXQorZm9udC12YXJpYXRpb24tc2V0dGluZ3MgW0luaGVyaXRlZCwgRm9udFByb3Bl
cnR5LCBDdXN0b209SW5pdGlhbHxJbmhlcml0LCBDb252ZXJ0ZXI9Rm9udFZhcmlhdGlvblNldHRp
bmdzLCBOYW1lRm9yTWV0aG9kcz1WYXJpYXRpb25TZXR0aW5nc10KIC13ZWJraXQtZm9udC1rZXJu
aW5nIFtJbmhlcml0ZWQsIEZvbnRQcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9S2VybmluZ10KIGZv
bnQta2VybmluZyA9IC13ZWJraXQtZm9udC1rZXJuaW5nCiAtd2Via2l0LWZvbnQtc21vb3RoaW5n
IFtJbmhlcml0ZWQsIEZvbnRQcm9wZXJ0eV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDdm
YzlkZDIuLjU1YTUzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtNDMsNiArNDMsNyBA
QAogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVh
dHVyZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRm9u
dFZhcmlhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU0dyYWRpZW50VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFnZVNldFZhbHVlLmgiCkBA
IC0xNzYsNiArMTc3LDggQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBv
dGhlcikgY29uc3QKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRG
YWNlU3JjVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgRm9udEZlYXR1cmVDbGFz
czoKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRGZWF0dXJlVmFs
dWU+KCp0aGlzLCBvdGhlcik7CisgICAgICAgIGNhc2UgRm9udFZhcmlhdGlvbkNsYXNzOgorICAg
ICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTRm9udFZhcmlhdGlvblZhbHVlPigq
dGhpcywgb3RoZXIpOwogICAgICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6CiAgICAgICAgICAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NGdW5jdGlvblZhbHVlPigqdGhpcywgb3RoZXIpOwog
ICAgICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CkBAIC0yODIsNiArMjg1LDggQEAgU3Ry
aW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENT
U0ZvbnRGYWNlU3JjVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBGb250
RmVhdHVyZUNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTRm9udEZlYXR1cmVWYWx1
ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKKyAgICBjYXNlIEZvbnRWYXJpYXRpb25DbGFzczoK
KyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4oKnRoaXMpLmN1
c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6CiAgICAgICAgIHJldHVybiBk
b3duY2FzdDxDU1NGdW5jdGlvblZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNh
c2UgTGluZWFyR3JhZGllbnRDbGFzczoKQEAgLTM5Niw2ICs0MDEsOSBAQCB2b2lkIENTU1ZhbHVl
OjpkZXN0cm95KCkKICAgICBjYXNlIEZvbnRGZWF0dXJlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBk
b3duY2FzdDxDU1NGb250RmVhdHVyZVZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgRm9udFZhcmlhdGlvbkNsYXNzOgorICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTRm9u
dFZhcmlhdGlvblZhbHVlPih0aGlzKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRnVuY3Rp
b25DbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+KHRoaXMp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDQ0ZjFjOWUuLmU4Yzdh
NzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1ZhcmlhYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBWYXJp
YWJsZUNsYXNzOyB9CiAgICAgYm9vbCBpc0Z1bmN0aW9uVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2NsYXNzVHlwZSA9PSBGdW5jdGlvbkNsYXNzOyB9CiAgICAgYm9vbCBpc0ZvbnRGZWF0dXJlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGb250RmVhdHVyZUNsYXNzOyB9Cisg
ICAgYm9vbCBpc0ZvbnRWYXJpYXRpb25WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBl
ID09IEZvbnRWYXJpYXRpb25DbGFzczsgfQogICAgIGJvb2wgaXNGb250RmFjZVNyY1ZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRm9udEZhY2VTcmNDbGFzczsgfQogICAgIGJv
b2wgaXNGb250VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGb250Q2xhc3M7
IH0KICAgICBib29sIGlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xh
c3NUeXBlID49IENhbnZhc0NsYXNzICYmIG1fY2xhc3NUeXBlIDw9IFJhZGlhbEdyYWRpZW50Q2xh
c3M7IH0KQEAgLTE2OSw2ICsxNzAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEFzcGVjdFJhdGlv
Q2xhc3MsCiAgICAgICAgIEJvcmRlckltYWdlU2xpY2VDbGFzcywKICAgICAgICAgRm9udEZlYXR1
cmVDbGFzcywKKyAgICAgICAgRm9udFZhcmlhdGlvbkNsYXNzLAogICAgICAgICBGb250Q2xhc3Ms
CiAgICAgICAgIEZvbnRGYWNlU3JjQ2xhc3MsCiAgICAgICAgIEZ1bmN0aW9uQ2xhc3MsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggY2ZlNTU4Yy4uMDUw
ZDY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNTU0NhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVhdHVy
ZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyaWRBdXRvUmVwZWF0VmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NHcmlkTGluZU5hbWVzVmFsdWUuaCIKQEAgLTEyMCw2ICsxMjEsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY29udmVydE92ZXJmbG93U2Nyb2xsaW5nKFN0eWxlUmVz
b2x2ZXImLCBDU1NWYWx1ZSYpOwogI2VuZGlmCiAgICAgc3RhdGljIEZvbnRGZWF0dXJlU2V0dGlu
Z3MgY29udmVydEZvbnRGZWF0dXJlU2V0dGluZ3MoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJik7
CisgICAgc3RhdGljIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBjb252ZXJ0Rm9udFZhcmlhdGlvblNl
dHRpbmdzKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBTVkdMZW5ndGgg
Y29udmVydFNWR0xlbmd0aChTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMg
VmVjdG9yPFNWR0xlbmd0aD4gY29udmVydFNWR0xlbmd0aFZlY3RvcihTdHlsZVJlc29sdmVyJiwg
Q1NTVmFsdWUmKTsKICAgICBzdGF0aWMgVmVjdG9yPFNWR0xlbmd0aD4gY29udmVydFN0cm9rZURh
c2hBcnJheShTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKQEAgLTExNDQsNiArMTE0NiwyMSBA
QCBpbmxpbmUgRm9udEZlYXR1cmVTZXR0aW5ncyBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRGb250RmVhdHVyZVNldHRpbmdzKFN0eQogICAgIHJldHVybiBzZXR0aW5nczsKIH0KIAoraW5s
aW5lIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRG
b250VmFyaWF0aW9uU2V0dGluZ3MoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJiB2YWx1ZSkKK3sK
KyAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgeworICAgICAgICBBU1NFUlQo
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVOb3JtYWwpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEZvbnRWYXJpYXRp
b25TZXR0aW5ncyBzZXR0aW5nczsKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBkb3duY2FzdDxDU1NW
YWx1ZUxpc3Q+KHZhbHVlKSkgeworICAgICAgICBhdXRvJiBmZWF0dXJlID0gZG93bmNhc3Q8Q1NT
Rm9udFZhcmlhdGlvblZhbHVlPihpdGVtLmdldCgpKTsKKyAgICAgICAgc2V0dGluZ3MuaW5zZXJ0
KHsgZmVhdHVyZS50YWcoKSwgZmVhdHVyZS52YWx1ZSgpIH0pOworICAgIH0KKyAgICByZXR1cm4g
c2V0dGluZ3M7Cit9CisKICNpZiBQTEFURk9STShJT1MpCiBpbmxpbmUgYm9vbCBTdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXI6OmNvbnZlcnRUb3VjaENhbGxvdXQoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVl
JiB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
dXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAppbmRleCBl
MGQwZDRhLi4xYmJmZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5o
CkBAIC0xMTIsNiArMTEyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJp
dFdlYmtpdE1hc2tJbWFnZShTdHlsZVJlc29sdmVyJikgeyB9CiAgICAgc3RhdGljIHZvaWQgYXBw
bHlJbml0aWFsRm9udEZlYXR1cmVTZXR0aW5ncyhTdHlsZVJlc29sdmVyJikgeyB9CiAgICAgc3Rh
dGljIHZvaWQgYXBwbHlJbmhlcml0Rm9udEZlYXR1cmVTZXR0aW5ncyhTdHlsZVJlc29sdmVyJikg
eyB9CisgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsRm9udFZhcmlhdGlvblNldHRpbmdzKFN0
eWxlUmVzb2x2ZXImKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRGb250VmFyaWF0
aW9uU2V0dGluZ3MoU3R5bGVSZXNvbHZlciYpIHsgfQogCiAgICAgLy8gQ3VzdG9tIGhhbmRsaW5n
IG9mIGluaGVyaXQgKyB2YWx1ZSBzZXR0aW5nIG9ubHkuCiAgICAgc3RhdGljIHZvaWQgYXBwbHlJ
bmhlcml0RGlzcGxheShTdHlsZVJlc29sdmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlci5jcHAKaW5kZXggM2U2ZmViMC4uM2Q5N2UwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkNTU0ZvbnRG
YWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVhdHVyZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTRm9udFZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFsdWUu
aCIKICNpbmNsdWRlICJDU1NJbWFnZVNldFZhbHVlLmgiCkBAIC0yNzEsNiArMjcyLDcgQEAgQ1NT
UGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFVSTCYgYmFzZVVSTCwgY29uc3QKICNlbmRpZgogICAgICAgICBzcHJpbmdUaW1pbmdGdW5jdGlv
bkVuYWJsZWQgPSBzZXR0aW5ncy0+c3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkKCk7CiAgICAg
ICAgIHVzZU5ld1BhcnNlciA9IHNldHRpbmdzLT5uZXdDU1NQYXJzZXJFbmFibGVkKCk7CisgICAg
ICAgIHZhcmlhdGlvbkZvbnRzRW5hYmxlZCA9IHNldHRpbmdzLT52YXJpYXRpb25Gb250c0VuYWJs
ZWQoKTsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0yOTMsNyArMjk1LDggQEAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIGIpCiAgICAgICAgICYmIGEubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPT0gYi5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcwogICAgICAgICAmJiBhLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSA9PSBiLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZQogICAgICAg
ICAmJiBhLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgPT0gYi51c2VM
ZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yCi0gICAgICAgICYmIGEuc3ByaW5n
VGltaW5nRnVuY3Rpb25FbmFibGVkID09IGIuc3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkOwor
ICAgICAgICAmJiBhLnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCA9PSBiLnNwcmluZ1RpbWlu
Z0Z1bmN0aW9uRW5hYmxlZAorICAgICAgICAmJiBhLnZhcmlhdGlvbkZvbnRzRW5hYmxlZCA9PSBi
LnZhcmlhdGlvbkZvbnRzRW5hYmxlZDsKIH0KIAogQ1NTUGFyc2VyOjpDU1NQYXJzZXIoY29uc3Qg
Q1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKQEAgLTI5NzEsNiArMjk3NCwxNCBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZUZvbnRGZWF0dXJlU2V0dGlu
Z3MoaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRW
YXJpYXRpb25TZXR0aW5nczoKKyAgICAgICAgaWYgKG1fY29udGV4dC52YXJpYXRpb25Gb250c0Vu
YWJsZWQpIHsKKyAgICAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHBhcnNlRm9udFZhcmlhdGlvblNldHRpbmdzKGltcG9ydGFudCk7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50
TGlnYXR1cmVzOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NT
VmFsdWVOb25lKQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwpAQCAtMTA2MjQs
NiArMTA2MzUsNjAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhi
b29sIGltcG9ydGFudCkKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQorIAorYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlRm9udFZhcmlhdGlvblRhZyhDU1NWYWx1ZUxpc3QmIHNldHRpbmdzKQorewor
ICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAg
Ly8gRmVhdHVyZSB0YWcgbmFtZSBjb21lcyBmaXJzdAorICAgIGlmICh2YWx1ZS0+dW5pdCAhPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IEZvbnRUYWcgdGFnOworICAgIGlmICh2YWx1ZS0+c3RyaW5nLmxlbmd0aCgpICE9IHRhZy5zaXpl
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
dGFnLnNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIExpbWl0cyB0aGUgcmFuZ2Ugb2YgY2hhcmFj
dGVycyB0byAweDIwLTB4N0UsIGZvbGxvd2luZyB0aGUgdGFnIG5hbWUgcnVsZXMgZGVmaWVuZCBp
biB0aGUgT3BlblR5cGUgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0g
dmFsdWUtPnN0cmluZ1tpXTsKKyAgICAgICAgaWYgKGNoYXJhY3RlciA8IDB4MjAgfHwgY2hhcmFj
dGVyID4gMHg3RSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdGFnW2ldID0g
dG9BU0NJSUxvd2VyKGNoYXJhY3Rlcik7CisgICAgfQorCisgICAgdmFsdWUgPSBtX3ZhbHVlTGlz
dC0+bmV4dCgpOworICAgIGlmICghdmFsdWUgfHwgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZsb2F0IHRh
Z1ZhbHVlID0gdmFsdWUtPmZWYWx1ZTsKKyAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworCisgICAg
c2V0dGluZ3MuYXBwZW5kKENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3JlYXRlKFdURk1vdmUodGFn
KSwgdGFnVmFsdWUpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDU1NQYXJzZXI6OnBh
cnNlRm9udFZhcmlhdGlvblNldHRpbmdzKGJvb2wgaW1wb3J0YW50KQoreworICAgIGlmIChtX3Zh
bHVlTGlzdC0+c2l6ZSgpID09IDEgJiYgbV92YWx1ZUxpc3QtPmN1cnJlbnQoKS0+aWQgPT0gQ1NT
VmFsdWVOb3JtYWwpIHsKKyAgICAgICAgYXV0byBub3JtYWxWYWx1ZSA9IENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKKyAgICAg
ICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlG
b250VmFyaWF0aW9uU2V0dGluZ3MsIFdURk1vdmUobm9ybWFsVmFsdWUpLCBpbXBvcnRhbnQpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBhdXRvIHNldHRpbmdzID0gQ1NTVmFs
dWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOworICAgIGZvciAoQ1NTUGFyc2VyVmFsdWUq
IHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsgdmFsdWU7IHZhbHVlID0gbV92YWx1ZUxp
c3QtPm5leHQoKSkgeworICAgICAgICBpZiAoIXBhcnNlRm9udFZhcmlhdGlvblRhZyhzZXR0aW5n
cykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gSWYgdGhlIGxpc3Qg
aXNuJ3QgcGFyc2VkIGZ1bGx5LCB0aGUgY3VycmVudCB2YWx1ZSBzaG91bGQgYmUgY29tbWEuCisg
ICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKHZhbHVl
ICYmICFpc0NvbW1hKHZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgaWYgKHNldHRpbmdzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUZvbnRWYXJpYXRpb25TZXR0aW5ncywgV1RGTW92ZShzZXR0aW5ncyksIGltcG9ydGFudCk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRWYXJpYW50TGlnYXR1cmVzKGJvb2wgaW1wb3J0YW50LCBi
b29sIHVua25vd25Jc0ZhaWx1cmUsIGJvb2wgaW1wbGljaXQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXIuaAppbmRleCAxMTM3MmI0Li5lYTNjYjVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmgKQEAgLTM2Myw2ICszNjMsOSBAQCBwdWJsaWM6CiAKICAgICBi
b29sIHBhcnNlRm9udEZlYXR1cmVUYWcoQ1NTVmFsdWVMaXN0Jik7CiAgICAgYm9vbCBwYXJzZUZv
bnRGZWF0dXJlU2V0dGluZ3MoYm9vbCBpbXBvcnRhbnQpOworIAorICAgIGJvb2wgcGFyc2VGb250
VmFyaWF0aW9uVGFnKENTU1ZhbHVlTGlzdCYpOworICAgIGJvb2wgcGFyc2VGb250VmFyaWF0aW9u
U2V0dGluZ3MoYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9vbCBwYXJzZUZsb3dUaHJlYWQoQ1NT
UHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VSZWdpb25UaHJlYWQo
Q1NTUHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlck1vZGUuaAppbmRleCBlOTkwNzAwLi41NWNiNzU1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCB1c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yIHsgZmFs
c2UgfTsKICAgICBib29sIHNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCB1c2VOZXdQYXJzZXIgeyBmYWxzZSB9OworICAgIGJvb2wgdmFyaWF0aW9uRm9udHNF
bmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJD
b250ZXh0JiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBjNGJmZjA3Li4xNTQ2YThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNzYsNiArNzYs
NyBAQCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICAgICAgLCBtX3dlaWdodChkZXNj
cmlwdGlvbi53ZWlnaHQoKSkKICAgICAgICAgLCBtX2ZsYWdzKG1ha2VGbGFnc0tleShkZXNjcmlw
dGlvbikpCiAgICAgICAgICwgbV9mZWF0dXJlU2V0dGluZ3MoZGVzY3JpcHRpb24uZmVhdHVyZVNl
dHRpbmdzKCkpCisgICAgICAgICwgbV92YXJpYXRpb25TZXR0aW5ncyhkZXNjcmlwdGlvbi52YXJp
YXRpb25TZXR0aW5ncygpKQogICAgIHsgfQogCiAgICAgZXhwbGljaXQgRm9udERlc2NyaXB0aW9u
S2V5KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKQEAgLTg1LDcgKzg2LDcgQEAgc3Ry
dWN0IEZvbnREZXNjcmlwdGlvbktleSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbktleSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9zaXpl
ID09IG90aGVyLm1fc2l6ZSAmJiBtX3dlaWdodCA9PSBvdGhlci5tX3dlaWdodCAmJiBtX2ZsYWdz
ID09IG90aGVyLm1fZmxhZ3MKLSAgICAgICAgICAgICYmIG1fZmVhdHVyZVNldHRpbmdzID09IG90
aGVyLm1fZmVhdHVyZVNldHRpbmdzOworICAgICAgICAgICAgJiYgbV9mZWF0dXJlU2V0dGluZ3Mg
PT0gb3RoZXIubV9mZWF0dXJlU2V0dGluZ3MgJiYgbV92YXJpYXRpb25TZXR0aW5ncyA9PSBvdGhl
ci5tX3ZhcmlhdGlvblNldHRpbmdzOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBGb250RGVzY3JpcHRpb25LZXkmIG90aGVyKSBjb25zdApAQCAtMTAzLDYgKzEwNCw3IEBAIHN0
cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGZsYWdJdGVt
IDogbV9mbGFncykKICAgICAgICAgICAgIGhhc2hlci5hZGQoZmxhZ0l0ZW0pOwogICAgICAgICBo
YXNoZXIuYWRkKG1fZmVhdHVyZVNldHRpbmdzLmhhc2goKSk7CisgICAgICAgIGhhc2hlci5hZGQo
bV92YXJpYXRpb25TZXR0aW5ncy5oYXNoKCkpOwogICAgICAgICByZXR1cm4gaGFzaGVyLmhhc2go
KTsKICAgICB9CiAKQEAgLTE0Myw2ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
d2VpZ2h0IHsgMCB9OwogICAgIHN0ZDo6YXJyYXk8dW5zaWduZWQsIDI+IG1fZmxhZ3Mge3sgMCwg
MCB9fTsKICAgICBGb250RmVhdHVyZVNldHRpbmdzIG1fZmVhdHVyZVNldHRpbmdzOworICAgIEZv
bnRWYXJpYXRpb25TZXR0aW5ncyBtX3ZhcmlhdGlvblNldHRpbmdzOwogfTsKIAogc3RydWN0IEZv
bnREZXNjcmlwdGlvbktleUhhc2ggewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKaW5kZXggY2FmNjRjZS4uNTVmMGE4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uY3BwCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBT
YW1lU2l6ZUFzRm9udENhc2NhZGVEZXNjcmlwdGlvbiB7Ci0gICAgVmVjdG9yPHZvaWQqPiB2ZWN0
b3I7CisgICAgVmVjdG9yPHZvaWQqPiB2ZWN0b3JbMl07CiAgICAgQXRvbWljU3RyaW5nIHN0cmlu
ZzsKICAgICBmbG9hdCBzaXplOwogICAgIHVuc2lnbmVkIGJpdGZpZWxkczE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IDcz
YTFkZGQuLjMyMjViODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICBOb25D
SktHbHlwaE9yaWVudGF0aW9uIG5vbkNKS0dseXBoT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxOb25DSktHbHlwaE9yaWVudGF0aW9uPihtX25vbkNKS0dseXBoT3JpZW50
YXRpb24pOyB9CiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxGb250V2lkdGhWYXJpYW50PihtX3dpZHRoVmFyaWFudCk7IH0KICAg
ICBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmZWF0dXJlU2V0dGluZ3MoKSBjb25zdCB7IHJl
dHVybiBtX2ZlYXR1cmVTZXR0aW5nczsgfQorICAgIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5n
cyYgdmFyaWF0aW9uU2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3ZhcmlhdGlvblNldHRpbmdz
OyB9CiAgICAgRm9udFN5bnRoZXNpcyBmb250U3ludGhlc2lzKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Rm9udFN5bnRoZXNpcz4obV9mb250U3ludGhlc2lzKTsgfQogICAgIEZvbnRWYXJp
YW50TGlnYXR1cmVzIHZhcmlhbnRDb21tb25MaWdhdHVyZXMoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxGb250VmFyaWFudExpZ2F0dXJlcz4obV92YXJpYW50Q29tbW9uTGlnYXR1cmVzKTsg
fQogICAgIEZvbnRWYXJpYW50TGlnYXR1cmVzIHZhcmlhbnREaXNjcmV0aW9uYXJ5TGlnYXR1cmVz
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFZhcmlhbnRMaWdhdHVyZXM+KG1fdmFy
aWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMpOyB9CkBAIC0xMDUsNiArMTA2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0V2lkdGhWYXJpYW50KEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50
KSB7IG1fd2lkdGhWYXJpYW50ID0gd2lkdGhWYXJpYW50OyB9IC8vIE1ha2Ugc3VyZSBuZXcgY2Fs
bGVycyBvZiB0aGlzIHN5bmMgd2l0aCBGb250UGxhdGZvcm1EYXRhOjppc0ZvclRleHRDb21iaW5l
KCkhCiAgICAgdm9pZCBzZXRMb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCBz
ZXRGZWF0dXJlU2V0dGluZ3MoRm9udEZlYXR1cmVTZXR0aW5ncyYmIHNldHRpbmdzKSB7IG1fZmVh
dHVyZVNldHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7IH0KKyAgICB2b2lkIHNldFZhcmlhdGlv
blNldHRpbmdzKEZvbnRWYXJpYXRpb25TZXR0aW5ncyYmIHNldHRpbmdzKSB7IG1fdmFyaWF0aW9u
U2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdzKTsgfQogICAgIHZvaWQgc2V0Rm9udFN5bnRoZXNp
cyhGb250U3ludGhlc2lzIGZvbnRTeW50aGVzaXMpIHsgbV9mb250U3ludGhlc2lzID0gZm9udFN5
bnRoZXNpczsgfQogICAgIHZvaWQgc2V0VmFyaWFudENvbW1vbkxpZ2F0dXJlcyhGb250VmFyaWFu
dExpZ2F0dXJlcyB2YXJpYW50KSB7IG1fdmFyaWFudENvbW1vbkxpZ2F0dXJlcyA9IHN0YXRpY19j
YXN0PHVuc2lnbmVkPih2YXJpYW50KTsgfQogICAgIHZvaWQgc2V0VmFyaWFudERpc2NyZXRpb25h
cnlMaWdhdHVyZXMoRm9udFZhcmlhbnRMaWdhdHVyZXMgdmFyaWFudCkgeyBtX3ZhcmlhbnREaXNj
cmV0aW9uYXJ5TGlnYXR1cmVzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhcmlhbnQpOyB9CkBA
IC0xMjUsNyArMTI3LDkgQEAgcHVibGljOgogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2so
KSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgbW92aW5nIHRo
ZXNlIGludG8gdGhlaXIgb3duIG9iamVjdCBvbiB0aGUgaGVhcCAodG8gc2F2ZSBtZW1vcnkpLgog
ICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MgbV9mZWF0dXJlU2V0dGluZ3M7CisgICAgRm9udFZhcmlh
dGlvblNldHRpbmdzIG1fdmFyaWF0aW9uU2V0dGluZ3M7CiAgICAgQXRvbWljU3RyaW5nIG1fbG9j
YWxlOwogCiAgICAgZmxvYXQgbV9jb21wdXRlZFNpemUgeyAwIH07IC8vIENvbXB1dGVkIHNpemUg
YWRqdXN0ZWQgZm9yIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBhbmQgdGhlIHpvb20gZmFjdG9yLgpA
QCAtMTY3LDYgKzE3MSw3IEBAIGlubGluZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9
PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX3dpZHRo
VmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudAogICAgICAgICAmJiBtX2xvY2FsZSA9PSBv
dGhlci5tX2xvY2FsZQogICAgICAgICAmJiBtX2ZlYXR1cmVTZXR0aW5ncyA9PSBvdGhlci5tX2Zl
YXR1cmVTZXR0aW5ncworICAgICAgICAmJiBtX3ZhcmlhdGlvblNldHRpbmdzID09IG90aGVyLm1f
dmFyaWF0aW9uU2V0dGluZ3MKICAgICAgICAgJiYgbV9mb250U3ludGhlc2lzID09IG90aGVyLm1f
Zm9udFN5bnRoZXNpcwogICAgICAgICAmJiBtX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMgPT0gb3Ro
ZXIubV92YXJpYW50Q29tbW9uTGlnYXR1cmVzCiAgICAgICAgICYmIG1fdmFyaWFudERpc2NyZXRp
b25hcnlMaWdhdHVyZXMgPT0gb3RoZXIubV92YXJpYW50RGlzY3JldGlvbmFyeUxpZ2F0dXJlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNl
dHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRT
ZXR0aW5ncy5jcHAKaW5kZXggZmJlNjZlMi4uMDU1YjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC00
NCw0ICs0NCwzNiBAQCB1bnNpZ25lZCBGb250RmVhdHVyZVNldHRpbmdzOjpoYXNoKCkgY29uc3QK
ICAgICByZXR1cm4gaGFzaGVyLmhhc2goKTsKIH0KIAordGVtcGxhdGUgPD4KK3Vuc2lnbmVkIEZv
bnRWYXJpYXRpb25TZXR0aW5nczo6aGFzaCgpIGNvbnN0Cit7CisgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoZmxvYXQpID09IHNpemVvZihpbnQpLCAiSW50ZWdlckhhc2hlciBuZWVkcyB0byBhY2Nl
cHQgZmxvYXRzIHRvbyIpOworICAgIHVuaW9uIHsKKyAgICAgICAgZmxvYXQgZjsKKyAgICAgICAg
aW50IGk7CisgICAgfSBmbG9hdFRvSW50OworCisgICAgSW50ZWdlckhhc2hlciBoYXNoZXI7Cisg
ICAgZm9yIChhdXRvJiB2YXJpYXRpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgaGFzaGVyLmFkZChG
b3VyQ2hhcmFjdGVyVGFnSGFzaDo6aGFzaCh2YXJpYXRpb24udGFnKCkpKTsKKyAgICAgICAgZmxv
YXRUb0ludC5mID0gdmFyaWF0aW9uLnZhbHVlKCk7CisgICAgICAgIGhhc2hlci5hZGQoZmxvYXRU
b0ludC5pKTsKKyAgICB9CisgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7Cit9CisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5n
cyYgaXRlbSkKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbS5zaXplKCk7ICsr
aSkgeworICAgICAgICBhdXRvJiB2YXJpYXRpb24gPSBpdGVtLmF0KGkpOworICAgICAgICBTdHJp
bmdCdWlsZGVyIHM7CisgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVswXSk7CisgICAg
ICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsxXSk7CisgICAgICAgIHMuYXBwZW5kKHZhcmlh
dGlvbi50YWcoKVsyXSk7CisgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVszXSk7Cisg
ICAgICAgIHRzLmR1bXBQcm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0ZW0uYXQoaSkudmFsdWUoKSk7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaAppbmRleCAzZTMxNzg0Li5h
OTkwZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
VGFnZ2VkU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250VGFnZ2VkU2V0dGluZ3MuaApAQCAtMTM1LDUgKzEzNSw4IEBAIHZvaWQgRm9udFRhZ2dlZFNl
dHRpbmdzPFQ+OjppbnNlcnQoRm9udFRhZ2dlZFNldHRpbmc8VD4mJiBmZWF0dXJlKQogCiB0eXBl
ZGVmIEZvbnRUYWdnZWRTZXR0aW5nPGludD4gRm9udEZlYXR1cmU7CiB0eXBlZGVmIEZvbnRUYWdn
ZWRTZXR0aW5nczxpbnQ+IEZvbnRGZWF0dXJlU2V0dGluZ3M7Cit0eXBlZGVmIEZvbnRUYWdnZWRT
ZXR0aW5nczxmbG9hdD4gRm9udFZhcmlhdGlvblNldHRpbmdzOworCitUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmKTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290383</attachid>
            <date>2016-09-30 14:25:04 -0700</date>
            <delta_ts>2016-09-30 14:34:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162781-20160930142201.patch</filename>
            <type>text/plain</type>
            <size>40043</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNhMmEwMmQ1YWEzMTE0
ZGJmNWE3NDZiODFhYmVhNWY5N2IxNmIyZi4uNzI1OGQ4OTcyNTI4NjdhYjFlNTU3YmRiNzk0ODA5
ODI3NDI2ZDRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc3IEBACiAyMDE2LTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgUGFyc2UgZm9u
dC12YXJpYXRpb24tc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2Mjc4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENTUyBGb250cyBsZXZlbCA0IFsxXSBkZXRhaWxzIHRoZSBmb250LXZhcmlh
dGlvbi1zZXR0aW5ncyBwcm9wZXJ0eSB3aGljaCBhbGxvd3MgdmFyaWF0aW9ucworICAgICAgICB0
byBiZSBhcHBsaWVkIHRvIGZvbnRzIHdoaWNoIGFjY2VwdCBpdC4gVGhlIHByb3BlcnR5IGFjY2Vw
dHMgYSBsaXN0IG9mIGtleS92YWx1ZQorICAgICAgICBwYWlycyB3aGVyZSB0aGUga2V5cyBhcmUg
Zm91ci1jaGFyYWN0ZXIgQXNjaWkgY29kZXMgYW5kIHRoZSB2YWx1ZXMgYXJlIGZsb2F0aW5nCisg
ICAgICAgIHBvaW50IHZhbHVlcy4gVGhlIGltcGxlbWVudGF0aW9uIHVzZXMgZm9udC1mZWF0dXJl
LXNldHRpbmdzIGFzIGEgbW9kZWwsIGJ1dCB3aXRoIG9uZQorICAgICAgICBiaWcgZGlmZmVyZW5j
ZTogZm9udC12YXJpYXRpb24tc2V0dGluZ3MgY2FuIGJlIGFuaW1hdGVkLiBUaGUgc2V0IG9mIHZh
cmlhdGlvbiBwb2ludHMKKyAgICAgICAgYXJlIGFuaW1hdGVkIGluZGl2aWR1YWxseS4KKworICAg
ICAgICBUaGlzIGZvbnQgdmFyaWF0aW9ucyB3b3JrIGlzIGJlaW5nIGRvbmUgYmVoaW5kIGEgcnVu
LXRpbWUgc3dpdGNoLCB3aGljaCBpcyBzZXR0YWJsZSBmcm9tCisgICAgICAgIHRoZSBTYWZhcmkg
RGV2ZWxvcCBtZW51LgorCisgICAgICAgIE5vdyB0aGF0IEZvbnREZXNjcmlwdGlvbiBpcyBncm93
aW5nLCBJJ2QgbGlrZSB0byBkbyBhbiBpbnZlc3RpZ2F0aW9uIGludG8gdGhlIHBvc3NpYmlsaXR5
IG9mCisgICAgICAgIG1vdmluZyBzb21lIG9mIHRoZSByYXJlIHBpZWNlcyBvZiBpdCBpbnRvIHRo
ZWlyIG93biBjbGFzcyB0byByZWR1Y2UgbWVtb3J5LiBIb3dldmVyLCB1cG9uCisgICAgICAgIGFk
dmljZSwgdGhpcyBpbnZlc3RpZ2F0aW9uIHdpbGwgYmUgZmFpcmx5IGludm9sdmVkIGFuZCBzaG91
bGQgYmUgZG9uZSBpbiBpdHMgb3duIGJ1Zy4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdmFy
aWF0aW9ucy9nZXRDb21wdXRlZFN0eWxlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBjc3MvQ1NTQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6
cHJvcGVydHlWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRT
ZXR0aW5ncy5jcHAuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFyaWF0aW9uVmFsdWU6OkNT
U0ZvbnRWYXJpYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFyaWF0aW9u
VmFsdWU6OmN1c3RvbUNTU1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlv
blZhbHVlOjplcXVhbHMpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNl
dHRpbmdzLmNwcC4KKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAg
KiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmVxdWFscyk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNGb250VmFyaWF0aW9uVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OmlzRm9udEZlYXR1cmVWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdzKToKKyAgICAgICAgKiBj
c3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJD
dXN0b206OmFwcGx5SW5pdGlhbEZvbnRWYXJpYXRpb25TZXR0aW5ncyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5oZXJpdEZvbnRWYXJpYXRpb25TZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5oZXJpdEZv
bnRGZWF0dXJlU2V0dGluZ3MpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUZvbnRGZWF0dXJlU2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUZvbnRWYXJpYXRpb25UYWcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJz
ZUZvbnRWYXJpYXRpb25TZXR0aW5ncyk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIu
aDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlck1vZGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlw
dGlvbktleTo6Rm9udERlc2NyaXB0aW9uS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNj
cmlwdGlvbktleTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRp
b25LZXk6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjp2YXJpYXRpb25TZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldFZhcmlhdGlvblNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmZlYXR1cmVTZXR0aW5ncyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldEZlYXR1cmVTZXR0aW5n
cyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRWYXJpYXRpb25TZXR0aW5nczo6aGFzaCk6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaDoKKworMjAxNi0wOS0zMCAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCiAgICAgICAgIEZpeCBmYXN0L3RleHQvdHJhay1v
cHRpbWl6ZUxlZ2liaWxpdHkuaHRtbAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYyNzc5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjg3NDljZjli
Y2M3ODY1NDk0NDEwNDI4MWY4YmE2NmRmZWJkZGU3Zi4uNzdhYWMyMTYwZGNiY2NiMTdmYTcwZjZj
NmM3OWMwOWE4ODgwNjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNjYsNiArMTI2Niw3
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAK
ICAgICBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAogICAgIGNzcy9DU1NGb250VmFsdWUuY3BwCisg
ICAgY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKICAgICBjc3MvQ1NTRnVuY3Rpb25WYWx1
ZS5jcHAKICAgICBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKICAgICBjc3MvQ1NTR3JpZEF1dG9S
ZXBlYXRWYWx1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4YjI2MzliYWNmYWFkOWZhY2IyMWZmMTQwZWVlMTZmMDkyZGY5
OWM2Li4wZjJiMzc3OTJjZDEzNjZkNDkxODBkODcwY2JlNzc1OWQ1YjA3NDA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NDY5
LDYgKzU0NjksOCBAQAogCQlDMTA1REE2MjBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5n
RGV0ZWN0b3JJQ1UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzEwNURBNjEwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNV
LmNwcCAqLzsgfTsKIAkJQzEwNURBNjQwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0Rl
dGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLzsgfTsK
IAkJQzIwMTVDMEExQkU2RkVCMjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIwMTVDMDkxQkU2RkUy
QzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICovOyB9OworCQlDMjFERjJFOTFEOUU0
RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMURGMkU3MUQ5RTRFOTkwMEY1QjI0QyAv
KiBDU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICovOyB9OworCQlDMjFERjJFQTFEOUU0RTk5MDBG
NUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjFERjJFODFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9u
dFZhcmlhdGlvblZhbHVlLmggKi87IH07CiAJCUMyNjAxN0EzMUM3MkRDOTkwMEY3NEExNiAvKiBD
U1NGb250RmFjZVNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMjYwMTdBMTFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICov
OyB9OwogCQlDMjYwMTdBNDFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNjAxN0EyMUM3MkRD
OTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5oICovOyB9OwogCQlDMjgwODMzRjFDNkRDMjZG
MDAxNDUxQjYgLyogSlNGb250RmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzI4MDgzM0UxQzZEQzIyQzAwMTQ1MUI2IC8qIEpTRm9udEZhY2UuaCAq
LzsgfTsKQEAgLTEyOTcwLDYgKzEyOTcyLDggQEAKIAkJQzEwNURBNjEwRjNBQTY4RjAwMURENDRG
IC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0Rl
dGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRFbmNvZGluZ0Rl
dGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMDE1QzA5MUJFNkZFMkMw
MDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFZhcmlh
bnRCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyMURGMkU3MUQ5RTRF
OTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRW
YXJpYXRpb25WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250
VmFyaWF0aW9uVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI0Njg1MTMx
QTE0OEUxODAwODExNzkyIC8qIENvcmVHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb3JlR3JhcGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzI2MDE3QTExQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRGYWNlU2V0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENT
U0ZvbnRGYWNlU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRG
YWNlU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjYwMCw2ICsyMjYwNCw4
IEBACiAJCQkJM0ZGRkY5QTYxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVs
ZS5jcHAgKi8sCiAJCQkJM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdw
b3J0UnVsZS5oICovLAogCQkJCTNGMkIzM0UzMTY1QUJEMzUwMEUzOTg3QyAvKiBXZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuaWRsICovLAorCQkJCUMyMURGMkU3MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwICovLAorCQkJCUMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAv
KiBDU1NGb250VmFyaWF0aW9uVmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY3NzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI0NzA5LDYgKzI0NzE1LDcgQEAKIAkJCQlBOEQy
MjNGRTE2QjUyRTRFMDAxNTcyODggLyogSFRNTFJlc291cmNlUHJlbG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODcxREMyNTBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODc1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2Ny
aXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMjFERjJFQTFEOUU0RTk5MDBGNUIyNEMg
LyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg3NjEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFNjcmlwdFJ1bm5lckhvc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MTM2OUQ4MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOUI2OUQzQjUxQjk4RkZFOTAwRTM1MTJCIC8qIEhUTUxTbG90RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODQ3MCw2ICsyODQ3Nyw3IEBACiAJCQkJREIyM0MyQ0Iw
QTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNzEzOEVGMUJFRDFEMUEwMDBENUYwMSAvKiBJbmRleEtleS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUVFQUE3MzFCRUZGQUIxMDAyMTgwMDggLyogSW5kZXhWYWx1ZUVudHJ5LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUMyMURGMkU5MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250
VmFyaWF0aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3MTM4RjcxQkYxMjhCQjAw
MEQ1RjAxIC8qIEluZGV4VmFsdWVTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjVF
NjBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1
N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NBbGxJbk9uZS5jcHAKaW5kZXggYjRmOTllOGVkYzYwY2Y5ZjJi
ZGUyNTljMGY2NDNmOWE1NGQwNjkyMS4uZGE3OGY3OGRmMjM2Y2EwMTNlNzQxODE5ZTYzMGViODNi
YzA1YTk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCkBAIC00OCw2ICs0OCw3IEBA
CiAjaW5jbHVkZSAiQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAiCiAjaW5jbHVkZSAiQ1NTRm9udFNl
bGVjdG9yLmNwcCIKICNpbmNsdWRlICJDU1NGb250VmFsdWUuY3BwIgorI2luY2x1ZGUgIkNTU0Zv
bnRWYXJpYXRpb25WYWx1ZS5jcHAiCiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5jcHAiCiAj
aW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5jcHAiCiAjaW5jbHVkZSAiQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKaW5kZXggNjA1MDhjOTgzZTNkMThkMzUxMmI3ZDAyMTFjNmFkNGRiZTI4
MWNiZS4uNGRhMjJiYzkyODdiODYyZDBhN2VhNTFiYmQ1MjgwMjQ3NGRiMzI2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmgiCiAjaW5j
bHVkZSAiQ1NTRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRWYWx1ZS5oIgor
I2luY2x1ZGUgIkNTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0Z1bmN0aW9u
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NMaW5lQm94Q29udGFpblZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTUGFyc2VyLmgiCkBAIC02Miw2ICs2Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAiU3R5bGVJ
bmhlcml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCkBAIC0yODc5LDYg
KzI4ODEsMTggQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9w
ZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwKICAgICAgICAgICAgICAgICBsaXN0
LT5hcHBlbmQoQ1NTRm9udEZlYXR1cmVWYWx1ZTo6Y3JlYXRlKEZvbnRUYWcoZmVhdHVyZS50YWco
KSksIGZlYXR1cmUudmFsdWUoKSkpOwogICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAg
IH0KKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYXRpb25TZXR0aW5nczogeworICAg
ICAgICAgICAgaWYgKHN0eWxlZE5vZGUtPmRvY3VtZW50KCkuc2V0dGluZ3MoKSAmJiBzdHlsZWRO
b2RlLT5kb2N1bWVudCgpLnNldHRpbmdzKCktPnZhcmlhdGlvbkZvbnRzRW5hYmxlZCgpKSB7Cisg
ICAgICAgICAgICAgICAgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiB2YXJpYXRpb25TZXR0
aW5ncyA9IHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS52YXJpYXRpb25TZXR0aW5ncygpOworICAg
ICAgICAgICAgICAgIGlmICh2YXJpYXRpb25TZXR0aW5ncy5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlTm9ybWFsKTsKKyAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0g
Q1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOworICAgICAgICAgICAgICAgIGZv
ciAoYXV0byYgZmVhdHVyZSA6IHZhcmlhdGlvblNldHRpbmdzKQorICAgICAgICAgICAgICAgICAg
ICBsaXN0LT5hcHBlbmQoQ1NTRm9udFZhcmlhdGlvblZhbHVlOjpjcmVhdGUoRm9udFRhZyhmZWF0
dXJlLnRhZygpKSwgZmVhdHVyZS52YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxp
c3Q7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQXV0b0Zs
b3c6IHsKICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
VmFyaWF0aW9uVmFsdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5OWE4NGUyN2RlMzc0YWQyYmVkMzFhYzEy
YWE0M2MzZjdhZTg2NjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udFZhcmlhdGlvblZhbHVlLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU0ZvbnRWYXJpYXRpb25WYWx1
ZTo6Q1NTRm9udFZhcmlhdGlvblZhbHVlKEZvbnRUYWcmJiB0YWcsIGZsb2F0IHZhbHVlKQorICAg
IDogQ1NTVmFsdWUoRm9udFZhcmlhdGlvbkNsYXNzKQorICAgICwgbV90YWcoV1RGTW92ZSh0YWcp
KQorICAgICwgbV92YWx1ZSh2YWx1ZSkKK3sKK30KKworU3RyaW5nIENTU0ZvbnRWYXJpYXRpb25W
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kKCdcJycpOworICAgIGZvciAoY2hhciBjIDogbV90YWcpCisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJyAi
KTsKKyAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3ZhbHVlKTsKKyAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworfQorCitib29sIENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6ZXF1YWxzKGNv
bnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dGFnID09IG90aGVyLm1fdGFnICYmIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1
Y2IxNzM5ZTVhMmI2ZmQ5Mjg3NGI2YzY1OWVkNTk5ZGFiODcyZjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJGb250VGFnZ2VkU2V0
dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NGb250VmFyaWF0aW9u
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
Q1NTRm9udFZhcmlhdGlvblZhbHVlPiBjcmVhdGUoRm9udFRhZyYmIHRhZywgZmxvYXQgdmFsdWUp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NGb250VmFyaWF0aW9uVmFs
dWUoV1RGTW92ZSh0YWcpLCB2YWx1ZSkpOworICAgIH0KKworICAgIGNvbnN0IEZvbnRUYWcmIHRh
ZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9CisgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlOyB9CisgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKKworICAg
IGJvb2wgZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYpIGNvbnN0OworCitwcml2
YXRlOgorICAgIENTU0ZvbnRWYXJpYXRpb25WYWx1ZShGb250VGFnJiYsIGZsb2F0KTsKKworICAg
IEZvbnRUYWcgbV90YWc7CisgICAgY29uc3QgZmxvYXQgbV92YWx1ZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTRm9u
dFZhcmlhdGlvblZhbHVlLCBpc0ZvbnRWYXJpYXRpb25WYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA2NzQ1YmZkYmU3MWVhOGI3MWQxMDYxN2IxMjE1Y2Ix
MzRhMDgxZTc4Li4xMzM3ZmRmNTZjYmMzZjFkY2ZhMWJkNWFlZTdjODk3ZTBjYzc1ZDcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTA1LDYgKzEwNSw3IEBAIGZv
bnQtc3R5bGUgW0luaGVyaXRlZCwgRm9udFByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1JdGFsaWNd
CiBmb250LXdlaWdodCBbSW5oZXJpdGVkLCBDdXN0b209QWxsXQogdGV4dC1yZW5kZXJpbmcgW0lu
aGVyaXRlZCwgRm9udFByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1UZXh0UmVuZGVyaW5nTW9kZV0K
IGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBbSW5oZXJpdGVkLCBGb250UHJvcGVydHksIEN1c3RvbT1J
bml0aWFsfEluaGVyaXQsIENvbnZlcnRlcj1Gb250RmVhdHVyZVNldHRpbmdzLCBOYW1lRm9yTWV0
aG9kcz1GZWF0dXJlU2V0dGluZ3NdCitmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBbSW5oZXJpdGVk
LCBGb250UHJvcGVydHksIEN1c3RvbT1Jbml0aWFsfEluaGVyaXQsIENvbnZlcnRlcj1Gb250VmFy
aWF0aW9uU2V0dGluZ3MsIE5hbWVGb3JNZXRob2RzPVZhcmlhdGlvblNldHRpbmdzXQogLXdlYmtp
dC1mb250LWtlcm5pbmcgW0luaGVyaXRlZCwgRm9udFByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1L
ZXJuaW5nXQogZm9udC1rZXJuaW5nID0gLXdlYmtpdC1mb250LWtlcm5pbmcKIC13ZWJraXQtZm9u
dC1zbW9vdGhpbmcgW0luaGVyaXRlZCwgRm9udFByb3BlcnR5XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5j
cHAKaW5kZXggN2ZjOWRkMmJlMWM1MmZiZWFkMTVmZWI5ZGQ5MjFhMTk4MDdlMjFjNi4uNTVhNTMx
MWQ2ZGFiZTQzZWRmNTc3MjEzMWIzNDJkNDcyNGMzNThiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU0ZvbnRGZWF0dXJlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250VmFsdWUu
aCIKKyNpbmNsdWRlICJDU1NGb250VmFyaWF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGdW5j
dGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U0ltYWdlU2V0VmFsdWUuaCIKQEAgLTE3Niw2ICsxNzcsOCBAQCBib29sIENTU1ZhbHVlOjplcXVh
bHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGNvbXBh
cmVDU1NWYWx1ZXM8Q1NTRm9udEZhY2VTcmNWYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAgICAgICAg
Y2FzZSBGb250RmVhdHVyZUNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1
ZXM8Q1NTRm9udEZlYXR1cmVWYWx1ZT4oKnRoaXMsIG90aGVyKTsKKyAgICAgICAgY2FzZSBGb250
VmFyaWF0aW9uQ2xhc3M6CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NG
b250VmFyaWF0aW9uVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgRnVuY3Rpb25D
bGFzczoKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0Z1bmN0aW9uVmFs
dWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKQEAg
LTI4Miw2ICsyODUsOCBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8Q1NTRm9udEZhY2VTcmNWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1Rl
eHQoKTsKICAgICBjYXNlIEZvbnRGZWF0dXJlQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2Fz
dDxDU1NGb250RmVhdHVyZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOworICAgIGNhc2Ug
Rm9udFZhcmlhdGlvbkNsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTRm9udFZhcmlh
dGlvblZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgRnVuY3Rpb25DbGFz
czoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+KCp0aGlzKS5jdXN0
b21DU1NUZXh0KCk7CiAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgpAQCAtMzk2LDYgKzQw
MSw5IEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIGNhc2UgRm9udEZlYXR1cmVDbGFz
czoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0ZvbnRGZWF0dXJlVmFsdWU+KHRoaXMpOwog
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBGb250VmFyaWF0aW9uQ2xhc3M6CisgICAgICAgIGRl
bGV0ZSBkb3duY2FzdDxDU1NGb250VmFyaWF0aW9uVmFsdWU+KHRoaXMpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBGdW5jdGlvbkNsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NT
RnVuY3Rpb25WYWx1ZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgK
aW5kZXggNDRmMWM5ZTkxM2ZiZGIwM2MwMGU5NWQ2NWE1N2RhMTdkYmNhY2Y5YS4uZThjN2E3Mzk1
YzQ4NjRkNDYyOTIyZTIwNzk3MjZlNTkwNGI2ZWE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAg
LTgzLDYgKzgzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYXJpYWJsZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gVmFyaWFibGVDbGFzczsgfQogICAgIGJvb2wgaXNGdW5j
dGlvblZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRnVuY3Rpb25DbGFzczsg
fQogICAgIGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5
cGUgPT0gRm9udEZlYXR1cmVDbGFzczsgfQorICAgIGJvb2wgaXNGb250VmFyaWF0aW9uVmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGb250VmFyaWF0aW9uQ2xhc3M7IH0KICAg
ICBib29sIGlzRm9udEZhY2VTcmNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09
IEZvbnRGYWNlU3JjQ2xhc3M7IH0KICAgICBib29sIGlzRm9udFZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV9jbGFzc1R5cGUgPT0gRm9udENsYXNzOyB9CiAgICAgYm9vbCBpc0ltYWdlR2VuZXJhdG9y
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA+PSBDYW52YXNDbGFzcyAmJiBtX2Ns
YXNzVHlwZSA8PSBSYWRpYWxHcmFkaWVudENsYXNzOyB9CkBAIC0xNjksNiArMTcwLDcgQEAgcHJv
dGVjdGVkOgogICAgICAgICBBc3BlY3RSYXRpb0NsYXNzLAogICAgICAgICBCb3JkZXJJbWFnZVNs
aWNlQ2xhc3MsCiAgICAgICAgIEZvbnRGZWF0dXJlQ2xhc3MsCisgICAgICAgIEZvbnRWYXJpYXRp
b25DbGFzcywKICAgICAgICAgRm9udENsYXNzLAogICAgICAgICBGb250RmFjZVNyY0NsYXNzLAog
ICAgICAgICBGdW5jdGlvbkNsYXNzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNv
bnZlcnRlci5oCmluZGV4IGNmZTU1OGMyNGRhZDQxZDA0ZGUwMmM2NzBmMzRkMzBjNTZkMGJlZGEu
LjA1MGQ2NzMxNzE3NjAxMTVlZjJhNDM0ZDFjOWZiNmZjODA0M2M4ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDU1NDYWxjdWxhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQ29udGVudERpc3RyaWJ1
dGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZlYXR1cmVWYWx1ZS5oIgorI2luY2x1ZGUg
IkNTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0Z1bmN0aW9uVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTR3JpZExp
bmVOYW1lc1ZhbHVlLmgiCkBAIC0xMjAsNiArMTIxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBi
b29sIGNvbnZlcnRPdmVyZmxvd1Njcm9sbGluZyhTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsK
ICNlbmRpZgogICAgIHN0YXRpYyBGb250RmVhdHVyZVNldHRpbmdzIGNvbnZlcnRGb250RmVhdHVy
ZVNldHRpbmdzKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBGb250VmFy
aWF0aW9uU2V0dGluZ3MgY29udmVydEZvbnRWYXJpYXRpb25TZXR0aW5ncyhTdHlsZVJlc29sdmVy
JiwgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgU1ZHTGVuZ3RoIGNvbnZlcnRTVkdMZW5ndGgoU3R5
bGVSZXNvbHZlciYsIENTU1ZhbHVlJik7CiAgICAgc3RhdGljIFZlY3RvcjxTVkdMZW5ndGg+IGNv
bnZlcnRTVkdMZW5ndGhWZWN0b3IoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJik7CiAgICAgc3Rh
dGljIFZlY3RvcjxTVkdMZW5ndGg+IGNvbnZlcnRTdHJva2VEYXNoQXJyYXkoU3R5bGVSZXNvbHZl
ciYsIENTU1ZhbHVlJik7CkBAIC0xMTQ0LDYgKzExNDYsMjEgQEAgaW5saW5lIEZvbnRGZWF0dXJl
U2V0dGluZ3MgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Rm9udEZlYXR1cmVTZXR0aW5n
cyhTdHkKICAgICByZXR1cm4gc2V0dGluZ3M7CiB9CiAKK2lubGluZSBGb250VmFyaWF0aW9uU2V0
dGluZ3MgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdz
KFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgaWYgKGlzPENTU1ByaW1p
dGl2ZVZhbHVlPih2YWx1ZSkpIHsKKyAgICAgICAgQVNTRVJUKGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPih2YWx1ZSkuZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBGb250VmFyaWF0aW9uU2V0dGluZ3Mgc2V0dGluZ3M7
CisgICAgZm9yIChhdXRvJiBpdGVtIDogZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pih2YWx1ZSkpIHsK
KyAgICAgICAgYXV0byYgZmVhdHVyZSA9IGRvd25jYXN0PENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4o
aXRlbS5nZXQoKSk7CisgICAgICAgIHNldHRpbmdzLmluc2VydCh7IGZlYXR1cmUudGFnKCksIGZl
YXR1cmUudmFsdWUoKSB9KTsKKyAgICB9CisgICAgcmV0dXJuIHNldHRpbmdzOworfQorCiAjaWYg
UExBVEZPUk0oSU9TKQogaW5saW5lIGJvb2wgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0
VG91Y2hDYWxsb3V0KFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYgdmFsdWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXggZTBkMGQ0YTAxNTViNjBhNDE1Y2Q4
YjQwYTQ4NTM3NDYxOGFkNmViYS4uMWJiZmQ3YWQ3NWM4ZmFmNDMzMTFhOTZjM2JiYzhlMGM0MDBm
ZmE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaApAQCAtMTEyLDYg
KzExMiw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRXZWJraXRNYXNr
SW1hZ2UoU3R5bGVSZXNvbHZlciYpIHsgfQogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbEZv
bnRGZWF0dXJlU2V0dGluZ3MoU3R5bGVSZXNvbHZlciYpIHsgfQogICAgIHN0YXRpYyB2b2lkIGFw
cGx5SW5oZXJpdEZvbnRGZWF0dXJlU2V0dGluZ3MoU3R5bGVSZXNvbHZlciYpIHsgfQorICAgIHN0
YXRpYyB2b2lkIGFwcGx5SW5pdGlhbEZvbnRWYXJpYXRpb25TZXR0aW5ncyhTdHlsZVJlc29sdmVy
JikgeyB9CisgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0Rm9udFZhcmlhdGlvblNldHRpbmdz
KFN0eWxlUmVzb2x2ZXImKSB7IH0KIAogICAgIC8vIEN1c3RvbSBoYW5kbGluZyBvZiBpbmhlcml0
ICsgdmFsdWUgc2V0dGluZyBvbmx5LgogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdERpc3Bs
YXkoU3R5bGVSZXNvbHZlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3Bw
CmluZGV4IDNlNmZlYjAwM2M3MTdhOTI3MmJjY2RkZmM0ZDE4ZDZhN2EzZTFkM2MuLmYwODUzYThk
N2Y1YmUxMTVjYmU4MTRkZjNlNjA1ZTM5NWY2NDJkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFj
ZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU0ZvbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkNTU0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NHcmFkaWVudFZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTSW1hZ2VTZXRWYWx1ZS5oIgpAQCAtMjcxLDYgKzI3Miw3IEBAIENTU1Bh
cnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIGJhc2VVUkwsIGNvbnN0CiAjZW5kaWYKICAgICAgICAgc3ByaW5nVGltaW5nRnVuY3Rpb25F
bmFibGVkID0gc2V0dGluZ3MtPnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCgpOwogICAgICAg
ICB1c2VOZXdQYXJzZXIgPSBzZXR0aW5ncy0+bmV3Q1NTUGFyc2VyRW5hYmxlZCgpOworICAgICAg
ICB2YXJpYXRpb25Gb250c0VuYWJsZWQgPSBzZXR0aW5ncy0+dmFyaWF0aW9uRm9udHNFbmFibGVk
KCk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjkzLDcgKzI5NSw4IEBAIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBiKQogICAgICAgICAmJiBhLm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID09IGIubmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MKICAgICAgICAgJiYgYS5lbmZvcmNlc0NTU01JTUVUeXBlSW5Ob1F1
aXJrc01vZGUgPT0gYi5lbmZvcmNlc0NTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUKICAgICAgICAg
JiYgYS51c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yID09IGIudXNlTGVn
YWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcgotICAgICAgICAmJiBhLnNwcmluZ1Rp
bWluZ0Z1bmN0aW9uRW5hYmxlZCA9PSBiLnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZDsKKyAg
ICAgICAgJiYgYS5zcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQgPT0gYi5zcHJpbmdUaW1pbmdG
dW5jdGlvbkVuYWJsZWQKKyAgICAgICAgJiYgYS52YXJpYXRpb25Gb250c0VuYWJsZWQgPT0gYi52
YXJpYXRpb25Gb250c0VuYWJsZWQ7CiB9CiAKIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0IENT
U1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0yOTcxLDYgKzI5NzQsMTQgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VGb250RmVhdHVyZVNldHRpbmdz
KGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFy
aWF0aW9uU2V0dGluZ3M6CisgICAgICAgIGlmIChtX2NvbnRleHQudmFyaWF0aW9uRm9udHNFbmFi
bGVkKSB7CisgICAgICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwpCisgICAgICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHJldHVybiBwYXJzZUZvbnRWYXJpYXRpb25TZXR0aW5ncyhpbXBvcnRhbnQpOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFyaWFudExp
Z2F0dXJlczoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1Zh
bHVlTm9uZSkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTEwNjI1LDYg
KzEwNjM2LDYwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlU2V0dGluZ3MoYm9v
bCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENTU1BhcnNlcjo6cGFy
c2VGb250VmFyaWF0aW9uVGFnKENTU1ZhbHVlTGlzdCYgc2V0dGluZ3MpCit7CisgICAgQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAvLyBGZWF0dXJl
IHRhZyBuYW1lIGNvbWVzIGZpcnN0CisgICAgaWYgKHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfU1RSSU5HKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRm9udFRhZyB0
YWc7CisgICAgaWYgKHZhbHVlLT5zdHJpbmcubGVuZ3RoKCkgIT0gdGFnLnNpemUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWcuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgLy8gTGltaXRzIHRoZSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIDB4
MjAtMHg3RSwgZm9sbG93aW5nIHRoZSB0YWcgbmFtZSBydWxlcyBkZWZpZW5kIGluIHRoZSBPcGVu
VHlwZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSB2YWx1ZS0+c3Ry
aW5nW2ldOworICAgICAgICBpZiAoY2hhcmFjdGVyIDwgMHgyMCB8fCBjaGFyYWN0ZXIgPiAweDdF
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB0YWdbaV0gPSB0b0FTQ0lJTG93
ZXIoY2hhcmFjdGVyKTsKKyAgICB9CisKKyAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7
CisgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X05VTUJFUikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZmxvYXQgdGFnVmFsdWUgPSB2
YWx1ZS0+ZlZhbHVlOworICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisKKyAgICBzZXR0aW5ncy5h
cHBlbmQoQ1NTRm9udFZhcmlhdGlvblZhbHVlOjpjcmVhdGUoV1RGTW92ZSh0YWcpLCB0YWdWYWx1
ZSkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENTU1BhcnNlcjo6cGFyc2VGb250VmFy
aWF0aW9uU2V0dGluZ3MoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgaWYgKG1fdmFsdWVMaXN0LT5z
aXplKCkgPT0gMSAmJiBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5pZCA9PSBDU1NWYWx1ZU5vcm1h
bCkgeworICAgICAgICBhdXRvIG5vcm1hbFZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICBtX3ZhbHVl
TGlzdC0+bmV4dCgpOworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRWYXJpYXRp
b25TZXR0aW5ncywgV1RGTW92ZShub3JtYWxWYWx1ZSksIGltcG9ydGFudCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGF1dG8gc2V0dGluZ3MgPSBDU1NWYWx1ZUxpc3Q6OmNy
ZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgZm9yIChDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBt
X3ZhbHVlTGlzdC0+Y3VycmVudCgpOyB2YWx1ZTsgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgp
KSB7CisgICAgICAgIGlmICghcGFyc2VGb250VmFyaWF0aW9uVGFnKHNldHRpbmdzKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgbGlzdCBpc24ndCBwYXJz
ZWQgZnVsbHksIHRoZSBjdXJyZW50IHZhbHVlIHNob3VsZCBiZSBjb21tYS4KKyAgICAgICAgdmFs
dWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgICAgICBpZiAodmFsdWUgJiYgIWlzQ29t
bWEodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoc2V0
dGluZ3MtPmxlbmd0aCgpKSB7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFZh
cmlhdGlvblNldHRpbmdzLCBXVEZNb3ZlKHNldHRpbmdzKSwgaW1wb3J0YW50KTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlRm9udFZhcmlhbnRMaWdhdHVyZXMoYm9vbCBpbXBvcnRhbnQsIGJvb2wgdW5rbm93
bklzRmFpbHVyZSwgYm9vbCBpbXBsaWNpdCkKIHsKICAgICBhdXRvIHZhbHVlcyA9IENTU1ZhbHVl
TGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlci5oCmluZGV4IDExMzcyYjQzM2YyYzBhNDBjMWMxMTVmOWUyOTc5OWQyNDBlYWRhMTUuLjkx
MWFhODJkYWRlZDE3MTA2ZjdlNDYwY2Q2MmM5MTUzODVlYzFkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXIuaApAQCAtMzY0LDYgKzM2NCw5IEBAIHB1YmxpYzoKICAgICBib29s
IHBhcnNlRm9udEZlYXR1cmVUYWcoQ1NTVmFsdWVMaXN0Jik7CiAgICAgYm9vbCBwYXJzZUZvbnRG
ZWF0dXJlU2V0dGluZ3MoYm9vbCBpbXBvcnRhbnQpOwogCisgICAgYm9vbCBwYXJzZUZvbnRWYXJp
YXRpb25UYWcoQ1NTVmFsdWVMaXN0Jik7CisgICAgYm9vbCBwYXJzZUZvbnRWYXJpYXRpb25TZXR0
aW5ncyhib29sIGltcG9ydGFudCk7CisKICAgICBib29sIHBhcnNlRmxvd1RocmVhZChDU1NQcm9w
ZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJzZVJlZ2lvblRocmVhZChDU1NQ
cm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJNb2RlLmgKaW5kZXggZTk5MDcwMGRlYmEwYjFhNjg5M2NlZTlkNzI2ZTRlNTU0NjQ5
NDczOC4uNTVjYjc1NTJlYTlhNDhmMDc5MDUzNzJkOTY3YzY0YmMxMTg5MzVjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCB1c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9y
IHsgZmFsc2UgfTsKICAgICBib29sIHNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCB1c2VOZXdQYXJzZXIgeyBmYWxzZSB9OworICAgIGJvb2wgdmFyaWF0aW9u
Rm9udHNFbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBjNGJmZjA3YzA3MTM3OWViNGEw
ZTc3NDZhZmFkZDJjODZmMjM5NDRlLi4xNTQ2YThmZDQwNGNkMjBkYmZkMGM3MzkzNjUzNGM4NDdk
ZGIzOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aApAQCAtNzYsNiArNzYsNyBAQCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICAgICAg
LCBtX3dlaWdodChkZXNjcmlwdGlvbi53ZWlnaHQoKSkKICAgICAgICAgLCBtX2ZsYWdzKG1ha2VG
bGFnc0tleShkZXNjcmlwdGlvbikpCiAgICAgICAgICwgbV9mZWF0dXJlU2V0dGluZ3MoZGVzY3Jp
cHRpb24uZmVhdHVyZVNldHRpbmdzKCkpCisgICAgICAgICwgbV92YXJpYXRpb25TZXR0aW5ncyhk
ZXNjcmlwdGlvbi52YXJpYXRpb25TZXR0aW5ncygpKQogICAgIHsgfQogCiAgICAgZXhwbGljaXQg
Rm9udERlc2NyaXB0aW9uS2V5KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKQEAgLTg1
LDcgKzg2LDcgQEAgc3RydWN0IEZvbnREZXNjcmlwdGlvbktleSB7CiAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbktleSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiBtX3dlaWdodCA9PSBvdGhlci5tX3dl
aWdodCAmJiBtX2ZsYWdzID09IG90aGVyLm1fZmxhZ3MKLSAgICAgICAgICAgICYmIG1fZmVhdHVy
ZVNldHRpbmdzID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdzOworICAgICAgICAgICAgJiYgbV9m
ZWF0dXJlU2V0dGluZ3MgPT0gb3RoZXIubV9mZWF0dXJlU2V0dGluZ3MgJiYgbV92YXJpYXRpb25T
ZXR0aW5ncyA9PSBvdGhlci5tX3ZhcmlhdGlvblNldHRpbmdzOwogICAgIH0KIAogICAgIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBGb250RGVzY3JpcHRpb25LZXkmIG90aGVyKSBjb25zdApAQCAtMTAz
LDYgKzEwNCw3IEBAIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgICAgICBmb3IgKHVu
c2lnbmVkIGZsYWdJdGVtIDogbV9mbGFncykKICAgICAgICAgICAgIGhhc2hlci5hZGQoZmxhZ0l0
ZW0pOwogICAgICAgICBoYXNoZXIuYWRkKG1fZmVhdHVyZVNldHRpbmdzLmhhc2goKSk7CisgICAg
ICAgIGhhc2hlci5hZGQobV92YXJpYXRpb25TZXR0aW5ncy5oYXNoKCkpOwogICAgICAgICByZXR1
cm4gaGFzaGVyLmhhc2goKTsKICAgICB9CiAKQEAgLTE0Myw2ICsxNDUsNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fd2VpZ2h0IHsgMCB9OwogICAgIHN0ZDo6YXJyYXk8dW5zaWduZWQsIDI+
IG1fZmxhZ3Mge3sgMCwgMCB9fTsKICAgICBGb250RmVhdHVyZVNldHRpbmdzIG1fZmVhdHVyZVNl
dHRpbmdzOworICAgIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBtX3ZhcmlhdGlvblNldHRpbmdzOwog
fTsKIAogc3RydWN0IEZvbnREZXNjcmlwdGlvbktleUhhc2ggewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKaW5kZXggY2FmNjRj
ZTUxMDgwMGExMWQwOGJhNjE4ZDQ5ZWRjMTJiMTk5NTI4OC4uNTVmMGE4ZDJiM2Y4NTY1ZDM3YmU4
MzA4NmQ2ZDYwNDZjNDYyOWFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzRm9udENhc2NhZGVEZXNjcmlwdGlvbiB7
Ci0gICAgVmVjdG9yPHZvaWQqPiB2ZWN0b3I7CisgICAgVmVjdG9yPHZvaWQqPiB2ZWN0b3JbMl07
CiAgICAgQXRvbWljU3RyaW5nIHN0cmluZzsKICAgICBmbG9hdCBzaXplOwogICAgIHVuc2lnbmVk
IGJpdGZpZWxkczE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREZXNjcmlwdGlvbi5oCmluZGV4IDczYTFkZGQ4NjE3MTZmODdiYzc2NDcyNTc4ODFhYjc1YmI0
Yjk4MzAuLjMyMjViODYyNDZmYzhhYjVjMTI5NjEwYjhlMDA4MTdhZjdiZjIwM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBA
IC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICBOb25DSktHbHlwaE9yaWVudGF0aW9uIG5vbkNK
S0dseXBoT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxOb25DSktHbHlw
aE9yaWVudGF0aW9uPihtX25vbkNKS0dseXBoT3JpZW50YXRpb24pOyB9CiAgICAgRm9udFdpZHRo
VmFyaWFudCB3aWR0aFZhcmlhbnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250V2lk
dGhWYXJpYW50PihtX3dpZHRoVmFyaWFudCk7IH0KICAgICBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiBmZWF0dXJlU2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVTZXR0aW5nczsg
fQorICAgIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgdmFyaWF0aW9uU2V0dGluZ3MoKSBj
b25zdCB7IHJldHVybiBtX3ZhcmlhdGlvblNldHRpbmdzOyB9CiAgICAgRm9udFN5bnRoZXNpcyBm
b250U3ludGhlc2lzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFN5bnRoZXNpcz4o
bV9mb250U3ludGhlc2lzKTsgfQogICAgIEZvbnRWYXJpYW50TGlnYXR1cmVzIHZhcmlhbnRDb21t
b25MaWdhdHVyZXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250VmFyaWFudExpZ2F0
dXJlcz4obV92YXJpYW50Q29tbW9uTGlnYXR1cmVzKTsgfQogICAgIEZvbnRWYXJpYW50TGlnYXR1
cmVzIHZhcmlhbnREaXNjcmV0aW9uYXJ5TGlnYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8Rm9udFZhcmlhbnRMaWdhdHVyZXM+KG1fdmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVy
ZXMpOyB9CkBAIC0xMDUsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkdGhWYXJp
YW50KEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KSB7IG1fd2lkdGhWYXJpYW50ID0gd2lk
dGhWYXJpYW50OyB9IC8vIE1ha2Ugc3VyZSBuZXcgY2FsbGVycyBvZiB0aGlzIHN5bmMgd2l0aCBG
b250UGxhdGZvcm1EYXRhOjppc0ZvclRleHRDb21iaW5lKCkhCiAgICAgdm9pZCBzZXRMb2NhbGUo
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3MoRm9udEZl
YXR1cmVTZXR0aW5ncyYmIHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdzID0gV1RGTW92ZShz
ZXR0aW5ncyk7IH0KKyAgICB2b2lkIHNldFZhcmlhdGlvblNldHRpbmdzKEZvbnRWYXJpYXRpb25T
ZXR0aW5ncyYmIHNldHRpbmdzKSB7IG1fdmFyaWF0aW9uU2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRp
bmdzKTsgfQogICAgIHZvaWQgc2V0Rm9udFN5bnRoZXNpcyhGb250U3ludGhlc2lzIGZvbnRTeW50
aGVzaXMpIHsgbV9mb250U3ludGhlc2lzID0gZm9udFN5bnRoZXNpczsgfQogICAgIHZvaWQgc2V0
VmFyaWFudENvbW1vbkxpZ2F0dXJlcyhGb250VmFyaWFudExpZ2F0dXJlcyB2YXJpYW50KSB7IG1f
dmFyaWFudENvbW1vbkxpZ2F0dXJlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YXJpYW50KTsg
fQogICAgIHZvaWQgc2V0VmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMoRm9udFZhcmlhbnRM
aWdhdHVyZXMgdmFyaWFudCkgeyBtX3ZhcmlhbnREaXNjcmV0aW9uYXJ5TGlnYXR1cmVzID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHZhcmlhbnQpOyB9CkBAIC0xMjUsNyArMTI3LDkgQEAgcHVibGlj
OgogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2soKSBjb25zdDsKIAogcHJpdmF0ZToKKyAg
ICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgbW92aW5nIHRoZXNlIGludG8gdGhlaXIgb3duIG9iamVj
dCBvbiB0aGUgaGVhcCAodG8gc2F2ZSBtZW1vcnkpLgogICAgIEZvbnRGZWF0dXJlU2V0dGluZ3Mg
bV9mZWF0dXJlU2V0dGluZ3M7CisgICAgRm9udFZhcmlhdGlvblNldHRpbmdzIG1fdmFyaWF0aW9u
U2V0dGluZ3M7CiAgICAgQXRvbWljU3RyaW5nIG1fbG9jYWxlOwogCiAgICAgZmxvYXQgbV9jb21w
dXRlZFNpemUgeyAwIH07IC8vIENvbXB1dGVkIHNpemUgYWRqdXN0ZWQgZm9yIHRoZSBtaW5pbXVt
IGZvbnQgc2l6ZSBhbmQgdGhlIHpvb20gZmFjdG9yLgpAQCAtMTY3LDYgKzE3MSw3IEBAIGlubGlu
ZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24m
IG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRo
VmFyaWFudAogICAgICAgICAmJiBtX2xvY2FsZSA9PSBvdGhlci5tX2xvY2FsZQogICAgICAgICAm
JiBtX2ZlYXR1cmVTZXR0aW5ncyA9PSBvdGhlci5tX2ZlYXR1cmVTZXR0aW5ncworICAgICAgICAm
JiBtX3ZhcmlhdGlvblNldHRpbmdzID09IG90aGVyLm1fdmFyaWF0aW9uU2V0dGluZ3MKICAgICAg
ICAgJiYgbV9mb250U3ludGhlc2lzID09IG90aGVyLm1fZm9udFN5bnRoZXNpcwogICAgICAgICAm
JiBtX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMgPT0gb3RoZXIubV92YXJpYW50Q29tbW9uTGlnYXR1
cmVzCiAgICAgICAgICYmIG1fdmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMgPT0gb3RoZXIu
bV92YXJpYW50RGlzY3JldGlvbmFyeUxpZ2F0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXggZmJlNjZl
MjdmMjU5ZGZiM2Q1YjdlOTcyMWNjYmE1NmYyYmUxZTdiNi4uMDU1YjUzMWNmMzdkZTFlNDI1OTlm
YzlkMjE1YTM1ZmY1ODI2MzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC00NCw0ICs0NCwzNiBAQCB1
bnNpZ25lZCBGb250RmVhdHVyZVNldHRpbmdzOjpoYXNoKCkgY29uc3QKICAgICByZXR1cm4gaGFz
aGVyLmhhc2goKTsKIH0KIAordGVtcGxhdGUgPD4KK3Vuc2lnbmVkIEZvbnRWYXJpYXRpb25TZXR0
aW5nczo6aGFzaCgpIGNvbnN0Cit7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoZmxvYXQpID09
IHNpemVvZihpbnQpLCAiSW50ZWdlckhhc2hlciBuZWVkcyB0byBhY2NlcHQgZmxvYXRzIHRvbyIp
OworICAgIHVuaW9uIHsKKyAgICAgICAgZmxvYXQgZjsKKyAgICAgICAgaW50IGk7CisgICAgfSBm
bG9hdFRvSW50OworCisgICAgSW50ZWdlckhhc2hlciBoYXNoZXI7CisgICAgZm9yIChhdXRvJiB2
YXJpYXRpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgaGFzaGVyLmFkZChGb3VyQ2hhcmFjdGVyVGFn
SGFzaDo6aGFzaCh2YXJpYXRpb24udGFnKCkpKTsKKyAgICAgICAgZmxvYXRUb0ludC5mID0gdmFy
aWF0aW9uLnZhbHVlKCk7CisgICAgICAgIGhhc2hlci5hZGQoZmxvYXRUb0ludC5pKTsKKyAgICB9
CisgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgaXRlbSkKK3sKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbS5zaXplKCk7ICsraSkgeworICAgICAgICBh
dXRvJiB2YXJpYXRpb24gPSBpdGVtLmF0KGkpOworICAgICAgICBTdHJpbmdCdWlsZGVyIHM7Cisg
ICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVswXSk7CisgICAgICAgIHMuYXBwZW5kKHZh
cmlhdGlvbi50YWcoKVsxXSk7CisgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsyXSk7
CisgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVszXSk7CisgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0ZW0uYXQoaSkudmFsdWUoKSk7CisgICAgfQorICAgIHJl
dHVybiB0czsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaAppbmRleCBlYzVjNWU5MDJhMzZkNzlhNjNiNmRhZjMw
ODZhYzNhNWY4NDNiZjM5Li43MWE0MWJmZDE4MDYzY2Q1YzVkYTY5ODMzMzgwN2Y5NmJlYzEwYjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2Vk
U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFn
Z2VkU2V0dGluZ3MuaApAQCAtMTM0LDUgKzEzNCw4IEBAIHZvaWQgRm9udFRhZ2dlZFNldHRpbmdz
PFQ+OjppbnNlcnQoRm9udFRhZ2dlZFNldHRpbmc8VD4mJiBmZWF0dXJlKQogCiB0eXBlZGVmIEZv
bnRUYWdnZWRTZXR0aW5nPGludD4gRm9udEZlYXR1cmU7CiB0eXBlZGVmIEZvbnRUYWdnZWRTZXR0
aW5nczxpbnQ+IEZvbnRGZWF0dXJlU2V0dGluZ3M7Cit0eXBlZGVmIEZvbnRUYWdnZWRTZXR0aW5n
czxmbG9hdD4gRm9udFZhcmlhdGlvblNldHRpbmdzOworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmKTsKIAogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDVlNGVjZTQ2MDJjNDZhN2NiNWIzZjFiMjBhZjgzZTRlMDJlMjMyNmIuLmQ0Njc0MTZjODA1NmNk
MjU1M2ZmOTlhOTk4NWFlZDM1MDcyYTJjNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNi0w
OS0zMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCisgICAgICAg
IFBhcnNlIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGV4dC92YXJpYXRpb25zL2dldENvbXB1dGVk
U3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvdmFyaWF0aW9u
cy9nZXRDb21wdXRlZFN0eWxlLmh0bWw6IEFkZGVkLgorCisyMDE2LTA5LTMwICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKICAgICAgICAgRml4IGZhc3QvdGV4dC90
cmFrLW9wdGltaXplTGVnaWJpbGl0eS5odG1sCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvdmFyaWF0aW9ucy9nZXRDb21wdXRlZFN0eWxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMWEwMTQyMzFmYzkyZjMyMDgxYWRkYWZjNjA2NTNkNDg2YWQ3MmJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0
ZWRTdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDAnKSkuZ2V0UHJvcGVydHlW
YWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAiJ3dnaHQnIDIiCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycpIGlzICInd2dodCcgMyIKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qy
JykpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykgaXMgIid3Z2h0
JyAyLCAnd2R0aCcgMS4yIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDInKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24t
c2V0dGluZ3MnKSBpcyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3Mn
KQorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAi
bm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDUnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3Mn
KSBpcyAibm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDYnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0
dGluZ3MnKSBpcyAibm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRp
b24tc2V0dGluZ3MnKSBpcyAiJ3dnaHQnIDI3IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC92YXJpYXRpb25zL2dldENvbXB1dGVkU3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC92YXJpYXRpb25zL2dldENvbXB1dGVkU3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmM4ZjU2MWRm
ZWEyOWUwMjNjNTIyMjI3NDQ0NzVlMjliMmI5MzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS5odG1sCkBAIC0wLDAg
KzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0VmFyaWF0aW9uRm9udHNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idGVzdDAiIHN0eWxlPSJmb250LWZhbWlseTog
J1NraWEnOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDI7Ij48L2Rpdj4KKzxkaXYg
aWQ9InRlc3QxIiBzdHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0
dGluZ3M6ICd3Z2h0JyAyLCAnd2dodCcgMzsiPjwvZGl2PgorPGRpdiBpZD0idGVzdDIiIHN0eWxl
PSJmb250LWZhbWlseTogJ1NraWEnOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDIs
ICd3ZHRoJyAxLjI7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3QzIiBzdHlsZT0iZm9udC1mYW1pbHk6
ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3ZHRoJyAxLjIsICd3Z2h0JyAyOyI+
PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnU2tpYSc7IGZvbnQt
dmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3Q1IiBzdHls
ZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICdhYmNkZScg
MzsiPjwvZGl2PgorPGRpdiBpZD0idGVzdDYiIHN0eWxlPSJmb250LWZhbWlseTogJ1NraWEnOyBm
b250LXZhcmlhdGlvbi1zZXR0aW5nczogJ2FiY+2VnOq1reyWtGUnIDM7Ij48L2Rpdj4KKzxkaXYg
aWQ9InRlc3Q3IiBzdHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0
dGluZ3M6ICd3Z2h0JyAyNzsiPjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qw
JykpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQn
IDIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFy
aWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQnIDMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykp
LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQnIDIs
ICd3ZHRoJyAxLjIiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDInKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRp
b24tc2V0dGluZ3MnKSIsICJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGlu
Z3MnKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12
YXJpYXRpb24tc2V0dGluZ3MnKSIsICJub3JtYWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1Jykp
LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAibm9ybWFsIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpKS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXZhcmlhdGlv
bi1zZXR0aW5ncycpIiwgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJv
cGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSIsICInd2dodCcgMjciKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="313573"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290389</attachid>
            <date>2016-09-30 14:48:30 -0700</date>
            <delta_ts>2016-09-30 14:48:30 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-162781-20160930144526.patch</filename>
            <type>text/plain</type>
            <size>39980</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzlhN2JhMmRhYTQ5ZGU4
NThiNGNmN2Y4YzE2ODI2N2VlNmI1N2ExOS4uZmI2ZWQ0MThiYmRkZWE1NzZjZjUxYTVmYWRiZWY5
Yjk0ZTkzZDFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc3IEBACiAyMDE2LTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgUGFyc2UgZm9u
dC12YXJpYXRpb24tc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2Mjc4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBDU1MgRm9udHMgbGV2ZWwgNCBbMV0gZGV0YWlscyB0aGUgZm9udC12YXJpYXRp
b24tc2V0dGluZ3MgcHJvcGVydHkgd2hpY2ggYWxsb3dzIHZhcmlhdGlvbnMKKyAgICAgICAgdG8g
YmUgYXBwbGllZCB0byBmb250cyB3aGljaCBhY2NlcHQgaXQuIFRoZSBwcm9wZXJ0eSBhY2NlcHRz
IGEgbGlzdCBvZiBrZXkvdmFsdWUKKyAgICAgICAgcGFpcnMgd2hlcmUgdGhlIGtleXMgYXJlIGZv
dXItY2hhcmFjdGVyIEFzY2lpIGNvZGVzIGFuZCB0aGUgdmFsdWVzIGFyZSBmbG9hdGluZworICAg
ICAgICBwb2ludCB2YWx1ZXMuIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIGZvbnQtZmVhdHVyZS1z
ZXR0aW5ncyBhcyBhIG1vZGVsLCBidXQgd2l0aCBvbmUKKyAgICAgICAgYmlnIGRpZmZlcmVuY2U6
IGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGNhbiBiZSBhbmltYXRlZC4gVGhlIHNldCBvZiB2YXJp
YXRpb24gcG9pbnRzCisgICAgICAgIGFyZSBhbmltYXRlZCBpbmRpdmlkdWFsbHkuCisKKyAgICAg
ICAgVGhpcyBmb250IHZhcmlhdGlvbnMgd29yayBpcyBiZWluZyBkb25lIGJlaGluZCBhIHJ1bi10
aW1lIHN3aXRjaCwgd2hpY2ggaXMgc2V0dGFibGUgZnJvbQorICAgICAgICB0aGUgU2FmYXJpIERl
dmVsb3AgbWVudS4KKworICAgICAgICBOb3cgdGhhdCBGb250RGVzY3JpcHRpb24gaXMgZ3Jvd2lu
ZywgSSdkIGxpa2UgdG8gZG8gYW4gaW52ZXN0aWdhdGlvbiBpbnRvIHRoZSBwb3NzaWJpbGl0eSBv
ZgorICAgICAgICBtb3Zpbmcgc29tZSBvZiB0aGUgcmFyZSBwaWVjZXMgb2YgaXQgaW50byB0aGVp
ciBvd24gY2xhc3MgdG8gcmVkdWNlIG1lbW9yeS4gSG93ZXZlciwgdXBvbgorICAgICAgICBhZHZp
Y2UsIHRoaXMgaW52ZXN0aWdhdGlvbiB3aWxsIGJlIGZhaXJseSBpbnZvbHZlZCBhbmQgc2hvdWxk
IGJlIGRvbmUgaW4gaXRzIG93biBidWcuCisKKyAgICAgICAgVGVzdDogZmFzdC90ZXh0L3Zhcmlh
dGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
Y3NzL0NTU0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnBy
b3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0
dGluZ3MuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlvblZhbHVlOjpDU1NG
b250VmFyaWF0aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlvblZh
bHVlOjpjdXN0b21DU1NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRWYXJpYXRpb25W
YWx1ZTo6ZXF1YWxzKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0
aW5ncy5jcHAuCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICog
Y3NzL0NTU1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmlzRm9udFZhcmlhdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlOjppc0ZvbnRGZWF0dXJlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRl
ckNvbnZlcnRlcjo6Y29udmVydEZvbnRWYXJpYXRpb25TZXR0aW5ncyk6CisgICAgICAgICogY3Nz
L1N0eWxlQnVpbGRlckN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3Vz
dG9tOjphcHBseUluaXRpYWxGb250VmFyaWF0aW9uU2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaGVyaXRGb250VmFyaWF0aW9uU2V0dGluZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaGVyaXRGb250
RmVhdHVyZVNldHRpbmdzKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VGb250RmVhdHVyZVNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VGb250VmFyaWF0aW9uVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VG
b250VmFyaWF0aW9uU2V0dGluZ3MpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRp
b25LZXk6OkZvbnREZXNjcmlwdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3Jp
cHRpb25LZXk6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9u
S2V5Ojpjb21wdXRlSGFzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6dmFyaWF0aW9uU2V0dGluZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRWYXJpYXRpb25TZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpmZWF0dXJlU2V0dGluZ3MpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRGZWF0dXJlU2V0dGluZ3Mp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250VmFyaWF0aW9uU2V0dGluZ3M6Omhhc2gpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFRhZ2dlZFNldHRpbmdzLmg6CisKKzIwMTYtMDktMzAgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBGb2xsb3d1cCBwYXRjaCB0byByMjA2
NjY0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3
NzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiODc0OWNmOWJjYzc4NjU0OTQ0MTA0MjgxZjhi
YTY2ZGZlYmRkZTdmLi43N2FhYzIxNjBkY2JjY2IxN2ZhNzBmNmM2Yzc5YzA5YTg4ODA2OTRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTI2Niw2ICsxMjY2LDcgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIGNzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcAogICAgIGNzcy9DU1NGb250U2Vs
ZWN0b3IuY3BwCiAgICAgY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKKyAgICBjc3MvQ1NTRm9udFZhcmlh
dGlvblZhbHVlLmNwcAogICAgIGNzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAogICAgIGNzcy9DU1NH
cmFkaWVudFZhbHVlLmNwcAogICAgIGNzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhiMjYzOWJhY2ZhYWQ5ZmFjYjIxZmYxNDBlZWUxNmYwOTJkZjk5YzYuLjBmMmIzNzc5MmNkMTM2
NmQ0OTE4MGQ4NzBjYmU3NzU5ZDViMDc0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NjksNiArNTQ2OSw4IEBACiAJCUMx
MDVEQTYyMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MTBGM0FB
NjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwICovOyB9OwogCQlDMTA1
REE2NDBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFE
RDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMjAxNUMwQTFCRTZGRUIy
MDA4MjIzODkgLyogRm9udFZhcmlhbnRCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9udFZh
cmlhbnRCdWlsZGVyLmggKi87IH07CisJCUMyMURGMkU5MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzIxREYyRTcxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5jcHAgKi87IH07CisJCUMyMURGMkVBMUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFy
aWF0aW9uVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUuaCAq
LzsgfTsKIAkJQzI2MDE3QTMxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNjAxN0ExMUM3
MkRDOTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5jcHAgKi87IH07CiAJCUMyNjAxN0E0MUM3
MkRDOTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0Zv
bnRGYWNlU2V0LmggKi87IH07CiAJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRG
YWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjgw
ODMzRTFDNkRDMjJDMDAxNDUxQjYgLyogSlNGb250RmFjZS5oICovOyB9OwpAQCAtMTI5NzAsNiAr
MTI5NzIsOCBAQAogCQlDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0
ZWN0b3JJQ1UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEVu
Y29kaW5nRGV0ZWN0b3JJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTA1
REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEVuY29kaW5nRGV0ZWN0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJp
YW50QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250VmFyaWFudEJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzIxREYyRTcxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0Zv
bnRWYXJpYXRpb25WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMjFERjJFODFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjQ2ODUxMzFBMTQ4RTE4MDA4MTE3OTIgLyog
Q29yZUdyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVH
cmFwaGljc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJE
Qzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNjAwLDYgKzIyNjA0LDggQEAKIAkJCQkzRkZGRjlBNjE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCAqLywKIAkJCQkzRkZG
RjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi8sCiAJCQkJ
M0YyQjMzRTMxNjVBQkQzNTAwRTM5ODdDIC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwgKi8s
CisJCQkJQzIxREYyRTcxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5j
cHAgKi8sCisJCQkJQzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBjc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjQ3MDksNiArMjQ3MTUsNyBAQAogCQkJCUE4RDIyM0ZFMTZCNTJFNEUwMDE1NzI4
OCAvKiBIVE1MUmVzb3VyY2VQcmVsb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQzI1
MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTc3QjM4NzUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRSdW5uZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUMyMURGMkVBMUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9u
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODc2MTIyODgzRTkwMEI4MUZGOCAvKiBI
VE1MU2NyaXB0UnVubmVySG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RDgwOTczNzRG
NjAwRDc0NDYzIC8qIEhUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjY5
RDNCNTFCOThGRkU5MDBFMzUxMkIgLyogSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTI4NDcwLDYgKzI4NDc3LDcgQEAKIAkJCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyog
SW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3MTM4RUYxQkVE
MUQxQTAwMEQ1RjAxIC8qIEluZGV4S2V5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRUVBQTcz
MUJFRkZBQjEwMDIxODAwOCAvKiBJbmRleFZhbHVlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQzIxREYyRTkxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTcxMzhGNzFCRjEyOEJCMDAwRDVGMDEgLyogSW5kZXhWYWx1
ZVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNUU2MEExNTVBMDUwMDBBNDIzNCAv
KiBJbmxpbmVCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU3Q0I1MkQxODJBM0VFRDAwNzlB
NjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0FsbEluT25lLmNwcAppbmRleCBiNGY5OWU4ZWRjNjBjZjlmMmJkZTI1OWMwZjY0M2Y5YTU0ZDA2
OTIxLi5kYTc4Zjc4ZGYyMzZjYTAxM2U3NDE4MTllNjMwZWI4M2JjMDVhOTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NBbGxJbk9uZS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJDU1NGb250
RmVhdHVyZVZhbHVlLmNwcCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuY3BwIgogI2luY2x1
ZGUgIkNTU0ZvbnRWYWx1ZS5jcHAiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNw
cCIKICNpbmNsdWRlICJDU1NGdW5jdGlvblZhbHVlLmNwcCIKICNpbmNsdWRlICJDU1NHcmFkaWVu
dFZhbHVlLmNwcCIKICNpbmNsdWRlICJDU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA2MDUwOGM5ODNlM2QxOGQzNTEyYjdkMDIxMWM2YWQ0ZGJlMjgxY2JlLi5kYTQ1ZGIxYWQ2YWM3
YTM1NzFmOGNiY2EyMzg3MDUxNDBlOTllYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVhdHVy
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFZh
cmlhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU0xpbmVCb3hDb250YWluVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKQEAgLTYy
LDYgKzYzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKICNp
bmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTI4NzksNiArMjg4MSwxOCBAQCBSZWZQdHI8
Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlELAogICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChDU1NGb250RmVh
dHVyZVZhbHVlOjpjcmVhdGUoRm9udFRhZyhmZWF0dXJlLnRhZygpKSwgZmVhdHVyZS52YWx1ZSgp
KSk7CiAgICAgICAgICAgICByZXR1cm4gbGlzdDsKICAgICAgICAgfQorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Rm9udFZhcmlhdGlvblNldHRpbmdzOiB7CisgICAgICAgICAgICBpZiAoc3R5bGVk
Tm9kZS0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpICYmIHN0eWxlZE5vZGUtPmRvY3VtZW50KCkuc2V0
dGluZ3MoKS0+dmFyaWF0aW9uRm9udHNFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIHZhcmlhdGlvblNldHRpbmdzID0gc3R5bGUtPmZvbnRE
ZXNjcmlwdGlvbigpLnZhcmlhdGlvblNldHRpbmdzKCk7CisgICAgICAgICAgICAgICAgaWYgKHZh
cmlhdGlvblNldHRpbmdzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAg
ICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0
ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBmZWF0dXJlIDog
dmFyaWF0aW9uU2V0dGluZ3MpCisgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChDU1NG
b250VmFyaWF0aW9uVmFsdWU6OmNyZWF0ZShmZWF0dXJlLnRhZygpLCBmZWF0dXJlLnZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGlzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRBdXRvRmxvdzogewogICAgICAgICAgICAgUmVmUHRyPENT
U1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjk0MWU3MWJhMWUzYmI2MzMxOTgyMGU1NWY2NWFjMzkyMTMwNTZkZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgi
CisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworQ1NTRm9udFZhcmlhdGlvblZhbHVlOjpDU1NGb250VmFyaWF0aW9uVmFsdWUoRm9u
dFRhZyB0YWcsIGZsb2F0IHZhbHVlKQorICAgIDogQ1NTVmFsdWUoRm9udFZhcmlhdGlvbkNsYXNz
KQorICAgICwgbV90YWcodGFnKQorICAgICwgbV92YWx1ZSh2YWx1ZSkKK3sKK30KKworU3RyaW5n
IENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Cit7CisgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCdcJycpOworICAgIGZvciAo
Y2hhciBjIDogbV90YWcpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOworICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiJyAiKTsKKyAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3ZhbHVlKTsK
KyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCitib29sIENTU0ZvbnRWYXJpYXRp
b25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdGFnID09IG90aGVyLm1fdGFnICYmIG1fdmFsdWUgPT0gb3RoZXIu
bV92YWx1ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRW
YXJpYXRpb25WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM4OGNjZGE5MTM5Yzc0ZWFhODgyYzlhZjUxODBjZmIxZGM2YjZiNGEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZh
bHVlLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNs
dWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDU1NGb250VmFyaWF0aW9uVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8Q1NTRm9udFZhcmlhdGlvblZhbHVlPiBjcmVhdGUoRm9udFRhZyB0
YWcsIGZsb2F0IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
Rm9udFZhcmlhdGlvblZhbHVlKHRhZywgdmFsdWUpKTsKKyAgICB9CisKKyAgICBjb25zdCBGb250
VGFnJiB0YWcoKSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQorICAgIGZsb2F0IHZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7
CisKKyAgICBib29sIGVxdWFscyhjb25zdCBDU1NGb250VmFyaWF0aW9uVmFsdWUmKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBDU1NGb250VmFyaWF0aW9uVmFsdWUoRm9udFRhZywgZmxvYXQpOwor
CisgICAgRm9udFRhZyBtX3RhZzsKKyAgICBjb25zdCBmbG9hdCBtX3ZhbHVlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShD
U1NGb250VmFyaWF0aW9uVmFsdWUsIGlzRm9udFZhcmlhdGlvblZhbHVlKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDY3NDViZmRiZTcxZWE4YjcxZDEwNjE3YjEy
MTVjYjEzNGEwODFlNzguLjEzMzdmZGY1NmNiYzNmMWRjZmExYmQ1YWVlN2M4OTdlMGNjNzVkNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0xMDUsNiArMTA1LDcg
QEAgZm9udC1zdHlsZSBbSW5oZXJpdGVkLCBGb250UHJvcGVydHksIE5hbWVGb3JNZXRob2RzPUl0
YWxpY10KIGZvbnQtd2VpZ2h0IFtJbmhlcml0ZWQsIEN1c3RvbT1BbGxdCiB0ZXh0LXJlbmRlcmlu
ZyBbSW5oZXJpdGVkLCBGb250UHJvcGVydHksIE5hbWVGb3JNZXRob2RzPVRleHRSZW5kZXJpbmdN
b2RlXQogZm9udC1mZWF0dXJlLXNldHRpbmdzIFtJbmhlcml0ZWQsIEZvbnRQcm9wZXJ0eSwgQ3Vz
dG9tPUluaXRpYWx8SW5oZXJpdCwgQ29udmVydGVyPUZvbnRGZWF0dXJlU2V0dGluZ3MsIE5hbWVG
b3JNZXRob2RzPUZlYXR1cmVTZXR0aW5nc10KK2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIFtJbmhl
cml0ZWQsIEZvbnRQcm9wZXJ0eSwgQ3VzdG9tPUluaXRpYWx8SW5oZXJpdCwgQ29udmVydGVyPUZv
bnRWYXJpYXRpb25TZXR0aW5ncywgTmFtZUZvck1ldGhvZHM9VmFyaWF0aW9uU2V0dGluZ3NdCiAt
d2Via2l0LWZvbnQta2VybmluZyBbSW5oZXJpdGVkLCBGb250UHJvcGVydHksIE5hbWVGb3JNZXRo
b2RzPUtlcm5pbmddCiBmb250LWtlcm5pbmcgPSAtd2Via2l0LWZvbnQta2VybmluZwogLXdlYmtp
dC1mb250LXNtb290aGluZyBbSW5oZXJpdGVkLCBGb250UHJvcGVydHldCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmNwcAppbmRleCA3ZmM5ZGQyYmUxYzUyZmJlYWQxNWZlYjlkZDkyMWExOTgwN2UyMWM2Li41
NWE1MzExZDZkYWJlNDNlZGY1NzcyMTMxYjM0MmQ0NzI0YzM1OGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRW
YWx1ZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NHcmFkaWVudFZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTSW1hZ2VTZXRWYWx1ZS5oIgpAQCAtMTc2LDYgKzE3Nyw4IEBAIGJvb2wgQ1NTVmFsdWU6
OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4g
Y29tcGFyZUNTU1ZhbHVlczxDU1NGb250RmFjZVNyY1ZhbHVlPigqdGhpcywgb3RoZXIpOwogICAg
ICAgICBjYXNlIEZvbnRGZWF0dXJlQ2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNT
U1ZhbHVlczxDU1NGb250RmVhdHVyZVZhbHVlPigqdGhpcywgb3RoZXIpOworICAgICAgICBjYXNl
IEZvbnRWYXJpYXRpb25DbGFzczoKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVz
PENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBGdW5j
dGlvbkNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTRnVuY3Rp
b25WYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNz
OgpAQCAtMjgyLDYgKzI4NSw4IEBAIFN0cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NGb250RmFjZVNyY1ZhbHVlPigqdGhpcykuY3VzdG9t
Q1NTVGV4dCgpOwogICAgIGNhc2UgRm9udEZlYXR1cmVDbGFzczoKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU0ZvbnRGZWF0dXJlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CisgICAg
Y2FzZSBGb250VmFyaWF0aW9uQ2xhc3M6CisgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NGb250
VmFyaWF0aW9uVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBGdW5jdGlv
bkNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTRnVuY3Rpb25WYWx1ZT4oKnRoaXMp
LmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CkBAIC0zOTYs
NiArNDAxLDkgQEAgdm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBGb250RmVhdHVy
ZUNsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTRm9udEZlYXR1cmVWYWx1ZT4odGhp
cyk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZvbnRWYXJpYXRpb25DbGFzczoKKyAgICAg
ICAgZGVsZXRlIGRvd25jYXN0PENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4odGhpcyk7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2Fz
dDxDU1NGdW5jdGlvblZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuaAppbmRleCA0NGYxYzllOTEzZmJkYjAzYzAwZTk1ZDY1YTU3ZGExN2RiY2FjZjlhLi5lOGM3
YTczOTVjNDg2NGQ0NjI5MjJlMjA3OTcyNmU1OTA0YjZlYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1ZhcmlhYmxlVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBWYXJpYWJsZUNsYXNzOyB9CiAgICAgYm9vbCBp
c0Z1bmN0aW9uVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGdW5jdGlvbkNs
YXNzOyB9CiAgICAgYm9vbCBpc0ZvbnRGZWF0dXJlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBGb250RmVhdHVyZUNsYXNzOyB9CisgICAgYm9vbCBpc0ZvbnRWYXJpYXRpb25W
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRWYXJpYXRpb25DbGFzczsg
fQogICAgIGJvb2wgaXNGb250RmFjZVNyY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5
cGUgPT0gRm9udEZhY2VTcmNDbGFzczsgfQogICAgIGJvb2wgaXNGb250VmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGb250Q2xhc3M7IH0KICAgICBib29sIGlzSW1hZ2VHZW5l
cmF0b3JWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID49IENhbnZhc0NsYXNzICYm
IG1fY2xhc3NUeXBlIDw9IFJhZGlhbEdyYWRpZW50Q2xhc3M7IH0KQEAgLTE2OSw2ICsxNzAsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIEFzcGVjdFJhdGlvQ2xhc3MsCiAgICAgICAgIEJvcmRlcklt
YWdlU2xpY2VDbGFzcywKICAgICAgICAgRm9udEZlYXR1cmVDbGFzcywKKyAgICAgICAgRm9udFZh
cmlhdGlvbkNsYXNzLAogICAgICAgICBGb250Q2xhc3MsCiAgICAgICAgIEZvbnRGYWNlU3JjQ2xh
c3MsCiAgICAgICAgIEZ1bmN0aW9uQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyQ29udmVydGVyLmgKaW5kZXggY2ZlNTU4YzI0ZGFkNDFkMDRkZTAyYzY3MGYzNGQzMGM1NmQw
YmVkYS4uMDUwZDY3MzE3MTc2MDExNWVmMmE0MzRkMWM5ZmI2ZmM4MDQzYzhlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkNTU0NhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDb250ZW50RGlz
dHJpYnV0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVhdHVyZVZhbHVlLmgiCisjaW5j
bHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU0dyaWRBdXRvUmVwZWF0VmFsdWUuaCIKICNpbmNsdWRlICJDU1NH
cmlkTGluZU5hbWVzVmFsdWUuaCIKQEAgLTEyMCw2ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGJvb2wgY29udmVydE92ZXJmbG93U2Nyb2xsaW5nKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1
ZSYpOwogI2VuZGlmCiAgICAgc3RhdGljIEZvbnRGZWF0dXJlU2V0dGluZ3MgY29udmVydEZvbnRG
ZWF0dXJlU2V0dGluZ3MoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJik7CisgICAgc3RhdGljIEZv
bnRWYXJpYXRpb25TZXR0aW5ncyBjb252ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdzKFN0eWxlUmVz
b2x2ZXImLCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBTVkdMZW5ndGggY29udmVydFNWR0xlbmd0
aChTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgVmVjdG9yPFNWR0xlbmd0
aD4gY29udmVydFNWR0xlbmd0aFZlY3RvcihTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKICAg
ICBzdGF0aWMgVmVjdG9yPFNWR0xlbmd0aD4gY29udmVydFN0cm9rZURhc2hBcnJheShTdHlsZVJl
c29sdmVyJiwgQ1NTVmFsdWUmKTsKQEAgLTExNDQsNiArMTE0NiwyMSBAQCBpbmxpbmUgRm9udEZl
YXR1cmVTZXR0aW5ncyBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRGb250RmVhdHVyZVNl
dHRpbmdzKFN0eQogICAgIHJldHVybiBzZXR0aW5nczsKIH0KIAoraW5saW5lIEZvbnRWYXJpYXRp
b25TZXR0aW5ncyBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRGb250VmFyaWF0aW9uU2V0
dGluZ3MoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBpZiAoaXM8Q1NT
UHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgeworICAgICAgICBBU1NFUlQoZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KHZhbHVlKS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb3JtYWwpOworICAg
ICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBzZXR0
aW5nczsKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KHZhbHVl
KSkgeworICAgICAgICBhdXRvJiBmZWF0dXJlID0gZG93bmNhc3Q8Q1NTRm9udFZhcmlhdGlvblZh
bHVlPihpdGVtLmdldCgpKTsKKyAgICAgICAgc2V0dGluZ3MuaW5zZXJ0KHsgZmVhdHVyZS50YWco
KSwgZmVhdHVyZS52YWx1ZSgpIH0pOworICAgIH0KKyAgICByZXR1cm4gc2V0dGluZ3M7Cit9CisK
ICNpZiBQTEFURk9STShJT1MpCiBpbmxpbmUgYm9vbCBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNv
bnZlcnRUb3VjaENhbGxvdXQoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJiB2YWx1ZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAppbmRleCBlMGQwZDRhMDE1NWI2MGE0
MTVjZDhiNDBhNDg1Mzc0NjE4YWQ2ZWJhLi4xYmJmZDdhZDc1YzhmYWY0MzMxMWE5NmMzYmJjOGUw
YzQwMGZmYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3Vz
dG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCkBAIC0x
MTIsNiArMTEyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFdlYmtp
dE1hc2tJbWFnZShTdHlsZVJlc29sdmVyJikgeyB9CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0
aWFsRm9udEZlYXR1cmVTZXR0aW5ncyhTdHlsZVJlc29sdmVyJikgeyB9CiAgICAgc3RhdGljIHZv
aWQgYXBwbHlJbmhlcml0Rm9udEZlYXR1cmVTZXR0aW5ncyhTdHlsZVJlc29sdmVyJikgeyB9Cisg
ICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsRm9udFZhcmlhdGlvblNldHRpbmdzKFN0eWxlUmVz
b2x2ZXImKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRGb250VmFyaWF0aW9uU2V0
dGluZ3MoU3R5bGVSZXNvbHZlciYpIHsgfQogCiAgICAgLy8gQ3VzdG9tIGhhbmRsaW5nIG9mIGlu
aGVyaXQgKyB2YWx1ZSBzZXR0aW5nIG9ubHkuCiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0
RGlzcGxheShTdHlsZVJlc29sdmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ci5jcHAKaW5kZXggM2U2ZmViMDAzYzcxN2E5MjcyYmNjZGRmYzRkMThkNmE3YTNlMWQzYy4uY2My
Nzk5NGQyZmMwY2MxNDA2YTk3YzU4NDYwNGIyNjBiYTQ4ZmE2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkNTU0Zv
bnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmVhdHVyZVZhbHVlLmgiCiAjaW5j
bHVkZSAiQ1NTRm9udFZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFs
dWUuaCIKICNpbmNsdWRlICJDU1NJbWFnZVNldFZhbHVlLmgiCkBAIC0yNzEsNiArMjcyLDcgQEAg
Q1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgYmFzZVVSTCwgY29uc3QKICNlbmRpZgogICAgICAgICBzcHJpbmdUaW1pbmdGdW5j
dGlvbkVuYWJsZWQgPSBzZXR0aW5ncy0+c3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkKCk7CiAg
ICAgICAgIHVzZU5ld1BhcnNlciA9IHNldHRpbmdzLT5uZXdDU1NQYXJzZXJFbmFibGVkKCk7Cisg
ICAgICAgIHZhcmlhdGlvbkZvbnRzRW5hYmxlZCA9IHNldHRpbmdzLT52YXJpYXRpb25Gb250c0Vu
YWJsZWQoKTsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0yOTMsNyArMjk1LDggQEAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPT0gYi5u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcwogICAgICAgICAmJiBhLmVuZm9yY2VzQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSA9PSBiLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZQogICAg
ICAgICAmJiBhLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgPT0gYi51
c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yCi0gICAgICAgICYmIGEuc3By
aW5nVGltaW5nRnVuY3Rpb25FbmFibGVkID09IGIuc3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVk
OworICAgICAgICAmJiBhLnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCA9PSBiLnNwcmluZ1Rp
bWluZ0Z1bmN0aW9uRW5hYmxlZAorICAgICAgICAmJiBhLnZhcmlhdGlvbkZvbnRzRW5hYmxlZCA9
PSBiLnZhcmlhdGlvbkZvbnRzRW5hYmxlZDsKIH0KIAogQ1NTUGFyc2VyOjpDU1NQYXJzZXIoY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKQEAgLTI5NzEsNiArMjk3NCwxNCBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZUZvbnRGZWF0dXJlU2V0
dGluZ3MoaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZv
bnRWYXJpYXRpb25TZXR0aW5nczoKKyAgICAgICAgaWYgKG1fY29udGV4dC52YXJpYXRpb25Gb250
c0VuYWJsZWQpIHsKKyAgICAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9udFZhcmlhdGlvblNldHRpbmdzKGltcG9ydGFudCk7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJp
YW50TGlnYXR1cmVzOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0g
Q1NTVmFsdWVOb25lKQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwpAQCAtMTA2
MjUsNiArMTA2MzYsNjAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5n
cyhib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQ1NTUGFyc2Vy
OjpwYXJzZUZvbnRWYXJpYXRpb25UYWcoQ1NTVmFsdWVMaXN0JiBzZXR0aW5ncykKK3sKKyAgICBD
U1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIC8vIEZl
YXR1cmUgdGFnIG5hbWUgY29tZXMgZmlyc3QKKyAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBGb250
VGFnIHRhZzsKKyAgICBpZiAodmFsdWUtPnN0cmluZy5sZW5ndGgoKSAhPSB0YWcuc2l6ZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhZy5z
aXplKCk7ICsraSkgeworICAgICAgICAvLyBMaW1pdHMgdGhlIHJhbmdlIG9mIGNoYXJhY3RlcnMg
dG8gMHgyMC0weDdFLCBmb2xsb3dpbmcgdGhlIHRhZyBuYW1lIHJ1bGVzIGRlZmllbmQgaW4gdGhl
IE9wZW5UeXBlIHNwZWNpZmljYXRpb24uCisgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IHZhbHVl
LT5zdHJpbmdbaV07CisgICAgICAgIGlmIChjaGFyYWN0ZXIgPCAweDIwIHx8IGNoYXJhY3RlciA+
IDB4N0UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHRhZ1tpXSA9IHRvQVND
SUlMb3dlcihjaGFyYWN0ZXIpOworICAgIH0KKworICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5l
eHQoKTsKKyAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfTlVNQkVSKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB0YWdWYWx1
ZSA9IHZhbHVlLT5mVmFsdWU7CisgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKworICAgIHNldHRp
bmdzLmFwcGVuZChDU1NGb250VmFyaWF0aW9uVmFsdWU6OmNyZWF0ZSh0YWcsIHRhZ1ZhbHVlKSk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRWYXJpYXRp
b25TZXR0aW5ncyhib29sIGltcG9ydGFudCkKK3sKKyAgICBpZiAobV92YWx1ZUxpc3QtPnNpemUo
KSA9PSAxICYmIG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmlkID09IENTU1ZhbHVlTm9ybWFsKSB7
CisgICAgICAgIGF1dG8gbm9ybWFsVmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAgIG1fdmFsdWVMaXN0
LT5uZXh0KCk7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFZhcmlhdGlvblNl
dHRpbmdzLCBXVEZNb3ZlKG5vcm1hbFZhbHVlKSwgaW1wb3J0YW50KTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgYXV0byBzZXR0aW5ncyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRl
Q29tbWFTZXBhcmF0ZWQoKTsKKyAgICBmb3IgKENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFs
dWVMaXN0LT5jdXJyZW50KCk7IHZhbHVlOyB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsK
KyAgICAgICAgaWYgKCFwYXJzZUZvbnRWYXJpYXRpb25UYWcoc2V0dGluZ3MpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIElmIHRoZSBsaXN0IGlzbid0IHBhcnNlZCBm
dWxseSwgdGhlIGN1cnJlbnQgdmFsdWUgc2hvdWxkIGJlIGNvbW1hLgorICAgICAgICB2YWx1ZSA9
IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgICAgIGlmICh2YWx1ZSAmJiAhaXNDb21tYSh2
YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChzZXR0aW5n
cy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlGb250VmFyaWF0
aW9uU2V0dGluZ3MsIFdURk1vdmUoc2V0dGluZ3MpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIENTU1BhcnNlcjo6
cGFyc2VGb250VmFyaWFudExpZ2F0dXJlcyhib29sIGltcG9ydGFudCwgYm9vbCB1bmtub3duSXNG
YWlsdXJlLCBib29sIGltcGxpY2l0KQogewogICAgIGF1dG8gdmFsdWVzID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
LmgKaW5kZXggMTEzNzJiNDMzZjJjMGE0MGMxYzExNWY5ZTI5Nzk5ZDI0MGVhZGExNS4uOTExYWE4
MmRhZGVkMTcxMDZmN2U0NjBjZDYyYzkxNTM4NWVjMWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlci5oCkBAIC0zNjQsNiArMzY0LDkgQEAgcHVibGljOgogICAgIGJvb2wgcGFy
c2VGb250RmVhdHVyZVRhZyhDU1NWYWx1ZUxpc3QmKTsKICAgICBib29sIHBhcnNlRm9udEZlYXR1
cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CiAKKyAgICBib29sIHBhcnNlRm9udFZhcmlhdGlv
blRhZyhDU1NWYWx1ZUxpc3QmKTsKKyAgICBib29sIHBhcnNlRm9udFZhcmlhdGlvblNldHRpbmdz
KGJvb2wgaW1wb3J0YW50KTsKKwogICAgIGJvb2wgcGFyc2VGbG93VGhyZWFkKENTU1Byb3BlcnR5
SUQsIGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlUmVnaW9uVGhyZWFkKENTU1Byb3Bl
cnR5SUQsIGJvb2wgaW1wb3J0YW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlck1vZGUuaAppbmRleCBlOTkwNzAwZGViYTBiMWE2ODkzY2VlOWQ3MjZlNGU1NTQ2NDk0NzM4
Li41NWNiNzU1MmVhOWE0OGYwNzkwNTM3MmQ5NjdjNjRiYzExODkzNWM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlck1vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlck1vZGUuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIHVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgeyBm
YWxzZSB9OwogICAgIGJvb2wgc3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIHVzZU5ld1BhcnNlciB7IGZhbHNlIH07CisgICAgYm9vbCB2YXJpYXRpb25Gb250
c0VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCmluZGV4IGM0YmZmMDdjMDcxMzc5ZWI0YTBlNzc0
NmFmYWRkMmM4NmYyMzk0NGUuLjE1NDZhOGZkNDA0Y2QyMGRiZmQwYzczOTM2NTM0Yzg0N2RkYjM5
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBA
IC03Niw2ICs3Niw3IEBAIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgICAgICAsIG1f
d2VpZ2h0KGRlc2NyaXB0aW9uLndlaWdodCgpKQogICAgICAgICAsIG1fZmxhZ3MobWFrZUZsYWdz
S2V5KGRlc2NyaXB0aW9uKSkKICAgICAgICAgLCBtX2ZlYXR1cmVTZXR0aW5ncyhkZXNjcmlwdGlv
bi5mZWF0dXJlU2V0dGluZ3MoKSkKKyAgICAgICAgLCBtX3ZhcmlhdGlvblNldHRpbmdzKGRlc2Ny
aXB0aW9uLnZhcmlhdGlvblNldHRpbmdzKCkpCiAgICAgeyB9CiAKICAgICBleHBsaWNpdCBGb250
RGVzY3JpcHRpb25LZXkoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQpAQCAtODUsNyAr
ODYsNyBAQCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgRm9udERlc2NyaXB0aW9uS2V5JiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fd2VpZ2h0ID09IG90aGVyLm1fd2VpZ2h0
ICYmIG1fZmxhZ3MgPT0gb3RoZXIubV9mbGFncwotICAgICAgICAgICAgJiYgbV9mZWF0dXJlU2V0
dGluZ3MgPT0gb3RoZXIubV9mZWF0dXJlU2V0dGluZ3M7CisgICAgICAgICAgICAmJiBtX2ZlYXR1
cmVTZXR0aW5ncyA9PSBvdGhlci5tX2ZlYXR1cmVTZXR0aW5ncyAmJiBtX3ZhcmlhdGlvblNldHRp
bmdzID09IG90aGVyLm1fdmFyaWF0aW9uU2V0dGluZ3M7CiAgICAgfQogCiAgICAgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IEZvbnREZXNjcmlwdGlvbktleSYgb3RoZXIpIGNvbnN0CkBAIC0xMDMsNiAr
MTA0LDcgQEAgc3RydWN0IEZvbnREZXNjcmlwdGlvbktleSB7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgZmxhZ0l0ZW0gOiBtX2ZsYWdzKQogICAgICAgICAgICAgaGFzaGVyLmFkZChmbGFnSXRlbSk7
CiAgICAgICAgIGhhc2hlci5hZGQobV9mZWF0dXJlU2V0dGluZ3MuaGFzaCgpKTsKKyAgICAgICAg
aGFzaGVyLmFkZChtX3ZhcmlhdGlvblNldHRpbmdzLmhhc2goKSk7CiAgICAgICAgIHJldHVybiBo
YXNoZXIuaGFzaCgpOwogICAgIH0KIApAQCAtMTQzLDYgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAg
dW5zaWduZWQgbV93ZWlnaHQgeyAwIH07CiAgICAgc3RkOjphcnJheTx1bnNpZ25lZCwgMj4gbV9m
bGFncyB7eyAwLCAwIH19OwogICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MgbV9mZWF0dXJlU2V0dGlu
Z3M7CisgICAgRm9udFZhcmlhdGlvblNldHRpbmdzIG1fdmFyaWF0aW9uU2V0dGluZ3M7CiB9Owog
CiBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5SGFzaCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAppbmRleCBjYWY2NGNlNTEw
ODAwYTExZDA4YmE2MThkNDllZGMxMmIxOTk1Mjg4Li41NWYwYThkMmIzZjg1NjVkMzdiZTgzMDg2
ZDZkNjA0NmM0NjI5YWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IFNhbWVTaXplQXNGb250Q2FzY2FkZURlc2NyaXB0aW9uIHsKLSAg
ICBWZWN0b3I8dm9pZCo+IHZlY3RvcjsKKyAgICBWZWN0b3I8dm9pZCo+IHZlY3RvclsyXTsKICAg
ICBBdG9taWNTdHJpbmcgc3RyaW5nOwogICAgIGZsb2F0IHNpemU7CiAgICAgdW5zaWduZWQgYml0
ZmllbGRzMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERl
c2NyaXB0aW9uLmgKaW5kZXggNzNhMWRkZDg2MTcxNmY4N2JjNzY0NzI1Nzg4MWFiNzViYjRiOTgz
MC4uMzIyNWI4NjI0NmZjOGFiNWMxMjk2MTBiOGUwMDgxN2FmN2JmMjAzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAgLTU5
LDYgKzU5LDcgQEAgcHVibGljOgogICAgIE5vbkNKS0dseXBoT3JpZW50YXRpb24gbm9uQ0pLR2x5
cGhPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE5vbkNKS0dseXBoT3Jp
ZW50YXRpb24+KG1fbm9uQ0pLR2x5cGhPcmllbnRhdGlvbik7IH0KICAgICBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRXaWR0aFZh
cmlhbnQ+KG1fd2lkdGhWYXJpYW50KTsgfQogICAgIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mm
IGZlYXR1cmVTZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZVNldHRpbmdzOyB9Cisg
ICAgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiB2YXJpYXRpb25TZXR0aW5ncygpIGNvbnN0
IHsgcmV0dXJuIG1fdmFyaWF0aW9uU2V0dGluZ3M7IH0KICAgICBGb250U3ludGhlc2lzIGZvbnRT
eW50aGVzaXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250U3ludGhlc2lzPihtX2Zv
bnRTeW50aGVzaXMpOyB9CiAgICAgRm9udFZhcmlhbnRMaWdhdHVyZXMgdmFyaWFudENvbW1vbkxp
Z2F0dXJlcygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRWYXJpYW50TGlnYXR1cmVz
PihtX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMpOyB9CiAgICAgRm9udFZhcmlhbnRMaWdhdHVyZXMg
dmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxGb250VmFyaWFudExpZ2F0dXJlcz4obV92YXJpYW50RGlzY3JldGlvbmFyeUxpZ2F0dXJlcyk7
IH0KQEAgLTEwNSw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaWR0aFZhcmlhbnQo
Rm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpIHsgbV93aWR0aFZhcmlhbnQgPSB3aWR0aFZh
cmlhbnQ7IH0gLy8gTWFrZSBzdXJlIG5ldyBjYWxsZXJzIG9mIHRoaXMgc3luYyB3aXRoIEZvbnRQ
bGF0Zm9ybURhdGE6OmlzRm9yVGV4dENvbWJpbmUoKSEKICAgICB2b2lkIHNldExvY2FsZShjb25z
dCBBdG9taWNTdHJpbmcmKTsKICAgICB2b2lkIHNldEZlYXR1cmVTZXR0aW5ncyhGb250RmVhdHVy
ZVNldHRpbmdzJiYgc2V0dGluZ3MpIHsgbV9mZWF0dXJlU2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRp
bmdzKTsgfQorICAgIHZvaWQgc2V0VmFyaWF0aW9uU2V0dGluZ3MoRm9udFZhcmlhdGlvblNldHRp
bmdzJiYgc2V0dGluZ3MpIHsgbV92YXJpYXRpb25TZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3Mp
OyB9CiAgICAgdm9pZCBzZXRGb250U3ludGhlc2lzKEZvbnRTeW50aGVzaXMgZm9udFN5bnRoZXNp
cykgeyBtX2ZvbnRTeW50aGVzaXMgPSBmb250U3ludGhlc2lzOyB9CiAgICAgdm9pZCBzZXRWYXJp
YW50Q29tbW9uTGlnYXR1cmVzKEZvbnRWYXJpYW50TGlnYXR1cmVzIHZhcmlhbnQpIHsgbV92YXJp
YW50Q29tbW9uTGlnYXR1cmVzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhcmlhbnQpOyB9CiAg
ICAgdm9pZCBzZXRWYXJpYW50RGlzY3JldGlvbmFyeUxpZ2F0dXJlcyhGb250VmFyaWFudExpZ2F0
dXJlcyB2YXJpYW50KSB7IG1fdmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4odmFyaWFudCk7IH0KQEAgLTEyNSw3ICsxMjcsOSBAQCBwdWJsaWM6CiAg
ICAgRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIC8v
IEZJWE1FOiBJbnZlc3RpZ2F0ZSBtb3ZpbmcgdGhlc2UgaW50byB0aGVpciBvd24gb2JqZWN0IG9u
IHRoZSBoZWFwICh0byBzYXZlIG1lbW9yeSkuCiAgICAgRm9udEZlYXR1cmVTZXR0aW5ncyBtX2Zl
YXR1cmVTZXR0aW5nczsKKyAgICBGb250VmFyaWF0aW9uU2V0dGluZ3MgbV92YXJpYXRpb25TZXR0
aW5nczsKICAgICBBdG9taWNTdHJpbmcgbV9sb2NhbGU7CiAKICAgICBmbG9hdCBtX2NvbXB1dGVk
U2l6ZSB7IDAgfTsgLy8gQ29tcHV0ZWQgc2l6ZSBhZGp1c3RlZCBmb3IgdGhlIG1pbmltdW0gZm9u
dCBzaXplIGFuZCB0aGUgem9vbSBmYWN0b3IuCkBAIC0xNjcsNiArMTcxLDcgQEAgaW5saW5lIGJv
b2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3Ro
ZXIpIGNvbnN0CiAgICAgICAgICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhWYXJp
YW50CiAgICAgICAgICYmIG1fbG9jYWxlID09IG90aGVyLm1fbG9jYWxlCiAgICAgICAgICYmIG1f
ZmVhdHVyZVNldHRpbmdzID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdzCisgICAgICAgICYmIG1f
dmFyaWF0aW9uU2V0dGluZ3MgPT0gb3RoZXIubV92YXJpYXRpb25TZXR0aW5ncwogICAgICAgICAm
JiBtX2ZvbnRTeW50aGVzaXMgPT0gb3RoZXIubV9mb250U3ludGhlc2lzCiAgICAgICAgICYmIG1f
dmFyaWFudENvbW1vbkxpZ2F0dXJlcyA9PSBvdGhlci5tX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMK
ICAgICAgICAgJiYgbV92YXJpYW50RGlzY3JldGlvbmFyeUxpZ2F0dXJlcyA9PSBvdGhlci5tX3Zh
cmlhbnREaXNjcmV0aW9uYXJ5TGlnYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcAppbmRleCBmYmU2NmUyN2Yy
NTlkZmIzZDViN2U5NzIxY2NiYTU2ZjJiZTFlN2I2Li4wNTViNTMxY2YzN2RlMWU0MjU5OWZjOWQy
MTVhMzVmZjU4MjYzMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKQEAgLTQ0LDQgKzQ0LDM2IEBAIHVuc2ln
bmVkIEZvbnRGZWF0dXJlU2V0dGluZ3M6Omhhc2goKSBjb25zdAogICAgIHJldHVybiBoYXNoZXIu
aGFzaCgpOwogfQogCit0ZW1wbGF0ZSA8PgordW5zaWduZWQgRm9udFZhcmlhdGlvblNldHRpbmdz
OjpoYXNoKCkgY29uc3QKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmbG9hdCkgPT0gc2l6
ZW9mKGludCksICJJbnRlZ2VySGFzaGVyIG5lZWRzIHRvIGFjY2VwdCBmbG9hdHMgdG9vIik7Cisg
ICAgdW5pb24geworICAgICAgICBmbG9hdCBmOworICAgICAgICBpbnQgaTsKKyAgICB9IGZsb2F0
VG9JbnQ7CisKKyAgICBJbnRlZ2VySGFzaGVyIGhhc2hlcjsKKyAgICBmb3IgKGF1dG8mIHZhcmlh
dGlvbiA6IG1fbGlzdCkgeworICAgICAgICBoYXNoZXIuYWRkKEZvdXJDaGFyYWN0ZXJUYWdIYXNo
OjpoYXNoKHZhcmlhdGlvbi50YWcoKSkpOworICAgICAgICBmbG9hdFRvSW50LmYgPSB2YXJpYXRp
b24udmFsdWUoKTsKKyAgICAgICAgaGFzaGVyLmFkZChmbG9hdFRvSW50LmkpOworICAgIH0KKyAg
ICByZXR1cm4gaGFzaGVyLmhhc2goKTsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiBpdGVtKQoreworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1dG8m
IHZhcmlhdGlvbiA9IGl0ZW0uYXQoaSk7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgczsKKyAgICAg
ICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzBdKTsKKyAgICAgICAgcy5hcHBlbmQodmFyaWF0
aW9uLnRhZygpWzFdKTsKKyAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzJdKTsKKyAg
ICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzNdKTsKKyAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KHMudG9TdHJpbmcoKSwgaXRlbS5hdChpKS52YWx1ZSgpKTsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250VGFnZ2VkU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRUYWdnZWRTZXR0aW5ncy5oCmluZGV4IDUzOWNlMjEzMWNlOTVmNjQwZTM3MjcxNTk2MjEw
ZWQ3MzRhZTcxOGIuLjBkZGRmNTNiNzgxOTBhMDJlMTM0ZTNmNzliZWYwODJmYzM3NDdkOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRT
ZXR0aW5ncy5oCkBAIC0xMzYsNSArMTM2LDggQEAgdm9pZCBGb250VGFnZ2VkU2V0dGluZ3M8VD46
Omluc2VydChGb250VGFnZ2VkU2V0dGluZzxUPiYmIGZlYXR1cmUpCiAKIHR5cGVkZWYgRm9udFRh
Z2dlZFNldHRpbmc8aW50PiBGb250RmVhdHVyZTsKIHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdz
PGludD4gRm9udEZlYXR1cmVTZXR0aW5nczsKK3R5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGZs
b2F0PiBGb250VmFyaWF0aW9uU2V0dGluZ3M7CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYsIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYpOwogCiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWU0
ZWNlNDYwMmM0NmE3Y2I1YjNmMWIyMGFmODNlNGUwMmUyMzI2Yi4uMjA2ZWFhNzZlOWIyMWVkODBl
ZjU0ZDA2ODQzNzViYjI5OTY0MDEwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE2LTA5LTMw
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgUGFy
c2UgZm9udC12YXJpYXRpb24tc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2Mjc4MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZy
YXNlci4KKworICAgICAgICAqIGZhc3QvdGV4dC92YXJpYXRpb25zL2dldENvbXB1dGVkU3R5bGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvdmFyaWF0aW9ucy9nZXRD
b21wdXRlZFN0eWxlLmh0bWw6IEFkZGVkLgorCisyMDE2LTA5LTMwICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKICAgICAgICAgRml4IGZhc3QvdGV4dC90cmFrLW9w
dGltaXplTGVnaWJpbGl0eS5odG1sCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjI3NzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvdmFyaWF0aW9ucy9nZXRDb21wdXRlZFN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMWEwMTQyMzFmYzkyZjMyMDgxYWRkYWZjNjA2NTNkNDg2YWQ3MmJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHls
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDAnKSkuZ2V0UHJvcGVydHlWYWx1ZSgn
Zm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAiJ3dnaHQnIDIiCitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpKS5nZXRQcm9wZXJ0
eVZhbHVlKCdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycpIGlzICInd2dodCcgMyIKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykpLmdl
dFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykgaXMgIid3Z2h0JyAyLCAn
d2R0aCcgMS4yIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDInKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGlu
Z3MnKSBpcyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKQorUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQn
KSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAibm9ybWFs
IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDUnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSBpcyAi
bm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDYnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3Mn
KSBpcyAibm9ybWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0
dGluZ3MnKSBpcyAiJ3dnaHQnIDI3IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC92YXJp
YXRpb25zL2dldENvbXB1dGVkU3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC92YXJp
YXRpb25zL2dldENvbXB1dGVkU3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmM4ZjU2MWRmZWEyOWUw
MjNjNTIyMjI3NDQ0NzVlMjliMmI5MzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHlsZS5odG1sCkBAIC0wLDAgKzEsMzIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0VmFyaWF0aW9uRm9udHNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0idGVzdDAiIHN0eWxlPSJmb250LWZhbWlseTogJ1NraWEn
OyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDI7Ij48L2Rpdj4KKzxkaXYgaWQ9InRl
c3QxIiBzdHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6
ICd3Z2h0JyAyLCAnd2dodCcgMzsiPjwvZGl2PgorPGRpdiBpZD0idGVzdDIiIHN0eWxlPSJmb250
LWZhbWlseTogJ1NraWEnOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDIsICd3ZHRo
JyAxLjI7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3QzIiBzdHlsZT0iZm9udC1mYW1pbHk6ICdTa2lh
JzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3ZHRoJyAxLjIsICd3Z2h0JyAyOyI+PC9kaXY+
Cis8ZGl2IGlkPSJ0ZXN0NCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnU2tpYSc7IGZvbnQtdmFyaWF0
aW9uLXNldHRpbmdzOiBub3JtYWw7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3Q1IiBzdHlsZT0iZm9u
dC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICdhYmNkZScgMzsiPjwv
ZGl2PgorPGRpdiBpZD0idGVzdDYiIHN0eWxlPSJmb250LWZhbWlseTogJ1NraWEnOyBmb250LXZh
cmlhdGlvbi1zZXR0aW5nczogJ2FiY+2VnOq1reyWtGUnIDM7Ij48L2Rpdj4KKzxkaXYgaWQ9InRl
c3Q3IiBzdHlsZT0iZm9udC1mYW1pbHk6ICdTa2lhJzsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6
ICd3Z2h0JyAyNzsiPjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QwJykpLmdl
dFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQnIDIiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9u
LXNldHRpbmdzJykiLCAiJ3dnaHQnIDMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykpLmdldFBy
b3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAiJ3dnaHQnIDIsICd3ZHRo
JyAxLjIiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDInKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0
dGluZ3MnKSIsICJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC12YXJpYXRp
b24tc2V0dGluZ3MnKSIsICJub3JtYWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykpLmdldFBy
b3BlcnR5VmFsdWUoJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJykiLCAibm9ybWFsIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NicpKS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXZhcmlhdGlvbi1zZXR0
aW5ncycpIiwgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJvcGVydHlW
YWx1ZSgnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnKSIsICInd2dodCcgMjciKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>