<?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>40231</bug_id>
          
          <creation_ts>2010-06-07 05:58:35 -0700</creation_ts>
          <short_desc>Add native call support for ARM and Thumb-2 JIT with JSValue32</short_desc>
          <delta_ts>2010-06-22 05:25:31 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gabor Loki">loki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>234811</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-06-07 05:58:35 -0700</bug_when>
    <thetext>Currently the native call enhancement is available on x86 with JSValue32_64 and on x86_64 with JSValue64.

I am going to upload a patch which adds this call support for ARM and Thumb-2 JIT as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234814</commentid>
    <comment_count>1</comment_count>
      <attachid>58020</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-06-07 06:09:33 -0700</bug_when>
    <thetext>Created attachment 58020
Add native call support for ARM and Thumb-2 JIT with JSValue32.

Same technique was used as on x86_64 with some limitations.
- we cannot use regT0 for the new callframe, because r0 (=regT0) should be the first argument of the host function.
- a callee preserved register should be used to hold the return address instead of the stack.
- preserveReturnAddressAfterCall/restoreReturnAddressBeforeReturn functions should be used to work with return address (instead of peek/poke on stack).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234816</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-07 06:11:54 -0700</bug_when>
    <thetext>Attachment 58020 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
JavaScriptCore/jit/JITOpcodes.cpp:249:  Extra space before ( in function call  [whitespace/parens] [4]
JavaScriptCore/wtf/Platform.h:973:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234828</commentid>
    <comment_count>3</comment_count>
      <attachid>58025</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-06-07 06:55:49 -0700</bug_when>
    <thetext>Created attachment 58025
Add native call support for ARM and Thumb-2 JIT

It was easy to add the native call support for JSValue32_64 as well.

So, this patch contains the native call enhancement for each ARM JIT and for each supported JSValue representations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234830</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-07 06:57:56 -0700</bug_when>
    <thetext>Attachment 58025 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/Platform.h:973:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240786</commentid>
    <comment_count>5</comment_count>
      <attachid>58025</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-06-21 11:13:34 -0700</bug_when>
    <thetext>Comment on attachment 58025
Add native call support for ARM and Thumb-2 JIT

JavaScriptCore/jit/JITOpcodes.cpp:226
 +      restoreReturnAddressBeforeReturn(regT3);
This implies that the link register is caller save. Is it? I thought it was callee save.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241196</commentid>
    <comment_count>6</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-06-22 02:04:08 -0700</bug_when>
    <thetext>&gt;  +      restoreReturnAddressBeforeReturn(regT3);
&gt; This implies that the link register is caller save. Is it? I thought it was callee save.

The link register (r14) is caller-save.
The callee-save registers are: r4-r11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241223</commentid>
    <comment_count>7</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-06-22 05:25:31 -0700</bug_when>
    <thetext>Committed revision 61614.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58020</attachid>
            <date>2010-06-07 06:09:33 -0700</date>
            <delta_ts>2010-06-07 06:55:49 -0700</delta_ts>
            <desc>Add native call support for ARM and Thumb-2 JIT with JSValue32.</desc>
            <filename>0001-Add-native-call-support-for-ARM-and-Thumb-2-JIT-with.patch</filename>
            <type>text/plain</type>
            <size>4849</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBmZjNhZDM4NGNjMTk0ZWEwZmQ3N2JhMmYwN2IxODk3MWJhODhjNjNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogTW9uLCA3IEp1biAyMDEwIDE0OjU5OjIwICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIG5h
dGl2ZSBjYWxsIHN1cHBvcnQgZm9yIEFSTSBhbmQgVGh1bWItMiBKSVQgd2l0aCBKU1ZhbHVlMzIu
CgpTaWduZWQtb2ZmLWJ5OiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KLS0tCiBK
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgfCAgIDExICsrKysrKysrKysrCiBKYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgfCAgIDM1ICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKystLS0tCiBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCAgICAgfCAgICA1
ICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCmluZGV4IDgyNTBlMTQuLmZkMDlkYjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
NiBAQAogMjAxMC0wNi0wNyAgR2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmF0aXZlIGNhbGwg
c3VwcG9ydCBmb3IgQVJNIGFuZCBUaHVtYi0yIEpJVCB3aXRoIEpTVmFsdWUzMi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMxCisKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVD
VElOYXRpdmVDYWxsKToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKworMjAxMC0wNi0wNyAg
R2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKEpTVkFMVUUzMl82NCBidWlsZCBmaXgpLgogCiAgICAgICAgICogaml0L0pJVE9wY29kZXMz
Ml82NC5jcHA6CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggNjRlMWYzYy4uMmFhYzJj
NiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTgxLDYgKzE4MSw3IEBAIEpJVDo6
TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhLCBib29sIGlzQ29uCiAKICAgICBMYWJlbCBuYXRpdmVDYWxsVGh1bmsgPSBhbGlnbigp
OwogCisjaWYgQ1BVKFg4Nl82NCkKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNo
YWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgogICAg
IC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOwpAQCAtMTkwLDcgKzE5MSw2
IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAgICAgcGVlayhyZWdUMSk7CiAgICAgZW1pdFB1
dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKIAotI2lm
IENQVShYODZfNjQpCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWRpLCBlc2ks
IGVkeCwgZWN4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNT
dGF0ZSopOwogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWRpKTsK
QEAgLTIwNCw2ICsyMDQsMjcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0
aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KIAogICAgIGFkZFB0
cihJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKKyNl
bGlmIENQVShBUk0pCisgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRv
IHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4KKyAgICAvLyBnZXQg
dG8gaXRzIGdsb2JhbCBkYXRhLgorICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJl
Z2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QyKTsKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMik7CisgICAg
ZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4p
OworCisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVl
IHByZXNlcnZlZAorICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJG
aWxlOjpSZXR1cm5QQyk7CisKKyAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihyMCA9
PSByZWdUMCwgcjEgPT0gcmVnVDEsIC4uLik7CisgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1
cmU6IGYoRXhlY1N0YXRlKik7CisgICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgQVJNUmVnaXN0
ZXJzOjpyMCk7CisKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZp
bGU6OkNhbGxlZSwgQVJNUmVnaXN0ZXJzOjpyMSk7CisgICAgbW92ZShyZWdUMiwgY2FsbEZyYW1l
UmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2
b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KKyAgICBsb2FkUHRyKEFkZHJlc3MoQVJNUmVnaXN0ZXJz
OjpyMSwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fZXhlY3V0YWJsZSkpLCByZWdUMik7
CisgICAgY2FsbChBZGRyZXNzKHJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwor
CisgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDMpOworCiAjZWxpZiBF
TkFCTEUoSklUX09QVElNSVpFX05BVElWRV9DQUxMKQogI2Vycm9yICJKSVRfT1BUSU1JWkVfTkFU
SVZFX0NBTEwgbm90IHlldCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZWxzZQpAQCAt
MjE5LDEyICsyNDAsMTggQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZl
Q2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KIAogICAgIC8vIEhhbmRs
ZSBhbiBleGNlcHRpb24KICAgICBleGNlcHRpb25IYW5kbGVyLmxpbmsodGhpcyk7CisKICAgICAv
LyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBwZWVrKHJlZ1QxKTsKKyAgICBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDEpOworCiAgICAgbW92ZShJbW1QdHIoJmdsb2Jh
bERhdGEtPmV4Y2VwdGlvbkxvY2F0aW9uKSwgcmVnVDIpOwogICAgIHN0b3JlUHRyKHJlZ1QxLCBy
ZWdUMik7Ci0gICAgcG9rZShjYWxsRnJhbWVSZWdpc3RlciwgMSArIE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSAvIHNpemVvZiAodm9pZCopKTsKLSAgICBw
b2tlKEltbVB0cihGdW5jdGlvblB0cihjdGlWTVRocm93VHJhbXBvbGluZSkudmFsdWUoKSkpOwor
ICAgIHBva2UoY2FsbEZyYW1lUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgY2FsbEZyYW1lKSAvIHNpemVvZiAodm9pZCopKTsKKworICAgIC8vIFNldCB0aGUg
cmV0dXJuIGFkZHJlc3MuCisgICAgbW92ZShJbW1QdHIoRnVuY3Rpb25QdHIoY3RpVk1UaHJvd1Ry
YW1wb2xpbmUpLnZhbHVlKCkpLCByZWdUMSk7CisgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4ocmVnVDEpOworCiAgICAgcmV0KCk7CiAKICAgICByZXR1cm4gbmF0aXZlQ2FsbFRo
dW5rOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA3YzUzZGMyLi40ZTJhNTExIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtOTcwLDkgKzk3MCwxMiBAQCBvbiBNaW5HVy4gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTI2OCAqLwogI2RlZmluZSBFTkFCTEVfSklU
X09QVElNSVpFX01PRCAxCiAjZW5kaWYKICNlbmRpZgotI2lmIChDUFUoWDg2KSAmJiBVU0UoSlNW
QUxVRTMyXzY0KSkgfHwgKENQVShYODZfNjQpICYmIFVTRShKU1ZBTFVFNjQpKQorI2lmIChDUFUo
WDg2KSAmJiBVU0UoSlNWQUxVRTMyXzY0KSkgfHwgKENQVShYODZfNjQpICYmIFVTRShKU1ZBTFVF
NjQpKSBcCisgICAgIHx8IChDUFUoQVJNKSAmJiBVU0UoSlNWQUxVRTMyKSkKKyNpZiBFTkFCTEUo
SklUKSAmJiAhZGVmaW5lZChFTkFCTEVfSklUX09QVElNSVpFX05BVElWRV9DQUxMKQogI2RlZmlu
ZSBFTkFCTEVfSklUX09QVElNSVpFX05BVElWRV9DQUxMIDEKICNlbmRpZgorI2VuZGlmCiAKICNp
ZiBFTkFCTEUoSklUKQogI2lmbmRlZiBFTkFCTEVfSklUX09QVElNSVpFX0NBTEwKLS0gCjEuNS40
LjMKCg==
</data>
<flag name="commit-queue"
          id="42814"
          type_id="3"
          status="-"
          setter="loki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58025</attachid>
            <date>2010-06-07 06:55:49 -0700</date>
            <delta_ts>2010-06-21 11:13:34 -0700</delta_ts>
            <desc>Add native call support for ARM and Thumb-2 JIT</desc>
            <filename>0001-Add-native-call-support-for-ARM-and-Thumb-2-JIT.patch</filename>
            <type>text/plain</type>
            <size>10182</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSA4ODJiODQwMDMwNWM4YmFiOTk4ODY3N2JiMWYzYjJmN2Q3NmMwMzk1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogTW9uLCA3IEp1biAyMDEwIDE1OjQ5OjM2ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIG5h
dGl2ZSBjYWxsIHN1cHBvcnQgZm9yIEFSTSBhbmQgVGh1bWItMiBKSVQuCgpTaWduZWQtb2ZmLWJ5
OiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KLS0tCiBKYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICB8ICAgMTMgKysrKysrCiBKYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAgICAgICB8ICAgMzUgKysrKysrKysrKysrKy0tCiBKYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCB8ICAgNzMgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLQogSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggICAgICAgICAgfCAgICA1ICsr
LQogNCBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDgyNTBlMTQuLjg2ZGNhNTcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBA
QAogMjAxMC0wNi0wNyAgR2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmF0aXZlIGNhbGwgc3Vw
cG9ydCBmb3IgQVJNIGFuZCBUaHVtYi0yIEpJVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMxCisKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAg
ICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2
YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCisy
MDEwLTA2LTA3ICBHYWJvciBMb2tpICA8bG9raUB3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoSlNWQUxVRTMyXzY0IGJ1aWxkIGZpeCkuCiAKICAgICAgICAgKiBqaXQv
SklUT3Bjb2RlczMyXzY0LmNwcDoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA2NGUx
ZjNjLi41MzI4NDQxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xODEsNiArMTgx
LDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KIAogICAgIExhYmVsIG5hdGl2ZUNhbGxUaHVu
ayA9IGFsaWduKCk7CiAKKyNpZiBDUFUoWDg2XzY0KQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1l
J3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNh
bGwgY2FuCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CkBAIC0x
OTAsNyArMTkxLDYgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2Fs
bChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KICAgICBwZWVrKHJlZ1QxKTsK
ICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6UmV0dXJu
UEMpOwogCi0jaWYgQ1BVKFg4Nl82NCkKICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAg
ZihlZGksIGVzaSwgZWR4LCBlY3gsIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1
cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0
ZXJzOjplZGkpOwpAQCAtMjA0LDYgKzIwNCwyNyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNv
bXBpbGVDVElOYXRpdmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0Nvbgog
CiAgICAgYWRkUHRyKEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKIAorI2VsaWYgQ1BVKEFSTSkKKyAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3Bl
IGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgor
ICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVI
ZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDIpOworICAgIGVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJl
Z1QyKTsKKyAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6
U2NvcGVDaGFpbik7CisKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMp
OyAvLyBDYWxsZWUgcHJlc2VydmVkCisgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1Qz
LCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKKworICAgIC8vIENhbGxpbmcgY29udmVudGlvbjog
ICAgICBmKHIwID09IHJlZ1QwLCByMSA9PSByZWdUMSwgLi4uKTsKKyAgICAvLyBIb3N0IGZ1bmN0
aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKKyAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVy
LCBBUk1SZWdpc3RlcnM6OnIwKTsKKworICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KFJlZ2lzdGVyRmlsZTo6Q2FsbGVlLCBBUk1SZWdpc3RlcnM6OnIxKTsKKyAgICBtb3ZlKHJlZ1Qy
LCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVn
aXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgorICAgIGxvYWRQdHIoQWRkcmVzcyhB
Uk1SZWdpc3RlcnM6OnIxLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9leGVjdXRhYmxl
KSksIHJlZ1QyKTsKKyAgICBjYWxsKEFkZHJlc3MocmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uKSk7CisKKyAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMyk7
CisKICNlbGlmIEVOQUJMRShKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwpCiAjZXJyb3IgIkpJVF9P
UFRJTUlaRV9OQVRJVkVfQ0FMTCBub3QgeWV0IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIK
ICNlbHNlCkBAIC0yMTksMTIgKzI0MCwxOCBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElOYXRpdmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogCiAg
ICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIGV4Y2VwdGlvbkhhbmRsZXIubGluayh0aGlz
KTsKKwogICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIHBlZWsocmVnVDEpOwor
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMSk7CisKICAgICBtb3ZlKElt
bVB0cigmZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uTG9jYXRpb24pLCByZWdUMik7CiAgICAgc3RvcmVQ
dHIocmVnVDEsIHJlZ1QyKTsKLSAgICBwb2tlKGNhbGxGcmFtZVJlZ2lzdGVyLCAxICsgT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9mICh2b2lk
KikpOwotICAgIHBva2UoSW1tUHRyKEZ1bmN0aW9uUHRyKGN0aVZNVGhyb3dUcmFtcG9saW5lKS52
YWx1ZSgpKSk7CisgICAgcG9rZShjYWxsRnJhbWVSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9mKHZvaWQqKSk7CisKKyAgICAv
LyBTZXQgdGhlIHJldHVybiBhZGRyZXNzLgorICAgIG1vdmUoSW1tUHRyKEZ1bmN0aW9uUHRyKGN0
aVZNVGhyb3dUcmFtcG9saW5lKS52YWx1ZSgpKSwgcmVnVDEpOworICAgIHJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsKKwogICAgIHJldCgpOwogCiAgICAgcmV0dXJuIG5h
dGl2ZUNhbGxUaHVuazsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXgg
NDZlZjEwZi4uYWQ4OWJmMSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMzMl82NC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAK
QEAgLTE4MSw2ICsxODEsNyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRp
dmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogCiAgICAgTGFiZWwg
bmF0aXZlQ2FsbFRodW5rID0gYWxpZ24oKTsKIAorI2lmIENQVShYODYpCiAgICAgLy8gTG9hZCBj
YWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hh
dGV2ZXIgd2UgY2FsbCBjYW4KICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGVt
aXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJl
Z1QwKTsKQEAgLTE5MCw3ICsxOTEsNiBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVD
VElOYXRpdmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIHBl
ZWsocmVnVDEpOwogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJG
aWxlOjpSZXR1cm5QQyk7CiAKLSNpZiBDUFUoWDg2KQogICAgIC8vIENhbGxpbmcgY29udmVudGlv
bjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJl
OiBmKEV4ZWNTdGF0ZSopOwogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVy
czo6ZWN4KTsKQEAgLTIwNSw2ICsyMDUsMjggQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KIAog
ICAgIGFkZFB0cihJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAKKyNlbGlmIENQVShBUk0pCisgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBj
aGFpbiBpbnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4KKyAg
ICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgorICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QyKTsKKyAgICBlbWl0R2V0RnJv
bUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdU
Mik7CisgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNj
b3BlQ2hhaW4pOworCisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsg
Ly8gQ2FsbGVlIHByZXNlcnZlZAorICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywg
UmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CisKKyAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAg
ICAgZihyMCA9PSByZWdUMCwgcjEgPT0gcmVnVDEsIC4uLik7CisgICAgLy8gSG9zdCBmdW5jdGlv
biBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CisgICAgbW92ZShjYWxsRnJhbWVSZWdpc3Rlciwg
QVJNUmVnaXN0ZXJzOjpyMCk7CisKKyAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgorICAgIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlLCBBUk1SZWdpc3Rl
cnM6OnIxKTsKKyAgICBtb3ZlKHJlZ1QyLCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkg
cmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNr
LgorICAgIGxvYWRQdHIoQWRkcmVzcyhBUk1SZWdpc3RlcnM6OnIxLCBPQkpFQ1RfT0ZGU0VUT0Yo
SlNGdW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKKyAgICBjYWxsKEFkZHJlc3MocmVn
VDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisKKyAgICByZXN0b3JlUmV0dXJuQWRk
cmVzc0JlZm9yZVJldHVybihyZWdUMyk7CisKICNlbGlmIEVOQUJMRShKSVRfT1BUSU1JWkVfTkFU
SVZFX0NBTEwpCiAjZXJyb3IgIkpJVF9PUFRJTUlaRV9OQVRJVkVfQ0FMTCBub3QgeWV0IHN1cHBv
cnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbHNlCkBAIC0yMTksMTEgKzI0MSwxOCBAQCBKSVQ6
OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YSwgYm9vbCBpc0NvbgogCiAgICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIHNh
d0V4Y2VwdGlvbi5saW5rKHRoaXMpOwotICAgIHBlZWsocmVnVDEpOworCisgICAgLy8gR3JhYiB0
aGUgcmV0dXJuIGFkZHJlc3MuCisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJl
Z1QxKTsKKwogICAgIG1vdmUoSW1tUHRyKCZnbG9iYWxEYXRhLT5leGNlcHRpb25Mb2NhdGlvbiks
IHJlZ1QyKTsKICAgICBzdG9yZVB0cihyZWdUMSwgcmVnVDIpOwotICAgIHBva2UoY2FsbEZyYW1l
UmVnaXN0ZXIsIDEgKyBPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNhbGxG
cmFtZSkgLyBzaXplb2Yodm9pZCopKTsKLSAgICBwb2tlKEltbVB0cihGdW5jdGlvblB0cihjdGlW
TVRocm93VHJhbXBvbGluZSkudmFsdWUoKSkpOworICAgIHBva2UoY2FsbEZyYW1lUmVnaXN0ZXIs
IE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSAvIHNpemVv
Zih2b2lkKikpOworCisgICAgLy8gU2V0IHRoZSByZXR1cm4gYWRkcmVzcy4KKyAgICBtb3ZlKElt
bVB0cihGdW5jdGlvblB0cihjdGlWTVRocm93VHJhbXBvbGluZSkudmFsdWUoKSksIHJlZ1QxKTsK
KyAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7CisKICAgICByZXQo
KTsKIAogICAgIHJldHVybiBuYXRpdmVDYWxsVGh1bms7CkBAIC0yNTcsNiArMjg2LDI5IEBAIEpJ
VDo6Q29kZVB0ciBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChQYXNzUmVmUHRyPEV4
ZWN1dGFibGVQb29sPiBleGVjdXRhCiAKICAgICBhZGRQdHIoSW1tMzIoMTYgLSBzaXplb2Yodm9p
ZCopKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCisjZWxpZiBDUFUoQVJNKQorICAgIC8vIExv
YWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0
IHdoYXRldmVyIHdlIGNhbGwgY2FuCisgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KKyAg
ICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1l
LCByZWdUMik7CisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxl
OjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDIpOworICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRl
cihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKworICAgIHByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKKyAgICBlbWl0UHV0
VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOworCisgICAg
Ly8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYocjAgPT0gcmVnVDAsIHIxID09IHJlZ1QxLCAu
Li4pOworICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOworICAg
IG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIEFSTVJlZ2lzdGVyczo6cjApOworCisgICAgZW1pdEdl
dEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZWUsIEFSTVJlZ2lzdGVy
czo6cjEpOworICAgIG1vdmUocmVnVDIsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSBy
ZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2su
CisgICAgbG9hZFB0cihBZGRyZXNzKEFSTVJlZ2lzdGVyczo6cjEsIE9CSkVDVF9PRkZTRVRPRihK
U0Z1bmN0aW9uLCBtX2V4ZWN1dGFibGUpKSwgcmVnVDIpOworCisgICAgLy8gY2FsbCB0aGUgZnVu
Y3Rpb24KKyAgICBuYXRpdmVDYWxsID0gY2FsbCgpOworCisgICAgcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4ocmVnVDMpOworCiAjZWxpZiBFTkFCTEUoSklUX09QVElNSVpFX05BVElW
RV9DQUxMKQogI2Vycm9yICJKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwgbm90IHlldCBzdXBwb3J0
ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZWxzZQpAQCAtMjcxLDExICszMjMsMTggQEAgSklUOjpD
b2RlUHRyIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFBhc3NSZWZQdHI8RXhlY3V0
YWJsZVBvb2w+IGV4ZWN1dGEKIAogICAgIC8vIEhhbmRsZSBhbiBleGNlcHRpb24KICAgICBzYXdF
eGNlcHRpb24ubGluayh0aGlzKTsKLSAgICBwZWVrKHJlZ1QxKTsKKworICAgIC8vIEdyYWIgdGhl
IHJldHVybiBhZGRyZXNzLgorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdU
MSk7CisKICAgICBtb3ZlKEltbVB0cigmZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uTG9jYXRpb24pLCBy
ZWdUMik7CiAgICAgc3RvcmVQdHIocmVnVDEsIHJlZ1QyKTsKLSAgICBwb2tlKGNhbGxGcmFtZVJl
Z2lzdGVyLCAxICsgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJh
bWUpIC8gc2l6ZW9mKHZvaWQqKSk7Ci0gICAgcG9rZShJbW1QdHIoRnVuY3Rpb25QdHIoY3RpVk1U
aHJvd1RyYW1wb2xpbmUpLnZhbHVlKCkpKTsKKyAgICBwb2tlKGNhbGxGcmFtZVJlZ2lzdGVyLCBP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNhbGxGcmFtZSkgLyBzaXplb2Yo
dm9pZCopKTsKKworICAgIC8vIFNldCB0aGUgcmV0dXJuIGFkZHJlc3MuCisgICAgbW92ZShJbW1Q
dHIoRnVuY3Rpb25QdHIoY3RpVk1UaHJvd1RyYW1wb2xpbmUpLnZhbHVlKCkpLCByZWdUMSk7Cisg
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworCiAgICAgcmV0KCk7
CiAKICAgICAvLyBBbGwgdHJhbXBvbGluZXMgY29uc3RydWN0ZWQhIGNvcHkgdGhlIGNvZGUsIGxp
bmsgdXAgY2FsbHMsIGFuZCBzZXQgdGhlIHBvaW50ZXJzIG9uIHRoZSBNYWNoaW5lIG9iamVjdC4K
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggN2M1M2RjMi4uZTlmMTI2MiAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgKQEAgLTk3MCw5ICs5NzAsMTIgQEAgb24gTWluR1cuIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KICNkZWZpbmUgRU5BQkxFX0pJVF9PUFRJ
TUlaRV9NT0QgMQogI2VuZGlmCiAjZW5kaWYKLSNpZiAoQ1BVKFg4NikgJiYgVVNFKEpTVkFMVUUz
Ml82NCkpIHx8IChDUFUoWDg2XzY0KSAmJiBVU0UoSlNWQUxVRTY0KSkKKyNpZiAoQ1BVKFg4Nikg
JiYgVVNFKEpTVkFMVUUzMl82NCkpIHx8IChDUFUoWDg2XzY0KSAmJiBVU0UoSlNWQUxVRTY0KSkg
XAorICAgICB8fCBDUFUoQVJNKQorI2lmIEVOQUJMRShKSVQpICYmICFkZWZpbmVkKEVOQUJMRV9K
SVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwpCiAjZGVmaW5lIEVOQUJMRV9KSVRfT1BUSU1JWkVfTkFU
SVZFX0NBTEwgMQogI2VuZGlmCisjZW5kaWYKIAogI2lmIEVOQUJMRShKSVQpCiAjaWZuZGVmIEVO
QUJMRV9KSVRfT1BUSU1JWkVfQ0FMTAotLSAKMS41LjQuMwoK
</data>
<flag name="review"
          id="42819"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="42820"
          type_id="3"
          status="-"
          setter="loki"
    />
          </attachment>
      

    </bug>

</bugzilla>