<?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>59297</bug_id>
          
          <creation_ts>2011-04-24 00:06:27 -0700</creation_ts>
          <short_desc>patch for inclusive Unix support on Chromium</short_desc>
          <delta_ts>2011-04-26 10:09:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://chromium.hybridsource.org</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>chromium</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jamesr</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>391562</commentid>
    <comment_count>0</comment_count>
    <who name="">chromium</who>
    <bug_when>2011-04-24 00:06:27 -0700</bug_when>
    <thetext>I recently built Chromium 10 on OpenBSD and Solaris, I&apos;m submitting the ifdef changes that came out of that work.  Most of these diffs simply change 

OS(LINUX) || OS(FREEBSD) 

to 

OS(UNIX) &amp;&amp; !OS(DARWIN)

rather than stringing along something like 

OS(LINUX) || OS(FREEBSD) || OS(OPENBSD) || OS(SOLARIS) || OS(NETBSD) || OS(DRAGONFLY) 

every time support is added for a new Unix.  This patch from WebKit trunk was tested on FreeBSD, an earlier variant was tested with Chromium 10 on OpenBSD and Solaris.  All ifdef changes are only on files either built for Chromium or that are safe-guarded with a PLATFORM(CHROMIUM), so this patch shouldn&apos;t affect non-Chromium platforms.  Some of the Skia files aren&apos;t built on Darwin so the check for Darwin is left off there.  I added OpenBSD and Solaris to the Inspector bindings too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391564</commentid>
    <comment_count>1</comment_count>
      <attachid>90876</attachid>
    <who name="">chromium</who>
    <bug_when>2011-04-24 00:19:47 -0700</bug_when>
    <thetext>Created attachment 90876
Unix ifdefs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391799</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-25 10:00:30 -0700</bug_when>
    <thetext>Resetting r? flag since you&apos;re asking for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391803</commentid>
    <comment_count>3</comment_count>
      <attachid>90876</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-04-25 10:04:08 -0700</bug_when>
    <thetext>Comment on attachment 90876
Unix ifdefs

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

&gt; WebKit/ChangeLog:7
&gt; +        patch for inclusive Unix support on Chromium
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=59297
&gt; +

This should go in WebKit/chromium/ChangeLog.  The prepare-ChangeLog and webkit-patch scripts will place changelogs in the proper locations.

&quot;inclusive Unix support&quot; is pretty vague - can you state what you actually mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392169</commentid>
    <comment_count>4</comment_count>
      <attachid>91035</attachid>
    <who name="">chromium</who>
    <bug_when>2011-04-25 17:51:58 -0700</bug_when>
    <thetext>Created attachment 91035
updated Changelog

Sorry about setting the wrong review flag, I didn&apos;t read the instructions properly.  I didn&apos;t see the ChangeLog in WebKit/chromium, fixed that and updated the message with more detail.  What directory is one supposed to run prepare-ChangeLog from in a Chromium checkout of WebKit?  I tried running from third_party/WebKit/Source but it wouldn&apos;t work, which is why I found the ChangeLog directories myself and ran it from each one separately.  As for what I meant by inclusive support, I described it in the first comment here and have updated the comment in the ChangeLog.  Let me know if it isn&apos;t clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392533</commentid>
    <comment_count>5</comment_count>
      <attachid>91035</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-26 10:00:58 -0700</bug_when>
    <thetext>Comment on attachment 91035
updated Changelog

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

&gt; WebCore/ChangeLog:9
&gt; +        No new tests. (OOPS!)

Nit: This should be replaced with a line that says why there are no new tests (e.g., No new tests since this is just a compile change.).  I will fix this when I check it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392539</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-26 10:09:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84921</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90876</attachid>
            <date>2011-04-24 00:19:47 -0700</date>
            <delta_ts>2011-04-25 17:51:58 -0700</delta_ts>
            <desc>Unix ifdefs</desc>
            <filename>webkit-unix.patch</filename>
            <type>text/plain</type>
            <size>21403</size>
            <attacher>chromium</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA4NDY4NSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzQsNyArMTM0LDcgQEAKICNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hy
b21pdW1XaW4uaCIKICNlbHNlCi0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1Mo
VU5JWCkgJiYgIU9TKERBUldJTikKICNpbmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtTGludXgu
aCIKICNlbmRpZgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBAIC00ODIsNyArNDgyLDcgQEAK
ICAgICAgICAgfHwgKGV2ZW50LmJ1dHRvbiA9PSBXZWJNb3VzZUV2ZW50OjpCdXR0b25MZWZ0CiAg
ICAgICAgICAgICAmJiBldmVudC5tb2RpZmllcnMgJiBXZWJNb3VzZUV2ZW50OjpDb250cm9sS2V5
KSkKICAgICAgICAgbW91c2VDb250ZXh0TWVudShldmVudCk7Ci0jZWxpZiBPUyhMSU5VWCkgfHwg
T1MoRlJFRUJTRCkKKyNlbGlmIE9TKFVOSVgpCiAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PSBXZWJN
b3VzZUV2ZW50OjpCdXR0b25SaWdodCkKICAgICAgICAgbW91c2VDb250ZXh0TWVudShldmVudCk7
CiAjZW5kaWYKQEAgLTUyMSw3ICs1MjEsNyBAQAogICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8
ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBP
UyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkKKyNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKQogICAg
IC8vIElmIHRoZSBldmVudCB3YXMgYSBtaWRkbGUgY2xpY2ssIGF0dGVtcHQgdG8gY29weSB0ZXh0
IGludG8gdGhlIGZvY3VzZWQKICAgICAvLyBmcmFtZS4gV2UgZXhlY3V0ZSB0aGlzIGJlZm9yZSB3
ZSBsZXQgdGhlIHBhZ2UgaGF2ZSBhIGdvIGF0IHRoZSBldmVudAogICAgIC8vIGJlY2F1c2UgdGhl
IHBhZ2UgbWF5IGNoYW5nZSB3aGF0IGlzIGZvY3VzZWQgZHVyaW5nIGluIGl0cyBldmVudCBoYW5k
bGVyLgpAQCAtNjA1LDExICs2MDUsMTEgQEAKICAgICBpZiAoIWhhbmRsZXIpCiAgICAgICAgIHJl
dHVybiBrZXlFdmVudERlZmF1bHQoZXZlbnQpOwogCi0jaWYgT1MoV0lORE9XUykgfHwgT1MoTElO
VVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgIU9TKERBUldJTikKICAgICBjb25zdCBXZWJJbnB1dEV2
ZW50OjpUeXBlIGNvbnRleHRNZW51VHJpZ2dlcmluZ0V2ZW50VHlwZSA9CiAjaWYgT1MoV0lORE9X
UykKICAgICAgICAgV2ViSW5wdXRFdmVudDo6S2V5VXA7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1Mo
RlJFRUJTRCkKKyNlbGlmIE9TKFVOSVgpCiAgICAgICAgIFdlYklucHV0RXZlbnQ6OlJhd0tleURv
d247CiAjZW5kaWYKIApAQCAtNjE5LDcgKzYxOSw3IEBACiAgICAgICAgIHNlbmRDb250ZXh0TWVu
dUV2ZW50KGV2ZW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmIC8vIE9T
KFdJTkRPV1MpIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKQorI2VuZGlmIC8vICFPUyhEQVJX
SU4pCiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyIGV2dChldmVudCk7CiAKQEAg
LTc0OCw3ICs3NDgsNyBAQAogfQogI2VuZGlmCiAKLSNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5V
WCkgfHwgT1MoRlJFRUJTRCkKKyNpZiAhT1MoREFSV0lOKQogLy8gTWFjIGhhcyBubyB3YXkgdG8g
b3BlbiBhIGNvbnRleHQgbWVudSBiYXNlZCBvbiBhIGtleWJvYXJkIGV2ZW50LgogYm9vbCBXZWJW
aWV3SW1wbDo6c2VuZENvbnRleHRNZW51RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZl
bnQpCiB7CkBAIC0yMDk1LDcgKzIwOTUsNyBAQAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2Nyb2xs
YmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgewotI2lmIE9TKExJTlVYKSB8
fCBPUyhGUkVFQlNEKQorI2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pCiAgICAgUGxhdGZvcm1U
aGVtZUNocm9taXVtR3RrOjpzZXRTY3JvbGxiYXJDb2xvcnMoaW5hY3RpdmVDb2xvciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0Nv
bG9yKTsKQEAgLTIxMDYsNyArMjEwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgYWN0aXZlRm9yZWdyb3VuZENvbG9yLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlQmFja2dyb3VuZENvbG9yLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlRm9y
ZWdyb3VuZENvbG9yKSB7Ci0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoVU5J
WCkgJiYgIU9TKERBUldJTikKICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNlbGVj
dGlvbkNvbG9ycyhhY3RpdmVCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRm9yZWdyb3VuZENvbG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYWN0aXZlQmFja2dy
b3VuZENvbG9yLApAQCAtMjE4MiwxMCArMjE4MiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWx0LCBib29sIG1ldGEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViTmF2aWdhdGlvblBv
bGljeSogcG9saWN5KQogewotI2lmIE9TKFdJTkRPV1MpIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVF
QlNEKSB8fCBPUyhTT0xBUklTKQorI2lmIE9TKERBUldJTikKKyAgICBjb25zdCBib29sIG5ld1Rh
Yk1vZGlmaWVyID0gKGJ1dHRvbiA9PSAxKSB8fCBtZXRhOworI2Vsc2UKICAgICBjb25zdCBib29s
IG5ld1RhYk1vZGlmaWVyID0gKGJ1dHRvbiA9PSAxKSB8fCBjdHJsOwotI2VsaWYgT1MoREFSV0lO
KQotICAgIGNvbnN0IGJvb2wgbmV3VGFiTW9kaWZpZXIgPSAoYnV0dG9uID09IDEpIHx8IG1ldGE7
CiAjZW5kaWYKICAgICBpZiAoIW5ld1RhYk1vZGlmaWVyICYmICFzaGlmdCAmJiAhYWx0KQogICAg
ICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRnZS5j
cHAJKHJldmlzaW9uIDg0Njg1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDE2ICs3MCwxNCBAQAogI2luY2x1ZGUgIndpbi9X
ZWJUaGVtZUVuZ2luZS5oIgogI2VuZGlmCiAKLSNpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkK
KyNpZiBPUyhEQVJXSU4pCisjaW5jbHVkZSAibWFjL1dlYlRoZW1lRW5naW5lLmgiCisjZWxpZiBP
UyhVTklYKQogI2luY2x1ZGUgImxpbnV4L1dlYlRoZW1lRW5naW5lLmgiCiAjaW5jbHVkZSAiV2Vi
Rm9udEluZm8uaCIKICNpbmNsdWRlICJXZWJGb250UmVuZGVyU3R5bGUuaCIKICNlbmRpZgogCi0j
aWYgT1MoREFSV0lOKQotI2luY2x1ZGUgIm1hYy9XZWJUaGVtZUVuZ2luZS5oIgotI2VuZGlmCi0K
ICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2Vu
ZGlmCkBAIC00NDIsNyArNDQwLDIxIEBACiB9CiAjZW5kaWYKIAotI2lmIE9TKExJTlVYKSB8fCBP
UyhGUkVFQlNEKQorI2lmIE9TKERBUldJTikKK2Jvb2wgUGxhdGZvcm1CcmlkZ2U6OmxvYWRGb250
KE5TRm9udCogc3JjRm9udCwgQVRTRm9udENvbnRhaW5lclJlZiogb3V0KQoreworICAgIFdlYlNh
bmRib3hTdXBwb3J0KiBzcyA9IHdlYktpdENsaWVudCgpLT5zYW5kYm94U3VwcG9ydCgpOworICAg
IGlmIChzcykKKyAgICAgICAgcmV0dXJuIHNzLT5sb2FkRm9udChzcmNGb250LCBvdXQpOworCisg
ICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8g
YW4gZXJyb3IgbG9hZGluZyBhCisgICAgLy8gZm9udCBkdWUgdG8gYmVpbmcgYmxvY2tlZCBieSB0
aGUgc2FuZGJveC4KKyAgICAvLyBUaGlzIGJ5IGRlZmluaXRpb24gc2hvdWxkbid0IGhhcHBlbiBp
ZiB0aGVyZSBpcyBubyBzYW5kYm94IHN1cHBvcnQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgKm91dCA9IDA7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VsaWYgT1MoVU5JWCkKIFN0
cmluZyBQbGF0Zm9ybUJyaWRnZTo6Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHNpemVfdCBudW1DaGFyYWN0ZXJzLCBjb25zdCBjaGFyKiBwcmVmZXJy
ZWRMb2NhbGUpCiB7CiAgICAgaWYgKHdlYktpdENsaWVudCgpLT5zYW5kYm94U3VwcG9ydCgpKQpA
QCAtNDY4LDIyICs0ODAsNiBAQAogfQogI2VuZGlmCiAKLSNpZiBPUyhEQVJXSU4pCi1ib29sIFBs
YXRmb3JtQnJpZGdlOjpsb2FkRm9udChOU0ZvbnQqIHNyY0ZvbnQsIEFUU0ZvbnRDb250YWluZXJS
ZWYqIG91dCkKLXsKLSAgICBXZWJTYW5kYm94U3VwcG9ydCogc3MgPSB3ZWJLaXRDbGllbnQoKS0+
c2FuZGJveFN1cHBvcnQoKTsKLSAgICBpZiAoc3MpCi0gICAgICAgIHJldHVybiBzcy0+bG9hZEZv
bnQoc3JjRm9udCwgb3V0KTsKLQotICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUg
Y2FsbGVkIGluIHJlc3BvbnNlIHRvIGFuIGVycm9yIGxvYWRpbmcgYQotICAgIC8vIGZvbnQgZHVl
IHRvIGJlaW5nIGJsb2NrZWQgYnkgdGhlIHNhbmRib3guCi0gICAgLy8gVGhpcyBieSBkZWZpbml0
aW9uIHNob3VsZG4ndCBoYXBwZW4gaWYgdGhlcmUgaXMgbm8gc2FuZGJveCBzdXBwb3J0LgotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICpvdXQgPSAwOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLSNlbmRpZgotCiAvLyBEYXRhYmFzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBsYXRmb3JtRmlsZUhhbmRs
ZSBQbGF0Zm9ybUJyaWRnZTo6ZGF0YWJhc2VPcGVuRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVO
YW1lLCBpbnQgZGVzaXJlZEZsYWdzKQpAQCAtNzgzLDggKzc3OSwzMCBAQAogICAgICAgICBnYy0+
cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBiYXJSZWN0LCB2YWx1ZVJlY3QsIGRldGVybWlu
YXRlLCBhbmltYXRlZFNlY29uZHMpOwogfQogCi0jZWxpZiBPUyhMSU5VWCkKKyNlbGlmIE9TKERB
UldJTikKIAordm9pZCBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKKyAgICBH
cmFwaGljc0NvbnRleHQqIGdjLCBUaGVtZVBhaW50U3RhdGUgc3RhdGUsIFRoZW1lUGFpbnRTaXpl
IHNpemUsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFRoZW1lUGFpbnRTY3JvbGxiYXJJbmZv
JiBzY3JvbGxiYXJJbmZvKQoreworICAgIFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJJbmZvIHdl
YlRoZW1lU2Nyb2xsYmFySW5mbzsKKworICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5vcmllbnRh
dGlvbiA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJPcmllbnRhdGlvbj4o
c2Nyb2xsYmFySW5mby5vcmllbnRhdGlvbik7CisgICAgd2ViVGhlbWVTY3JvbGxiYXJJbmZvLnBh
cmVudCA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnQ+KHNjcm9s
bGJhckluZm8ucGFyZW50KTsKKyAgICB3ZWJUaGVtZVNjcm9sbGJhckluZm8ubWF4VmFsdWUgPSBz
Y3JvbGxiYXJJbmZvLm1heFZhbHVlOworICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5jdXJyZW50
VmFsdWUgPSBzY3JvbGxiYXJJbmZvLmN1cnJlbnRWYWx1ZTsKKyAgICB3ZWJUaGVtZVNjcm9sbGJh
ckluZm8udmlzaWJsZVNpemUgPSBzY3JvbGxiYXJJbmZvLnZpc2libGVTaXplOworICAgIHdlYlRo
ZW1lU2Nyb2xsYmFySW5mby50b3RhbFNpemUgPSBzY3JvbGxiYXJJbmZvLnRvdGFsU2l6ZTsKKwor
ICAgIHdlYktpdENsaWVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhclRodW1iKAor
ICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCksCisgICAgICAgIHN0YXRpY19jYXN0PFdlYlRo
ZW1lRW5naW5lOjpTdGF0ZT4oc3RhdGUpLAorICAgICAgICBzdGF0aWNfY2FzdDxXZWJUaGVtZUVu
Z2luZTo6U2l6ZT4oc2l6ZSksCisgICAgICAgIHJlY3QsCisgICAgICAgIHdlYlRoZW1lU2Nyb2xs
YmFySW5mbyk7Cit9CisKKyNlbGlmIE9TKFVOSVgpCisKIHN0YXRpYyBXZWJUaGVtZUVuZ2luZTo6
UGFydCBXZWJUaGVtZVBhcnQoUGxhdGZvcm1CcmlkZ2U6OlRoZW1lUGFydCBwYXJ0KQogewogICAg
IHN3aXRjaCAocGFydCkgewpAQCAtODkxLDI4ICs5MDksNiBAQAogICAgICAgICBnYy0+cGxhdGZv
cm1Db250ZXh0KCktPmNhbnZhcygpLCBXZWJUaGVtZVBhcnQocGFydCksIFdlYlRoZW1lU3RhdGUo
c3RhdGUpLCByZWN0LCAmd2ViVGhlbWVFeHRyYVBhcmFtcyk7CiB9CiAKLSNlbGlmIE9TKERBUldJ
TikKLQotdm9pZCBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKLSAgICBHcmFw
aGljc0NvbnRleHQqIGdjLCBUaGVtZVBhaW50U3RhdGUgc3RhdGUsIFRoZW1lUGFpbnRTaXplIHNp
emUsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFRoZW1lUGFpbnRTY3JvbGxiYXJJbmZvJiBz
Y3JvbGxiYXJJbmZvKQotewotICAgIFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJJbmZvIHdlYlRo
ZW1lU2Nyb2xsYmFySW5mbzsKLQotICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5vcmllbnRhdGlv
biA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJPcmllbnRhdGlvbj4oc2Ny
b2xsYmFySW5mby5vcmllbnRhdGlvbik7Ci0gICAgd2ViVGhlbWVTY3JvbGxiYXJJbmZvLnBhcmVu
dCA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnQ+KHNjcm9sbGJh
ckluZm8ucGFyZW50KTsKLSAgICB3ZWJUaGVtZVNjcm9sbGJhckluZm8ubWF4VmFsdWUgPSBzY3Jv
bGxiYXJJbmZvLm1heFZhbHVlOwotICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5jdXJyZW50VmFs
dWUgPSBzY3JvbGxiYXJJbmZvLmN1cnJlbnRWYWx1ZTsKLSAgICB3ZWJUaGVtZVNjcm9sbGJhcklu
Zm8udmlzaWJsZVNpemUgPSBzY3JvbGxiYXJJbmZvLnZpc2libGVTaXplOwotICAgIHdlYlRoZW1l
U2Nyb2xsYmFySW5mby50b3RhbFNpemUgPSBzY3JvbGxiYXJJbmZvLnRvdGFsU2l6ZTsKLQotICAg
IHdlYktpdENsaWVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhclRodW1iKAotICAg
ICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCksCi0gICAgICAgIHN0YXRpY19jYXN0PFdlYlRoZW1l
RW5naW5lOjpTdGF0ZT4oc3RhdGUpLAotICAgICAgICBzdGF0aWNfY2FzdDxXZWJUaGVtZUVuZ2lu
ZTo6U2l6ZT4oc2l6ZSksCi0gICAgICAgIHJlY3QsCi0gICAgICAgIHdlYlRoZW1lU2Nyb2xsYmFy
SW5mbyk7Ci19Ci0KICNlbmRpZgogCiAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiA4NDY4NSkKKysrIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1
Nyw3IEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogCi0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoVU5JWCkgJiYgIU9TKERB
UldJTikKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAjZW5kaWYKIApAQCAtMzMyLDcgKzMzMiw3IEBA
CiAgICAgICAgIGZsb2F0IHNjYWxlID0gbV9wcmludGVkUGFnZVdpZHRoIC8gcGFnZVJlY3Qud2lk
dGgoKTsKIAogICAgICAgICBjdHguc2F2ZSgpOwotI2lmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNE
KQorI2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pCiAgICAgICAgIGN0eC5zY2FsZShXZWJDb3Jl
OjpGbG9hdFNpemUoc2NhbGUsIHNjYWxlKSk7CiAjZW5kaWYKICAgICAgICAgY3R4LnRyYW5zbGF0
ZShzdGF0aWNfY2FzdDxmbG9hdD4oLXBhZ2VSZWN0LngoKSksCkluZGV4OiBXZWJLaXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NzU0KQorKysg
V2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA0
LTI0ICBSdWJlbiAgPGNocm9taXVtQGh5YnJpZHNvdXJjZS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcGF0Y2ggZm9yIGluY2x1c2l2ZSBVbml4
IHN1cHBvcnQgb24gQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU5Mjk3CisKKyAgICAgICAgKiBjaHJvbWl1bS9zcmMvUGxhdGZvcm1Ccmlk
Z2UuY3BwOgorICAgICAgICAqIGNocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAqIGNocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHA6CisKIDIwMTEtMDQtMTggIFRpbW90aHkg
SGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdXBkYXRlLXdlYmtp
dC1sb2NhbGl6YWJsZS1zdHJpbmdzIHB1dCBXZWJLaXQvd2luIHN0cmluZ3MgaW4gV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDg0Njg1KQorKysgV2ViQ29yZS9kb20v
U2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICNpZiBQ
TEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKICNkZWZp
bmUgQVJST1dfS0VZU19QT1BfTUVOVSAxCiAjZGVmaW5lIFNQQUNFX09SX1JFVFVSTl9QT1BfTUVO
VSAwCi0jZWxpZiBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgKE9TKExJ
TlVYKSB8fCBPUyhGUkVFQlNEKSkpCisjZWxpZiBQTEFURk9STShHVEspIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoVU5JWCkpCiAjZGVmaW5lIEFSUk9XX0tFWVNfUE9QX01FTlUgMAogI2Rl
ZmluZSBTUEFDRV9PUl9SRVRVUk5fUE9QX01FTlUgMQogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDc1NCkK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTEtMDQtMjQgIFJ1YmVuICA8Y2hyb21pdW1AaHlicmlkc291cmNlLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBwYXRjaCBmb3IgaW5jbHVzaXZl
IFVuaXggc3VwcG9ydCBvbiBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkyOTcKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RD
dXN0b20uY3BwOgorICAgICAgICAqIGRvbS9TZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHA6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAqIHBhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1CcmlkZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKwogMjAxMS0wNC0yMyAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggV2luZG93cyBidWls
ZCwgd2hpY2ggY29tcGxhaW5zIGFib3V0IHVucmVhY2hhYmxlIGNvZGUuCkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1NCw3ICsyMDU0LDcgQEAKICAgICByZXR1cm4gc3dh
bGxvd0V2ZW50OwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIShQTEFURk9STShDSFJPTUlV
TSkgJiYgKE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYg
IShQTEFURk9STShDSFJPTUlVTSkgJiYgKE9TKFVOSVgpICYmICFPUyhEQVJXSU4pKSkKIGJvb2wg
RXZlbnRIYW5kbGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0
IEhpdFRlc3RSZXN1bHQmKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYkNv
cmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAkocmV2aXNpb24g
ODQ2ODUpCisrKyBXZWJDb3JlL3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAKICNlbmRpZgogfQogCi0jaWYgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikKIC8vIEdU
SysgbXVzdCBzY3JvbGwgaG9yaXpvbnRhbGx5IGlmIHRoZSBtb3VzZSBwb2ludGVyIGlzIG9uIHRv
cCBvZiB0aGUKIC8vIGhvcml6b250YWwgc2Nyb2xsYmFyIHdoaWxlIHNjcm9sbGluZyB3aXRoIHRo
ZSB3aGVlbC4KIC8vIFRoaXMgY29kZSBjb21lcyBmcm9tIGd0ay9FdmVudEhhbmRsZXJHdGsuY3Bw
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1E
YXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDg0Njg1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDcgQEAKIAogI2lmIE9TKFdJTkRPV1MpCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0
YUNocm9taXVtV2luLmgiCi0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkKKyNlbGlmIE9T
KFVOSVgpICYmICFPUyhEQVJXSU4pCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YUxpbnV4Lmgi
CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJCYXNlNjQuaCIKICNp
bmNsdWRlICJPcGVuVHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgi
Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgUExBVEZPUk0oQlJFV01QKQorI2Vs
aWYgT1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogI2luY2x1ZGUgIlNrU3RyZWFtLmgiCiAj
ZW5kaWYKIApAQCAtNDgsNyArNDgsNyBAQAogCiAjaWYgT1MoV0lORE9XUykKICNpbmNsdWRlIDxv
YmpiYXNlLmg+Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgUExBVEZPUk0oQlJF
V01QKQorI2VsaWYgT1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogI2luY2x1ZGUgPGNzdHJp
bmc+CiAjZW5kaWYKIApAQCAtNTksNyArNTksNyBAQAogI2lmIE9TKFdJTkRPV1MpCiAgICAgaWYg
KG1fZm9udFJlZmVyZW5jZSkKICAgICAgICAgUmVtb3ZlRm9udE1lbVJlc291cmNlRXgobV9mb250
UmVmZXJlbmNlKTsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBQTEFURk9STShC
UkVXTVApCisjZWxpZiBPUyhVTklYKSB8fCBQTEFURk9STShCUkVXTVApCiAgICAgaWYgKG1fZm9u
dFJlZmVyZW5jZSkKICAgICAgICAgbV9mb250UmVmZXJlbmNlLT51bnJlZigpOwogI2VuZGlmCkBA
IC0xMDEsNyArMTAxLDcgQEAKIAogICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0
KCZsb2dGb250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc2l6ZSk7Ci0j
ZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgUExBVEZPUk0oQlJFV01QKQorI2VsaWYg
T1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2Up
OwogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9udFJlZmVyZW5jZSwgIiIsIHNpemUs
IGJvbGQgJiYgIW1fZm9udFJlZmVyZW5jZS0+aXNCb2xkKCksIGl0YWxpYyAmJiAhbV9mb250UmVm
ZXJlbmNlLT5pc0l0YWxpYygpLCBvcmllbnRhdGlvbiwgdGV4dE9yaWVudGF0aW9uKTsKICNlbHNl
CkBAIC0xMjQsNyArMTI0LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgT1MoTElOVVgpIHx8IE9TKEZS
RUVCU0QpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNpZiBPUyhVTklYKSB8fCBQTEFURk9STShCUkVX
TVApCiBjbGFzcyBSZW1vdGVGb250U3RyZWFtIDogcHVibGljIFNrU3RyZWFtIHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBSZW1vdGVGb250U3RyZWFtKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBi
dWZmZXIpCkBAIC0xODcsNyArMTg3LDcgQEAKICAgICBpZiAoIWZvbnRSZWZlcmVuY2UpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIHJldHVybiBuZXcgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShmb250
UmVmZXJlbmNlLCBmb250TmFtZSk7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
UExBVEZPUk0oQlJFV01QKQorI2VsaWYgT1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogICAg
IFJlbW90ZUZvbnRTdHJlYW0qIHN0cmVhbSA9IG5ldyBSZW1vdGVGb250U3RyZWFtKGJ1ZmZlcik7
CiAgICAgU2tUeXBlZmFjZSogdHlwZWZhY2UgPSBTa1R5cGVmYWNlOjpDcmVhdGVGcm9tU3RyZWFt
KHN0cmVhbSk7CiAgICAgaWYgKCF0eXBlZmFjZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNp
b24gODQ2ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBACiAjaWYgT1MoV0lO
RE9XUykKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
LSNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBQTEFURk9STShCUkVXTVApCisjZWxp
ZiBPUyhVTklYKSB8fCBQTEFURk9STShCUkVXTVApCiAjaW5jbHVkZSAiU2tUeXBlZmFjZS5oIgog
I2VuZGlmCiAKQEAgLTU5LDcgKzU5LDcgQEAKICAgICAgICAgOiBtX2ZvbnRSZWZlcmVuY2UoZm9u
dFJlZmVyZW5jZSkKICAgICAgICAgLCBtX25hbWUobmFtZSkKICAgICB7fQotI2VsaWYgT1MoTElO
VVgpIHx8IE9TKEZSRUVCU0QpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNlbGlmIE9TKFVOSVgpIHx8
IFBMQVRGT1JNKEJSRVdNUCkKICAgICBleHBsaWNpdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNr
VHlwZWZhY2UqIHR5cGVmYWNlKQogICAgICAgICA6IG1fZm9udFJlZmVyZW5jZSh0eXBlZmFjZSkK
ICAgICB7fQpAQCAtNzUsNyArNzUsNyBAQAogI2lmIE9TKFdJTkRPV1MpCiAgICAgSEFORExFIG1f
Zm9udFJlZmVyZW5jZTsKICAgICBTdHJpbmcgbV9uYW1lOwotI2VsaWYgT1MoTElOVVgpIHx8IE9T
KEZSRUVCU0QpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNlbGlmIE9TKFVOSVgpIHx8IFBMQVRGT1JN
KEJSRVdNUCkKICAgICBTa1R5cGVmYWNlKiBtX2ZvbnRSZWZlcmVuY2U7CiAjZW5kaWYKIH07Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtQnJpZGdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUJyaWRnZS5oCShyZXZpc2lv
biA4NDY4NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1CcmlkZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ5LDEzICsxNDksMTIgQEAKICNpZiBPUyhXSU5ET1dTKQogICAg
IHN0YXRpYyBib29sIGVuc3VyZUZvbnRMb2FkZWQoSEZPTlQpOwogI2VuZGlmCi0jaWYgT1MoTElO
VVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoREFSV0lOKQorICAgIHN0YXRpYyBib29sIGxvYWRG
b250KE5TRm9udCogc3JjRm9udCwgQVRTRm9udENvbnRhaW5lclJlZiogb3V0KTsKKyNlbGlmIE9T
KFVOSVgpCiAgICAgc3RhdGljIHZvaWQgZ2V0UmVuZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hh
ciogZmFtaWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBGb250UmVuZGVyU3R5bGUqIHJlc3VsdCk7CiAg
ICAgc3RhdGljIFN0cmluZyBnZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhcios
IHNpemVfdCBudW1DaGFyYWN0ZXJzLCBjb25zdCBjaGFyKiBwcmVmZXJyZWRMb2NhbGUpOwogI2Vu
ZGlmCi0jaWYgT1MoREFSV0lOKQotICAgIHN0YXRpYyBib29sIGxvYWRGb250KE5TRm9udCogc3Jj
Rm9udCwgQVRTRm9udENvbnRhaW5lclJlZiogb3V0KTsKLSNlbmRpZgogCiAgICAgLy8gRm9ybXMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgICBzdGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKGNvbnN0IERvY3Vt
ZW50Kik7CkBAIC0yNjYsNyArMjY1LDQwIEBACiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGlu
dCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBwYWludFByb2dyZXNzQmFyKAogICAgICAgICBHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JiBiYXJSZWN0LCBjb25zdCBJbnRSZWN0JiB2YWx1ZVJlY3QsIGJvb2wg
ZGV0ZXJtaW5hdGUsIGRvdWJsZSBhbmltYXRlZFNlY29uZHMpOwotI2VsaWYgT1MoTElOVVgpCisj
ZWxpZiBPUyhEQVJXSU4pCisgICAgZW51bSBUaGVtZVBhaW50U3RhdGUgeworICAgICAgICBTdGF0
ZURpc2FibGVkLAorICAgICAgICBTdGF0ZUluYWN0aXZlLAorICAgICAgICBTdGF0ZUFjdGl2ZSwK
KyAgICAgICAgU3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICBlbnVtIFRoZW1lUGFpbnRTaXpl
IHsKKyAgICAgICAgU2l6ZVJlZ3VsYXIsCisgICAgICAgIFNpemVTbWFsbCwKKyAgICB9OworCisg
ICAgZW51bSBUaGVtZVBhaW50U2Nyb2xsYmFyT3JpZW50YXRpb24geworICAgICAgICBTY3JvbGxi
YXJPcmllbnRhdGlvbkhvcml6b250YWwsCisgICAgICAgIFNjcm9sbGJhck9yaWVudGF0aW9uVmVy
dGljYWwsCisgICAgfTsKKworICAgIGVudW0gVGhlbWVQYWludFNjcm9sbGJhclBhcmVudCB7Cisg
ICAgICAgIFNjcm9sbGJhclBhcmVudFNjcm9sbFZpZXcsCisgICAgICAgIFNjcm9sbGJhclBhcmVu
dFJlbmRlckxheWVyLAorICAgIH07CisKKyAgICBzdHJ1Y3QgVGhlbWVQYWludFNjcm9sbGJhcklu
Zm8geworICAgICAgICBUaGVtZVBhaW50U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb247
CisgICAgICAgIFRoZW1lUGFpbnRTY3JvbGxiYXJQYXJlbnQgcGFyZW50OworICAgICAgICBpbnQg
bWF4VmFsdWU7CisgICAgICAgIGludCBjdXJyZW50VmFsdWU7CisgICAgICAgIGludCB2aXNpYmxl
U2l6ZTsKKyAgICAgICAgaW50IHRvdGFsU2l6ZTsKKyAgICB9OworCisgICAgc3RhdGljIHZvaWQg
cGFpbnRTY3JvbGxiYXJUaHVtYihHcmFwaGljc0NvbnRleHQqLCBUaGVtZVBhaW50U3RhdGUsIFRo
ZW1lUGFpbnRTaXplLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgVGhlbWVQYWludFNjcm9sbGJhcklu
Zm8mKTsKKyNlbGlmIE9TKFVOSVgpCiAgICAgLy8gVGhlIFVJIHBhcnQgd2hpY2ggaXMgYmVpbmcg
YWNjZXNzZWQuCiAgICAgZW51bSBUaGVtZVBhcnQgewogICAgICAgICAvLyBTY3JvbGxiYXJUaGVt
ZSBwYXJ0cwpAQCAtMzYzLDM5ICszOTUsNiBAQAogICAgIHN0YXRpYyBJbnRTaXplIGdldFRoZW1l
UGFydFNpemUoVGhlbWVQYXJ0KTsKICAgICAvLyBQYWludCB0aGUgZ2l2ZW4gdGhlIGdpdmVuIHRo
ZW1lIHBhcnQuCiAgICAgc3RhdGljIHZvaWQgcGFpbnRUaGVtZVBhcnQoR3JhcGhpY3NDb250ZXh0
KiwgVGhlbWVQYXJ0LCBUaGVtZVBhaW50U3RhdGUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBUaGVt
ZVBhaW50RXh0cmFQYXJhbXMqKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICBlbnVtIFRoZW1lUGFp
bnRTdGF0ZSB7Ci0gICAgICAgIFN0YXRlRGlzYWJsZWQsCi0gICAgICAgIFN0YXRlSW5hY3RpdmUs
Ci0gICAgICAgIFN0YXRlQWN0aXZlLAotICAgICAgICBTdGF0ZVByZXNzZWQsCi0gICAgfTsKLQot
ICAgIGVudW0gVGhlbWVQYWludFNpemUgewotICAgICAgICBTaXplUmVndWxhciwKLSAgICAgICAg
U2l6ZVNtYWxsLAotICAgIH07Ci0KLSAgICBlbnVtIFRoZW1lUGFpbnRTY3JvbGxiYXJPcmllbnRh
dGlvbiB7Ci0gICAgICAgIFNjcm9sbGJhck9yaWVudGF0aW9uSG9yaXpvbnRhbCwKLSAgICAgICAg
U2Nyb2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwKLSAgICB9OwotCi0gICAgZW51bSBUaGVtZVBh
aW50U2Nyb2xsYmFyUGFyZW50IHsKLSAgICAgICAgU2Nyb2xsYmFyUGFyZW50U2Nyb2xsVmlldywK
LSAgICAgICAgU2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXIsCi0gICAgfTsKLQotICAgIHN0cnVj
dCBUaGVtZVBhaW50U2Nyb2xsYmFySW5mbyB7Ci0gICAgICAgIFRoZW1lUGFpbnRTY3JvbGxiYXJP
cmllbnRhdGlvbiBvcmllbnRhdGlvbjsKLSAgICAgICAgVGhlbWVQYWludFNjcm9sbGJhclBhcmVu
dCBwYXJlbnQ7Ci0gICAgICAgIGludCBtYXhWYWx1ZTsKLSAgICAgICAgaW50IGN1cnJlbnRWYWx1
ZTsKLSAgICAgICAgaW50IHZpc2libGVTaXplOwotICAgICAgICBpbnQgdG90YWxTaXplOwotICAg
IH07Ci0KLSAgICBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhclRodW1iKEdyYXBoaWNzQ29udGV4
dCosIFRoZW1lUGFpbnRTdGF0ZSwgVGhlbWVQYWludFNpemUsIGNvbnN0IEludFJlY3QmLCBjb25z
dCBUaGVtZVBhaW50U2Nyb2xsYmFySW5mbyYpOwogI2VuZGlmCiAKICAgICAvLyBUcmFjZSBFdmVu
dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotI2lmIChQTEFURk9STShDSFJPTUlVTSkgJiYgKE9T
KExJTlVYKSB8fCBPUyhGUkVFQlNEKSkpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiAoUExBVEZPUk0o
Q0hST01JVU0pICYmIChPUyhVTklYKSAmJiAhT1MoREFSV0lOKSkpIHx8IFBMQVRGT1JNKEdUSykK
IC8vIFRoZSBwb3NpdGlvbiBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iIGFmZmVjdHMgdGhlIGFwcGVh
cmFuY2Ugb2YgdGhlIHN0ZXBwZXJzLCBzbwogLy8gd2hlbiB0aGUgdGh1bWIgbW92ZXMsIHdlIGhh
dmUgdG8gaW52YWxpZGF0ZSB0aGVtIGZvciBwYWludGluZy4KICNkZWZpbmUgVEhVTUJfUE9TSVRJ
T05fQUZGRUNUU19CVVRUT05TCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9y
RnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjAsNiArNjAsMTAgQEAKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgcGxhdGZvcm0sICgibGludXgiKSk7CiAjZWxpZiBPUyhGUkVFQlNEKQogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKCJmcmVlYnNkIikp
OworI2VsaWYgT1MoT1BFTkJTRCkKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgcGxhdGZvcm0sICgib3BlbmJzZCIpKTsKKyNlbGlmIE9TKFNPTEFSSVMpCisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoInNvbGFyaXMiKSk7CiAjZWxz
ZQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKCJ1bmtu
b3duIikpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3Bl
Y3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCShyZXZpc2lvbiA4
NDY4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsMTAgQEAKICAgICByZXR1
cm4gdjhTdHJpbmcoImxpbnV4Iik7CiAjZWxpZiBkZWZpbmVkKE9TX0ZSRUVCU0QpCiAgICAgcmV0
dXJuIHY4U3RyaW5nKCJmcmVlYnNkIik7CisjZWxpZiBkZWZpbmVkKE9TX09QRU5CU0QpCisgICAg
cmV0dXJuIHY4U3RyaW5nKCJvcGVuYnNkIik7CisjZWxpZiBkZWZpbmVkKE9TX1NPTEFSSVMpCisg
ICAgcmV0dXJuIHY4U3RyaW5nKCJzb2xhcmlzIik7CiAjZWxpZiBkZWZpbmVkKE9TX1dJTikKICAg
ICByZXR1cm4gdjhTdHJpbmcoIndpbmRvd3MiKTsKICNlbHNlCkluZGV4OiBXZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRGb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1
ZGUgIkNhY2hlZEZvbnQuaCIKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBhIGJs
YWNrbGlzdCBpbnN0ZWFkIG9mIGEgd2hpdGVsaXN0Ci0jaWYgVVNFKENHKSB8fCBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIChPUyhXSU5ET1dT
KSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgVVNFKFNLSUFfTUFDX09OX0NIUk9NRSkp
KSB8fCBQTEFURk9STShIQUlLVSkgfHwgT1MoV0lOQ0UpIHx8IFBMQVRGT1JNKEFORFJPSUQpIHx8
IFBMQVRGT1JNKEJSRVdNUCkKKyNpZiBVU0UoQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9S
TShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgKCFPUyhEQVJXSU4pIHx8IFVTRShTS0lB
X01BQ19PTl9DSFJPTUUpKSkgfHwgUExBVEZPUk0oSEFJS1UpIHx8IE9TKFdJTkNFKSB8fCBQTEFU
Rk9STShBTkRST0lEKSB8fCBQTEFURk9STShCUkVXTVApCiAjZGVmaW5lIFNUT1JFX0ZPTlRfQ1VT
VE9NX1BMQVRGT1JNX0RBVEEKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="83645"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91035</attachid>
            <date>2011-04-25 17:51:58 -0700</date>
            <delta_ts>2011-04-26 10:00:58 -0700</delta_ts>
            <desc>updated Changelog</desc>
            <filename>webkit-unix.patch</filename>
            <type>text/plain</type>
            <size>21529</size>
            <attacher>chromium</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA4NDY4NSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzQsNyArMTM0LDcgQEAKICNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hy
b21pdW1XaW4uaCIKICNlbHNlCi0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1Mo
VU5JWCkgJiYgIU9TKERBUldJTikKICNpbmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtTGludXgu
aCIKICNlbmRpZgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBAIC00ODIsNyArNDgyLDcgQEAK
ICAgICAgICAgfHwgKGV2ZW50LmJ1dHRvbiA9PSBXZWJNb3VzZUV2ZW50OjpCdXR0b25MZWZ0CiAg
ICAgICAgICAgICAmJiBldmVudC5tb2RpZmllcnMgJiBXZWJNb3VzZUV2ZW50OjpDb250cm9sS2V5
KSkKICAgICAgICAgbW91c2VDb250ZXh0TWVudShldmVudCk7Ci0jZWxpZiBPUyhMSU5VWCkgfHwg
T1MoRlJFRUJTRCkKKyNlbGlmIE9TKFVOSVgpCiAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PSBXZWJN
b3VzZUV2ZW50OjpCdXR0b25SaWdodCkKICAgICAgICAgbW91c2VDb250ZXh0TWVudShldmVudCk7
CiAjZW5kaWYKQEAgLTUyMSw3ICs1MjEsNyBAQAogICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8
ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBP
UyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkKKyNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKQogICAg
IC8vIElmIHRoZSBldmVudCB3YXMgYSBtaWRkbGUgY2xpY2ssIGF0dGVtcHQgdG8gY29weSB0ZXh0
IGludG8gdGhlIGZvY3VzZWQKICAgICAvLyBmcmFtZS4gV2UgZXhlY3V0ZSB0aGlzIGJlZm9yZSB3
ZSBsZXQgdGhlIHBhZ2UgaGF2ZSBhIGdvIGF0IHRoZSBldmVudAogICAgIC8vIGJlY2F1c2UgdGhl
IHBhZ2UgbWF5IGNoYW5nZSB3aGF0IGlzIGZvY3VzZWQgZHVyaW5nIGluIGl0cyBldmVudCBoYW5k
bGVyLgpAQCAtNjA1LDExICs2MDUsMTEgQEAKICAgICBpZiAoIWhhbmRsZXIpCiAgICAgICAgIHJl
dHVybiBrZXlFdmVudERlZmF1bHQoZXZlbnQpOwogCi0jaWYgT1MoV0lORE9XUykgfHwgT1MoTElO
VVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgIU9TKERBUldJTikKICAgICBjb25zdCBXZWJJbnB1dEV2
ZW50OjpUeXBlIGNvbnRleHRNZW51VHJpZ2dlcmluZ0V2ZW50VHlwZSA9CiAjaWYgT1MoV0lORE9X
UykKICAgICAgICAgV2ViSW5wdXRFdmVudDo6S2V5VXA7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1Mo
RlJFRUJTRCkKKyNlbGlmIE9TKFVOSVgpCiAgICAgICAgIFdlYklucHV0RXZlbnQ6OlJhd0tleURv
d247CiAjZW5kaWYKIApAQCAtNjE5LDcgKzYxOSw3IEBACiAgICAgICAgIHNlbmRDb250ZXh0TWVu
dUV2ZW50KGV2ZW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmIC8vIE9T
KFdJTkRPV1MpIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKQorI2VuZGlmIC8vICFPUyhEQVJX
SU4pCiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyIGV2dChldmVudCk7CiAKQEAg
LTc0OCw3ICs3NDgsNyBAQAogfQogI2VuZGlmCiAKLSNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5V
WCkgfHwgT1MoRlJFRUJTRCkKKyNpZiAhT1MoREFSV0lOKQogLy8gTWFjIGhhcyBubyB3YXkgdG8g
b3BlbiBhIGNvbnRleHQgbWVudSBiYXNlZCBvbiBhIGtleWJvYXJkIGV2ZW50LgogYm9vbCBXZWJW
aWV3SW1wbDo6c2VuZENvbnRleHRNZW51RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZl
bnQpCiB7CkBAIC0yMDk1LDcgKzIwOTUsNyBAQAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2Nyb2xs
YmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgewotI2lmIE9TKExJTlVYKSB8
fCBPUyhGUkVFQlNEKQorI2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pCiAgICAgUGxhdGZvcm1U
aGVtZUNocm9taXVtR3RrOjpzZXRTY3JvbGxiYXJDb2xvcnMoaW5hY3RpdmVDb2xvciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0Nv
bG9yKTsKQEAgLTIxMDYsNyArMjEwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgYWN0aXZlRm9yZWdyb3VuZENvbG9yLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlQmFja2dyb3VuZENvbG9yLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlRm9y
ZWdyb3VuZENvbG9yKSB7Ci0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoVU5J
WCkgJiYgIU9TKERBUldJTikKICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNlbGVj
dGlvbkNvbG9ycyhhY3RpdmVCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRm9yZWdyb3VuZENvbG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYWN0aXZlQmFja2dy
b3VuZENvbG9yLApAQCAtMjE4MiwxMCArMjE4MiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWx0LCBib29sIG1ldGEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViTmF2aWdhdGlvblBv
bGljeSogcG9saWN5KQogewotI2lmIE9TKFdJTkRPV1MpIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVF
QlNEKSB8fCBPUyhTT0xBUklTKQorI2lmIE9TKERBUldJTikKKyAgICBjb25zdCBib29sIG5ld1Rh
Yk1vZGlmaWVyID0gKGJ1dHRvbiA9PSAxKSB8fCBtZXRhOworI2Vsc2UKICAgICBjb25zdCBib29s
IG5ld1RhYk1vZGlmaWVyID0gKGJ1dHRvbiA9PSAxKSB8fCBjdHJsOwotI2VsaWYgT1MoREFSV0lO
KQotICAgIGNvbnN0IGJvb2wgbmV3VGFiTW9kaWZpZXIgPSAoYnV0dG9uID09IDEpIHx8IG1ldGE7
CiAjZW5kaWYKICAgICBpZiAoIW5ld1RhYk1vZGlmaWVyICYmICFzaGlmdCAmJiAhYWx0KQogICAg
ICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRnZS5j
cHAJKHJldmlzaW9uIDg0Njg1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDE2ICs3MCwxNCBAQAogI2luY2x1ZGUgIndpbi9X
ZWJUaGVtZUVuZ2luZS5oIgogI2VuZGlmCiAKLSNpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkK
KyNpZiBPUyhEQVJXSU4pCisjaW5jbHVkZSAibWFjL1dlYlRoZW1lRW5naW5lLmgiCisjZWxpZiBP
UyhVTklYKQogI2luY2x1ZGUgImxpbnV4L1dlYlRoZW1lRW5naW5lLmgiCiAjaW5jbHVkZSAiV2Vi
Rm9udEluZm8uaCIKICNpbmNsdWRlICJXZWJGb250UmVuZGVyU3R5bGUuaCIKICNlbmRpZgogCi0j
aWYgT1MoREFSV0lOKQotI2luY2x1ZGUgIm1hYy9XZWJUaGVtZUVuZ2luZS5oIgotI2VuZGlmCi0K
ICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2Vu
ZGlmCkBAIC00NDIsNyArNDQwLDIxIEBACiB9CiAjZW5kaWYKIAotI2lmIE9TKExJTlVYKSB8fCBP
UyhGUkVFQlNEKQorI2lmIE9TKERBUldJTikKK2Jvb2wgUGxhdGZvcm1CcmlkZ2U6OmxvYWRGb250
KE5TRm9udCogc3JjRm9udCwgQVRTRm9udENvbnRhaW5lclJlZiogb3V0KQoreworICAgIFdlYlNh
bmRib3hTdXBwb3J0KiBzcyA9IHdlYktpdENsaWVudCgpLT5zYW5kYm94U3VwcG9ydCgpOworICAg
IGlmIChzcykKKyAgICAgICAgcmV0dXJuIHNzLT5sb2FkRm9udChzcmNGb250LCBvdXQpOworCisg
ICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8g
YW4gZXJyb3IgbG9hZGluZyBhCisgICAgLy8gZm9udCBkdWUgdG8gYmVpbmcgYmxvY2tlZCBieSB0
aGUgc2FuZGJveC4KKyAgICAvLyBUaGlzIGJ5IGRlZmluaXRpb24gc2hvdWxkbid0IGhhcHBlbiBp
ZiB0aGVyZSBpcyBubyBzYW5kYm94IHN1cHBvcnQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgKm91dCA9IDA7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VsaWYgT1MoVU5JWCkKIFN0
cmluZyBQbGF0Zm9ybUJyaWRnZTo6Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHNpemVfdCBudW1DaGFyYWN0ZXJzLCBjb25zdCBjaGFyKiBwcmVmZXJy
ZWRMb2NhbGUpCiB7CiAgICAgaWYgKHdlYktpdENsaWVudCgpLT5zYW5kYm94U3VwcG9ydCgpKQpA
QCAtNDY4LDIyICs0ODAsNiBAQAogfQogI2VuZGlmCiAKLSNpZiBPUyhEQVJXSU4pCi1ib29sIFBs
YXRmb3JtQnJpZGdlOjpsb2FkRm9udChOU0ZvbnQqIHNyY0ZvbnQsIEFUU0ZvbnRDb250YWluZXJS
ZWYqIG91dCkKLXsKLSAgICBXZWJTYW5kYm94U3VwcG9ydCogc3MgPSB3ZWJLaXRDbGllbnQoKS0+
c2FuZGJveFN1cHBvcnQoKTsKLSAgICBpZiAoc3MpCi0gICAgICAgIHJldHVybiBzcy0+bG9hZEZv
bnQoc3JjRm9udCwgb3V0KTsKLQotICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUg
Y2FsbGVkIGluIHJlc3BvbnNlIHRvIGFuIGVycm9yIGxvYWRpbmcgYQotICAgIC8vIGZvbnQgZHVl
IHRvIGJlaW5nIGJsb2NrZWQgYnkgdGhlIHNhbmRib3guCi0gICAgLy8gVGhpcyBieSBkZWZpbml0
aW9uIHNob3VsZG4ndCBoYXBwZW4gaWYgdGhlcmUgaXMgbm8gc2FuZGJveCBzdXBwb3J0LgotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICpvdXQgPSAwOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLSNlbmRpZgotCiAvLyBEYXRhYmFzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBsYXRmb3JtRmlsZUhhbmRs
ZSBQbGF0Zm9ybUJyaWRnZTo6ZGF0YWJhc2VPcGVuRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVO
YW1lLCBpbnQgZGVzaXJlZEZsYWdzKQpAQCAtNzgzLDggKzc3OSwzMCBAQAogICAgICAgICBnYy0+
cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBiYXJSZWN0LCB2YWx1ZVJlY3QsIGRldGVybWlu
YXRlLCBhbmltYXRlZFNlY29uZHMpOwogfQogCi0jZWxpZiBPUyhMSU5VWCkKKyNlbGlmIE9TKERB
UldJTikKIAordm9pZCBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKKyAgICBH
cmFwaGljc0NvbnRleHQqIGdjLCBUaGVtZVBhaW50U3RhdGUgc3RhdGUsIFRoZW1lUGFpbnRTaXpl
IHNpemUsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFRoZW1lUGFpbnRTY3JvbGxiYXJJbmZv
JiBzY3JvbGxiYXJJbmZvKQoreworICAgIFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJJbmZvIHdl
YlRoZW1lU2Nyb2xsYmFySW5mbzsKKworICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5vcmllbnRh
dGlvbiA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJPcmllbnRhdGlvbj4o
c2Nyb2xsYmFySW5mby5vcmllbnRhdGlvbik7CisgICAgd2ViVGhlbWVTY3JvbGxiYXJJbmZvLnBh
cmVudCA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnQ+KHNjcm9s
bGJhckluZm8ucGFyZW50KTsKKyAgICB3ZWJUaGVtZVNjcm9sbGJhckluZm8ubWF4VmFsdWUgPSBz
Y3JvbGxiYXJJbmZvLm1heFZhbHVlOworICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5jdXJyZW50
VmFsdWUgPSBzY3JvbGxiYXJJbmZvLmN1cnJlbnRWYWx1ZTsKKyAgICB3ZWJUaGVtZVNjcm9sbGJh
ckluZm8udmlzaWJsZVNpemUgPSBzY3JvbGxiYXJJbmZvLnZpc2libGVTaXplOworICAgIHdlYlRo
ZW1lU2Nyb2xsYmFySW5mby50b3RhbFNpemUgPSBzY3JvbGxiYXJJbmZvLnRvdGFsU2l6ZTsKKwor
ICAgIHdlYktpdENsaWVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhclRodW1iKAor
ICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCksCisgICAgICAgIHN0YXRpY19jYXN0PFdlYlRo
ZW1lRW5naW5lOjpTdGF0ZT4oc3RhdGUpLAorICAgICAgICBzdGF0aWNfY2FzdDxXZWJUaGVtZUVu
Z2luZTo6U2l6ZT4oc2l6ZSksCisgICAgICAgIHJlY3QsCisgICAgICAgIHdlYlRoZW1lU2Nyb2xs
YmFySW5mbyk7Cit9CisKKyNlbGlmIE9TKFVOSVgpCisKIHN0YXRpYyBXZWJUaGVtZUVuZ2luZTo6
UGFydCBXZWJUaGVtZVBhcnQoUGxhdGZvcm1CcmlkZ2U6OlRoZW1lUGFydCBwYXJ0KQogewogICAg
IHN3aXRjaCAocGFydCkgewpAQCAtODkxLDI4ICs5MDksNiBAQAogICAgICAgICBnYy0+cGxhdGZv
cm1Db250ZXh0KCktPmNhbnZhcygpLCBXZWJUaGVtZVBhcnQocGFydCksIFdlYlRoZW1lU3RhdGUo
c3RhdGUpLCByZWN0LCAmd2ViVGhlbWVFeHRyYVBhcmFtcyk7CiB9CiAKLSNlbGlmIE9TKERBUldJ
TikKLQotdm9pZCBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKLSAgICBHcmFw
aGljc0NvbnRleHQqIGdjLCBUaGVtZVBhaW50U3RhdGUgc3RhdGUsIFRoZW1lUGFpbnRTaXplIHNp
emUsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFRoZW1lUGFpbnRTY3JvbGxiYXJJbmZvJiBz
Y3JvbGxiYXJJbmZvKQotewotICAgIFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJJbmZvIHdlYlRo
ZW1lU2Nyb2xsYmFySW5mbzsKLQotICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5vcmllbnRhdGlv
biA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJPcmllbnRhdGlvbj4oc2Ny
b2xsYmFySW5mby5vcmllbnRhdGlvbik7Ci0gICAgd2ViVGhlbWVTY3JvbGxiYXJJbmZvLnBhcmVu
dCA9IHN0YXRpY19jYXN0PFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnQ+KHNjcm9sbGJh
ckluZm8ucGFyZW50KTsKLSAgICB3ZWJUaGVtZVNjcm9sbGJhckluZm8ubWF4VmFsdWUgPSBzY3Jv
bGxiYXJJbmZvLm1heFZhbHVlOwotICAgIHdlYlRoZW1lU2Nyb2xsYmFySW5mby5jdXJyZW50VmFs
dWUgPSBzY3JvbGxiYXJJbmZvLmN1cnJlbnRWYWx1ZTsKLSAgICB3ZWJUaGVtZVNjcm9sbGJhcklu
Zm8udmlzaWJsZVNpemUgPSBzY3JvbGxiYXJJbmZvLnZpc2libGVTaXplOwotICAgIHdlYlRoZW1l
U2Nyb2xsYmFySW5mby50b3RhbFNpemUgPSBzY3JvbGxiYXJJbmZvLnRvdGFsU2l6ZTsKLQotICAg
IHdlYktpdENsaWVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhclRodW1iKAotICAg
ICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCksCi0gICAgICAgIHN0YXRpY19jYXN0PFdlYlRoZW1l
RW5naW5lOjpTdGF0ZT4oc3RhdGUpLAotICAgICAgICBzdGF0aWNfY2FzdDxXZWJUaGVtZUVuZ2lu
ZTo6U2l6ZT4oc2l6ZSksCi0gICAgICAgIHJlY3QsCi0gICAgICAgIHdlYlRoZW1lU2Nyb2xsYmFy
SW5mbyk7Ci19Ci0KICNlbmRpZgogCiAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiA4NDY4NSkKKysrIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1
Nyw3IEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogCi0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoVU5JWCkgJiYgIU9TKERB
UldJTikKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAjZW5kaWYKIApAQCAtMzMyLDcgKzMzMiw3IEBA
CiAgICAgICAgIGZsb2F0IHNjYWxlID0gbV9wcmludGVkUGFnZVdpZHRoIC8gcGFnZVJlY3Qud2lk
dGgoKTsKIAogICAgICAgICBjdHguc2F2ZSgpOwotI2lmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNE
KQorI2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pCiAgICAgICAgIGN0eC5zY2FsZShXZWJDb3Jl
OjpGbG9hdFNpemUoc2NhbGUsIHNjYWxlKSk7CiAjZW5kaWYKICAgICAgICAgY3R4LnRyYW5zbGF0
ZShzdGF0aWNfY2FzdDxmbG9hdD4oLXBhZ2VSZWN0LngoKSksCkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg0NzU0KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTA0LTI0ICBSdWJlbiAgPGNocm9taXVtQGh5YnJpZHNv
dXJjZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlIGxpbnV4IGlmZGVmcyBmb3IgQ2hyb21pdW0gdG8gVW5peCBpbnN0ZWFkLCBhbGxv
d2luZworICAgICAgICBuZXcgVW5peCBwb3J0cyB0byBiZSBlbmFibGVkIGJ5IGRlZmF1bHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5Mjk3CisKKyAg
ICAgICAgKiBzcmMvUGxhdGZvcm1CcmlkZ2UuY3BwOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUlt
cGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisKIDIwMTEtMDQtMTggIFRp
bW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdXBkYXRl
LXdlYmtpdC1sb2NhbGl6YWJsZS1zdHJpbmdzIHB1dCBXZWJLaXQvd2luIHN0cmluZ3MgaW4gV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDg0Njg1KQorKysgV2ViQ29y
ZS9kb20vU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAK
ICNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
ICNkZWZpbmUgQVJST1dfS0VZU19QT1BfTUVOVSAxCiAjZGVmaW5lIFNQQUNFX09SX1JFVFVSTl9Q
T1BfTUVOVSAwCi0jZWxpZiBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYg
KE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkpCisjZWxpZiBQTEFURk9STShHVEspIHx8IChQTEFU
Rk9STShDSFJPTUlVTSkgJiYgT1MoVU5JWCkpCiAjZGVmaW5lIEFSUk9XX0tFWVNfUE9QX01FTlUg
MAogI2RlZmluZSBTUEFDRV9PUl9SRVRVUk5fUE9QX01FTlUgMQogI2Vsc2UKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4
NDc1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDQtMjQgIFJ1YmVuICA8Y2hyb21pdW1AaHlicmlkc291cmNlLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgbGludXgg
aWZkZWZzIGZvciBDaHJvbWl1bSB0byBVbml4IGluc3RlYWQsIGFsbG93aW5nCisgICAgICAgIG5l
dyBVbml4IHBvcnRzIHRvIGJlIGVuYWJsZWQgYnkgZGVmYXVsdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyOTcKKworICAgICAgICBObyBuZXcgdGVz
dHMuIChPT1BTISkKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwOgorICAgICAgICAqIGRvbS9TZWxlY3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHA6CisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1CcmlkZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKwogMjAxMS0wNC0y
MyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
V2luZG93cyBidWlsZCwgd2hpY2ggY29tcGxhaW5zIGFib3V0IHVucmVhY2hhYmxlIGNvZGUuCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1NCw3ICsyMDU0LDcgQEAKICAg
ICByZXR1cm4gc3dhbGxvd0V2ZW50OwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIShQTEFU
Rk9STShDSFJPTUlVTSkgJiYgKE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkpCisjaWYgIVBMQVRG
T1JNKEdUSykgJiYgIShQTEFURk9STShDSFJPTUlVTSkgJiYgKE9TKFVOSVgpICYmICFPUyhEQVJX
SU4pKSkKIGJvb2wgRXZlbnRIYW5kbGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jp
em9udGFsKGNvbnN0IEhpdFRlc3RSZXN1bHQmKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsK
SW5kZXg6IFdlYkNvcmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNw
cAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3JlL3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVy
Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAKICNlbmRpZgog
fQogCi0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoVU5JWCkgJiYgIU9TKERB
UldJTikKIC8vIEdUSysgbXVzdCBzY3JvbGwgaG9yaXpvbnRhbGx5IGlmIHRoZSBtb3VzZSBwb2lu
dGVyIGlzIG9uIHRvcCBvZiB0aGUKIC8vIGhvcml6b250YWwgc2Nyb2xsYmFyIHdoaWxlIHNjcm9s
bGluZyB3aXRoIHRoZSB3aGVlbC4KIC8vIFRoaXMgY29kZSBjb21lcyBmcm9tIGd0ay9FdmVudEhh
bmRsZXJHdGsuY3BwLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDg0Njg1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lmIE9TKFdJTkRPV1MpCiAjaW5jbHVkZSAiRm9u
dFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmgiCi0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJT
RCkKKyNlbGlmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pCiAjaW5jbHVkZSAiRm9udFBsYXRmb3Jt
RGF0YUxpbnV4LmgiCiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24g
ODQ2ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJC
YXNlNjQuaCIKICNpbmNsdWRlICJPcGVuVHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtQnJpZGdlLmgiCi0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgUExBVEZPUk0o
QlJFV01QKQorI2VsaWYgT1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogI2luY2x1ZGUgIlNr
U3RyZWFtLmgiCiAjZW5kaWYKIApAQCAtNDgsNyArNDgsNyBAQAogCiAjaWYgT1MoV0lORE9XUykK
ICNpbmNsdWRlIDxvYmpiYXNlLmg+Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
UExBVEZPUk0oQlJFV01QKQorI2VsaWYgT1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogI2lu
Y2x1ZGUgPGNzdHJpbmc+CiAjZW5kaWYKIApAQCAtNTksNyArNTksNyBAQAogI2lmIE9TKFdJTkRP
V1MpCiAgICAgaWYgKG1fZm9udFJlZmVyZW5jZSkKICAgICAgICAgUmVtb3ZlRm9udE1lbVJlc291
cmNlRXgobV9mb250UmVmZXJlbmNlKTsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8
fCBQTEFURk9STShCUkVXTVApCisjZWxpZiBPUyhVTklYKSB8fCBQTEFURk9STShCUkVXTVApCiAg
ICAgaWYgKG1fZm9udFJlZmVyZW5jZSkKICAgICAgICAgbV9mb250UmVmZXJlbmNlLT51bnJlZigp
OwogI2VuZGlmCkBAIC0xMDEsNyArMTAxLDcgQEAKIAogICAgIEhGT05UIGhmb250ID0gQ3JlYXRl
Rm9udEluZGlyZWN0KCZsb2dGb250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShoZm9u
dCwgc2l6ZSk7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgUExBVEZPUk0oQlJF
V01QKQorI2VsaWYgT1MoVU5JWCkgfHwgUExBVEZPUk0oQlJFV01QKQogICAgIEFTU0VSVChtX2Zv
bnRSZWZlcmVuY2UpOwogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9udFJlZmVyZW5j
ZSwgIiIsIHNpemUsIGJvbGQgJiYgIW1fZm9udFJlZmVyZW5jZS0+aXNCb2xkKCksIGl0YWxpYyAm
JiAhbV9mb250UmVmZXJlbmNlLT5pc0l0YWxpYygpLCBvcmllbnRhdGlvbiwgdGV4dE9yaWVudGF0
aW9uKTsKICNlbHNlCkBAIC0xMjQsNyArMTI0LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgT1MoTElO
VVgpIHx8IE9TKEZSRUVCU0QpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNpZiBPUyhVTklYKSB8fCBQ
TEFURk9STShCUkVXTVApCiBjbGFzcyBSZW1vdGVGb250U3RyZWFtIDogcHVibGljIFNrU3RyZWFt
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVGb250U3RyZWFtKFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXIpCkBAIC0xODcsNyArMTg3LDcgQEAKICAgICBpZiAoIWZvbnRSZWZl
cmVuY2UpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBuZXcgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShmb250UmVmZXJlbmNlLCBmb250TmFtZSk7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1Mo
RlJFRUJTRCkgfHwgUExBVEZPUk0oQlJFV01QKQorI2VsaWYgT1MoVU5JWCkgfHwgUExBVEZPUk0o
QlJFV01QKQogICAgIFJlbW90ZUZvbnRTdHJlYW0qIHN0cmVhbSA9IG5ldyBSZW1vdGVGb250U3Ry
ZWFtKGJ1ZmZlcik7CiAgICAgU2tUeXBlZmFjZSogdHlwZWZhY2UgPSBTa1R5cGVmYWNlOjpDcmVh
dGVGcm9tU3RyZWFtKHN0cmVhbSk7CiAgICAgaWYgKCF0eXBlZmFjZSkKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBA
CiAjaWYgT1MoV0lORE9XUykKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUg
PHdpbmRvd3MuaD4KLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBQTEFURk9STShC
UkVXTVApCisjZWxpZiBPUyhVTklYKSB8fCBQTEFURk9STShCUkVXTVApCiAjaW5jbHVkZSAiU2tU
eXBlZmFjZS5oIgogI2VuZGlmCiAKQEAgLTU5LDcgKzU5LDcgQEAKICAgICAgICAgOiBtX2ZvbnRS
ZWZlcmVuY2UoZm9udFJlZmVyZW5jZSkKICAgICAgICAgLCBtX25hbWUobmFtZSkKICAgICB7fQot
I2VsaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNlbGlm
IE9TKFVOSVgpIHx8IFBMQVRGT1JNKEJSRVdNUCkKICAgICBleHBsaWNpdCBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNrVHlwZWZhY2UqIHR5cGVmYWNlKQogICAgICAgICA6IG1fZm9udFJlZmVyZW5j
ZSh0eXBlZmFjZSkKICAgICB7fQpAQCAtNzUsNyArNzUsNyBAQAogI2lmIE9TKFdJTkRPV1MpCiAg
ICAgSEFORExFIG1fZm9udFJlZmVyZW5jZTsKICAgICBTdHJpbmcgbV9uYW1lOwotI2VsaWYgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNlbGlmIE9TKFVOSVgp
IHx8IFBMQVRGT1JNKEJSRVdNUCkKICAgICBTa1R5cGVmYWNlKiBtX2ZvbnRSZWZlcmVuY2U7CiAj
ZW5kaWYKIH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtQnJpZGdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUJyaWRn
ZS5oCShyZXZpc2lvbiA4NDY4NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZv
cm1CcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDEzICsxNDksMTIgQEAKICNpZiBPUyhX
SU5ET1dTKQogICAgIHN0YXRpYyBib29sIGVuc3VyZUZvbnRMb2FkZWQoSEZPTlQpOwogI2VuZGlm
Ci0jaWYgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpCisjaWYgT1MoREFSV0lOKQorICAgIHN0YXRp
YyBib29sIGxvYWRGb250KE5TRm9udCogc3JjRm9udCwgQVRTRm9udENvbnRhaW5lclJlZiogb3V0
KTsKKyNlbGlmIE9TKFVOSVgpCiAgICAgc3RhdGljIHZvaWQgZ2V0UmVuZGVyU3R5bGVGb3JTdHJp
a2UoY29uc3QgY2hhciogZmFtaWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBGb250UmVuZGVyU3R5bGUq
IHJlc3VsdCk7CiAgICAgc3RhdGljIFN0cmluZyBnZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhj
b25zdCBVQ2hhciosIHNpemVfdCBudW1DaGFyYWN0ZXJzLCBjb25zdCBjaGFyKiBwcmVmZXJyZWRM
b2NhbGUpOwogI2VuZGlmCi0jaWYgT1MoREFSV0lOKQotICAgIHN0YXRpYyBib29sIGxvYWRGb250
KE5TRm9udCogc3JjRm9udCwgQVRTRm9udENvbnRhaW5lclJlZiogb3V0KTsKLSNlbmRpZgogCiAg
ICAgLy8gRm9ybXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgICBzdGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFuZ2Vk
KGNvbnN0IERvY3VtZW50Kik7CkBAIC0yNjYsNyArMjY1LDQwIEBACiAgICAgICAgIEdyYXBoaWNz
Q29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IElu
dFJlY3QmKTsKICAgICBzdGF0aWMgdm9pZCBwYWludFByb2dyZXNzQmFyKAogICAgICAgICBHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBiYXJSZWN0LCBjb25zdCBJbnRSZWN0JiB2YWx1
ZVJlY3QsIGJvb2wgZGV0ZXJtaW5hdGUsIGRvdWJsZSBhbmltYXRlZFNlY29uZHMpOwotI2VsaWYg
T1MoTElOVVgpCisjZWxpZiBPUyhEQVJXSU4pCisgICAgZW51bSBUaGVtZVBhaW50U3RhdGUgewor
ICAgICAgICBTdGF0ZURpc2FibGVkLAorICAgICAgICBTdGF0ZUluYWN0aXZlLAorICAgICAgICBT
dGF0ZUFjdGl2ZSwKKyAgICAgICAgU3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICBlbnVtIFRo
ZW1lUGFpbnRTaXplIHsKKyAgICAgICAgU2l6ZVJlZ3VsYXIsCisgICAgICAgIFNpemVTbWFsbCwK
KyAgICB9OworCisgICAgZW51bSBUaGVtZVBhaW50U2Nyb2xsYmFyT3JpZW50YXRpb24geworICAg
ICAgICBTY3JvbGxiYXJPcmllbnRhdGlvbkhvcml6b250YWwsCisgICAgICAgIFNjcm9sbGJhck9y
aWVudGF0aW9uVmVydGljYWwsCisgICAgfTsKKworICAgIGVudW0gVGhlbWVQYWludFNjcm9sbGJh
clBhcmVudCB7CisgICAgICAgIFNjcm9sbGJhclBhcmVudFNjcm9sbFZpZXcsCisgICAgICAgIFNj
cm9sbGJhclBhcmVudFJlbmRlckxheWVyLAorICAgIH07CisKKyAgICBzdHJ1Y3QgVGhlbWVQYWlu
dFNjcm9sbGJhckluZm8geworICAgICAgICBUaGVtZVBhaW50U2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb247CisgICAgICAgIFRoZW1lUGFpbnRTY3JvbGxiYXJQYXJlbnQgcGFyZW50Owor
ICAgICAgICBpbnQgbWF4VmFsdWU7CisgICAgICAgIGludCBjdXJyZW50VmFsdWU7CisgICAgICAg
IGludCB2aXNpYmxlU2l6ZTsKKyAgICAgICAgaW50IHRvdGFsU2l6ZTsKKyAgICB9OworCisgICAg
c3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXJUaHVtYihHcmFwaGljc0NvbnRleHQqLCBUaGVtZVBh
aW50U3RhdGUsIFRoZW1lUGFpbnRTaXplLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgVGhlbWVQYWlu
dFNjcm9sbGJhckluZm8mKTsKKyNlbGlmIE9TKFVOSVgpCiAgICAgLy8gVGhlIFVJIHBhcnQgd2hp
Y2ggaXMgYmVpbmcgYWNjZXNzZWQuCiAgICAgZW51bSBUaGVtZVBhcnQgewogICAgICAgICAvLyBT
Y3JvbGxiYXJUaGVtZSBwYXJ0cwpAQCAtMzYzLDM5ICszOTUsNiBAQAogICAgIHN0YXRpYyBJbnRT
aXplIGdldFRoZW1lUGFydFNpemUoVGhlbWVQYXJ0KTsKICAgICAvLyBQYWludCB0aGUgZ2l2ZW4g
dGhlIGdpdmVuIHRoZW1lIHBhcnQuCiAgICAgc3RhdGljIHZvaWQgcGFpbnRUaGVtZVBhcnQoR3Jh
cGhpY3NDb250ZXh0KiwgVGhlbWVQYXJ0LCBUaGVtZVBhaW50U3RhdGUsIGNvbnN0IEludFJlY3Qm
LCBjb25zdCBUaGVtZVBhaW50RXh0cmFQYXJhbXMqKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICBl
bnVtIFRoZW1lUGFpbnRTdGF0ZSB7Ci0gICAgICAgIFN0YXRlRGlzYWJsZWQsCi0gICAgICAgIFN0
YXRlSW5hY3RpdmUsCi0gICAgICAgIFN0YXRlQWN0aXZlLAotICAgICAgICBTdGF0ZVByZXNzZWQs
Ci0gICAgfTsKLQotICAgIGVudW0gVGhlbWVQYWludFNpemUgewotICAgICAgICBTaXplUmVndWxh
ciwKLSAgICAgICAgU2l6ZVNtYWxsLAotICAgIH07Ci0KLSAgICBlbnVtIFRoZW1lUGFpbnRTY3Jv
bGxiYXJPcmllbnRhdGlvbiB7Ci0gICAgICAgIFNjcm9sbGJhck9yaWVudGF0aW9uSG9yaXpvbnRh
bCwKLSAgICAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwKLSAgICB9OwotCi0gICAg
ZW51bSBUaGVtZVBhaW50U2Nyb2xsYmFyUGFyZW50IHsKLSAgICAgICAgU2Nyb2xsYmFyUGFyZW50
U2Nyb2xsVmlldywKLSAgICAgICAgU2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXIsCi0gICAgfTsK
LQotICAgIHN0cnVjdCBUaGVtZVBhaW50U2Nyb2xsYmFySW5mbyB7Ci0gICAgICAgIFRoZW1lUGFp
bnRTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKLSAgICAgICAgVGhlbWVQYWludFNj
cm9sbGJhclBhcmVudCBwYXJlbnQ7Ci0gICAgICAgIGludCBtYXhWYWx1ZTsKLSAgICAgICAgaW50
IGN1cnJlbnRWYWx1ZTsKLSAgICAgICAgaW50IHZpc2libGVTaXplOwotICAgICAgICBpbnQgdG90
YWxTaXplOwotICAgIH07Ci0KLSAgICBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhclRodW1iKEdy
YXBoaWNzQ29udGV4dCosIFRoZW1lUGFpbnRTdGF0ZSwgVGhlbWVQYWludFNpemUsIGNvbnN0IElu
dFJlY3QmLCBjb25zdCBUaGVtZVBhaW50U2Nyb2xsYmFySW5mbyYpOwogI2VuZGlmCiAKICAgICAv
LyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gODQ2ODUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDcgKzQwLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotI2lmIChQTEFURk9STShDSFJP
TUlVTSkgJiYgKE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkpIHx8IFBMQVRGT1JNKEdUSykKKyNp
ZiAoUExBVEZPUk0oQ0hST01JVU0pICYmIChPUyhVTklYKSAmJiAhT1MoREFSV0lOKSkpIHx8IFBM
QVRGT1JNKEdUSykKIC8vIFRoZSBwb3NpdGlvbiBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iIGFmZmVj
dHMgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIHN0ZXBwZXJzLCBzbwogLy8gd2hlbiB0aGUgdGh1bWIg
bW92ZXMsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSB0aGVtIGZvciBwYWludGluZy4KICNkZWZpbmUg
VEhVTUJfUE9TSVRJT05fQUZGRUNUU19CVVRUT05TCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAkocmV2aXNpb24g
ODQ2ODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsMTAgQEAKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sICgibGludXgiKSk7CiAjZWxpZiBPUyhG
UkVFQlNEKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwg
KCJmcmVlYnNkIikpOworI2VsaWYgT1MoT1BFTkJTRCkKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgcGxhdGZvcm0sICgib3BlbmJzZCIpKTsKKyNlbGlmIE9TKFNPTEFSSVMp
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoInNvbGFy
aXMiKSk7CiAjZWxzZQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0
Zm9ybSwgKCJ1bmtub3duIikpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3Bw
CShyZXZpc2lvbiA4NDY4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVj
dG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsMTAg
QEAKICAgICByZXR1cm4gdjhTdHJpbmcoImxpbnV4Iik7CiAjZWxpZiBkZWZpbmVkKE9TX0ZSRUVC
U0QpCiAgICAgcmV0dXJuIHY4U3RyaW5nKCJmcmVlYnNkIik7CisjZWxpZiBkZWZpbmVkKE9TX09Q
RU5CU0QpCisgICAgcmV0dXJuIHY4U3RyaW5nKCJvcGVuYnNkIik7CisjZWxpZiBkZWZpbmVkKE9T
X1NPTEFSSVMpCisgICAgcmV0dXJuIHY4U3RyaW5nKCJzb2xhcmlzIik7CiAjZWxpZiBkZWZpbmVk
KE9TX1dJTikKICAgICByZXR1cm4gdjhTdHJpbmcoIndpbmRvd3MiKTsKICNlbHNlCkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gODQ2ODUpCisrKyBXZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgs
NyBAQAogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJl
YWxseSBiZSBhIGJsYWNrbGlzdCBpbnN0ZWFkIG9mIGEgd2hpdGVsaXN0Ci0jaWYgVVNFKENHKSB8
fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYm
IChPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgVVNFKFNLSUFfTUFD
X09OX0NIUk9NRSkpKSB8fCBQTEFURk9STShIQUlLVSkgfHwgT1MoV0lOQ0UpIHx8IFBMQVRGT1JN
KEFORFJPSUQpIHx8IFBMQVRGT1JNKEJSRVdNUCkKKyNpZiBVU0UoQ0cpIHx8IFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgKCFPUyhEQVJXSU4p
IHx8IFVTRShTS0lBX01BQ19PTl9DSFJPTUUpKSkgfHwgUExBVEZPUk0oSEFJS1UpIHx8IE9TKFdJ
TkNFKSB8fCBQTEFURk9STShBTkRST0lEKSB8fCBQTEFURk9STShCUkVXTVApCiAjZGVmaW5lIFNU
T1JFX0ZPTlRfQ1VTVE9NX1BMQVRGT1JNX0RBVEEKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="83807"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>