<?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>56913</bug_id>
          
          <creation_ts>2011-03-23 03:54:58 -0700</creation_ts>
          <short_desc>Mapping booleans the same way as integers</short_desc>
          <delta_ts>2011-04-07 16:49:29 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Herczeg">zherczeg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>loki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>372068</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-23 03:54:58 -0700</bug_when>
    <thetext>There was a discussion about this in the SquirrelFish mailing list. In short, the booleans store their logical values in the payload part when using JSValue32_64 representation.

Performance:

TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:           1.007x as fast    501.7ms +/- 0.3%   498.3ms +/- 0.3%     significant

=============================================================================

  3d:                  ??                 68.7ms +/- 0.9%    68.9ms +/- 1.1%     not conclusive: might be *1.003x as slow*
    cube:              -                  21.5ms +/- 1.8%    21.5ms +/- 1.8%
    morph:             -                  21.9ms +/- 1.0%    21.8ms +/- 1.4%
    raytrace:          ??                 25.3ms +/- 1.4%    25.6ms +/- 2.4%     not conclusive: might be *1.012x as slow*

  access:              -                  59.5ms +/- 0.8%    59.5ms +/- 0.6%
    binary-trees:      -                   7.5ms +/- 6.7%     7.5ms +/- 5.0%
    fannkuch:          -                  24.0ms +/- 0.0%    24.0ms +/- 0.0%
    nbody:             -                  20.0ms +/- 0.0%    20.0ms +/- 0.0%
    nsieve:            -                   8.0ms +/- 0.0%     8.0ms +/- 0.0%

  bitops:              1.031x as fast     33.0ms +/- 0.0%    32.0ms +/- 0.0%     significant
    3bit-bits-in-byte: -                   6.0ms +/- 0.0%     6.0ms +/- 0.0%
    bits-in-byte:      1.111x as fast     10.0ms +/- 0.0%     9.0ms +/- 0.0%     significant
    bitwise-and:       -                   6.0ms +/- 0.0%     6.0ms +/- 0.0%
    nsieve-bits:       -                  11.0ms +/- 0.0%    11.0ms +/- 0.0%

  controlflow:         -                   4.0ms +/- 0.0%     4.0ms +/- 0.0%
    recursive:         -                   4.0ms +/- 0.0%     4.0ms +/- 0.0%

  crypto:              -                  31.1ms +/- 0.7%    31.0ms +/- 0.0%
    aes:               -                  19.1ms +/- 1.2%    19.0ms +/- 0.0%
    md5:               -                   7.0ms +/- 0.0%     7.0ms +/- 0.0%
    sha1:              -                   5.0ms +/- 0.0%     5.0ms +/- 0.0%

  date:                1.031x as fast     62.4ms +/- 1.0%    60.5ms +/- 1.1%     significant
    format-tofte:      1.040x as fast     31.4ms +/- 1.2%    30.2ms +/- 1.5%     significant
    format-xparb:      1.023x as fast     31.0ms +/- 1.5%    30.3ms +/- 1.6%     significant

  math:                -                  51.6ms +/- 0.7%    51.2ms +/- 0.6%
    cordic:            -                  16.0ms +/- 0.0%    16.0ms +/- 0.0%
    partial-sums:      -                  23.1ms +/- 1.0%    23.0ms +/- 0.0%
    spectral-norm:     -                  12.5ms +/- 3.0%    12.2ms +/- 2.5%

  regexp:              1.023x as fast     22.0ms +/- 0.0%    21.5ms +/- 1.8%     significant
    dna:               1.023x as fast     22.0ms +/- 0.0%    21.5ms +/- 1.8%     significant

  string:              ??                169.4ms +/- 0.4%   169.7ms +/- 0.4%     not conclusive: might be *1.002x as slow*
    base64:            ??                 17.0ms +/- 0.0%    17.1ms +/- 1.3%     not conclusive: might be *1.006x as slow*
    fasta:             -                  24.0ms +/- 0.0%    23.7ms +/- 1.5%
    tagcloud:          -                  40.6ms +/- 1.2%    40.2ms +/- 0.7%
    unpack-code:       *1.017x as slow*   65.0ms +/- 0.0%    66.1ms +/- 0.6%     significant
    validate-input:    -                  22.8ms +/- 1.3%    22.6ms +/- 1.6%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372072</commentid>
    <comment_count>1</comment_count>
      <attachid>86600</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-23 03:59:58 -0700</bug_when>
    <thetext>Created attachment 86600
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372083</commentid>
    <comment_count>2</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-23 04:19:37 -0700</bug_when>
    <thetext>TEST              COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:      1.016x as fast    3496.6ms +/- 1.3%   3442.0ms +/- 0.7%     significant

=============================================================================

  v8:             1.016x as fast    3496.6ms +/- 1.3%   3442.0ms +/- 0.7%     significant
    crypto:       -                  391.4ms +/- 0.2%    391.7ms +/- 0.1%
    deltablue:    1.013x as fast     651.1ms +/- 0.7%    642.8ms +/- 0.6%     significant
    earley-boyer: 1.045x as fast     563.4ms +/- 1.7%    539.0ms +/- 1.8%     significant
    raytrace:     -                  204.3ms +/- 17.1%    192.0ms +/- 14.2%
    regexp:       ??                 355.2ms +/- 0.5%    355.8ms +/- 0.7%     not conclusive: might be *1.002x as slow*
    richards:     1.017x as fast     635.9ms +/- 0.5%    625.1ms +/- 0.5%     significant
    splay:        -                  695.3ms +/- 0.4%    695.6ms +/- 0.4%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372084</commentid>
    <comment_count>3</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-23 04:23:34 -0700</bug_when>
    <thetext>(measured on an AMD x86-32 system)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381846</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-04-07 16:49:29 -0700</bug_when>
    <thetext>Hey Zoltan, looks great, tidy little perf win!, very nice.  Fits nicely with my change for JSVALUE64 (no noticeable improvement there, but good to remove the pointless shift).  Hope you don&apos;t mind, took the liberty to land this because I wanted the documentation of the immediate formats up to date, fixed in r83230.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86600</attachid>
            <date>2011-03-23 03:59:58 -0700</date>
            <delta_ts>2011-04-07 16:47:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-intbool.patch</filename>
            <type>text/plain</type>
            <size>15484</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSBmODM4NjBmMWY3NmMzNGYyMTYyYjZkZDJhMjdjZjlkNDQwNGFmYzRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBXZWQsIDIzIE1hciAyMDExIDExOjU4OjMyICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gaW50Ym9vbAoKU2lnbmVkLW9mZi1ieTogWm9sdGFuIEhlcmN6ZWcgPHpoZXJjemVnQGluZi51
LXN6ZWdlZC5odT4KLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgfCAgIDM5ICsrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCAg
ICAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVNZXRob2RzLmggIHwgICAgNiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwIHwgIDExMCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmggICAgfCAgICAyICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmggICAgICAgfCAgIDI3ICsrKy0tLQogNiBmaWxl
cyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNTczNTNlOC4uNDRlOGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMjMgIFpvbHRhbiBIZXJjemVnICA8emhlcmN6
ZWdAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYXBwaW5nIGJvb2xlYW5zIHRoZSBzYW1lIHdheSBhcyBpbnRlZ2VycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MTMKKworICAgICAg
ICBJbnN0ZWFkIG9mIGhhdmluZyBhIHNlcGVyYXRlIHRhZyBmaWVsZCBmb3IgYm9vbGVhbnMsCisg
ICAgICAgIHRoZSBsb2dpY2FsIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBwYXlsb2FkIGZpZWxk
CisgICAgICAgIChmb3IgSlNWYWx1ZTMyXzY0IHJlcHJlc2VudGF0aW9uKS4KKworICAgICAgICAx
LjAwN3ggc3BlZWR1cCBvbiBTdW5TcGlkZXIuCisKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U3Rv
cmVCb29sKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2luc3RhbmNlb2YpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
bm90KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2pmYWxzZSk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdFNsb3dfb3BfamZhbHNlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2p0
cnVlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9qdHJ1ZSk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9qZXFfbnVsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9q
bmVxX251bGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZXEpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRTbG93X29wX2VxKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25lcSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbmVxKToKKyAgICAgICAgKEpTQzo6SklU
Ojpjb21waWxlT3BTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lcV9udWxs
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25lcV9udWxsKToKKyAgICAgICAgKiBqaXQv
SlNJbnRlcmZhY2VKSVQuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWUuaDoKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6SlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVHJ1ZSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRmFsc2UpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
OjpnZXRCb29sZWFuKToKKwogMjAxMS0wMy0yMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKaW5kZXggYWU2MGNjYi4uODE5Mzk0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBA
IC0zMTEsNyArMzExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdFN0b3Jl
SW50MzIodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgcGF5bG9hZCwgYm9vbCBpbmRleElzSW50
MzIgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZW1pdFN0b3JlSW50MzIodW5zaWduZWQgaW5kZXgs
IEltbTMyIHBheWxvYWQsIGJvb2wgaW5kZXhJc0ludDMyID0gZmFsc2UpOwogICAgICAgICB2b2lk
IGVtaXRTdG9yZUNlbGwodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgcGF5bG9hZCwgYm9vbCBp
bmRleElzQ2VsbCA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBlbWl0U3RvcmVCb29sKHVuc2lnbmVk
IGluZGV4LCBSZWdpc3RlcklEIHRhZywgYm9vbCBpbmRleElzQm9vbCA9IGZhbHNlKTsKKyAgICAg
ICAgdm9pZCBlbWl0U3RvcmVCb29sKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIHBheWxvYWQs
IGJvb2wgaW5kZXhJc0Jvb2wgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZW1pdFN0b3JlRG91Ymxl
KHVuc2lnbmVkIGluZGV4LCBGUFJlZ2lzdGVySUQgdmFsdWUpOwogCiAgICAgICAgIGJvb2wgaXNM
YWJlbGVkKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKaW5kZXggZWYyZjMzYy4uMzU1NjMwOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKQEAgLTQ1MywxMSArNDUz
LDExIEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdFN0b3JlQ2VsbCh1bnNpZ25lZCBpbmRleCwgUmVn
aXN0ZXJJRCBwYXlsb2FkLCBib29sIGluZGV4SXNDCiAgICAgICAgIHN0b3JlMzIoSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZyksIHRhZ0ZvcihpbmRleCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKIH0KIAot
aW5saW5lIHZvaWQgSklUOjplbWl0U3RvcmVCb29sKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklE
IHRhZywgYm9vbCBpbmRleElzQm9vbCkKK2lubGluZSB2b2lkIEpJVDo6ZW1pdFN0b3JlQm9vbCh1
bnNpZ25lZCBpbmRleCwgUmVnaXN0ZXJJRCBwYXlsb2FkLCBib29sIGluZGV4SXNCb29sKQogewor
ICAgIHN0b3JlMzIocGF5bG9hZCwgcGF5bG9hZEZvcihpbmRleCwgY2FsbEZyYW1lUmVnaXN0ZXIp
KTsKICAgICBpZiAoIWluZGV4SXNCb29sKQotICAgICAgICBzdG9yZTMyKEltbTMyKDApLCBwYXls
b2FkRm9yKGluZGV4LCBjYWxsRnJhbWVSZWdpc3RlcikpOwotICAgIHN0b3JlMzIodGFnLCB0YWdG
b3IoaW5kZXgsIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CisgICAgICAgIHN0b3JlMzIoSW1tMzIoSlNW
YWx1ZTo6Qm9vbGVhblRhZyksIHRhZ0ZvcihpbmRleCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKIH0K
IAogaW5saW5lIHZvaWQgSklUOjplbWl0U3RvcmVEb3VibGUodW5zaWduZWQgaW5kZXgsIEZQUmVn
aXN0ZXJJRCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcAppbmRleCBlYmZkNzg3Li45NTE4YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IC8vIE9wdGltaXN0aWNhbGx5IGxvYWQgdGhlIHJlc3VsdCB0cnVlLCBhbmQgc3RhcnQgbG9vcGlu
Zy4KICAgICAvLyBJbml0aWFsbHksIHJlZ1QxIHN0aWxsIGNvbnRhaW5zIHByb3RvIGFuZCByZWdU
MiBzdGlsbCBjb250YWlucyB2YWx1ZS4KICAgICAvLyBBcyB3ZSBsb29wIHJlZ1QyIHdpbGwgYmUg
dXBkYXRlZCB3aXRoIGl0cyBwcm90b3R5cGUsIHJlY3Vyc2l2ZWx5IHdhbGtpbmcgdGhlIHByb3Rv
dHlwZSBjaGFpbi4KLSAgICBtb3ZlKEltbTMyKEpTVmFsdWU6OlRydWVUYWcpLCByZWdUMCk7Cisg
ICAgbW92ZShJbW0zMigxKSwgcmVnVDApOwogICAgIExhYmVsIGxvb3AodGhpcyk7CiAKICAgICAv
LyBMb2FkIHRoZSBwcm90b3R5cGUgb2YgdGhlIGNlbGwgaW4gcmVnVDIuICBJZiB0aGlzIGlzIGVx
dWFsIHRvIHJlZ1QxIC0gV0lOIQpAQCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBicmFuY2hU
ZXN0MzIoTm9uWmVybywgcmVnVDIpLmxpbmtUbyhsb29wLCB0aGlzKTsKIAogICAgIC8vIFdlIGdl
dCBoZXJlIGVpdGhlciBieSBkcm9wcGluZyBvdXQgb2YgdGhlIGxvb3AsIG9yIGlmIHZhbHVlIHdh
cyBub3QgYW4gT2JqZWN0LiAgUmVzdWx0IGlzIGZhbHNlLgotICAgIG1vdmUoSW1tMzIoSlNWYWx1
ZTo6RmFsc2VUYWcpLCByZWdUMCk7CisgICAgbW92ZShJbW0zMigwKSwgcmVnVDApOwogCiAgICAg
Ly8gaXNJbnN0YW5jZSBqdW1wcyByaWdodCBkb3duIHRvIGhlcmUsIHRvIHNraXAgc2V0dGluZyB0
aGUgcmVzdWx0IHRvIGZhbHNlIChpdCBoYXMgYWxyZWFkeSBzZXQgdHJ1ZSkuCiAgICAgaXNJbnN0
YW5jZS5saW5rKHRoaXMpOwpAQCAtODI3LDExICs4MjcsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
bm90KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgZHN0ID0g
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBzcmMgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogCi0gICAgZW1pdExvYWRUYWcoc3JjLCByZWdU
MCk7CisgICAgZW1pdExvYWQoc3JjLCByZWdUMSwgcmVnVDApOwogCi0gICAgeG9yMzIoSW1tMzIo
SlNWYWx1ZTo6RmFsc2VUYWcpLCByZWdUMCk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVzdDMy
KE5vblplcm8sIHJlZ1QwLCBJbW0zMih+MSkpKTsKLSAgICB4b3IzMihJbW0zMihKU1ZhbHVlOjpU
cnVlVGFnKSwgcmVnVDApOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdU
MSwgSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZykpKTsKKyAgICB4b3IzMihJbW0zMigxKSwgcmVn
VDApOwogCiAgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwLCAoZHN0ID09IHNyYykpOwogfQpA
QCAtODU1LDI1ICs4NTQsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9qZmFsc2UoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRMb2FkKGNvbmQsIHJlZ1QxLCByZWdUMCk7
CiAKLSAgICBKdW1wIGlzVHJ1ZSA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMSwgSW1tMzIoSlNWYWx1
ZTo6VHJ1ZVRhZykpOwotICAgIGFkZEp1bXAoYnJhbmNoMzIoRXF1YWwsIHJlZ1QxLCBJbW0zMihK
U1ZhbHVlOjpGYWxzZVRhZykpLCB0YXJnZXQpOwotCi0gICAgSnVtcCBpc05vdEludGVnZXIgPSBi
cmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7Ci0gICAg
SnVtcCBpc1RydWUyID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBJbW0zMigwKSk7Ci0gICAg
YWRkSnVtcChqdW1wKCksIHRhcmdldCk7Ci0KLSAgICBpZiAoc3VwcG9ydHNGbG9hdGluZ1BvaW50
KCkpIHsKLSAgICAgICAgaXNOb3RJbnRlZ2VyLmxpbmsodGhpcyk7Ci0KLSAgICAgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoMzIoQWJvdmUsIHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7
Ci0KLSAgICAgICAgZW1pdExvYWREb3VibGUoY29uZCwgZnBSZWdUMCk7Ci0gICAgICAgIGFkZEp1
bXAoYnJhbmNoRG91YmxlWmVyb09yTmFOKGZwUmVnVDAsIGZwUmVnVDEpLCB0YXJnZXQpOwotICAg
IH0gZWxzZQotICAgICAgICBhZGRTbG93Q2FzZShpc05vdEludGVnZXIpOwotCi0gICAgaXNUcnVl
LmxpbmsodGhpcyk7Ci0gICAgaXNUcnVlMi5saW5rKHRoaXMpOworICAgIEFTU0VSVCgoSlNWYWx1
ZTo6Qm9vbGVhblRhZyArIDEgPT0gSlNWYWx1ZTo6SW50MzJUYWcpICYmICEoSlNWYWx1ZTo6SW50
MzJUYWcgKyAxKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoQmVsb3csIHJlZ1QxLCBJbW0z
MihKU1ZhbHVlOjpCb29sZWFuVGFnKSkpOworICAgIGFkZEp1bXAoYnJhbmNoMzIoRXF1YWwsIHJl
Z1QwLCBJbW0zMigwKSksIHRhcmdldCk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9qZmFs
c2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYgaXRlcikKQEAgLTg4Miw2ICs4NjUsMTggQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2pmYWxzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nh
c2VFbnQKICAgICB1bnNpZ25lZCB0YXJnZXQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kOwogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworCisgICAgaWYgKHN1cHBvcnRzRmxvYXRp
bmdQb2ludCgpKSB7CisgICAgICAgIC8vIHJlZ1QxIGNvbnRhaW5zIHRoZSB0YWcgZnJvbSB0aGUg
aG90IHBhdGguCisgICAgICAgIEp1bXAgbm90TnVtYmVyID0gYnJhbmNoMzIoQWJvdmUsIHJlZ1Qx
LCBJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKworICAgICAgICBlbWl0TG9hZERvdWJsZShj
b25kLCBmcFJlZ1QwKTsKKyAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoYnJhbmNoRG91YmxlWmVy
b09yTmFOKGZwUmVnVDAsIGZwUmVnVDEpLCB0YXJnZXQpOworICAgICAgICBlbWl0SnVtcFNsb3dU
b0hvdChqdW1wKCksIE9QQ09ERV9MRU5HVEgob3BfamZhbHNlKSk7CisKKyAgICAgICAgbm90TnVt
YmVyLmxpbmsodGhpcyk7CisgICAgfQorCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywg
Y3RpX29wX2p0cnVlKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChjb25kKTsKICAgICBzdHVi
Q2FsbC5jYWxsKCk7CkBAIC04OTUsMjUgKzg5MCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2p0cnVl
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0TG9hZChjb25kLCBy
ZWdUMSwgcmVnVDApOwogCi0gICAgSnVtcCBpc0ZhbHNlID0gYnJhbmNoMzIoRXF1YWwsIHJlZ1Qx
LCBJbW0zMihKU1ZhbHVlOjpGYWxzZVRhZykpOwotICAgIGFkZEp1bXAoYnJhbmNoMzIoRXF1YWws
IHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpUcnVlVGFnKSksIHRhcmdldCk7Ci0KLSAgICBKdW1wIGlz
Tm90SW50ZWdlciA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgSW1tMzIoSlNWYWx1ZTo6SW50
MzJUYWcpKTsKLSAgICBKdW1wIGlzRmFsc2UyID0gYnJhbmNoMzIoRXF1YWwsIHJlZ1QwLCBJbW0z
MigwKSk7Ci0gICAgYWRkSnVtcChqdW1wKCksIHRhcmdldCk7Ci0KLSAgICBpZiAoc3VwcG9ydHNG
bG9hdGluZ1BvaW50KCkpIHsKLSAgICAgICAgaXNOb3RJbnRlZ2VyLmxpbmsodGhpcyk7Ci0KLSAg
ICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoQWJvdmUsIHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpM
b3dlc3RUYWcpKSk7Ci0KLSAgICAgICAgZW1pdExvYWREb3VibGUoY29uZCwgZnBSZWdUMCk7Ci0g
ICAgICAgIGFkZEp1bXAoYnJhbmNoRG91YmxlTm9uWmVybyhmcFJlZ1QwLCBmcFJlZ1QxKSwgdGFy
Z2V0KTsKLSAgICB9IGVsc2UKLSAgICAgICAgYWRkU2xvd0Nhc2UoaXNOb3RJbnRlZ2VyKTsKLQot
ICAgIGlzRmFsc2UubGluayh0aGlzKTsKLSAgICBpc0ZhbHNlMi5saW5rKHRoaXMpOworICAgIEFT
U0VSVCgoSlNWYWx1ZTo6Qm9vbGVhblRhZyArIDEgPT0gSlNWYWx1ZTo6SW50MzJUYWcpICYmICEo
SlNWYWx1ZTo6SW50MzJUYWcgKyAxKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoQmVsb3cs
IHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSkpOworICAgIGFkZEp1bXAoYnJhbmNo
MzIoTm90RXF1YWwsIHJlZ1QwLCBJbW0zMigwKSksIHRhcmdldCk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9qdHJ1ZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtOTIyLDYgKzkwMSwxOCBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfanRydWUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXNlRW50cgogICAgIHVuc2lnbmVkIHRhcmdldCA9IGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQ7CiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisKKyAgICBpZiAo
c3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKKyAgICAgICAgLy8gcmVnVDEgY29udGFpbnMgdGhl
IHRhZyBmcm9tIHRoZSBob3QgcGF0aC4KKyAgICAgICAgSnVtcCBub3ROdW1iZXIgPSBicmFuY2gz
MihBYm92ZSwgcmVnVDEsIEltbTMyKEpTVmFsdWU6Okxvd2VzdFRhZykpOworCisgICAgICAgIGVt
aXRMb2FkRG91YmxlKGNvbmQsIGZwUmVnVDApOworICAgICAgICBlbWl0SnVtcFNsb3dUb0hvdChi
cmFuY2hEb3VibGVOb25aZXJvKGZwUmVnVDAsIGZwUmVnVDEpLCB0YXJnZXQpOworICAgICAgICBl
bWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIE9QQ09ERV9MRU5HVEgob3BfanRydWUpKTsKKworICAg
ICAgICBub3ROdW1iZXIubGluayh0aGlzKTsKKyAgICB9CisKICAgICBKSVRTdHViQ2FsbCBzdHVi
Q2FsbCh0aGlzLCBjdGlfb3BfanRydWUpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KGNvbmQp
OwogICAgIHN0dWJDYWxsLmNhbGwoKTsKQEAgLTk0Niw4ICs5MzcsOSBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9qZXFfbnVsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIE5v
dyBoYW5kbGUgdGhlIGltbWVkaWF0ZSBjYXNlcyAtIHVuZGVmaW5lZCAmIG51bGwKICAgICBpc0lt
bWVkaWF0ZS5saW5rKHRoaXMpOwogCi0gICAgQVNTRVJUKChKU1ZhbHVlOjpVbmRlZmluZWRUYWcg
KyAxID09IEpTVmFsdWU6Ok51bGxUYWcpICYmICEoSlNWYWx1ZTo6TnVsbFRhZyArIDEpKTsKLSAg
ICBhZGRKdW1wKGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OlVu
ZGVmaW5lZFRhZykpLCB0YXJnZXQpOworICAgIEFTU0VSVCgoSlNWYWx1ZTo6VW5kZWZpbmVkVGFn
ICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAoSlNWYWx1ZTo6TnVsbFRhZyAmIDB4MSkpOwor
ICAgIG9yMzIoSW1tMzIoMSksIHJlZ1QxKTsKKyAgICBhZGRKdW1wKGJyYW5jaDMyKEVxdWFsLCBy
ZWdUMSwgSW1tMzIoSlNWYWx1ZTo6TnVsbFRhZykpLCB0YXJnZXQpOwogCiAgICAgd2FzTm90SW1t
ZWRpYXRlLmxpbmsodGhpcyk7CiB9CkBAIC05NzAsOCArOTYyLDkgQEAgdm9pZCBKSVQ6OmVtaXRf
b3Bfam5lcV9udWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgLy8gTm93
IGhhbmRsZSB0aGUgaW1tZWRpYXRlIGNhc2VzIC0gdW5kZWZpbmVkICYgbnVsbAogICAgIGlzSW1t
ZWRpYXRlLmxpbmsodGhpcyk7CiAKLSAgICBBU1NFUlQoKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyAr
IDEgPT0gSlNWYWx1ZTo6TnVsbFRhZykgJiYgIShKU1ZhbHVlOjpOdWxsVGFnICsgMSkpOwotICAg
IGFkZEp1bXAoYnJhbmNoMzIoQmVsb3csIHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRU
YWcpKSwgdGFyZ2V0KTsKKyAgICBBU1NFUlQoKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyArIDEgPT0g
SlNWYWx1ZTo6TnVsbFRhZykgJiYgKEpTVmFsdWU6Ok51bGxUYWcgJiAweDEpKTsKKyAgICBvcjMy
KEltbTMyKDEpLCByZWdUMSk7CisgICAgYWRkSnVtcChicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEs
IEltbTMyKEpTVmFsdWU6Ok51bGxUYWcpKSwgdGFyZ2V0KTsKIAogICAgIHdhc05vdEltbWVkaWF0
ZS5saW5rKHRoaXMpOwogfQpAQCAtMTAxMiw5ICsxMDA1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
ZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShicmFu
Y2gzMihFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoMzIoQmVsb3csIHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7
CiAKLSAgICBzZXQ4Q29tcGFyZTMyKEVxdWFsLCByZWdUMCwgcmVnVDIsIHJlZ1QwKTsKLSAgICBv
cjMyKEltbTMyKEpTVmFsdWU6OkZhbHNlVGFnKSwgcmVnVDApOwotCisgICAgc2V0MzJDb21wYXJl
MzIoRXF1YWwsIHJlZ1QwLCByZWdUMiwgcmVnVDApOwogICAgIGVtaXRTdG9yZUJvb2woZHN0LCBy
ZWdUMCk7CiB9CiAKQEAgLTEwNDksNyArMTA0MCw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9l
cShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
CiAgICAgc3R1YkNhbGxFcS5jYWxsKHJlZ1QwKTsKIAogICAgIHN0b3JlUmVzdWx0LmxpbmsodGhp
cyk7Ci0gICAgb3IzMihJbW0zMihKU1ZhbHVlOjpGYWxzZVRhZyksIHJlZ1QwKTsKICAgICBlbWl0
U3RvcmVCb29sKGRzdCwgcmVnVDApOwogfQogCkBAIC0xMDY0LDkgKzEwNTQsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9uZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7
CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoQmVsb3csIHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpM
b3dlc3RUYWcpKSk7CiAKLSAgICBzZXQ4Q29tcGFyZTMyKE5vdEVxdWFsLCByZWdUMCwgcmVnVDIs
IHJlZ1QwKTsKLSAgICBvcjMyKEltbTMyKEpTVmFsdWU6OkZhbHNlVGFnKSwgcmVnVDApOwotCisg
ICAgc2V0MzJDb21wYXJlMzIoTm90RXF1YWwsIHJlZ1QwLCByZWdUMiwgcmVnVDApOwogICAgIGVt
aXRTdG9yZUJvb2woZHN0LCByZWdUMCk7CiB9CiAKQEAgLTExMDAsNyArMTA4OCw2IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9uZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+CiAKICAgICBzdG9yZVJlc3VsdC5saW5rKHRoaXMpOwogICAgIHhv
cjMyKEltbTMyKDB4MSksIHJlZ1QwKTsKLSAgICBvcjMyKEltbTMyKEpTVmFsdWU6OkZhbHNlVGFn
KSwgcmVnVDApOwogICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdUMCk7CiB9CiAKQEAgLTExMjEs
MTIgKzExMDgsOSBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wU3RyaWN0RXEoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgQ29tcGlsZU9wU3RyaWN0RXFUeQogICAgIGFkZFNsb3dDYXNlKGJy
YW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDIsIEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAK
ICAgICBpZiAodHlwZSA9PSBPcFN0cmljdEVxKQotICAgICAgICBzZXQ4Q29tcGFyZTMyKEVxdWFs
LCByZWdUMCwgcmVnVDEsIHJlZ1QwKTsKKyAgICAgICAgc2V0MzJDb21wYXJlMzIoRXF1YWwsIHJl
Z1QwLCByZWdUMSwgcmVnVDApOwogICAgIGVsc2UKLSAgICAgICAgc2V0OENvbXBhcmUzMihOb3RF
cXVhbCwgcmVnVDAsIHJlZ1QxLCByZWdUMCk7Ci0KLSAgICBvcjMyKEltbTMyKEpTVmFsdWU6OkZh
bHNlVGFnKSwgcmVnVDApOwotCisgICAgICAgIHNldDMyQ29tcGFyZTMyKE5vdEVxdWFsLCByZWdU
MCwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogfQogCkBA
IC0xMTkxLDcgKzExNzUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9lcV9udWxsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICB3YXNOb3RJbW1lZGlhdGUubGluayh0aGlzKTsK
IAotICAgIG9yMzIoSW1tMzIoSlNWYWx1ZTo6RmFsc2VUYWcpLCByZWdUMSk7CisgICAgYW5kMzIo
SW1tMzIoMSksIHJlZ1QxKTsKIAogICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdUMSk7CiB9CkBA
IC0xMjE3LDcgKzEyMDEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXFfbnVsbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgd2FzTm90SW1tZWRpYXRlLmxpbmsodGhpcyk7
CiAKLSAgICBvcjMyKEltbTMyKEpTVmFsdWU6OkZhbHNlVGFnKSwgcmVnVDEpOworICAgIGFuZDMy
KEltbTMyKDEpLCByZWdUMSk7CiAKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDEpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCmluZGV4IDM1YmIzYmYu
LjYyNDBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZh
Y2VKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgK
QEAgLTE2MCw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCiAgICAgICAgIC8vIENhbid0IGp1c3QgcHJvcG9nYXRlIEpTVmFsdWU6OkludDMyVGFnIGFz
IHZpc3VhbCBzdHVkaW8gZG9lc24ndCBsaWtlIGl0Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBJbnQzMlRhZyA9IDB4ZmZmZmZmZmQ7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBJbnQzMlRhZyA9IDB4ZmZmZmZmZmY7CiAgICAgICAgIENPTVBJTEVfQVNTRVJUKEludDMyVGFn
ID09IEpTVmFsdWU6OkludDMyVGFnLCBJbnQzMlRhZ19vdXRfb2Zfc3luYyk7CiAjZWxzZQogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW50MzJUYWcgPSBKU0ltbWVkaWF0ZTo6VGFnVHlw
ZU51bWJlciA+PiAzMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAppbmRl
eCAwZmQ2YzRjLi41NWE1ZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1
ZS5oCkBAIC0yNTEsMTQgKzI1MSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNPYmpl
Y3QqIHN5bnRoZXNpemVPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgICAgICBlbnVtIHsgTnVsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmZiB9Owot
ICAgICAgICBlbnVtIHsgVW5kZWZpbmVkVGFnID0gICAgMHhmZmZmZmZmZSB9OwotICAgICAgICBl
bnVtIHsgSW50MzJUYWcgPSAgICAgICAgMHhmZmZmZmZmZCB9OwotICAgICAgICBlbnVtIHsgQ2Vs
bFRhZyA9ICAgICAgICAgMHhmZmZmZmZmYyB9OwotICAgICAgICBlbnVtIHsgVHJ1ZVRhZyA9ICAg
ICAgICAgMHhmZmZmZmZmYiB9OwotICAgICAgICBlbnVtIHsgRmFsc2VUYWcgPSAgICAgICAgMHhm
ZmZmZmZmYSB9OwotICAgICAgICBlbnVtIHsgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmOSB9
OwotICAgICAgICBlbnVtIHsgRGVsZXRlZFZhbHVlVGFnID0gMHhmZmZmZmZmOCB9OworICAgICAg
ICBlbnVtIHsgSW50MzJUYWcgPSAgICAgICAgMHhmZmZmZmZmZiB9OworICAgICAgICBlbnVtIHsg
Qm9vbGVhblRhZyA9ICAgICAgMHhmZmZmZmZmZSB9OworICAgICAgICBlbnVtIHsgTnVsbFRhZyA9
ICAgICAgICAgMHhmZmZmZmZmZCB9OworICAgICAgICBlbnVtIHsgVW5kZWZpbmVkVGFnID0gICAg
MHhmZmZmZmZmYyB9OworICAgICAgICBlbnVtIHsgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZm
YiB9OworICAgICAgICBlbnVtIHsgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmYSB9OworICAg
ICAgICBlbnVtIHsgRGVsZXRlZFZhbHVlVGFnID0gMHhmZmZmZmZmOSB9OwogICAgICAgICAKICAg
ICAgICAgZW51bSB7IExvd2VzdFRhZyA9ICBEZWxldGVkVmFsdWVUYWcgfTsKIApAQCAtNDIzLDEz
ICs0MjIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgCiAgICAgaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUoSlNUcnVlVGFnKQogICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gVHJ1ZVRhZzsK
LSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7CisgICAgICAgIHUuYXNCaXRzLnRhZyA9IEJv
b2xlYW5UYWc7CisgICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAxOwogICAgIH0KICAgICAKICAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQogICAgIHsKLSAgICAgICAgdS5h
c0JpdHMudGFnID0gRmFsc2VUYWc7CisgICAgICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7
CiAgICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwogICAgIH0KIApAQCAtNTE2LDEyICs1MTUs
MTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUo
KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IFRydWVUYWc7CisgICAgICAg
IHJldHVybiB0YWcoKSA9PSBCb29sZWFuVGFnICYmIHBheWxvYWQoKTsKICAgICB9CiAKICAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVy
biB0YWcoKSA9PSBGYWxzZVRhZzsKKyAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcg
JiYgIXBheWxvYWQoKTsKICAgICB9CiAKICAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dGFn
KCkgY29uc3QKQEAgLTY3MSw3ICs2NzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjpnZXRCb29sZWFuKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChp
c0Jvb2xlYW4oKSk7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBUcnVlVGFnOworICAgICAgICBy
ZXR1cm4gcGF5bG9hZCgpOwogICAgIH0KIAogICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6dW5j
aGVja2VkR2V0TnVtYmVyKCkgY29uc3QKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="78903"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>