<?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>42310</bug_id>
          
          <creation_ts>2010-07-14 19:08:07 -0700</creation_ts>
          <short_desc>Make sure that mixed interpreter/jit builds don&apos;t try to use the jit if the allocator fails</short_desc>
          <delta_ts>2010-07-14 21:30: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251578</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-07-14 19:08:07 -0700</bug_when>
    <thetext>Make sure that mixed interpreter/jit builds don&apos;t try to use the jit if the allocator fails</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251580</commentid>
    <comment_count>1</comment_count>
      <attachid>61596</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-07-14 19:14:43 -0700</bug_when>
    <thetext>Created attachment 61596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251583</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 19:20:38 -0700</bug_when>
    <thetext>Attachment 61596 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:453:  lock_holder is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:461:  lock_holder is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:470:  lock_holder is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 3 in 18 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>251663</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-07-14 21:30:29 -0700</bug_when>
    <thetext>Committed r63404: &lt;http://trac.webkit.org/changeset/63404&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61596</attachid>
            <date>2010-07-14 19:14:43 -0700</date>
            <delta_ts>2010-07-14 21:04:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42310-20100714191441.patch</filename>
            <type>text/plain</type>
            <size>26382</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA0YmFiNmM1ZTdjOTk1NDI3Y2ViM2Q3ZjUwMGY3ZjhjOTZlZjJkYzU2Li45
MzQ5MDEzOWU0ZTY3ZWFkNjYxMGM1M2MwMjQzYTg1NGYyY2UyZjdmIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsNzIgQEAKIDIwMTAtMDctMTQgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
IAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1
cmUgdGhhdCBtaXhlZCBpbnRlcnByZXRlci9qaXQgYnVpbGRzIGRvbid0IHRyeSB0byB1c2UgdGhl
IGppdCBpZiB0aGUgYWxsb2NhdG9yIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjMxMAorCisgICAgICAgIEFkZCBzb21lIG51bGwgY2hlY2tz
IHRvIGRlYWwgd2l0aCB0aGUgRml4ZWQgVk0gYWxsb2NhdG9yIGZhaWxpbmcKKyAgICAgICAgdG8g
Z2V0IHRoZSByZXF1ZXN0ZWQgZXhlY3V0YWJsZSByZWdpb24sIGRlbGF5IHRoZSBjcmVhdGlvbiBv
ZiB0aGUKKyAgICAgICAgSklUU3R1YnMgaW4gSlNHbG9iYWxEYXRhIHVudGlsIGFmdGVyIHdlIGtu
b3cgd2hldGhlciB3ZSdyZSB1c2luZworICAgICAgICB0aGUgSklULgorCisgICAgICAgICogaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRv
cjo6RXhlY3V0YWJsZUFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0
b3I6OnBvb2xGb3JTaXplKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVk
Vk1Qb29sLmNwcDoKKyAgICAgICAgKEpTQzo6Rml4ZWRWTVBvb2xBbGxvY2F0b3I6OkZpeGVkVk1Q
b29sQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6Rml4ZWRWTVBvb2xBbGxvY2F0b3I6OmFsbG9j
KToKKyAgICAgICAgKEpTQzo6Rml4ZWRWTVBvb2xBbGxvY2F0b3I6OmZyZWUpOgorICAgICAgICAo
SlNDOjpGaXhlZFZNUG9vbEFsbG9jYXRvcjo6aXNWYWxpZCk6CisgICAgICAgIChKU0M6OkV4ZWN1
dGFibGVBbGxvY2F0b3I6OmlzVmFsaWQpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlUG9vbDo6
c3lzdGVtQWxsb2MpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlUG9vbDo6c3lzdGVtUmVsZWFz
ZSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JQb3NpeC5jcHA6CisgICAgICAg
IChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFsaWQpOgorICAgICAgICAqIGppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yV2luLmNwcDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRv
cjo6aXNWYWxpZCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6
bGlua0NhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmxpbmtDb25zdHJ1Y3QpOgorICAgICAgICAq
IGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xp
bmVzKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAg
ICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbW9k
KToKKyAgICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX21vZCk6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21w
aWxlT3BDYWxsKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UpOgor
ICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBp
bGVPcENhbGxWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAg
ICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UpOgorICAgICAgICAqIGppdC9K
SVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2
ZUNhbGwpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRo
dW5rczo6SklUVGh1bmtzKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjp0cnlDYWNoZUdldEJ5
SUQpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIpOgorICAgICAg
ICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpjaGFyQ29kZUF0VGh1
bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpjaGFyQXRUaHVua0dlbmVyYXRvcik6CisgICAg
ICAgIChKU0M6OmZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6c3Fy
dFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6cG93VGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFeGVjdXRh
YmxlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbERhdGE6OmdldEhvc3RGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERh
dGEuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpnZXRDVElTdHViKToKKyAgICAgICAg
KiB5YXJyL1JlZ2V4SklULmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6aml0Q29tcGlsZVJlZ2V4
KToKKworMjAxMC0wNy0xNCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCiAgICAg
ICAgIFJTPUdlb2ZmIEdhcmVuLgogCiAgICAgICAgIEd1YXJkIHRoZSBDRiBwYXRoIG9mIGludGVy
cHJldGVyIHZzLiBqaXQgc2VsZWN0aW9uIHdpdGggUExBVEZPUk0oQ0YpCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oIGIvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAppbmRleCA3MDNmNjNmYWZjYWQ4Y2RlNGY1Y2U2NGQ5
ZTFhOTVlN2NmOTQzZDRjLi44ZmQ2YjcxOTVhY2ZiNjY3OGQ3YjU5YmU3MDMyYjcxYzRjNGVhNzc1
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCisr
KyBiL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKQEAgLTE1MCwxMiAr
MTUwLDIwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICghcGFnZVNpemUpCiAgICAgICAg
ICAgICBpbnRpYWxpemVQYWdlU2l6ZSgpOwotICAgICAgICBtX3NtYWxsQWxsb2NhdGlvblBvb2wg
PSBFeGVjdXRhYmxlUG9vbDo6Y3JlYXRlKEpJVF9BTExPQ0FUT1JfTEFSR0VfQUxMT0NfU0laRSk7
CisgICAgICAgIGlmIChpc1ZhbGlkKCkpCisgICAgICAgICAgICBtX3NtYWxsQWxsb2NhdGlvblBv
b2wgPSBFeGVjdXRhYmxlUG9vbDo6Y3JlYXRlKEpJVF9BTExPQ0FUT1JfTEFSR0VfQUxMT0NfU0la
RSk7CisjaWYgIUVOQUJMRShJTlRFUlBSRVRFUikKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKKyNlbmRpZgogICAgIH0KIAorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAg
IAogICAgIFBhc3NSZWZQdHI8RXhlY3V0YWJsZVBvb2w+IHBvb2xGb3JTaXplKHNpemVfdCBuKQog
ICAgIHsKICAgICAgICAgLy8gVHJ5IHRvIGZpdCBpbiB0aGUgZXhpc3Rpbmcgc21hbGwgYWxsb2Nh
dG9yCisgICAgICAgIEFTU0VSVChtX3NtYWxsQWxsb2NhdGlvblBvb2wpOwogICAgICAgICBpZiAo
biA8IG1fc21hbGxBbGxvY2F0aW9uUG9vbC0+YXZhaWxhYmxlKCkpCiAgICAgICAgICAgICByZXR1
cm4gbV9zbWFsbEFsbG9jYXRpb25Qb29sOwogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9q
aXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcCBiL0phdmFTY3JpcHRDb3JlL2pp
dC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCmluZGV4IDc4NDZhMjU3YzcxZjU4
NTQ1ZGNmMmI2NmY1YzU1MWRkMzYyYTVjZmMuLjY1YzljMTNkNWMyNzExMmI1YzdjYWZiNjc1ZTQ3
MWFmMzFlZGZhNDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxs
b2NhdG9yRml4ZWRWTVBvb2wuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxl
QWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCkBAIC0zMDYsMjAgKzMwNiwzMCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJhbmRvbUxvY2F0aW9uIDw8PSAyMTsKICNlbmRpZgogICAgICAgICBtX2Jhc2UgPSBt
bWFwKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJhbmRvbUxvY2F0aW9uKSwgbV90b3RhbEhlYXBT
aXplLCBJTklUSUFMX1BST1RFQ1RJT05fRkxBR1MsIE1BUF9QUklWQVRFIHwgTUFQX0FOT04sIFZN
X1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9DQVRPUl9NRU1PUlksIDApOwotICAgICAgICBpZiAoIW1f
YmFzZSkKLSAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHks
IHdlIGtlZXAgYWxsIG1lbW9yeSBpbiBtX2ZyZWVMaXN0IGluIGEgJ3JlbGVhc2VkJyBzdGF0ZS4K
LSAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHdlIGNhbiBzaW1wbHkgcmV1c2UgYWxsIG1lbW9y
eSB3aGVuIGFsbG9jYXRpbmcsIHdpdGhvdXQKLSAgICAgICAgLy8gd29ycnlpbmcgYWJvdXQgaXQn
cyBwcmV2aW91cyBzdGF0ZSwgYW5kIGFsc28gbWFrZXMgY29hbGVzY2luZyBtX2ZyZWVMaXN0Ci0g
ICAgICAgIC8vIHNpbXBsZXIgc2luY2Ugd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgdGhlIHBvc3Np
YmlsaXR5IG9mIGNvYWxlc2NpbmcgcmVsZWFzZWQKLSAgICAgICAgLy8gY2h1bmtzIHdpdGggbm9u
LXJlbGVhc2VkIG9uZXMuCi0gICAgICAgIHJlbGVhc2UobV9iYXNlLCBtX3RvdGFsSGVhcFNpemUp
OwotICAgICAgICBtX2ZyZWVMaXN0Lmluc2VydChuZXcgRnJlZUxpc3RFbnRyeShtX2Jhc2UsIG1f
dG90YWxIZWFwU2l6ZSkpOworICAgICAgICBpZiAobV9iYXNlKSB7CisgICAgICAgICAgICAvLyBG
b3Igc2ltcGxpY2l0eSwgd2Uga2VlcCBhbGwgbWVtb3J5IGluIG1fZnJlZUxpc3QgaW4gYSAncmVs
ZWFzZWQnIHN0YXRlLgorICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHdlIGNhbiBzaW1w
bHkgcmV1c2UgYWxsIG1lbW9yeSB3aGVuIGFsbG9jYXRpbmcsIHdpdGhvdXQKKyAgICAgICAgICAg
IC8vIHdvcnJ5aW5nIGFib3V0IGl0J3MgcHJldmlvdXMgc3RhdGUsIGFuZCBhbHNvIG1ha2VzIGNv
YWxlc2NpbmcgbV9mcmVlTGlzdAorICAgICAgICAgICAgLy8gc2ltcGxlciBzaW5jZSB3ZSBuZWVk
IG5vdCB3b3JyeSBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgY29hbGVzY2luZyByZWxlYXNlZAor
ICAgICAgICAgICAgLy8gY2h1bmtzIHdpdGggbm9uLXJlbGVhc2VkIG9uZXMuCisgICAgICAgICAg
ICByZWxlYXNlKG1fYmFzZSwgbV90b3RhbEhlYXBTaXplKTsKKyAgICAgICAgICAgIG1fZnJlZUxp
c3QuaW5zZXJ0KG5ldyBGcmVlTGlzdEVudHJ5KG1fYmFzZSwgbV90b3RhbEhlYXBTaXplKSk7Cisg
ICAgICAgIH0KKyNpZiAhRU5BQkxFKElOVEVSUFJFVEVSKQorICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOworI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCogYWxsb2Moc2l6ZV90IHNp
emUpCiAgICAgeworI2lmIEVOQUJMRShJTlRFUlBSRVRFUikKKyAgICAgICAgaWYgKCFtX2Jhc2Up
CisgICAgICAgICAgICByZXR1cm4gMDsKKyNlbHNlCisgICAgICAgIEFTU0VSVChtX2Jhc2UpOwor
I2VuZGlmCiAgICAgICAgIHZvaWQqIHJlc3VsdDsKIAogICAgICAgICAvLyBGcmVlZCBhbGxvY2F0
aW9ucyBvZiB0aGUgY29tbW9uIHNpemUgYXJlIG5vdCBzdG9yZWQgYmFjayBpbnRvIHRoZSBtYWlu
CkBAIC0zODIsNiArMzkyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBmcmVlKHZvaWQqIHBvaW50
ZXIsIHNpemVfdCBzaXplKQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1fYmFzZSk7CiAgICAgICAg
IC8vIENhbGwgcmVsZWFzZSB0byByZXBvcnQgdG8gdGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB0
aGlzCiAgICAgICAgIC8vIG1lbW9yeSBpcyBubyBsb25nZXIgaW4gdXNlLCBhbmQgbmVlZCBub3Qg
YmUgcGFnZWQgb3V0LgogICAgICAgICBBU1NFUlQoaXNXaXRoaW5WTVBvb2wocG9pbnRlciwgc2l6
ZSkpOwpAQCAtNDA0LDYgKzQxNSw4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9iYXNlOyB9CisKIHByaXZhdGU6CiAK
ICNpZm5kZWYgTkRFQlVHCkBAIC00MzUsMTkgKzQ0OCwyNiBAQCB2b2lkIEV4ZWN1dGFibGVBbGxv
Y2F0b3I6OmludGlhbGl6ZVBhZ2VTaXplKCkKIHN0YXRpYyBGaXhlZFZNUG9vbEFsbG9jYXRvciog
YWxsb2NhdG9yID0gMDsKIHN0YXRpYyBTcGluTG9jayBzcGlubG9jayA9IFNQSU5MT0NLX0lOSVRJ
QUxJWkVSOwogCi1FeGVjdXRhYmxlUG9vbDo6QWxsb2NhdGlvbiBFeGVjdXRhYmxlUG9vbDo6c3lz
dGVtQWxsb2Moc2l6ZV90IHNpemUpCitib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFsaWQo
KSBjb25zdAogewotICBTcGluTG9ja0hvbGRlciBsb2NrX2hvbGRlcigmc3BpbmxvY2spOwotCisg
ICAgU3BpbkxvY2tIb2xkZXIgbG9ja19ob2xkZXIoJnNwaW5sb2NrKTsKICAgICBpZiAoIWFsbG9j
YXRvcikKICAgICAgICAgYWxsb2NhdG9yID0gbmV3IEZpeGVkVk1Qb29sQWxsb2NhdG9yKEpJVF9B
TExPQ0FUT1JfTEFSR0VfQUxMT0NfU0laRSwgVk1fUE9PTF9TSVpFKTsKKyAgICByZXR1cm4gYWxs
b2NhdG9yLT5pc1ZhbGlkKCk7Cit9CisKK0V4ZWN1dGFibGVQb29sOjpBbGxvY2F0aW9uIEV4ZWN1
dGFibGVQb29sOjpzeXN0ZW1BbGxvYyhzaXplX3Qgc2l6ZSkKK3sKKyAgICBTcGluTG9ja0hvbGRl
ciBsb2NrX2hvbGRlcigmc3BpbmxvY2spOworICAgIAorICAgIEFTU0VSVChhbGxvY2F0b3IpOwog
ICAgIEV4ZWN1dGFibGVQb29sOjpBbGxvY2F0aW9uIGFsbG9jID0ge3JlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGFsbG9jYXRvci0+YWxsb2Moc2l6ZSkpLCBzaXplfTsKICAgICByZXR1cm4gYWxsb2M7
CiB9CiAKIHZvaWQgRXhlY3V0YWJsZVBvb2w6OnN5c3RlbVJlbGVhc2UoY29uc3QgRXhlY3V0YWJs
ZVBvb2w6OkFsbG9jYXRpb24mIGFsbG9jYXRpb24pIAogewotICBTcGluTG9ja0hvbGRlciBsb2Nr
X2hvbGRlcigmc3BpbmxvY2spOworICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tfaG9sZGVyKCZzcGlu
bG9jayk7CiAKICAgICBBU1NFUlQoYWxsb2NhdG9yKTsKICAgICBhbGxvY2F0b3ItPmZyZWUoYWxs
b2NhdGlvbi5wYWdlcywgYWxsb2NhdGlvbi5zaXplKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yUG9zaXguY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3JQb3NpeC5jcHAKaW5kZXggYjA0MDQ5YzcxOGU0NjE1YjJhYTE2
ZWQ1NTU0OGRiNmI3YmU4M2NmZC4uYTg0MWQzMjg0NzMxOWZmY2YwYWIxMDcyYTRkNjQ5MDExM2Rk
YTY1YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JQ
b3NpeC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JQb3Np
eC5jcHAKQEAgLTU1LDYgKzU1LDExIEBAIHZvaWQgRXhlY3V0YWJsZVBvb2w6OnN5c3RlbVJlbGVh
c2UoY29uc3QgRXhlY3V0YWJsZVBvb2w6OkFsbG9jYXRpb24mIGFsbG9jKQogICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCAhcmVzdWx0KTsKIH0KIAorYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpp
c1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yV2luLmNwcCBi
L0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yV2luLmNwcAppbmRleCA3MmEx
ZDVmZmM5MjA4OGM4YWQ1Mjk4M2I0YWM3ZDVkNzA4MjUyZDdkLi4yYjEzNTI5ZWUwM2EyYmRlYTU4
OWYyOTY1NDBlNzUxYTE1Y2ZkYTE1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhl
Y3V0YWJsZUFsbG9jYXRvcldpbi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3JXaW4uY3BwCkBAIC01NCw2ICs1NCwxMSBAQCB2b2lkIEV4ZWN1dGFibGVQb29s
OjpzeXN0ZW1SZWxlYXNlKGNvbnN0IEV4ZWN1dGFibGVQb29sOjpBbGxvY2F0aW9uJiBhbGxvYykK
ICAgICBWaXJ0dWFsRnJlZShhbGxvYy5wYWdlcywgMCwgTUVNX1JFTEVBU0UpOyAKIH0KIAorYm9v
bCBFeGVjdXRhYmxlQWxsb2NhdG9yOjppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogI2lmIEVOQUJMRShBU1NFTUJMRVJfV1hfRVhDTFVTSVZFKQogI2Vycm9yICJBU1NF
TUJMRVJfV1hfRVhDTFVTSVZFIG5vdCB5ZXQgc3Vwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKaW5kZXggNWQ5Njg0Nzc3YWU2MTFkNzA5OGQzNzgzNjQzNzQwMWZl
MGZmNjczOC4uZjVkZjVmNzZmYzhlM2I0ZmQ1ZTdjMWNkZWVmYWIyNzU5NDE3YmE2ZCAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKQEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIEpJVDo6bGlua0NhbGwoSlNGdW5jdGlv
biogY2FsbGVlLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYQogICAg
IH0KIAogICAgIC8vIHBhdGNoIHRoZSBjYWxsIHNvIHdlIGRvIG5vdCBjb250aW51ZSB0byB0cnkg
dG8gbGluay4KLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1
cm5Mb2NhdGlvbiwgZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpVmlydHVhbENhbGwoKSk7CisgICAg
cmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIGds
b2JhbERhdGEtPmppdFN0dWJzLT5jdGlWaXJ0dWFsQ2FsbCgpKTsKIH0KIAogdm9pZCBKSVQ6Omxp
bmtDb25zdHJ1Y3QoSlNGdW5jdGlvbiogY2FsbGVlLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9j
aywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIEpJVDo6Q29kZVB0ciBjb2RlLCBDYWxsTGlu
a0luZm8qIGNhbGxMaW5rSW5mbywgaW50IGNhbGxlckFyZ0NvdW50LCBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEpCkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBKSVQ6OmxpbmtDb25zdHJ1Y3QoSlNG
dW5jdGlvbiogY2FsbGVlLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2MKICAg
ICB9CiAKICAgICAvLyBwYXRjaCB0aGUgY2FsbCBzbyB3ZSBkbyBub3QgY29udGludWUgdG8gdHJ5
IHRvIGxpbmsuCi0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0
dXJuTG9jYXRpb24sIGdsb2JhbERhdGEtPmppdFN0dWJzLmN0aVZpcnR1YWxDb25zdHJ1Y3QoKSk7
CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRp
b24sIGdsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlWaXJ0dWFsQ29uc3RydWN0KCkpOwogfQogI2Vu
ZGlmIC8vIEVOQUJMRShKSVRfT1BUSU1JWkVfQ0FMTCkKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDA5ODBiZTJh
ZjkyZTgzOTJiM2U4MDJjODVkZjE2OTY2Zjc1ZTY0OWMuLjAwYzM5MGViZjZlZjA3MzlmNWZlN2Jh
OThjYjJmNjQ1YzBjZGU4ZGYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAor
KysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTIxOSwxMiArMjE5LDE2IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVDVElNYWNoaW5lVHJhbXBv
bGluZXMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBl
eGVjdXRhYmxlUG9vbCwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJhbXBvbGluZXMpCiAgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICghZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgSklUIGppdChnbG9iYWxEYXRhKTsKICAgICAgICAg
ICAgIGppdC5wcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhleGVjdXRhYmxlUG9v
bCwgZ2xvYmFsRGF0YSwgdHJhbXBvbGluZXMpOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IENvZGVQdHIgY29tcGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBQ
YXNzUmVmUHRyPEV4ZWN1dGFibGVQb29sPiBleGVjdXRhYmxlUG9vbCwgTmF0aXZlRnVuY3Rpb24g
ZnVuYykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQ29kZVB0cigpOwogICAgICAgICAgICAgSklUIGpp
dChnbG9iYWxEYXRhKTsKICAgICAgICAgICAgIHJldHVybiBqaXQucHJpdmF0ZUNvbXBpbGVDVElO
YXRpdmVDYWxsKGV4ZWN1dGFibGVQb29sLCBnbG9iYWxEYXRhLCBmdW5jKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwIGIvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IDBlNWJiNDUxMmM3NmI4MmNhNDI5
NTNkZDRhZDBmZWZlYzAxMDU3MjkuLjBmNmQyOTBjOGYxODQwNjliYWY3NDBiNGMzYjcwYjBkZGYx
ODEzNjkgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAor
KysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKQEAgLTEyMDMsNyArMTIw
Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX21vZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QyLCBJbW0zMigxKSkp
OwogCi0gICAgZW1pdE5ha2VkQ2FsbChtX2dsb2JhbERhdGEtPmppdFN0dWJzLmN0aVNvZnRNb2R1
bG8oKSk7CisgICAgZW1pdE5ha2VkQ2FsbChtX2dsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlTb2Z0
TW9kdWxvKCkpOwogCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlZ1QwKTsK
ICNlbHNlCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0
LmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCmluZGV4IDRm
MzZkNjYwOTczOTAwNjYyNDgzZDc2MjgyNjE4ZmNiMDY0NzM0Y2QuLjIzMmUyODc0N2E0MjBlM2Vk
MDU2NGJkODBiMzUzOTMxYTJmNzYyNTEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRBcml0aG1ldGljMzJfNjQuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1l
dGljMzJfNjQuY3BwCkBAIC0xMzcwLDcgKzEzNzAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb2Qo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGFkZFNsb3dDYXNlKGJyYW5j
aDMyKEVxdWFsLCByZWdUMiwgSW1tMzIoMCkpKTsKIAotICAgIGVtaXROYWtlZENhbGwobV9nbG9i
YWxEYXRhLT5qaXRTdHVicy5jdGlTb2Z0TW9kdWxvKCkpOworICAgIGVtaXROYWtlZENhbGwobV9n
bG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpU29mdE1vZHVsbygpKTsKIAogICAgIGVtaXRTdG9yZUlu
dDMyKGRzdCwgcmVnVDAsIChvcDEgPT0gZHN0IHx8IG9wMiA9PSBkc3QpKTsKICNlbHNlCmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ2FsbC5jcHAKaW5kZXggNWMyYjMwOGQyZGQxNzY5MDdhYzEyMzJjNzg5MDEwNDI1Zjcx
NDc5Mi4uMzY4ZWFiOWQxNzZiY2QyZjA2NzNjZjJlNmRlMGFmZmU3MzZmY2I5MyAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFZh
cmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIGFkZFB0cihjYWxsRnJhbWVSZWdp
c3RlciwgcmVnVDMpOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CiAg
ICAgYWRkUHRyKHJlZ1QyLCBjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgZW1pdE5ha2VkQ2FsbCht
X2dsb2JhbERhdGEtPmppdFN0dWJzLmN0aVZpcnR1YWxDYWxsKCkpOworICAgIGVtaXROYWtlZENh
bGwobV9nbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpVmlydHVhbENhbGwoKSk7CiAKICAgICBzYW1w
bGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogfQpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgSklU
Ojpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rp
b24sIHVuc2lnbmVkKQogICAgIGFkZFB0cihJbW0zMihyZWdpc3Rlck9mZnNldCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgbW92
ZShJbW0zMihhcmdDb3VudCksIHJlZ1QxKTsKIAotICAgIGVtaXROYWtlZENhbGwob3Bjb2RlSUQg
PT0gb3BfY29uc3RydWN0ID8gbV9nbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlWaXJ0dWFsQ29uc3Ry
dWN0KCkgOiBtX2dsb2JhbERhdGEtPmppdFN0dWJzLmN0aVZpcnR1YWxDYWxsKCkpOworICAgIGVt
aXROYWtlZENhbGwob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gbV9nbG9iYWxEYXRhLT5qaXRT
dHVicy0+Y3RpVmlydHVhbENvbnN0cnVjdCgpIDogbV9nbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3Rp
VmlydHVhbENhbGwoKSk7CiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsKQogICAg
ICAgICB3YXNFdmFsLmxpbmsodGhpcyk7CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBKSVQ6OmNv
bXBpbGVPcENhbGxTbG93Q2FzZShJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzZUVudHJ5PjoKICAgICBhZGRQdHIoSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIG1vdmUo
SW1tMzIoYXJnQ291bnQpLCByZWdUMSk7CiAKLSAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGls
YXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFr
ZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMu
Y3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSA6IG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpVmly
dHVhbENhbGxMaW5rKCkpOworICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9b
Y2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwob3Bj
b2RlSUQgPT0gb3BfY29uc3RydWN0ID8gbV9nbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpVmlydHVh
bENvbnN0cnVjdExpbmsoKSA6IG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aVZpcnR1YWxDYWxs
TGluaygpKTsKIAogICAgIC8vIERvbmUhIC0gcmV0dXJuIGJhY2sgdG8gdGhlIGhvdCBwYXRoLgog
ICAgIEFTU0VSVChPUENPREVfTEVOR1RIKG9wX2NhbGwpID09IE9QQ09ERV9MRU5HVEgob3BfY2Fs
bF9ldmFsKSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNw
cCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IDVmNTUxY2NhNTg4
ZDE0MzNiNzkzZWU3ZDI3ZWI5M2UxYjczNDU4NzEuLmFhOGU5ODdkMDU3MWI5MDMyZDcwOWY2MTUy
YmFkODRjMTA4MTEyZDUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJf
NjQuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCkBAIC04Miw3
ICs4Miw3IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsVmFyYXJncyhJbnN0cnVjdGlvbiogaW5z
dHJ1Y3Rpb24pCiAKICAgICBtb3ZlKHJlZ1QyLCByZWdUMSk7IC8vIGFyZ0NvdW50CiAKLSAgICBl
bWl0TmFrZWRDYWxsKG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpVmlydHVhbENhbGwoKSk7Cisg
ICAgZW1pdE5ha2VkQ2FsbChtX2dsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlWaXJ0dWFsQ2FsbCgp
KTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiB9CkBAIC0yMzIsNyArMjMy
LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0
aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWduZWQpCiAgICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zm
c2V0ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGNhbGxGcmFtZVJlZ2lz
dGVyKTsKICAgICBtb3ZlKEltbTMyKGFyZ0NvdW50KSwgcmVnVDEpOwogCi0gICAgZW1pdE5ha2Vk
Q2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBtX2dsb2JhbERhdGEtPmppdFN0dWJzLmN0
aVZpcnR1YWxDb25zdHJ1Y3QoKSA6IG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpVmlydHVhbENh
bGwoKSk7CisgICAgZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBtX2ds
b2JhbERhdGEtPmppdFN0dWJzLT5jdGlWaXJ0dWFsQ29uc3RydWN0KCkgOiBtX2dsb2JhbERhdGEt
PmppdFN0dWJzLT5jdGlWaXJ0dWFsQ2FsbCgpKTsKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9j
YWxsX2V2YWwpCiAgICAgICAgIHdhc0V2YWwubGluayh0aGlzKTsKQEAgLTMzMyw3ICszMzMsNyBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OgogICAgIGFkZFB0cihJbW0zMihyZWdpc3Rlck9mZnNl
dCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBjYWxsRnJhbWVSZWdpc3Rl
cik7CiAgICAgbW92ZShJbW0zMihhcmdDb3VudCksIHJlZ1QxKTsKIAotICAgIG1fY2FsbFN0cnVj
dHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5Mb2Nh
dGlvbiA9IGVtaXROYWtlZENhbGwob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gbV9nbG9iYWxE
YXRhLT5qaXRTdHVicy5jdGlWaXJ0dWFsQ29uc3RydWN0TGluaygpIDogbV9nbG9iYWxEYXRhLT5q
aXRTdHVicy5jdGlWaXJ0dWFsQ2FsbExpbmsoKSk7CisgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNv
bXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1p
dE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBtX2dsb2JhbERhdGEtPmppdFN0
dWJzLT5jdGlWaXJ0dWFsQ29uc3RydWN0TGluaygpIDogbV9nbG9iYWxEYXRhLT5qaXRTdHVicy0+
Y3RpVmlydHVhbENhbGxMaW5rKCkpOwogCiAgICAgLy8gRG9uZSEgLSByZXR1cm4gYmFjayB0byB0
aGUgaG90IHBhdGguCiAgICAgQVNTRVJUKE9QQ09ERV9MRU5HVEgob3BfY2FsbCkgPT0gT1BDT0RF
X0xFTkdUSChvcF9jYWxsX2V2YWwpKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBk
Y2QzODIxOTNkYjZjZWYxNmZiZmNiNDcxMmUyYjY5MGUyNjkwZDllLi45NDlkZWUzYTRmNjU5MDY4
ZjI0YzhlZDllNTI4ODY2YzZiMzQxNWJmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBA
IC0zMDgsNyArMzA4LDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZl
Q2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KIAogSklUOjpDb2RlUHRy
IEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFBhc3NSZWZQdHI8RXhlY3V0YWJsZVBv
b2w+LCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uKQogewotICAgIHJl
dHVybiBnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsKCk7CisgICAgcmV0dXJuIGds
b2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCk7CiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX21vdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKaW5kZXggYTcwODA0Y2EyNzk2YWRhMmU4NmI0NGQ1NGExMmVlNjJjNmQyNDIxMy4uNzU5
MWU2YjJmYjM2NTAyNzJjNTZmZGRlMmE2OWI0MTNiOTY5NjRiMyAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuY3BwCkBAIC03OTcsOCArNzk3LDExIEBAIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENh
dWdodCkgIjoiICJcbiIKIAogSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhKQogewotICAgIEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxE
YXRhLCAmbV9leGVjdXRhYmxlUG9vbCwgJm1fdHJhbXBvbGluZVN0cnVjdHVyZSk7CisgICAgaWYg
KCFnbG9iYWxEYXRhLT5leGVjdXRhYmxlQWxsb2NhdG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuOwogCisgICAgSklUOjpjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKGdsb2JhbERhdGEs
ICZtX2V4ZWN1dGFibGVQb29sLCAmbV90cmFtcG9saW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQo
bV9leGVjdXRhYmxlUG9vbCk7CiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgLy8gVW5mb3J0dW5h
dGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1c2Ugb2Ygb2Zmc2V0b2Ygb24g
SklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBPRCB0eXBlcyksCiAgICAgLy8g
YW5kIHRoZSBPQkpFQ1RfT0ZGU0VUT0YgbWFjcm8gZG9lcyBub3QgYXBwZWFyIGNvbnN0YW50aXNo
IGVub3VnaCBmb3IgaXQgdG8gYmUgaGFwcHkgd2l0aCBpdHMgdXNlIGluIENPTVBJTEVfQVNTRVJU
CkBAIC05MTUsNyArOTE4LDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNo
ZUdldEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY28KICAgICBpZiAoaXNK
U1N0cmluZyhnbG9iYWxEYXRhLCBiYXNlVmFsdWUpICYmIHByb3BlcnR5TmFtZSA9PSBjYWxsRnJh
bWUtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKICAgICAgICAgLy8gVGhlIHRyYWRlb2ZmIG9m
IGNvbXBpbGluZyBhbiBwYXRjaGVkIGlubGluZSBzdHJpbmcgbGVuZ3RoIGFjY2VzcyByb3V0aW5l
IGRvZXMgbm90IHNlZW0KICAgICAgICAgLy8gdG8gcGF5IG9mZiwgc28gd2UgY3VycmVudGx5IG9u
bHkgZG8gdGhpcyBmb3IgYXJyYXlzLgotICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJl
c3MoY29kZUJsb2NrLCByZXR1cm5BZGRyZXNzLCBnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlTdHJp
bmdMZW5ndGhUcmFtcG9saW5lKCkpOworICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJl
c3MoY29kZUJsb2NrLCByZXR1cm5BZGRyZXNzLCBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpU3Ry
aW5nTGVuZ3RoVHJhbXBvbGluZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzU0
Miw4ICszNTQ1LDEwIEBAIFBhc3NSZWZQdHI8TmF0aXZlRXhlY3V0YWJsZT4gSklUVGh1bmtzOjpo
b3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0CiBQYXNzUmVmUHRyPE5hdGl2
ZUV4ZWN1dGFibGU+IEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0
b3IpCiB7CiAgICAgc3RkOjpwYWlyPEhvc3RGdW5jdGlvblN0dWJNYXA6Oml0ZXJhdG9yLCBib29s
PiBlbnRyeSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5hZGQoZnVuY3Rpb24sIDApOwotICAgIGlm
IChlbnRyeS5zZWNvbmQpCi0gICAgICAgIGVudHJ5LmZpcnN0LT5zZWNvbmQgPSBOYXRpdmVFeGVj
dXRhYmxlOjpjcmVhdGUoZ2VuZXJhdG9yKGdsb2JhbERhdGEsIG1fZXhlY3V0YWJsZVBvb2wuZ2V0
KCkpLCBmdW5jdGlvbiwgY3RpTmF0aXZlQ29uc3RydWN0KCksIGNhbGxIb3N0RnVuY3Rpb25Bc0Nv
bnN0cnVjdG9yKTsKKyAgICBpZiAoZW50cnkuc2Vjb25kKSB7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjb2RlID0gZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkgPyBnZW5lcmF0b3IoZ2xv
YmFsRGF0YSwgbV9leGVjdXRhYmxlUG9vbC5nZXQoKSkgOiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KTsKKyAgICAgICAgZW50cnkuZmlyc3QtPnNlY29uZCA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0
ZShjb2RlLCBmdW5jdGlvbiwgY3RpTmF0aXZlQ29uc3RydWN0KCksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yKTsKKyAgICB9CiAgICAgcmV0dXJuIGVudHJ5LmZpcnN0LT5zZWNvbmQ7CiB9
CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIv
SmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKaW5kZXggMjcxYzdjMTAzM2Jk
ZWU0Njc3MWQ2ZjY0ODNkYmZiZjAzZGJhOWIwMS4uMjA4NTdjYjkxZWZhZDhlNTBjMGFjZmUyNTZi
YTg0ZTljZDk5MGM0OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKQEAg
LTY4LDcgKzY4LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNoYXJDb2RlQXRUaHVua0dlbmVy
YXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGEKICAgICBTcGVjaWFsaXplZFRo
dW5rSklUIGppdCgxLCBnbG9iYWxEYXRhLCBwb29sKTsKICAgICBzdHJpbmdDaGFyTG9hZChqaXQp
OwogICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAg
cmV0dXJuIGppdC5maW5hbGl6ZShnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsKCkp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUoZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2
ZUNhbGwoKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjaGFyQXRUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGFibGVQb29sKiBwb29sKQpAQCAtNzcs
NyArNzcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2hhckF0VGh1bmtHZW5lcmF0b3IoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeGVjdXRhYmxlUAogICAgIHN0cmluZ0NoYXJMb2FkKGpp
dCk7CiAgICAgY2hhclRvU3RyaW5nKGppdCwgZ2xvYmFsRGF0YSwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklU
OjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZShnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRp
dmVDYWxsKCkpOworICAgIHJldHVybiBqaXQuZmluYWxpemUoZ2xvYmFsRGF0YS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwoKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmcm9tQ2hhckNv
ZGVUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGFibGVQb29s
KiBwb29sKQpAQCAtODcsNyArODcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZnJvbUNoYXJD
b2RlVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeGVjdQogICAgIGpp
dC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAg
Y2hhclRvU3RyaW5nKGppdCwgZ2xvYmFsRGF0YSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMSk7
CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAg
cmV0dXJuIGppdC5maW5hbGl6ZShnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsKCkp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUoZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2
ZUNhbGwoKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBzcXJ0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeGVjdXRhYmxlUG9vbCogcG9vbCkKQEAgLTk1LDE1
ICs5NSwxNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgc3FydFRodW5rR2VuZXJhdG9yKEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvbwogI2lmIFVTRShKU1ZBTFVFNjQpIHx8
IFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQoMSwgZ2xvYmFs
RGF0YSwgcG9vbCk7CiAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpKQot
ICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpTmF0aXZlQ2FsbCgpOworICAg
ICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKTsKIAogICAg
IGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwg
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5zcXJ0RG91YmxlKFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAg
IGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0
dXJuIGppdC5maW5hbGl6ZShnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsKCkpOwor
ICAgIHJldHVybiBqaXQuZmluYWxpemUoZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNh
bGwoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwb29sKTsKLSAgICByZXR1cm4gZ2xvYmFs
RGF0YS0+aml0U3R1YnMuY3RpTmF0aXZlQ2FsbCgpOworICAgIHJldHVybiBnbG9iYWxEYXRhLT5q
aXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpOwogI2VuZGlmCiB9CiAKQEAgLTExNSw3ICsxMTUsNyBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBFeGVjdXRhYmxlUG9vbAogI2lmIFVTRShKU1ZBTFVFNjQpIHx8IFVTRShKU1ZB
TFVFMzJfNjQpCiAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQoMiwgZ2xvYmFsRGF0YSwgcG9v
bCk7CiAgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpCi0gICAgICAgIHJldHVy
biBnbG9iYWxEYXRhLT5qaXRTdHVicy5jdGlOYXRpdmVDYWxsKCk7CisgICAgICAgIHJldHVybiBn
bG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpOwogCiAgICAgaml0LmxvYWREb3Vi
bGUoJm9uZUNvbnN0YW50LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAgICBqaXQu
bG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKQEAgLTE0OCwxMCArMTQ4LDEwIEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBwb3dUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4
ZWN1dGFibGVQb29sCiAgICAgfSBlbHNlCiAgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKG5vbklu
dEV4cG9uZW50KTsKIAotICAgIHJldHVybiBqaXQuZmluYWxpemUoZ2xvYmFsRGF0YS0+aml0U3R1
YnMuY3RpTmF0aXZlQ2FsbCgpKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKGdsb2JhbERhdGEt
PmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocG9v
bCk7Ci0gICAgcmV0dXJuIGdsb2JhbERhdGEtPmppdFN0dWJzLmN0aU5hdGl2ZUNhbGwoKTsKKyAg
ICByZXR1cm4gZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKTsKICNlbmRpZgog
fQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IGJjMzA3NDFmNjA2MjAxYmEx
MzhlNDI0NWNhY2VmNjliNTcyNzZiOTguLjkxMmY1MDE3NTc4MjA0MGE3NjNjOTVmNjM0YzQwM2I4
OTkzN2QyM2IgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCkBAIC05OCw2ICs5OCw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TmF0aXZlRXhlY3V0YWJsZT4gY3JlYXRlKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjYWxsVGh1
bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29uc3Ry
dWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIWNhbGxUaHVuaykKKyAgICAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE5hdGl2ZUV4ZWN1dGFibGUoSklUQ29kZSgpLCBmdW5jdGlvbiwgSklUQ29kZSgpLCBjb25zdHJ1
Y3RvcikpOwogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYXRpdmVFeGVjdXRhYmxl
KEpJVENvZGU6Okhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBmdW5jdGlvbiwgSklUQ29kZTo6SG9z
dEZ1bmN0aW9uKGNvbnN0cnVjdFRodW5rKSwgY29uc3RydWN0b3IpKTsKICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKaW5kZXggZGM0ZjRiYzQ4ZTZiZWNl
NjlmN2FlZTU1M2NhM2RiZTY5N2Q0NDU4NS4uMDY1Y2JlMTUxOThlOTNjMmZiMjBlMjE5YzVjMThk
MzFmYzJlMTQ5ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApAQCAt
MTM2LDkgKzEzNiw2IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXBl
IGdsb2JhbERhdGFUeXBlLCBUaHJlYWRTdGFja1R5cGUgdGhyZWFkCiAgICAgLCBsZXhlcihuZXcg
TGV4ZXIodGhpcykpCiAgICAgLCBwYXJzZXIobmV3IFBhcnNlcikKICAgICAsIGludGVycHJldGVy
KG5ldyBJbnRlcnByZXRlcikKLSNpZiBFTkFCTEUoSklUKQotICAgICwgaml0U3R1YnModGhpcykK
LSNlbmRpZgogICAgICwgaGVhcCh0aGlzKQogICAgICwgaGVhZCgwKQogICAgICwgZHluYW1pY0ds
b2JhbE9iamVjdCgwKQpAQCAtMTcyLDYgKzE2OSwxMyBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFs
RGF0YShHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBlIHRocmVh
ZAogICAgIG1fY2FuVXNlSklUID0gdHJ1ZTsKICNlbmRpZgogI2VuZGlmCisjaWYgRU5BQkxFKEpJ
VCkKKyNpZiBFTkFCTEUoSU5URVJQUkVURVIpCisgICAgaWYgKG1fY2FuVXNlSklUKQorICAgICAg
ICBtX2NhblVzZUpJVCA9IGV4ZWN1dGFibGVBbGxvY2F0b3IuaXNWYWxpZCgpOworI2VuZGlmCisg
ICAgaml0U3R1YnMgPSBuZXcgSklUVGh1bmtzKHRoaXMpOworI2VuZGlmCiB9CiAKIEpTR2xvYmFs
RGF0YTo6fkpTR2xvYmFsRGF0YSgpCkBAIC0yNjIsMTEgKzI2NiwxMSBAQCBKU0dsb2JhbERhdGEq
JiBKU0dsb2JhbERhdGE6OnNoYXJlZEluc3RhbmNlSW50ZXJuYWwoKQogI2lmIEVOQUJMRShKSVQp
CiBQYXNzUmVmUHRyPE5hdGl2ZUV4ZWN1dGFibGU+IEpTR2xvYmFsRGF0YTo6Z2V0SG9zdEZ1bmN0
aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uKQogewotICAgIHJldHVybiBqaXRTdHVicy5ob3N0
RnVuY3Rpb25TdHViKHRoaXMsIGZ1bmN0aW9uKTsKKyAgICByZXR1cm4gaml0U3R1YnMtPmhvc3RG
dW5jdGlvblN0dWIodGhpcywgZnVuY3Rpb24pOwogfQogUGFzc1JlZlB0cjxOYXRpdmVFeGVjdXRh
YmxlPiBKU0dsb2JhbERhdGE6OmdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5jdGlvbiBmdW5jdGlv
biwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yKQogewotICAgIHJldHVybiBqaXRTdHVicy5ob3N0
RnVuY3Rpb25TdHViKHRoaXMsIGZ1bmN0aW9uLCBnZW5lcmF0b3IpOworICAgIHJldHVybiBqaXRT
dHVicy0+aG9zdEZ1bmN0aW9uU3R1Yih0aGlzLCBmdW5jdGlvbiwgZ2VuZXJhdG9yKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAppbmRleCBmYzM2NjUwOTA4
MGMwMGMyMTUxODQ3YTgyMmU4YmJhY2Y5MzAzZGE0Li4yM2I2YjIxMDFlNWZmZjRkYjJkYzVmZTRh
NjQyM2ZlOTM2YWYxZjY1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsRGF0YS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKQEAg
LTE3OCwxMCArMTc4LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBQYXJzZXIqIHBhcnNl
cjsKICAgICAgICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyOwogI2lmIEVOQUJMRShKSVQpCi0g
ICAgICAgIEpJVFRodW5rcyBqaXRTdHViczsKKyAgICAgICAgT3duUHRyPEpJVFRodW5rcz4gaml0
U3R1YnM7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZXRDVElTdHViKFRodW5rR2Vu
ZXJhdG9yIGdlbmVyYXRvcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGppdFN0dWJz
LmN0aVN0dWIodGhpcywgZ2VuZXJhdG9yKTsKKyAgICAgICAgICAgIHJldHVybiBqaXRTdHVicy0+
Y3RpU3R1Yih0aGlzLCBnZW5lcmF0b3IpOwogICAgICAgICB9CiAgICAgICAgIFBhc3NSZWZQdHI8
TmF0aXZlRXhlY3V0YWJsZT4gZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9u
KTsKICAgICAgICAgUGFzc1JlZlB0cjxOYXRpdmVFeGVjdXRhYmxlPiBnZXRIb3N0RnVuY3Rpb24o
TmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcik7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SklULmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3lhcnIvUmVnZXhKSVQuY3BwCmluZGV4IDY4ZDM4MDNmYzc5YWU5ODJkZmJiNDUzYTk2YTQ5OWUx
NDc5NTk2ZGIuLjYwOTQxN2YwNzRmYjRhMTY4YzgwM2RhMjY2ZGRmYWQwZDVlYjIwOTMgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhKSVQuY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL3lhcnIvUmVnZXhKSVQuY3BwCkBAIC0xNDg5LDcgKzE0ODksNyBAQCB2b2lkIGppdENvbXBp
bGVSZWdleChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFJlZ2V4Q29kZUJsb2NrJiBqaXRPYmpl
Y3QsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICBudW1TdWJwYXR0ZXJucyA9IHBhdHRlcm4u
bV9udW1TdWJwYXR0ZXJuczsKIAotICAgIGlmICghcGF0dGVybi5tX2NvbnRhaW5zQmFja3JlZmVy
ZW5jZXMpIHsKKyAgICBpZiAoIXBhdHRlcm4ubV9jb250YWluc0JhY2tyZWZlcmVuY2VzICYmIGds
b2JhbERhdGEtPmNhblVzZUpJVCgpKSB7CiAgICAgICAgIFJlZ2V4R2VuZXJhdG9yIGdlbmVyYXRv
cihwYXR0ZXJuKTsKICAgICAgICAgZ2VuZXJhdG9yLmNvbXBpbGUoZ2xvYmFsRGF0YSwgaml0T2Jq
ZWN0KTsKICAgICAgICAgaWYgKCFnZW5lcmF0b3Iuc2hvdWxkRmFsbEJhY2soKSkK
</data>
<flag name="review"
          id="49650"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>