<?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>26967</bug_id>
          
          <creation_ts>2009-07-04 08:48:00 -0700</creation_ts>
          <short_desc>[V8] Move garbage collector related functions from V8Proxy to V8GCController</short_desc>
          <delta_ts>2009-07-08 15:49:27 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129790</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-04 08:48:00 -0700</bug_when>
    <thetext>static void gcProtect(void* domObject);
static void gcUnprotect(void* domObject);
class DOMObjectVisitor
class EnsureWeakDOMNodeVisitor
class GCPrologueVisitor
class GrouperItem
class ObjectGrouperVisitor
static void gcPrologue
class GCEpilogueVisitor
static void gcEpilogue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130532</commentid>
    <comment_count>1</comment_count>
      <attachid>32477</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-08 15:04:49 -0700</bug_when>
    <thetext>Created attachment 32477
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130547</commentid>
    <comment_count>2</comment_count>
      <attachid>32477</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-08 15:31:48 -0700</bug_when>
    <thetext>Comment on attachment 32477
patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130551</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-08 15:49:09 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/bindings/v8/NPV8Object.cpp
Sending        WebCore/bindings/v8/ScheduledAction.cpp
Sending        WebCore/bindings/v8/ScriptController.cpp
Sending        WebCore/bindings/v8/ScriptInstance.cpp
Sending        WebCore/bindings/v8/ScriptValue.h
Sending        WebCore/bindings/v8/V8AbstractEventListener.cpp
Sending        WebCore/bindings/v8/V8LazyEventListener.cpp
Sending        WebCore/bindings/v8/V8NodeFilterCondition.cpp
Sending        WebCore/bindings/v8/V8Proxy.cpp
Sending        WebCore/bindings/v8/V8Proxy.h
Sending        WebCore/bindings/v8/custom/V8CustomEventListener.cpp
Transmitting file data ............
Committed revision 45646.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32477</attachid>
            <date>2009-07-08 15:04:49 -0700</date>
            <delta_ts>2009-07-08 15:31:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>gccontrol.patch</filename>
            <type>text/plain</type>
            <size>20155</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTY0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTMgQEAKKzIwMDktMDctMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IE1vdmUgZ2FyYmFnZSBjb2xsZWN0b3IgcmVsYXRlZCBmdW5jdGlvbnMgZnJvbSBWOFByb3h5IHRv
IFY4R0NDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjk2NworCisgICAgICAgIFRoaXMgcGF0Y2gganVzdCBtb3ZlcyB0aGUgZnVuY3Rp
b25zIGFyb3VuZCBpbiBWOFByb3h5LiAgV2UnbGwgYWN0dWFsbHkKKyAgICAgICAgbW92ZSB0aGVt
IHRvIGEgc2VwYXJhdGUgZmlsZSBpbiBhbm90aGVyIHBhdGNoLgorCisgICAgICAgICogYmluZGlu
Z3MvdjgvTlBWOE9iamVjdC5jcHA6CisgICAgICAgIChmcmVlVjhOUE9iamVjdCk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
aGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVk
dWxlZEFjdGlvbjo6flNjaGVkdWxlZEFjdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2Ny
aXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpn
Y1Byb3RlY3RKU1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6
Z2NVbnByb3RlY3RKU1dyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdEluc3Rh
bmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U2NyaXB0SW5zdGFuY2U6OmNsZWFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4U2NyaXB0SW5zdGFuY2U6OnNldCk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpTY3Jp
cHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRWYWx1ZTo6b3BlcmF0b3I9KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0
cmFjdEV2ZW50TGlzdGVuZXI6OmRpc3Bvc2VMaXN0ZW5lck9iamVjdCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOExh
enlFdmVudExpc3RlbmVyOjp+VjhMYXp5RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpWOExhenlFdmVudExpc3RlbmVyOjpnZXRMaXN0ZW5lckZ1bmN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4TGF6eUV2ZW50TGlzdGVuZXI6OmdldFdyYXBwZWRMaXN0ZW5lckZ1bmN0aW9uKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhOb2RlRmlsdGVyQ29uZGl0aW9uOjpWOE5vZGVGaWx0ZXJDb25kaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6VjhOb2RlRmlsdGVyQ29uZGl0aW9uOjp+VjhOb2RlRmlsdGVy
Q29uZGl0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpyZWdpc3Rlckdsb2JhbEhhbmRsZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOEdDQ29udHJvbGxlcjo6dW5yZWdpc3Rlckdsb2JhbEhhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOEdDQ29udHJvbGxlcjo6Z2NQcm90ZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4R0NDb250cm9sbGVyOjpnY1VucHJvdGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOFBy
b3h5OjpkZXN0cm95R2xvYmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnVwZGF0ZURv
Y3VtZW50V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpjbGVhckRvY3VtZW50
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpkaXNwb3NlQ29udGV4dEhhbmRs
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6aW5pdENvbnRleHRJZk5lZWRlZCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAg
ICAgICAgKFdlYkNvcmU6Okdsb2JhbEhhbmRsZUluZm86Okdsb2JhbEhhbmRsZUluZm8pOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhFdmVudExpc3RlbmVyOjpWOEV2ZW50TGlzdGVuZXIpOgorCiAyMDA5
LTA3LTA4ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3Qu
Y3BwCShyZXZpc2lvbiA0NTYzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIHZvaWQgZnJlZVY4TlBP
YmplY3QoTlBPYmplY3QqIG5wTwogewogICAgIFY4TlBPYmplY3QqIHY4TnBPYmplY3QgPSByZWlu
dGVycHJldF9jYXN0PFY4TlBPYmplY3QqPihucE9iamVjdCk7CiAjaWZuZGVmIE5ERUJVRwotICAg
IFY4UHJveHk6OlVucmVnaXN0ZXJHbG9iYWxIYW5kbGUodjhOcE9iamVjdCwgdjhOcE9iamVjdC0+
djhPYmplY3QpOworICAgIFY4R0NDb250cm9sbGVyOjpVbnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHY4
TnBPYmplY3QsIHY4TnBPYmplY3QtPnY4T2JqZWN0KTsKICNlbmRpZgogICAgIHY4TnBPYmplY3Qt
PnY4T2JqZWN0LkRpc3Bvc2UoKTsKICAgICBmcmVlKHY4TnBPYmplY3QpOwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcAkocmV2aXNpb24gNDU2MzEpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDcgKzUwLDcgQEAgU2NoZWR1bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24odjg6OkhhbgogICAg
IG1fZnVuY3Rpb24gPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb24+OjpOZXcoZnVuYyk7CiAK
ICNpZm5kZWYgTkRFQlVHCi0gICAgVjhQcm94eTo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NIRURV
TEVEX0FDVElPTiwgdGhpcywgbV9mdW5jdGlvbik7CisgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lz
dGVyR2xvYmFsSGFuZGxlKFNDSEVEVUxFRF9BQ1RJT04sIHRoaXMsIG1fZnVuY3Rpb24pOwogI2Vu
ZGlmCiAKICAgICBtX2FyZ2MgPSBhcmdjOwpAQCAtNjAsNyArNjAsNyBAQCBTY2hlZHVsZWRBY3Rp
b246OlNjaGVkdWxlZEFjdGlvbih2ODo6SGFuCiAgICAgICAgICAgICBtX2FyZ3ZbaV0gPSB2ODo6
UGVyc2lzdGVudDx2ODo6VmFsdWU+OjpOZXcoYXJndltpXSk7CiAKICNpZm5kZWYgTkRFQlVHCi0g
ICAgVjhQcm94eTo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NIRURVTEVEX0FDVElPTiwgdGhpcywg
bV9hcmd2W2ldKTsKKyAgICBWOEdDQ29udHJvbGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NI
RURVTEVEX0FDVElPTiwgdGhpcywgbV9hcmd2W2ldKTsKICNlbmRpZgogICAgICAgICB9CiAgICAg
fSBlbHNlCkBAIC03MywxMyArNzMsMTMgQEAgU2NoZWR1bGVkQWN0aW9uOjp+U2NoZWR1bGVkQWN0
aW9uKCkKICAgICAgICAgcmV0dXJuOwogCiAjaWZuZGVmIE5ERUJVRwotICAgIFY4UHJveHk6OnVu
cmVnaXN0ZXJHbG9iYWxIYW5kbGUodGhpcywgbV9mdW5jdGlvbik7CisgICAgVjhHQ0NvbnRyb2xs
ZXI6OnVucmVnaXN0ZXJHbG9iYWxIYW5kbGUodGhpcywgbV9mdW5jdGlvbik7CiAjZW5kaWYKICAg
ICBtX2Z1bmN0aW9uLkRpc3Bvc2UoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9hcmdj
OyBpKyspIHsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFY4UHJveHk6OnVucmVnaXN0ZXJHbG9i
YWxIYW5kbGUodGhpcywgbV9hcmd2W2ldKTsKKyAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnVucmVn
aXN0ZXJHbG9iYWxIYW5kbGUodGhpcywgbV9hcmd2W2ldKTsKICNlbmRpZgogICAgICAgICBtX2Fy
Z3ZbaV0uRGlzcG9zZSgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRD
b250cm9sbGVyLmNwcAkocmV2aXNpb24gNDU2MzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NywxMiArNzcsMTIgQEAgYm9v
bCBTY3JpcHRDb250cm9sbGVyOjppc1NhZmVTY3JpcHQoRnJhbQogCiB2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmdjUHJvdGVjdEpTV3JhcHBlcih2b2lkKiBkb21PYmplY3QpCiB7Ci0gICAgVjhQcm94
eTo6Z2NQcm90ZWN0KGRvbU9iamVjdCk7CisgICAgVjhHQ0NvbnRyb2xsZXI6OmdjUHJvdGVjdChk
b21PYmplY3QpOwogfQogCiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmdjVW5wcm90ZWN0SlNXcmFw
cGVyKHZvaWQqIGRvbU9iamVjdCkKIHsKLSAgICBWOFByb3h5OjpnY1VucHJvdGVjdChkb21PYmpl
Y3QpOworICAgIFY4R0NDb250cm9sbGVyOjpnY1VucHJvdGVjdChkb21PYmplY3QpOwogfQogCiBT
Y3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKEZyYW1lKiBmcmFtZSkKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0SW5zdGFuY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0SW5zdGFuY2UuY3BwCShyZXZpc2lvbiA0NTYzMSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0SW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
Miw3ICs2Miw3IEBAIHZvaWQgVjhTY3JpcHRJbnN0YW5jZTo6Y2xlYXIoKQogICAgIGlmIChtX2lu
c3RhbmNlLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogI2lmbmRlZiBOREVCVUcKLSAgICBW
OFByb3h5Ojp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMsIG1faW5zdGFuY2UpOworICAgIFY4
R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMsIG1faW5zdGFuY2UpOwog
I2VuZGlmCiAgICAgbV9pbnN0YW5jZS5EaXNwb3NlKCk7CiAgICAgbV9pbnN0YW5jZS5DbGVhcigp
OwpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFY4U2NyaXB0SW5zdGFuY2U6OnNldCh2ODo6SGFuZGxl
PHY4CiAKICAgICBtX2luc3RhbmNlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhp
bnN0YW5jZSk7CiAjaWZuZGVmIE5ERUJVRwotICAgIFY4UHJveHk6OnJlZ2lzdGVyR2xvYmFsSGFu
ZGxlKFNDUklQVElOU1RBTkNFLCB0aGlzLCBtX2luc3RhbmNlKTsKKyAgICBWOEdDQ29udHJvbGxl
cjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NSSVBUSU5TVEFOQ0UsIHRoaXMsIG1faW5zdGFuY2Up
OwogI2VuZGlmCiB9CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmgJKHJldmlzaW9u
IDQ1NjMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX3ZhbHVlID0gdjg6OlBl
cnNpc3RlbnQ8djg6OlZhbHVlPjo6TmV3KHZhbHVlKTsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAg
IFY4UHJveHk6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKFNDUklQVFZBTFVFLCB0aGlzLCBtX3ZhbHVl
KTsKKyAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKFNDUklQVFZB
TFVFLCB0aGlzLCBtX3ZhbHVlKTsKICNlbmRpZgogICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAKICAgICAgICAgbV92YWx1ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT46Ok5l
dyh2YWx1ZS5tX3ZhbHVlKTsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFY4UHJveHk6OnJlZ2lz
dGVyR2xvYmFsSGFuZGxlKFNDUklQVFZBTFVFLCB0aGlzLCBtX3ZhbHVlKTsKKyAgICAgICAgVjhH
Q0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKFNDUklQVFZBTFVFLCB0aGlzLCBtX3Zh
bHVlKTsKICNlbmRpZgogICAgIH0KIApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICAg
ICAgbV92YWx1ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT46Ok5ldyh2YWx1ZS5tX3ZhbHVl
KTsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFY4UHJveHk6OnJlZ2lzdGVyR2xvYmFsSGFuZGxl
KFNDUklQVFZBTFVFLCB0aGlzLCBtX3ZhbHVlKTsKKyAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnJl
Z2lzdGVyR2xvYmFsSGFuZGxlKFNDUklQVFZBTFVFLCB0aGlzLCBtX3ZhbHVlKTsKICNlbmRpZgog
CiAgICAgICAgIHJldHVybiAqdGhpczsKQEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm47CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFY4UHJveHk6OnVucmVn
aXN0ZXJHbG9iYWxIYW5kbGUodGhpcywgbV92YWx1ZSk7CisgICAgICAgIFY4R0NDb250cm9sbGVy
Ojp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMsIG1fdmFsdWUpOwogI2VuZGlmCiAgICAgICAg
IG1fdmFsdWUuRGlzcG9zZSgpOwogICAgICAgICBtX3ZhbHVlLkNsZWFyKCk7CkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcAkocmV2aXNp
b24gNDU2MzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgVjhBYnN0cmFjdEV2
ZW50TGlzdGVuZXI6OmRpc3Bvc2VMaXMKIHsKICAgICBpZiAoIW1fbGlzdGVuZXIuSXNFbXB0eSgp
KSB7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBWOFByb3h5Ojp1bnJlZ2lzdGVyR2xvYmFsSGFu
ZGxlKHRoaXMsIG1fbGlzdGVuZXIpOworICAgICAgICBWOEdDQ29udHJvbGxlcjo6dW5yZWdpc3Rl
ckdsb2JhbEhhbmRsZSh0aGlzLCBtX2xpc3RlbmVyKTsKICNlbmRpZgogICAgICAgICBtX2xpc3Rl
bmVyLkRpc3Bvc2UoKTsKICAgICAgICAgbV9saXN0ZW5lci5DbGVhcigpOwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiA0NTYzMSkK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDcgKzU0LDcgQEAgVjhMYXp5RXZlbnRMaXN0ZW5lcjo6flY4TGF6eUV2ZW50
TGlzdGVuZQogICAgIC8vIERpc3Bvc2Ugd3JhcHBlZCBmdW5jdGlvbgogICAgIGlmICghbV93cmFw
cGVkRnVuY3Rpb24uSXNFbXB0eSgpKSB7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBWOFByb3h5
Ojp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMsIG1fd3JhcHBlZEZ1bmN0aW9uKTsKKyAgICAg
ICAgVjhHQ0NvbnRyb2xsZXI6OnVucmVnaXN0ZXJHbG9iYWxIYW5kbGUodGhpcywgbV93cmFwcGVk
RnVuY3Rpb24pOwogI2VuZGlmCiAgICAgICAgIG1fd3JhcHBlZEZ1bmN0aW9uLkRpc3Bvc2UoKTsK
ICAgICAgICAgbV93cmFwcGVkRnVuY3Rpb24uQ2xlYXIoKTsKQEAgLTExNCw3ICsxMTQsNyBAQCB2
ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBWOExhenlFdmVudExpc3RlCiAKICAgICAgICAgICAgICAg
ICBtX2xpc3RlbmVyID0gdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uPjo6TmV3KGxpc3RlbmVy
RnVuY3Rpb24pOwogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAgICAgICBWOFByb3h5OjpyZWdp
c3Rlckdsb2JhbEhhbmRsZShFVkVOVF9MSVNURU5FUiwgdGhpcywgbV9saXN0ZW5lcik7CisgICAg
ICAgICAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKEVWRU5UX0xJ
U1RFTkVSLCB0aGlzLCBtX2xpc3RlbmVyKTsKICNlbmRpZgogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC0yMTgsNyArMjE4LDcgQEAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gVjhMYXp5RXZl
bnRMaXN0ZQogICAgICAgICAgICAgICAgIH0KIAogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAg
ICAgICBWOFByb3h5OjpyZWdpc3Rlckdsb2JhbEhhbmRsZShFVkVOVF9MSVNURU5FUiwgdGhpcywg
bV93cmFwcGVkRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIFY4R0NDb250cm9sbGVyOjpyZWdp
c3Rlckdsb2JhbEhhbmRsZShFVkVOVF9MSVNURU5FUiwgdGhpcywgbV93cmFwcGVkRnVuY3Rpb24p
OwogI2VuZGlmCiAgICAgICAgICAgICAgICAgbV93cmFwcGVkRnVuY3Rpb24tPlNldE5hbWUodjg6
OlN0cmluZzo6TmV3KGZyb21XZWJDb3JlU3RyaW5nKG1fZnVuY3Rpb25OYW1lKSwgbV9mdW5jdGlv
bk5hbWUubGVuZ3RoKCkpKTsKICAgICAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
djgvVjhOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAJKHJldmlzaW9uIDQ1NjMxKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NCwxNCArNDQsMTQgQEAgVjhOb2RlRmlsdGVyQ29uZGl0aW9uOjpWOE5vZGVGaWx0ZXJD
b25kaQogICAgIDogbV9maWx0ZXIodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPjo6TmV3KGZpbHRl
cikpCiB7CiAjaWZuZGVmIE5ERUJVRwotICAgIFY4UHJveHk6OnJlZ2lzdGVyR2xvYmFsSGFuZGxl
KE5PREVfRklMVEVSLCB0aGlzLCBtX2ZpbHRlcik7CisgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lz
dGVyR2xvYmFsSGFuZGxlKE5PREVfRklMVEVSLCB0aGlzLCBtX2ZpbHRlcik7CiAjZW5kaWYKIH0K
IAogVjhOb2RlRmlsdGVyQ29uZGl0aW9uOjp+VjhOb2RlRmlsdGVyQ29uZGl0aW9uKCkKIHsKICNp
Zm5kZWYgTkRFQlVHCi0gICAgVjhQcm94eTo6dW5yZWdpc3Rlckdsb2JhbEhhbmRsZSh0aGlzLCBt
X2ZpbHRlcik7CisgICAgVjhHQ0NvbnRyb2xsZXI6OnVucmVnaXN0ZXJHbG9iYWxIYW5kbGUodGhp
cywgbV9maWx0ZXIpOwogI2VuZGlmCiAgICAgbV9maWx0ZXIuRGlzcG9zZSgpOwogICAgIG1fZmls
dGVyLkNsZWFyKCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAJKHJldmlzaW9uIDQ1NjMx
KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjUsNiArNjUsOCBAQCBWOEV4dGVuc2lvbkxpc3QgVjhQcm94eTo6bV9leHRlbnNpb25zOwogY29u
c3QgY2hhciogVjhQcm94eTo6a0NvbnRleHREZWJ1Z0RhdGFUeXBlID0gInR5cGUiOwogY29uc3Qg
Y2hhciogVjhQcm94eTo6a0NvbnRleHREZWJ1Z0RhdGFWYWx1ZSA9ICJ2YWx1ZSI7CiAKKy8vIEJl
Z2luIFY4R0NDb250cm9sbGVyLmNwcAorCiAjaWZuZGVmIE5ERUJVRwogLy8gS2VlcHMgdHJhY2sg
b2YgZ2xvYmFsIGhhbmRsZXMgY3JlYXRlZCAobm90IEpTIHdyYXBwZXJzCiAvLyBvZiBET00gb2Jq
ZWN0cykuIE9mdGVuIHRoZXNlIGdsb2JhbCBoYW5kbGVzIGFyZSBzb3VyY2UKQEAgLTc3LDEzICs3
OSwxMyBAQCBjb25zdCBjaGFyKiBWOFByb3h5OjprQ29udGV4dERlYnVnRGF0YVZhCiAvLyBXaGVu
IGNyZWF0aW5nIGEgcGVyc2lzdGVudCBoYW5kbGUsIGNhbGw6CiAvLwogLy8gI2lmbmRlZiBOREVC
VUcKLS8vICAgIFY4UHJveHk6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHR5cGUsIGhvc3QsIGhhbmRs
ZSk7CisvLyAgICBWOEdDQ29udHJvbGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUodHlwZSwgaG9z
dCwgaGFuZGxlKTsKIC8vICNlbmRpZgogLy8KIC8vIFdoZW4gcmVsZWFzaW5nIHRoZSBoYW5kbGUs
IGNhbGw6CiAvLwogLy8gI2lmbmRlZiBOREVCVUcKLS8vICAgIFY4UHJveHk6OnVucmVnaXN0ZXJH
bG9iYWxIYW5kbGUodHlwZSwgaG9zdCwgaGFuZGxlKTsKKy8vICAgIFY4R0NDb250cm9sbGVyOjp1
bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHR5cGUsIGhvc3QsIGhhbmRsZSk7CiAvLyAjZW5kaWYKIC8v
CiB0eXBlZGVmIEhhc2hNYXA8djg6OlZhbHVlKiwgR2xvYmFsSGFuZGxlSW5mbyo+IEdsb2JhbEhh
bmRsZU1hcDsKQEAgLTEwNiwxMyArMTA4LDEzIEBAIHN0YXRpYyB2b2lkIGVudW1lcmF0ZUdsb2Jh
bEhhbmRsZXMoKQogICAgIH0KIH0KIAotdm9pZCBWOFByb3h5OjpyZWdpc3Rlckdsb2JhbEhhbmRs
ZShHbG9iYWxIYW5kbGVUeXBlIHR5cGUsIHZvaWQqIGhvc3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpW
YWx1ZT4gaGFuZGxlKQordm9pZCBWOEdDQ29udHJvbGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUo
R2xvYmFsSGFuZGxlVHlwZSB0eXBlLCB2b2lkKiBob3N0LCB2ODo6UGVyc2lzdGVudDx2ODo6VmFs
dWU+IGhhbmRsZSkKIHsKICAgICBBU1NFUlQoIWdsb2JhbEhhbmRsZU1hcCgpLmNvbnRhaW5zKCpo
YW5kbGUpKTsKICAgICBnbG9iYWxIYW5kbGVNYXAoKS5zZXQoKmhhbmRsZSwgbmV3IEdsb2JhbEhh
bmRsZUluZm8oaG9zdCwgdHlwZSkpOwogfQogCi12b2lkIFY4UHJveHk6OnVucmVnaXN0ZXJHbG9i
YWxIYW5kbGUodm9pZCogaG9zdCwgdjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBoYW5kbGUpCit2
b2lkIFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHZvaWQqIGhvc3QsIHY4
OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gaGFuZGxlKQogewogICAgIEFTU0VSVChnbG9iYWxIYW5k
bGVNYXAoKS5jb250YWlucygqaGFuZGxlKSk7CiAgICAgR2xvYmFsSGFuZGxlSW5mbyogaW5mbyA9
IGdsb2JhbEhhbmRsZU1hcCgpLnRha2UoKmhhbmRsZSk7CkBAIC0xMjEsNiArMTIzLDggQEAgdm9p
ZCBWOFByb3h5Ojp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHZvaQogfQogI2VuZGlmIC8vIGlmbmRl
ZiBOREVCVUcKIAorLy8gRW5kIFY4R0NDb250cm9sbGVyLmNwcAorCiB2b2lkIGJhdGNoQ29uZmln
dXJlQXR0cmlidXRlcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UsIHY4
OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90bywgY29uc3QgQmF0Y2hlZEF0dHJpYnV0
ZSogYXR0cmlidXRlcywgc2l6ZV90IGF0dHJpYnV0ZUNvdW50KQogewogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYXR0cmlidXRlQ291bnQ7ICsraSkgewpAQCAtMjc5LDYgKzI4Myw4IEBAIFNW
R0VsZW1lbnQqIFY4UHJveHk6OnN2Z0NvbnRleHQodm9pZCogb2IKIAogI2VuZGlmCiAKKy8vIEJl
Z2luIFY4R0NDb250cm9sbGVyLmNwcAorCiAvLyBBIG1hcCBmcm9tIGEgRE9NIG5vZGUgdG8gaXRz
IEpTIHdyYXBwZXIsIHRoZSB3cmFwcGVyCiAvLyBpcyBrZXB0IGFzIGEgc3Ryb25nIHJlZmVyZW5j
ZSB0byBzdXJ2aXZlIEdDcy4KIHN0YXRpYyBET01PYmplY3RNYXAmIGdjUHJvdGVjdGVkTWFwKCkK
QEAgLTI4Nyw3ICsyOTMsNyBAQCBzdGF0aWMgRE9NT2JqZWN0TWFwJiBnY1Byb3RlY3RlZE1hcCgp
CiAgICAgcmV0dXJuIHN0YXRpY0djUHJvdGVjdGVkTWFwOwogfQogCi12b2lkIFY4UHJveHk6Omdj
UHJvdGVjdCh2b2lkKiBkb21PYmplY3QpCit2b2lkIFY4R0NDb250cm9sbGVyOjpnY1Byb3RlY3Qo
dm9pZCogZG9tT2JqZWN0KQogewogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm47
CkBAIC0zMDQsNyArMzEwLDcgQEAgdm9pZCBWOFByb3h5OjpnY1Byb3RlY3Qodm9pZCogZG9tT2Jq
ZWN0KQogICAgIGdjUHJvdGVjdGVkTWFwKCkuc2V0KGRvbU9iamVjdCwgKnY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBlcikpOwogfQogCi12b2lkIFY4UHJveHk6OmdjVW5wcm90
ZWN0KHZvaWQqIGRvbU9iamVjdCkKK3ZvaWQgVjhHQ0NvbnRyb2xsZXI6OmdjVW5wcm90ZWN0KHZv
aWQqIGRvbU9iamVjdCkKIHsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuOwpA
QCAtNTY3LDYgKzU3Myw4IEBAIHN0YXRpYyB2b2lkIGdjRXBpbG9ndWUoKQogI2VuZGlmCiB9CiAK
Ky8vIEVuZCBWOEdDQ29udHJvbGxlci5jcHAKKwogdHlwZWRlZiBIYXNoTWFwPGludCwgdjg6OkZ1
bmN0aW9uVGVtcGxhdGUqPiBGdW5jdGlvblRlbXBsYXRlTWFwOwogCiBib29sIEFsbG93QWxsb2Nh
dGlvbjo6bV9jdXJyZW50ID0gZmFsc2U7CkBAIC03OTUsNyArODAzLDcgQEAgdm9pZCBWOFByb3h5
OjpkZXN0cm95R2xvYmFsKCkKIHsKICAgICBpZiAoIW1fZ2xvYmFsLklzRW1wdHkoKSkgewogI2lm
bmRlZiBOREVCVUcKLSAgICAgICAgdW5yZWdpc3Rlckdsb2JhbEhhbmRsZSh0aGlzLCBtX2dsb2Jh
bCk7CisgICAgICAgIFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMs
IG1fZ2xvYmFsKTsKICNlbmRpZgogICAgICAgICBtX2dsb2JhbC5EaXNwb3NlKCk7CiAgICAgICAg
IG1fZ2xvYmFsLkNsZWFyKCk7CkBAIC0xNjYzLDcgKzE2NzEsNyBAQCB2b2lkIFY4UHJveHk6OnVw
ZGF0ZURvY3VtZW50V3JhcHBlcih2ODo6CiAgICAgQVNTRVJUKG1fZG9jdW1lbnQuSXNFbXB0eSgp
KTsKICAgICBtX2RvY3VtZW50ID0gdjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPjo6TmV3KHdyYXBw
ZXIpOwogI2lmbmRlZiBOREVCVUcKLSAgICByZWdpc3Rlckdsb2JhbEhhbmRsZShQUk9YWSwgdGhp
cywgbV9kb2N1bWVudCk7CisgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxl
KFBST1hZLCB0aGlzLCBtX2RvY3VtZW50KTsKICNlbmRpZgogfQogCkBAIC0xNjcxLDcgKzE2Nzks
NyBAQCB2b2lkIFY4UHJveHk6OmNsZWFyRG9jdW1lbnRXcmFwcGVyKCkKIHsKICAgICBpZiAoIW1f
ZG9jdW1lbnQuSXNFbXB0eSgpKSB7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICB1bnJlZ2lzdGVy
R2xvYmFsSGFuZGxlKHRoaXMsIG1fZG9jdW1lbnQpOworICAgICAgICBWOEdDQ29udHJvbGxlcjo6
dW5yZWdpc3Rlckdsb2JhbEhhbmRsZSh0aGlzLCBtX2RvY3VtZW50KTsKICNlbmRpZgogICAgICAg
ICBtX2RvY3VtZW50LkRpc3Bvc2UoKTsKICAgICAgICAgbV9kb2N1bWVudC5DbGVhcigpOwpAQCAt
MTcyMiw3ICsxNzMwLDcgQEAgdm9pZCBWOFByb3h5OjpkaXNwb3NlQ29udGV4dEhhbmRsZXMoKQog
CiAgICAgaWYgKCFtX3dyYXBwZXJCb2lsZXJwbGF0ZXMuSXNFbXB0eSgpKSB7CiAjaWZuZGVmIE5E
RUJVRwotICAgICAgICB1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMsIG1fd3JhcHBlckJvaWxl
cnBsYXRlcyk7CisgICAgICAgIFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxl
KHRoaXMsIG1fd3JhcHBlckJvaWxlcnBsYXRlcyk7CiAjZW5kaWYKICAgICAgICAgbV93cmFwcGVy
Qm9pbGVycGxhdGVzLkRpc3Bvc2UoKTsKICAgICAgICAgbV93cmFwcGVyQm9pbGVycGxhdGVzLkNs
ZWFyKCk7CkBAIC0xNzMwLDcgKzE3MzgsNyBAQCB2b2lkIFY4UHJveHk6OmRpc3Bvc2VDb250ZXh0
SGFuZGxlcygpCiAKICAgICBpZiAoIW1fb2JqZWN0UHJvdG90eXBlLklzRW1wdHkoKSkgewogI2lm
bmRlZiBOREVCVUcKLSAgICAgICAgdW5yZWdpc3Rlckdsb2JhbEhhbmRsZSh0aGlzLCBtX29iamVj
dFByb3RvdHlwZSk7CisgICAgICAgIFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFu
ZGxlKHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlKTsKICNlbmRpZgogICAgICAgICBtX29iamVjdFBy
b3RvdHlwZS5EaXNwb3NlKCk7CiAgICAgICAgIG1fb2JqZWN0UHJvdG90eXBlLkNsZWFyKCk7CkBA
IC0yMDI5LDggKzIwMzcsOCBAQCB2b2lkIFY4UHJveHk6OmluaXRDb250ZXh0SWZOZWVkZWQoKQog
ICAgICAgICB2ODo6Vjg6Oklnbm9yZU91dE9mTWVtb3J5RXhjZXB0aW9uKCk7CiAgICAgICAgIHY4
OjpWODo6U2V0RmF0YWxFcnJvckhhbmRsZXIocmVwb3J0RmF0YWxFcnJvckluVjgpOwogCi0gICAg
ICAgIHY4OjpWODo6U2V0R2xvYmFsR0NQcm9sb2d1ZUNhbGxiYWNrKCZnY1Byb2xvZ3VlKTsKLSAg
ICAgICAgdjg6OlY4OjpTZXRHbG9iYWxHQ0VwaWxvZ3VlQ2FsbGJhY2soJmdjRXBpbG9ndWUpOwor
ICAgICAgICB2ODo6Vjg6OlNldEdsb2JhbEdDUHJvbG9ndWVDYWxsYmFjaygmVjhHQ0NvbnRyb2xs
ZXI6OmdjUHJvbG9ndWUpOworICAgICAgICB2ODo6Vjg6OlNldEdsb2JhbEdDRXBpbG9ndWVDYWxs
YmFjaygmVjhHQ0NvbnRyb2xsZXI6OmdjRXBpbG9ndWUpOwogCiAgICAgICAgIHY4OjpWODo6QWRk
TWVzc2FnZUxpc3RlbmVyKGhhbmRsZUNvbnNvbGVNZXNzYWdlKTsKIApAQCAtMjA1Niw3ICsyMDY0
LDcgQEAgdm9pZCBWOFByb3h5Ojppbml0Q29udGV4dElmTmVlZGVkKCkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgcmVnaXN0ZXJHbG9iYWxI
YW5kbGUoUFJPWFksIHRoaXMsIG1fZ2xvYmFsKTsKKyAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnJl
Z2lzdGVyR2xvYmFsSGFuZGxlKFBST1hZLCB0aGlzLCBtX2dsb2JhbCk7CiAjZW5kaWYKICAgICB9
CiAKQEAgLTIwNzksOCArMjA4Nyw4IEBAIHZvaWQgVjhQcm94eTo6aW5pdENvbnRleHRJZk5lZWRl
ZCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjaWZuZGVmIE5ERUJVRwotICAgIHJlZ2lzdGVy
R2xvYmFsSGFuZGxlKFBST1hZLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZSk7Ci0gICAgcmVnaXN0
ZXJHbG9iYWxIYW5kbGUoUFJPWFksIHRoaXMsIG1fd3JhcHBlckJvaWxlcnBsYXRlcyk7CisgICAg
VjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKFBST1hZLCB0aGlzLCBtX29iamVj
dFByb3RvdHlwZSk7CisgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKFBS
T1hZLCB0aGlzLCBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMpOwogI2VuZGlmCiAKICAgICBpZiAoIWlu
c3RhbGxET01XaW5kb3codjhDb250ZXh0LCBtX2ZyYW1lLT5kb21XaW5kb3coKSkpCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UHJveHkuaAkocmV2aXNpb24gNDU2MzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDM1ICsxMDUsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgLy8gRklYTUU6IHVzZSBzdGFuZGFyZCBsb2dnaW5nIGZhY2lsaXRpZXMg
aW4gV2ViQ29yZS4KICAgICB2b2lkIGxvZ0luZm8oRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgdXJsKTsKIAotI2lmbmRlZiBOREVCVUcKLQotI2RlZmluZSBHbG9i
YWxIYW5kbGVUeXBlTGlzdChWKSAgIFwKLSAgICBWKFBST1hZKSAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihOUE9CSkVDVCkgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU0NIRURVTEVE
X0FDVElPTikgICAgICAgICAgIFwKLSAgICBWKEVWRU5UX0xJU1RFTkVSKSAgICAgICAgICAgICBc
Ci0gICAgVihOT0RFX0ZJTFRFUikgICAgICAgICAgICAgICAgXAotICAgIFYoU0NSSVBUSU5TVEFO
Q0UpICAgICAgICAgICAgIFwKLSAgICBWKFNDUklQVFZBTFVFKQotCi0KLSAgICAvLyBIb3N0IGlu
Zm9ybWF0aW9uIG9mIHBlcnNpc3RlbnQgaGFuZGxlcy4KLSAgICBlbnVtIEdsb2JhbEhhbmRsZVR5
cGUgewotI2RlZmluZSBFTlVNKG5hbWUpIG5hbWUsCi0gICAgICAgIEdsb2JhbEhhbmRsZVR5cGVM
aXN0KEVOVU0pCi0jdW5kZWYgRU5VTQotICAgIH07Ci0KLQotICAgIGNsYXNzIEdsb2JhbEhhbmRs
ZUluZm8gewotICAgIHB1YmxpYzoKLSAgICAgICAgR2xvYmFsSGFuZGxlSW5mbyh2b2lkKiBob3N0
LCBHbG9iYWxIYW5kbGVUeXBlIHR5cGUpIDogbV9ob3N0KGhvc3QpLCBtX3R5cGUodHlwZSkgeyB9
Ci0gICAgICAgIHZvaWQqIG1faG9zdDsKLSAgICAgICAgR2xvYmFsSGFuZGxlVHlwZSBtX3R5cGU7
Ci0gICAgfTsKLQotI2VuZGlmIC8vIE5ERUJVRwotCiAgICAgLy8gVGhlIGZvbGxvd2luZyBCYXRj
aCBzdHJ1Y3RzIGFuZCBtZXRob2RzIGFyZSB1c2VkIGZvciBzZXR0aW5nIG11bHRpcGxlCiAgICAg
Ly8gcHJvcGVydGllcyBvbiBhbiBPYmplY3RUZW1wbGF0ZSwgdXNlZCBmcm9tIHRoZSBnZW5lcmF0
ZWQgYmluZGluZ3MKICAgICAvLyBpbml0aWFsaXphdGlvbiAoQ29uZmlndXJlWFhYVGVtcGxhdGUp
LiBUaGlzIGdyZWF0bHkgcmVkdWNlcyB0aGUgYmluYXJ5CkBAIC0yMzMsMTAgKzIwNCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCByZW1vdmVWOEV2ZW50TGlzdGVuZXIoVjhF
dmVudExpc3RlbmVyKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlT2JqZWN0RXZlbnRMaXN0ZW5lcihW
OE9iamVjdEV2ZW50TGlzdGVuZXIqKTsKIAotICAgICAgICAvLyBQcm90ZWN0L1VucHJvdGVjdCBK
UyB3cmFwcGVycyBvZiBhIERPTSBvYmplY3QuCi0gICAgICAgIHN0YXRpYyB2b2lkIGdjUHJvdGVj
dCh2b2lkKiBkb21PYmplY3QpOwotICAgICAgICBzdGF0aWMgdm9pZCBnY1VucHJvdGVjdCh2b2lk
KiBkb21PYmplY3QpOwotCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgc3RhdGljIHZvaWQgc2V0
U1ZHQ29udGV4dCh2b2lkKiwgU1ZHRWxlbWVudCopOwogICAgICAgICBzdGF0aWMgU1ZHRWxlbWVu
dCogc3ZnQ29udGV4dCh2b2lkKik7CkBAIC00NjEsMTIgKzQyOCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgLy8gUHJvY2VzcyBhbnkgcGVuZGluZyBKYXZhU2NyaXB0IGNvbnNvbGUg
bWVzc2FnZXMuCiAgICAgICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NDb25zb2xlTWVzc2FnZXMoKTsK
IAotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgLy8gRm9yIGRlYnVnZ2luZyBhbmQgbGVhayBkZXRl
Y3Rpb24gcHVycG9zZS4KLSAgICAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJHbG9iYWxIYW5kbGUo
R2xvYmFsSGFuZGxlVHlwZSwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4pOwotICAg
ICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHZvaWQqLCB2ODo6UGVyc2lz
dGVudDx2ODo6VmFsdWU+KTsKLSNlbmRpZgotCiAgICAgICAgIC8vIENoZWNrIHdoZXRoZXIgYSBW
OCB2YWx1ZSBpcyBhIHdyYXBwZXIgb2YgdHlwZSB8Y2xhc3NUeXBlfC4KICAgICAgICAgc3RhdGlj
IGJvb2wgaXNXcmFwcGVyT2ZUeXBlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwgVjhDbGFzc0luZGV4
OjpWOFdyYXBwZXJUeXBlKTsKIApAQCAtNjg1LDYgKzY0Niw1NCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHJldHVybiBob2xkZXI7CiAgICAgfQogCisvLyBCZWdpbiBWOEdDQ29udHJv
bGxlci5oCisKKyNpZm5kZWYgTkRFQlVHCisKKyNkZWZpbmUgR2xvYmFsSGFuZGxlVHlwZUxpc3Qo
VikgICBcCisgICAgVihQUk9YWSkgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFYoTlBPQkpF
Q1QpICAgICAgICAgICAgICAgICAgIFwKKyAgICBWKFNDSEVEVUxFRF9BQ1RJT04pICAgICAgICAg
ICBcCisgICAgVihFVkVOVF9MSVNURU5FUikgICAgICAgICAgICAgXAorICAgIFYoTk9ERV9GSUxU
RVIpICAgICAgICAgICAgICAgIFwKKyAgICBWKFNDUklQVElOU1RBTkNFKSAgICAgICAgICAgICBc
CisgICAgVihTQ1JJUFRWQUxVRSkKKworCisgICAgLy8gSG9zdCBpbmZvcm1hdGlvbiBvZiBwZXJz
aXN0ZW50IGhhbmRsZXMuCisgICAgZW51bSBHbG9iYWxIYW5kbGVUeXBlIHsKKyNkZWZpbmUgRU5V
TShuYW1lKSBuYW1lLAorICAgICAgICBHbG9iYWxIYW5kbGVUeXBlTGlzdChFTlVNKQorI3VuZGVm
IEVOVU0KKyAgICB9OworCisgICAgY2xhc3MgR2xvYmFsSGFuZGxlSW5mbyB7CisgICAgcHVibGlj
OgorICAgICAgICBHbG9iYWxIYW5kbGVJbmZvKHZvaWQqIGhvc3QsIEdsb2JhbEhhbmRsZVR5cGUg
dHlwZSkgOiBtX2hvc3QoaG9zdCksIG1fdHlwZSh0eXBlKSB7IH0KKyAgICAgICAgdm9pZCogbV9o
b3N0OworICAgICAgICBHbG9iYWxIYW5kbGVUeXBlIG1fdHlwZTsKKyAgICB9OworCisjZW5kaWYg
Ly8gTkRFQlVHCisKKyAgICBjbGFzcyBWOEdDQ29udHJvbGxlciB7CisgICAgcHVibGljOgorICAg
ICAgICAvLyBQcm90ZWN0L1VucHJvdGVjdCBKUyB3cmFwcGVycyBvZiBhIERPTSBvYmplY3QuCisg
ICAgICAgIHN0YXRpYyB2b2lkIGdjUHJvdGVjdCh2b2lkKiBkb21PYmplY3QpOworICAgICAgICBz
dGF0aWMgdm9pZCBnY1VucHJvdGVjdCh2b2lkKiBkb21PYmplY3QpOworCisjaWZuZGVmIE5ERUJV
RworICAgICAgICAvLyBGb3IgZGVidWdnaW5nIGFuZCBsZWFrIGRldGVjdGlvbiBwdXJwb3NlLgor
ICAgICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlckdsb2JhbEhhbmRsZShHbG9iYWxIYW5kbGVUeXBl
LCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPik7CisgICAgICAgIHN0YXRpYyB2b2lk
IHVucmVnaXN0ZXJHbG9iYWxIYW5kbGUodm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4p
OworI2VuZGlmCisKKyAgICAgICAgc3RhdGljIHZvaWQgZ2NQcm9sb2d1ZSgpOworICAgICAgICBz
dGF0aWMgdm9pZCBnY0VwaWxvZ3VlKCk7CisgICAgfTsKKworLy8gRW5kIFY4R0NDb250cm9sbGVy
LmgKKwogfQogCiAjZW5kaWYgLy8gVjhQcm94eV9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDQ1
NjMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FdmVudExpc3RlbmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBWOEV2ZW50TGlzdGVuZXI6OlY4
RXZlbnRMaXN0ZW5lcihGcmFtZSogCiB7CiAgICAgbV9saXN0ZW5lciA9IHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+OjpOZXcobGlzdGVuZXIpOwogI2lmbmRlZiBOREVCVUcKLSAgICBWOFByb3h5
OjpyZWdpc3Rlckdsb2JhbEhhbmRsZShFVkVOVF9MSVNURU5FUiwgdGhpcywgbV9saXN0ZW5lcik7
CisgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKEVWRU5UX0xJU1RFTkVS
LCB0aGlzLCBtX2xpc3RlbmVyKTsKICNlbmRpZgogfQogCg==
</data>
<flag name="review"
          id="16907"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>