<?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>28458</bug_id>
          
          <creation_ts>2009-08-19 09:02:43 -0700</creation_ts>
          <short_desc>WebInspector: Allow dumping dangling nodes to the console</short_desc>
          <delta_ts>2009-08-19 10:56:18 -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>Web Inspector (Deprecated)</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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>141486</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-19 09:02:43 -0700</bug_when>
    <thetext>Currently dangling nodes are not printed, assertion is triggered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141487</commentid>
    <comment_count>1</comment_count>
      <attachid>35124</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-19 09:04:08 -0700</bug_when>
    <thetext>Created attachment 35124
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141532</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-19 10:56:18 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/JSInspectorBackendCustom.cpp
	M	WebCore/bindings/v8/custom/V8CustomBinding.h
	M	WebCore/bindings/v8/custom/V8InspectorBackendCustom.cpp
	M	WebCore/inspector/InspectorBackend.cpp
	M	WebCore/inspector/InspectorBackend.h
	M	WebCore/inspector/InspectorBackend.idl
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorDOMAgent.cpp
	M	WebCore/inspector/InspectorDOMAgent.h
	M	WebCore/inspector/InspectorFrontend.cpp
	M	WebCore/inspector/InspectorFrontend.h
	M	WebCore/inspector/front-end/ConsoleView.js
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/InjectedScript.js
Committed r47513</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35124</attachid>
            <date>2009-08-19 09:04:08 -0700</date>
            <delta_ts>2009-08-19 09:23:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>dangling</filename>
            <type>text/plain</type>
            <size>29486</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Yzk5Y2I2NS4uZGFkNjRlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAwOS0wOC0xOSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5
IEhhdGNoZXIuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBBbGxvdyBkdW1waW5nIGRhbmdsaW5n
IG5vZGVzIHRvIHRoZSBjb25zb2xlLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODQ1OAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnNwZWN0
b3JCYWNrZW5kQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21CaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yQmFj
a2VuZEN1c3RvbS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OmNsZWFyQ29uc29sZU1lc3NhZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlbGVhc2VE
YW5nbGluZ05vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzdGFy
dExpc3RlbmluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c3RvcExp
c3RlbmluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aGFuZGxlRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJpbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaERvY3VtZW50VG9Gcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRBcnJheUZvckNv
bnRhaW5lckNoaWxkcmVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmQ6OnNldERldGFjaGVkUm9vdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6Y2hpbGROb2RlQ291bnRVcGRhdGVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5fZm9ybWF0bm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUu
X3NldERldGFjaGVkUm9vdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90
eXBlLl9jaGlsZE5vZGVDb3VudFVwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNldERl
dGFjaGVkUm9vdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY2hpbGROb2RlQ291bnRVcGRhdGVk
KToKKyAgICAgICAgKEluc3BlY3RvckNvbnRyb2xsZXIucHVzaE5vZGVUb0Zyb250ZW5kKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzOgorICAgICAgICAo
SW5qZWN0ZWRTY3JpcHQucHVzaE5vZGVUb0Zyb250ZW5kKToKKyAgICAgICAgKEluamVjdGVkU2Ny
aXB0LmNyZWF0ZVByb3h5T2JqZWN0KToKKwogMjAwOS0wOC0xOCAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29u
LCBEYXZpZCBIeWF0dCBhbmQgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbnNwZWN0b3JCYWNrZW5kQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnNwZWN0b3JCYWNrZW5kQ3VzdG9tLmNwcAppbmRleCAzMGU2ZGMyLi45YWE2OGRhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yQmFja2VuZEN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckJhY2tlbmRDdXN0b20uY3Bw
CkBAIC0zNTgsMjEgKzM1OCw2IEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JCYWNrZW5kOjpub2RlRm9y
SWQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIHJldHVybiBKU0lu
c3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoaW5zcGVjdGVkV2luZG93LT5nbG9iYWxFeGVjKCks
IHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShpbnNwZWN0ZWRX
aW5kb3ctPmdsb2JhbEV4ZWMoKSksIG5vZGUpKTsKIH0KIAotSlNWYWx1ZSBKU0luc3BlY3RvckJh
Y2tlbmQ6OmlkRm9yTm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCi17
Ci0gICAgaWYgKGFyZ3Muc2l6ZSgpIDwgMSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0KLSAgICBKU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlciogd3JhcHBlciA9IEpTUXVhcmFudGlu
ZWRPYmplY3RXcmFwcGVyOjphc1dyYXBwZXIoYXJncy5hdCgwKSk7Ci0gICAgaWYgKCF3cmFwcGVy
KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIE5vZGUqIG5vZGUgPSB0b05v
ZGUod3JhcHBlci0+dW53cmFwcGVkT2JqZWN0KCkpOwotICAgIGlmIChub2RlKQotICAgICAgICBy
ZXR1cm4ganNOdW1iZXIoZXhlYywgaW1wbCgpLT5pZEZvck5vZGUobm9kZSkpOwotICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotfQotCiBKU1ZhbHVlIEpTSW5zcGVjdG9yQmFja2VuZDo6d3JhcE9i
amVjdChFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewogICAgIGlmIChhcmdzLnNp
emUoKSA8IDEpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bUJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5o
CmluZGV4IDAzMDk3OTMuLmE3YWM3NzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q3VzdG9tQmluZGluZy5oCkBAIC00MDksNyArNDA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBERUNMQVJFX0NBTExCQUNLKEluc3BlY3RvckJhY2tlbmRQYXVzZU9uRXhjZXB0
aW9ucyk7CiAgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSW5zcGVjdG9yQmFja2VuZFByb2ZpbGVy
RW5hYmxlZCk7CiAgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSW5zcGVjdG9yQmFja2VuZE5vZGVG
b3JJZCk7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSW5zcGVjdG9yQmFja2VuZElkRm9yTm9k
ZSk7CiAgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSW5zcGVjdG9yQmFja2VuZFdyYXBPYmplY3Qp
OwogICAgICAgICBERUNMQVJFX0NBTExCQUNLKEluc3BlY3RvckJhY2tlbmRVbndyYXBPYmplY3Qp
OwogICAgICAgICBERUNMQVJFX0NBTExCQUNLKEluc3BlY3RvckJhY2tlbmRQdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5z
cGVjdG9yQmFja2VuZEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
c3BlY3RvckJhY2tlbmRDdXN0b20uY3BwCmluZGV4IGNiOWIzYTkuLmMxMjVmM2EgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yQmFja2VuZEN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JCYWNrZW5kQ3Vz
dG9tLmNwcApAQCAtMjQzLDE5ICsyNDMsNiBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSW5zcGVjdG9y
QmFja2VuZE5vZGVGb3JJZCkKICAgICByZXR1cm4gVjhET01XcmFwcGVyOjpjb252ZXJ0VG9WOE9i
amVjdChWOENsYXNzSW5kZXg6Ok5PREUsIG5vZGUpOwogfQogCi1DQUxMQkFDS19GVU5DX0RFQ0wo
SW5zcGVjdG9yQmFja2VuZElkRm9yTm9kZSkKLXsKLSAgICBJTkNfU1RBVFMoIkluc3BlY3RvckJh
Y2tlbmQuaWRGb3JOb2RlKCkiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBJbnNwZWN0b3JCYWNrZW5kKiBpbnNwZWN0
b3JCYWNrZW5kID0gVjhET01XcmFwcGVyOjpjb252ZXJ0VG9OYXRpdmVPYmplY3Q8SW5zcGVjdG9y
QmFja2VuZD4oVjhDbGFzc0luZGV4OjpJTlNQRUNUT1JCQUNLRU5ELCBhcmdzLkhvbGRlcigpKTsK
LSAgICBOb2RlKiBub2RlID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxO
b2RlPih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKLSAgICBpZiAobm9k
ZSkKLSAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhpbnNwZWN0b3JCYWNrZW5kLT5pZEZv
ck5vZGUobm9kZSkpOwotICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci19Ci0KIENBTExCQUNL
X0ZVTkNfREVDTChJbnNwZWN0b3JCYWNrZW5kV3JhcE9iamVjdCkKIHsKICAgICBJTkNfU1RBVFMo
Ikluc3BlY3RvckJhY2tlbmQud3JhcE9iamVjdCgpIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmQuY3BwCmluZGV4IGFlMjU5NmEuLmRiNmJjMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuY3BwCkBAIC00MDQsMTMgKzQwNCw2IEBAIE5vZGUqIEluc3BlY3RvckJh
Y2tlbmQ6Om5vZGVGb3JJZChsb25nIG5vZGVJZCkKICAgICByZXR1cm4gMDsKIH0KIAotbG9uZyBJ
bnNwZWN0b3JCYWNrZW5kOjppZEZvck5vZGUoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAobV9pbnNw
ZWN0b3JDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gbV9pbnNwZWN0b3JDb250cm9sbGVyLT5k
b21BZ2VudCgpLT5pZEZvck5vZGUobm9kZSk7Ci0gICAgcmV0dXJuIC0xOwotfQotCiBTY3JpcHRW
YWx1ZSBJbnNwZWN0b3JCYWNrZW5kOjp3cmFwT2JqZWN0KGNvbnN0IFNjcmlwdFZhbHVlJiBvYmpl
Y3QpCiB7CiAgICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckJhY2tlbmQuaAppbmRleCBjNDBlMWI5Li5kYWMxNzFhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQmFja2VuZC5oCkBAIC0xMzMsNyArMTMzLDYgQEAgcHVibGljOgogICAgIC8vIEdlbmVy
aWMgY29kZSBjYWxsZWQgZnJvbSBjdXN0b20gaW1wbGVtZW50YXRpb25zLgogICAgIHZvaWQgaGln
aGxpZ2h0KGxvbmcgbm9kZUlkKTsKICAgICBOb2RlKiBub2RlRm9ySWQobG9uZyBub2RlSWQpOwot
ICAgIGxvbmcgaWRGb3JOb2RlKE5vZGUqIG5vZGUpOwogICAgIFNjcmlwdFZhbHVlIHdyYXBPYmpl
Y3QoY29uc3QgU2NyaXB0VmFsdWUmIG9iamVjdCk7CiAgICAgU2NyaXB0VmFsdWUgdW53cmFwT2Jq
ZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogICAgIGxvbmcgcHVzaE5vZGVQYXRoVG9Gcm9u
dGVuZChOb2RlKiBub2RlLCBib29sIHNlbGVjdEluVUkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmlkbAppbmRleCA5NDI4MTllLi5jOTM3NDc1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JCYWNrZW5kLmlkbApAQCAtMTA3LDcgKzEwNyw2IEBAIG1vZHVsZSBjb3JlIHsKIAog
ICAgICAgICAvLyBDYWxsZWQgZnJvbSBJbmplY3RlZFNjcmlwdC4KICAgICAgICAgW0N1c3RvbV0g
RE9NT2JqZWN0IG5vZGVGb3JJZChpbiBsb25nIG5vZGVJZCk7Ci0gICAgICAgIFtDdXN0b21dIGxv
bmcgaWRGb3JOb2RlKGluIERPTU9iamVjdCBub2RlKTsKICAgICAgICAgW0N1c3RvbV0gbG9uZyB3
cmFwT2JqZWN0KGluIERPTU9iamVjdCBvYmplY3QpOwogICAgICAgICBbQ3VzdG9tXSBET01PYmpl
Y3QgdW53cmFwT2JqZWN0KGluIGxvbmcgb2JqZWN0SWQpOwogICAgICAgICBbQ3VzdG9tXSBpbnQg
cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChpbiBET01PYmplY3Qgbm9kZSwgaW4gYm9vbGVhbiBzZWxl
Y3RJblVJKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXgg
MzAzNWQ0ZS4uMTY2MjU4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTM4OSw2ICszODksOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsZWFy
Q29uc29sZU1lc3NhZ2VzKGJvb2wgY2xlYXJVSSkKICAgICBtX3ByZXZpb3VzTWVzc2FnZSA9IDA7
CiAgICAgbV9ncm91cExldmVsID0gMDsKICAgICBtX2lkVG9Db25zb2xlT2JqZWN0LmNsZWFyKCk7
CisgICAgaWYgKG1fZG9tQWdlbnQpCisgICAgICAgIG1fZG9tQWdlbnQtPnJlbGVhc2VEYW5nbGlu
Z05vZGVzKCk7CiAgICAgaWYgKGNsZWFyVUkgJiYgbV9mcm9udGVuZCkKICAgICAgICAgbV9mcm9u
dGVuZC0+Y2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAppbmRleCA4YTA4MWY3Li5iZjY2YWRmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC04NSw2ICs4NSwxMiBAQCBib29sIEluc3BlY3RvckRP
TUFnZW50OjpzZXREb2N1bWVudChEb2N1bWVudCogZG9jKQogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZWxlYXNlRGFuZ2xpbmdOb2RlcygpCit7CisgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fZGFuZ2xpbmdOb2RlVG9JZE1hcHMpOworICAgIG1fZGFuZ2xpbmdO
b2RlVG9JZE1hcHMuY2xlYXIoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c3RhcnRM
aXN0ZW5pbmcoRG9jdW1lbnQqIGRvYykKIHsKICAgICBpZiAobV9kb2N1bWVudHMuY29udGFpbnMo
ZG9jKSkKQEAgLTkzLDcgKzk5LDYgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c3RhcnRMaXN0
ZW5pbmcoRG9jdW1lbnQqIGRvYykKICAgICBkb2MtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1l
cygpLkRPTUNvbnRlbnRMb2FkZWRFdmVudCwgdGhpcywgZmFsc2UpOwogICAgIGRvYy0+YWRkRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NTm9kZUluc2VydGVkRXZlbnQsIHRoaXMsIGZhbHNl
KTsKICAgICBkb2MtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLkRPTU5vZGVSZW1vdmVk
RXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICBkb2MtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1l
cygpLkRPTU5vZGVSZW1vdmVkRnJvbURvY3VtZW50RXZlbnQsIHRoaXMsIHRydWUpOwogICAgIGRv
Yy0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NQXR0ck1vZGlmaWVkRXZlbnQsIHRo
aXMsIGZhbHNlKTsKICAgICBkb2MtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmxvYWRF
dmVudCwgdGhpcywgdHJ1ZSk7CiAgICAgbV9kb2N1bWVudHMuYWRkKGRvYyk7CkBAIC0xMDcsNyAr
MTEyLDYgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c3RvcExpc3RlbmluZyhEb2N1bWVudCog
ZG9jKQogICAgIGRvYy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NQ29udGVu
dExvYWRlZEV2ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgZG9jLT5yZW1vdmVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS5ET01Ob2RlSW5zZXJ0ZWRFdmVudCwgdGhpcywgZmFsc2UpOwogICAgIGRv
Yy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRFdmVudCwg
dGhpcywgZmFsc2UpOwotICAgIGRvYy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
RE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgdGhpcywgdHJ1ZSk7CiAgICAgZG9jLT5y
ZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01BdHRyTW9kaWZpZWRFdmVudCwgdGhp
cywgZmFsc2UpOwogICAgIGRvYy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkubG9h
ZEV2ZW50LCB0aGlzLCB0cnVlKTsKICAgICBtX2RvY3VtZW50cy5yZW1vdmUoZG9jKTsKQEAgLTEx
OCwxNCArMTIyLDggQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6aGFuZGxlRXZlbnQoRXZlbnQq
IGV2ZW50LCBib29sKQogICAgIEF0b21pY1N0cmluZyB0eXBlID0gZXZlbnQtPnR5cGUoKTsKICAg
ICBOb2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKIAotICAgIC8vIFJlbW92
ZSBtYXBwaW5nIGVudHJ5IGlmIG5lY2Vzc2FyeS4KLSAgICBpZiAodHlwZSA9PSBldmVudE5hbWVz
KCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCkgewotICAgICAgICB1bmJpbmQobm9k
ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBpZiAodHlwZSA9PSBldmVudE5hbWVz
KCkuRE9NQXR0ck1vZGlmaWVkRXZlbnQpIHsKLSAgICAgICAgbG9uZyBpZCA9IGlkRm9yTm9kZShu
b2RlKTsKKyAgICAgICAgbG9uZyBpZCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZSk7
CiAgICAgICAgIC8vIElmIG5vZGUgaXMgbm90IG1hcHBlZCB5ZXQgLT4gaWdub3JlIHRoZSBldmVu
dC4KICAgICAgICAgaWYgKCFpZCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzNiwyMCArMTM0
LDIzIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwg
Ym9vbCkKICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShub2RlKSkKICAgICAgICAgICAgIHJldHVy
bjsKIAorICAgICAgICAvLyBXZSBjb3VsZCBiZSBhdHRhY2hpbmcgZXhpc3Rpbmcgc3VidHJlZS4g
Rm9yZ2V0IHRoZSBiaW5kaW5ncy4KKyAgICAgICAgdW5iaW5kKG5vZGUsICZtX2RvY3VtZW50Tm9k
ZVRvSWRNYXApOworCiAgICAgICAgIE5vZGUqIHBhcmVudCA9IHN0YXRpY19jYXN0PE11dGF0aW9u
RXZlbnQqPihldmVudCktPnJlbGF0ZWROb2RlKCk7Ci0gICAgICAgIGxvbmcgcGFyZW50SWQgPSBp
ZEZvck5vZGUocGFyZW50KTsKKyAgICAgICAgbG9uZyBwYXJlbnRJZCA9IG1fZG9jdW1lbnROb2Rl
VG9JZE1hcC5nZXQocGFyZW50KTsKICAgICAgICAgLy8gUmV0dXJuIGlmIHBhcmVudCBpcyBub3Qg
bWFwcGVkIHlldC4KICAgICAgICAgaWYgKCFwYXJlbnRJZCkKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBpZiAoIW1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMocGFyZW50SWQpKSB7
CiAgICAgICAgICAgICAvLyBObyBjaGlsZHJlbiBhcmUgbWFwcGVkIHlldCAtPiBvbmx5IG5vdGlm
eSBvbiBjaGFuZ2VzIG9mIGhhc0NoaWxkcmVuLgotICAgICAgICAgICAgbV9mcm9udGVuZC0+aGFz
Q2hpbGRyZW5VcGRhdGVkKHBhcmVudElkLCB0cnVlKTsKKyAgICAgICAgICAgIG1fZnJvbnRlbmQt
PmNoaWxkTm9kZUNvdW50VXBkYXRlZChwYXJlbnRJZCwgaW5uZXJDaGlsZE5vZGVDb3VudChwYXJl
bnQpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIENoaWxkcmVuIGhhdmUgYmVl
biByZXF1ZXN0ZWQgLT4gcmV0dXJuIHZhbHVlIG9mIGEgbmV3IGNoaWxkLgotICAgICAgICAgICAg
bG9uZyBwcmV2SWQgPSBpZEZvck5vZGUoaW5uZXJQcmV2aW91c1NpYmxpbmcobm9kZSkpOworICAg
ICAgICAgICAgbG9uZyBwcmV2SWQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KGlubmVyUHJl
dmlvdXNTaWJsaW5nKG5vZGUpKTsKIAotICAgICAgICAgICAgU2NyaXB0T2JqZWN0IHZhbHVlID0g
YnVpbGRPYmplY3RGb3JOb2RlKG5vZGUsIDApOworICAgICAgICAgICAgU2NyaXB0T2JqZWN0IHZh
bHVlID0gYnVpbGRPYmplY3RGb3JOb2RlKG5vZGUsIDAsICZtX2RvY3VtZW50Tm9kZVRvSWRNYXAp
OwogICAgICAgICAgICAgbV9mcm9udGVuZC0+Y2hpbGROb2RlSW5zZXJ0ZWQocGFyZW50SWQsIHBy
ZXZJZCwgdmFsdWUpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICh0eXBlID09IGV2ZW50TmFt
ZXMoKS5ET01Ob2RlUmVtb3ZlZEV2ZW50KSB7CkBAIC0xNTcsNyArMTU4LDcgQEAgdm9pZCBJbnNw
ZWN0b3JET01BZ2VudDo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIE5vZGUqIHBhcmVudCA9IHN0YXRpY19jYXN0PE11dGF0aW9u
RXZlbnQqPihldmVudCktPnJlbGF0ZWROb2RlKCk7Ci0gICAgICAgIGxvbmcgcGFyZW50SWQgPSBp
ZEZvck5vZGUocGFyZW50KTsKKyAgICAgICAgbG9uZyBwYXJlbnRJZCA9IG1fZG9jdW1lbnROb2Rl
VG9JZE1hcC5nZXQocGFyZW50KTsKICAgICAgICAgLy8gSWYgcGFyZW50IGlzIG5vdCBtYXBwZWQg
eWV0IC0+IGlnbm9yZSB0aGUgZXZlbnQuCiAgICAgICAgIGlmICghcGFyZW50SWQpCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0xNjUsMjggKzE2NiwyOSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wpCiAgICAgICAgIGlmICghbV9jaGlsZHJl
blJlcXVlc3RlZC5jb250YWlucyhwYXJlbnRJZCkpIHsKICAgICAgICAgICAgIC8vIE5vIGNoaWxk
cmVuIGFyZSBtYXBwZWQgeWV0IC0+IG9ubHkgbm90aWZ5IG9uIGNoYW5nZXMgb2YgaGFzQ2hpbGRy
ZW4uCiAgICAgICAgICAgICBpZiAoaW5uZXJDaGlsZE5vZGVDb3VudChwYXJlbnQpID09IDEpCi0g
ICAgICAgICAgICAgICAgbV9mcm9udGVuZC0+aGFzQ2hpbGRyZW5VcGRhdGVkKHBhcmVudElkLCBm
YWxzZSk7CisgICAgICAgICAgICAgICAgbV9mcm9udGVuZC0+Y2hpbGROb2RlQ291bnRVcGRhdGVk
KHBhcmVudElkLCAwKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fZnJvbnRlbmQt
PmNoaWxkTm9kZVJlbW92ZWQocGFyZW50SWQsIGlkRm9yTm9kZShub2RlKSk7CisgICAgICAgICAg
ICBtX2Zyb250ZW5kLT5jaGlsZE5vZGVSZW1vdmVkKHBhcmVudElkLCBtX2RvY3VtZW50Tm9kZVRv
SWRNYXAuZ2V0KG5vZGUpKTsKICAgICAgICAgfQorICAgICAgICB1bmJpbmQobm9kZSwgJm1fZG9j
dW1lbnROb2RlVG9JZE1hcCk7CiAgICAgfSBlbHNlIGlmICh0eXBlID09IGV2ZW50TmFtZXMoKS5E
T01Db250ZW50TG9hZGVkRXZlbnQpIHsKICAgICAgICAgLy8gUmUtcHVzaCBkb2N1bWVudCBvbmNl
IGl0IGlzIGxvYWRlZC4KICAgICAgICAgZGlzY2FyZEJpbmRpbmdzKCk7CiAgICAgICAgIHB1c2hE
b2N1bWVudFRvRnJvbnRlbmQoKTsKICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcygp
LmxvYWRFdmVudCkgewotICAgICAgICBsb25nIGZyYW1lT3duZXJJZCA9IGlkRm9yTm9kZShub2Rl
KTsKKyAgICAgICAgbG9uZyBmcmFtZU93bmVySWQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0
KG5vZGUpOwogICAgICAgICBpZiAoIWZyYW1lT3duZXJJZCkKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBpZiAoIW1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMoZnJhbWVPd25lcklk
KSkgewogICAgICAgICAgICAgLy8gTm8gY2hpbGRyZW4gYXJlIG1hcHBlZCB5ZXQgLT4gb25seSBu
b3RpZnkgb24gY2hhbmdlcyBvZiBoYXNDaGlsZHJlbi4KLSAgICAgICAgICAgIG1fZnJvbnRlbmQt
Pmhhc0NoaWxkcmVuVXBkYXRlZChmcmFtZU93bmVySWQsIHRydWUpOworICAgICAgICAgICAgbV9m
cm9udGVuZC0+Y2hpbGROb2RlQ291bnRVcGRhdGVkKGZyYW1lT3duZXJJZCwgaW5uZXJDaGlsZE5v
ZGVDb3VudChub2RlKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBSZS1hZGQg
ZnJhbWUgb3duZXIgZWxlbWVudCB0b2dldGhlciB3aXRoIGl0cyBuZXcgY2hpbGRyZW4uCi0gICAg
ICAgICAgICBsb25nIHBhcmVudElkID0gaWRGb3JOb2RlKGlubmVyUGFyZW50Tm9kZShub2RlKSk7
CisgICAgICAgICAgICBsb25nIHBhcmVudElkID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChp
bm5lclBhcmVudE5vZGUobm9kZSkpOwogICAgICAgICAgICAgbV9mcm9udGVuZC0+Y2hpbGROb2Rl
UmVtb3ZlZChwYXJlbnRJZCwgZnJhbWVPd25lcklkKTsKLSAgICAgICAgICAgIGxvbmcgcHJldklk
ID0gaWRGb3JOb2RlKGlubmVyUHJldmlvdXNTaWJsaW5nKG5vZGUpKTsKLSAgICAgICAgICAgIFNj
cmlwdE9iamVjdCB2YWx1ZSA9IGJ1aWxkT2JqZWN0Rm9yTm9kZShub2RlLCAwKTsKKyAgICAgICAg
ICAgIGxvbmcgcHJldklkID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChpbm5lclByZXZpb3Vz
U2libGluZyhub2RlKSk7CisgICAgICAgICAgICBTY3JpcHRPYmplY3QgdmFsdWUgPSBidWlsZE9i
amVjdEZvck5vZGUobm9kZSwgMCwgJm1fZG9jdW1lbnROb2RlVG9JZE1hcCk7CiAgICAgICAgICAg
ICBtX2Zyb250ZW5kLT5jaGlsZE5vZGVJbnNlcnRlZChwYXJlbnRJZCwgcHJldklkLCB2YWx1ZSk7
CiAgICAgICAgICAgICAvLyBJbnZhbGlkYXRlIGNoaWxkcmVuIHJlcXVlc3RlZCBmbGFnIGZvciB0
aGUgZWxlbWVudC4KICAgICAgICAgICAgIG1fY2hpbGRyZW5SZXF1ZXN0ZWQucmVtb3ZlKG1fY2hp
bGRyZW5SZXF1ZXN0ZWQuZmluZChmcmFtZU93bmVySWQpKTsKQEAgLTE5NCwzNyArMTk2LDQ3IEBA
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCkK
ICAgICB9CiB9CiAKLWxvbmcgSW5zcGVjdG9yRE9NQWdlbnQ6OmJpbmQoTm9kZSogbm9kZSkKK2xv
bmcgSW5zcGVjdG9yRE9NQWdlbnQ6OmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRNYXAqIG5vZGVz
TWFwKQogewotICAgIEhhc2hNYXA8Tm9kZSosIGxvbmc+OjppdGVyYXRvciBpdCA9IG1fbm9kZVRv
SWQuZmluZChub2RlKTsKLSAgICBpZiAoaXQgIT0gbV9ub2RlVG9JZC5lbmQoKSkKLSAgICAgICAg
cmV0dXJuIGl0LT5zZWNvbmQ7Ci0gICAgbG9uZyBpZCA9IG1fbGFzdE5vZGVJZCsrOwotICAgIG1f
bm9kZVRvSWQuc2V0KG5vZGUsIGlkKTsKKyAgICBsb25nIGlkID0gbm9kZXNNYXAtPmdldChub2Rl
KTsKKyAgICBpZiAoaWQpCisgICAgICAgIHJldHVybiBpZDsKKyAgICBpZCA9IG1fbGFzdE5vZGVJ
ZCsrOworICAgIG5vZGVzTWFwLT5zZXQobm9kZSwgaWQpOwogICAgIG1faWRUb05vZGUuc2V0KGlk
LCBub2RlKTsKKyAgICBtX2lkVG9Ob2Rlc01hcC5zZXQoaWQsIG5vZGVzTWFwKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZChOb2RlKiBub2RlKQor
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBu
b2Rlc01hcCkKIHsKICAgICBpZiAobm9kZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CiAgICAg
ICAgIGNvbnN0IEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lciA9IHN0YXRpY19jYXN0
PGNvbnN0IEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KG5vZGUpOwogICAgICAgICBzdG9wTGlzdGVu
aW5nKGZyYW1lT3duZXItPmNvbnRlbnREb2N1bWVudCgpKTsKICAgICB9CiAKLSAgICBIYXNoTWFw
PE5vZGUqLCBsb25nPjo6aXRlcmF0b3IgaXQgPSBtX25vZGVUb0lkLmZpbmQobm9kZSk7Ci0gICAg
aWYgKGl0ICE9IG1fbm9kZVRvSWQuZW5kKCkpIHsKLSAgICAgICAgbV9pZFRvTm9kZS5yZW1vdmUo
bV9pZFRvTm9kZS5maW5kKGl0LT5zZWNvbmQpKTsKLSAgICAgICAgbV9jaGlsZHJlblJlcXVlc3Rl
ZC5yZW1vdmUobV9jaGlsZHJlblJlcXVlc3RlZC5maW5kKGl0LT5zZWNvbmQpKTsKLSAgICAgICAg
bV9ub2RlVG9JZC5yZW1vdmUoaXQpOworICAgIGludCBpZCA9IG5vZGVzTWFwLT5nZXQobm9kZSk7
CisgICAgaWYgKCFpZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1faWRUb05vZGUucmVtb3ZlKGlk
KTsKKyAgICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOworICAgIGJvb2wgY2hpbGRyZW5SZXF1ZXN0
ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKGlkKTsKKyAgICBpZiAoY2hpbGRyZW5S
ZXF1ZXN0ZWQpIHsKKyAgICAgICAgLy8gVW5iaW5kIHN1YnRyZWUga25vd24gdG8gY2xpZW50IHJl
Y3Vyc2l2ZWx5LgorICAgICAgICBtX2NoaWxkcmVuUmVxdWVzdGVkLnJlbW92ZShpZCk7CisgICAg
ICAgIE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENoaWxkKG5vZGUpOworICAgICAgICB3aGlsZSAo
Y2hpbGQpIHsKKyAgICAgICAgICAgIHVuYmluZChjaGlsZCwgbm9kZXNNYXApOworICAgICAgICAg
ICAgY2hpbGQgPSBpbm5lck5leHRTaWJsaW5nKGNoaWxkKTsKKyAgICAgICAgfQogICAgIH0KIH0K
IAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaERvY3VtZW50VG9Gcm9udGVuZCgpCiB7CiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbWFpbkZyYW1lRG9jdW1lbnQoKTsKLSAgICBpZiAoIW1f
bm9kZVRvSWQuY29udGFpbnMoZG9jdW1lbnQpKQotICAgICAgICBtX2Zyb250ZW5kLT5zZXREb2N1
bWVudChidWlsZE9iamVjdEZvck5vZGUoZG9jdW1lbnQsIDIpKTsKKyAgICBpZiAoIW1fZG9jdW1l
bnROb2RlVG9JZE1hcC5jb250YWlucyhkb2N1bWVudCkpCisgICAgICAgIG1fZnJvbnRlbmQtPnNl
dERvY3VtZW50KGJ1aWxkT2JqZWN0Rm9yTm9kZShkb2N1bWVudCwgMiwgJm1fZG9jdW1lbnROb2Rl
VG9JZE1hcCkpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoQ2hpbGROb2Rlc1Rv
RnJvbnRlbmQobG9uZyBub2RlSWQpCkBAIC0yMzUsMTUgKzI0NywxNyBAQCB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQobG9uZyBub2RlSWQpCiAgICAgaWYg
KG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgU2NyaXB0QXJyYXkgY2hpbGRyZW4gPSBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRy
ZW4obm9kZSwgMSk7CisgICAgTm9kZVRvSWRNYXAqIG5vZGVNYXAgPSBtX2lkVG9Ob2Rlc01hcC5n
ZXQobm9kZUlkKTsKKyAgICBTY3JpcHRBcnJheSBjaGlsZHJlbiA9IGJ1aWxkQXJyYXlGb3JDb250
YWluZXJDaGlsZHJlbihub2RlLCAxLCBub2RlTWFwKTsKICAgICBtX2NoaWxkcmVuUmVxdWVzdGVk
LmFkZChub2RlSWQpOwogICAgIG1fZnJvbnRlbmQtPnNldENoaWxkTm9kZXMobm9kZUlkLCBjaGls
ZHJlbik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiB7
Ci0gICAgbV9ub2RlVG9JZC5jbGVhcigpOworICAgIG1fZG9jdW1lbnROb2RlVG9JZE1hcC5jbGVh
cigpOwogICAgIG1faWRUb05vZGUuY2xlYXIoKTsKKyAgICByZWxlYXNlRGFuZ2xpbmdOb2Rlcygp
OwogICAgIG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY2xlYXIoKTsKIH0KIApAQCAtMjU4LDE2ICsyNzIs
NiBAQCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklkKGxvbmcgaWQpCiAgICAgcmV0
dXJuIDA7CiB9CiAKLWxvbmcgSW5zcGVjdG9yRE9NQWdlbnQ6OmlkRm9yTm9kZShOb2RlKiBub2Rl
KQotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgSGFzaE1hcDxOb2Rl
KiwgbG9uZz46Oml0ZXJhdG9yIGl0ID0gbV9ub2RlVG9JZC5maW5kKG5vZGUpOwotICAgIGlmIChp
dCAhPSBtX25vZGVUb0lkLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKLSAgICBy
ZXR1cm4gMDsKLX0KLQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0Q2hpbGROb2Rlcyhsb25n
IGNhbGxJZCwgbG9uZyBub2RlSWQpCiB7CiAgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKG5v
ZGVJZCk7CkBAIC0yODIsMjggKzI4NiwzNyBAQCBsb25nIEluc3BlY3RvckRPTUFnZW50OjpwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGVUb1B1c2gpCiAgICAgcHVzaERvY3VtZW50VG9G
cm9udGVuZCgpOwogCiAgICAgLy8gUmV0dXJuIGlkIGluIGNhc2UgdGhlIG5vZGUgaXMga25vd24u
Ci0gICAgbG9uZyByZXN1bHQgPSBpZEZvck5vZGUobm9kZVRvUHVzaCk7CisgICAgbG9uZyByZXN1
bHQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KG5vZGVUb1B1c2gpOwogICAgIGlmIChyZXN1
bHQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBOb2RlKiBub2RlID0gaW5uZXJQYXJl
bnROb2RlKG5vZGVUb1B1c2gpOwotICAgIEFTU0VSVChub2RlKTsgIC8vIE5vZGUgaXMgZGV0YWNo
ZWQgb3IgaXMgYSBkb2N1bWVudCBpdHNlbGYKLQorICAgIE5vZGUqIG5vZGUgPSBub2RlVG9QdXNo
OwogICAgIFZlY3RvcjxOb2RlKj4gcGF0aDsKLSAgICB3aGlsZSAobm9kZSAmJiAhaWRGb3JOb2Rl
KG5vZGUpKSB7Ci0gICAgICAgIHBhdGguYXBwZW5kKG5vZGUpOwotICAgICAgICBub2RlID0gaW5u
ZXJQYXJlbnROb2RlKG5vZGUpOworICAgIE5vZGVUb0lkTWFwKiBkYW5nbGluZ01hcCA9IDA7Cisg
ICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgTm9kZSogcGFyZW50ID0gaW5uZXJQYXJlbnROb2Rl
KG5vZGUpOworICAgICAgICBpZiAoIXBhcmVudCkgeworICAgICAgICAgICAgLy8gTm9kZSBiZWlu
ZyBwdXNoZWQgaXMgZGV0YWNoZWQgLT4gcHVzaCBzdWJ0cmVlIHJvb3QuCisgICAgICAgICAgICBk
YW5nbGluZ01hcCA9IG5ldyBOb2RlVG9JZE1hcCgpOworICAgICAgICAgICAgbV9kYW5nbGluZ05v
ZGVUb0lkTWFwcy5hcHBlbmQoZGFuZ2xpbmdNYXApOworICAgICAgICAgICAgbV9mcm9udGVuZC0+
c2V0RGV0YWNoZWRSb290KGJ1aWxkT2JqZWN0Rm9yTm9kZShub2RlLCAwLCBkYW5nbGluZ01hcCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwYXRo
LmFwcGVuZChwYXJlbnQpOworICAgICAgICAgICAgaWYgKG1fZG9jdW1lbnROb2RlVG9JZE1hcC5n
ZXQocGFyZW50KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBub2RlID0gcGFyZW50OworICAgICAgICB9CiAgICAgfQogCi0gICAgLy8g
ZWxlbWVudCBpcyBrbm93biB0byB0aGUgY2xpZW50Ci0gICAgQVNTRVJUKG5vZGUpOwotICAgIHBh
dGguYXBwZW5kKG5vZGUpOworICAgIE5vZGVUb0lkTWFwKiBtYXAgPSBkYW5nbGluZ01hcCA/IGRh
bmdsaW5nTWFwIDogJm1fZG9jdW1lbnROb2RlVG9JZE1hcDsKICAgICBmb3IgKGludCBpID0gcGF0
aC5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBsb25nIG5vZGVJZCA9IGlkRm9y
Tm9kZShwYXRoLmF0KGkpKTsKKyAgICAgICAgbG9uZyBub2RlSWQgPSBtYXAtPmdldChwYXRoLmF0
KGkpKTsKICAgICAgICAgQVNTRVJUKG5vZGVJZCk7CiAgICAgICAgIHB1c2hDaGlsZE5vZGVzVG9G
cm9udGVuZChub2RlSWQpOwogICAgIH0KLSAgICByZXR1cm4gaWRGb3JOb2RlKG5vZGVUb1B1c2gp
OworICAgIHJldHVybiBtYXAtPmdldChub2RlVG9QdXNoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6c2V0QXR0cmlidXRlKGxvbmcgY2FsbElkLCBsb25nIGVsZW1lbnRJZCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMzQ1LDExICszNTgsMTEgQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0VGV4dE5vZGVWYWx1ZShsb25nIGNhbGxJZCwgbG9u
ZyBub2RlSWQsIGNvbnN0IFN0cmluZyYKICAgICB9CiB9CiAKLVNjcmlwdE9iamVjdCBJbnNwZWN0
b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqIG5vZGUsIGludCBkZXB0aCkKK1Nj
cmlwdE9iamVjdCBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqIG5v
ZGUsIGludCBkZXB0aCwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKQogewogICAgIFNjcmlwdE9iamVj
dCB2YWx1ZSA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwogCi0gICAgbG9uZyBpZCA9
IGJpbmQobm9kZSk7CisgICAgbG9uZyBpZCA9IGJpbmQobm9kZSwgbm9kZXNNYXApOwogICAgIFN0
cmluZyBub2RlTmFtZTsKICAgICBTdHJpbmcgbm9kZVZhbHVlOwogCkBAIC0zODAsNyArMzkzLDcg
QEAgU2NyaXB0T2JqZWN0IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUoTm9k
ZSogbm9kZSwgaW50IGRlcHRoKQogICAgIGlmIChub2RlLT5ub2RlVHlwZSgpID09IE5vZGU6OkVM
RU1FTlRfTk9ERSB8fCBub2RlLT5ub2RlVHlwZSgpID09IE5vZGU6OkRPQ1VNRU5UX05PREUpIHsK
ICAgICAgICAgaW50IG5vZGVDb3VudCA9IGlubmVyQ2hpbGROb2RlQ291bnQobm9kZSk7CiAgICAg
ICAgIHZhbHVlLnNldCgiY2hpbGROb2RlQ291bnQiLCBub2RlQ291bnQpOwotICAgICAgICBTY3Jp
cHRBcnJheSBjaGlsZHJlbiA9IGJ1aWxkQXJyYXlGb3JDb250YWluZXJDaGlsZHJlbihub2RlLCBk
ZXB0aCk7CisgICAgICAgIFNjcmlwdEFycmF5IGNoaWxkcmVuID0gYnVpbGRBcnJheUZvckNvbnRh
aW5lckNoaWxkcmVuKG5vZGUsIGRlcHRoLCBub2Rlc01hcCk7CiAgICAgICAgIGlmIChjaGlsZHJl
bi5sZW5ndGgoKSA+IDApCiAgICAgICAgICAgICB2YWx1ZS5zZXQoImNoaWxkcmVuIiwgY2hpbGRy
ZW4pOwogICAgIH0KQEAgLTQwNSw3ICs0MTgsNyBAQCBTY3JpcHRBcnJheSBJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRBcnJheUZvckVsZW1lbnRBdHRyaWJ1dGVzKEVsZW1lbnQqIGVsZW1lbnQpCiAg
ICAgcmV0dXJuIGF0dHJpYnV0ZXNWYWx1ZTsKIH0KIAotU2NyaXB0QXJyYXkgSW5zcGVjdG9yRE9N
QWdlbnQ6OmJ1aWxkQXJyYXlGb3JDb250YWluZXJDaGlsZHJlbihOb2RlKiBjb250YWluZXIsIGlu
dCBkZXB0aCkKK1NjcmlwdEFycmF5IEluc3BlY3RvckRPTUFnZW50OjpidWlsZEFycmF5Rm9yQ29u
dGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFpbmVyLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBu
b2Rlc01hcCkKIHsKICAgICBTY3JpcHRBcnJheSBjaGlsZHJlbiA9IG1fZnJvbnRlbmQtPm5ld1Nj
cmlwdEFycmF5KCk7CiAgICAgaWYgKGRlcHRoID09IDApIHsKQEAgLTQxNCw3ICs0MjcsNyBAQCBT
Y3JpcHRBcnJheSBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxk
cmVuKE5vZGUqIGNvbnRhaW5lciwgaQogICAgICAgICBpZiAoaW5uZXJDaGlsZE5vZGVDb3VudChj
b250YWluZXIpID09IDEpIHsKICAgICAgICAgICAgIE5vZGUgKmNoaWxkID0gaW5uZXJGaXJzdENo
aWxkKGNvbnRhaW5lcik7CiAgICAgICAgICAgICBpZiAoY2hpbGQtPm5vZGVUeXBlKCkgPT0gTm9k
ZTo6VEVYVF9OT0RFKQotICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNldChpbmRleCsrLCBidWls
ZE9iamVjdEZvck5vZGUoY2hpbGQsIDApKTsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbi5zZXQo
aW5kZXgrKywgYnVpbGRPYmplY3RGb3JOb2RlKGNoaWxkLCAwLCBub2Rlc01hcCkpOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBjaGlsZHJlbjsKICAgICB9IGVsc2UgaWYgKGRlcHRoID4gMCkg
ewpAQCAtNDIzLDcgKzQzNiw3IEBAIFNjcmlwdEFycmF5IEluc3BlY3RvckRPTUFnZW50OjpidWls
ZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFpbmVyLCBpCiAKICAgICBpbnQg
aW5kZXggPSAwOwogICAgIGZvciAoTm9kZSAqY2hpbGQgPSBpbm5lckZpcnN0Q2hpbGQoY29udGFp
bmVyKTsgY2hpbGQ7IGNoaWxkID0gaW5uZXJOZXh0U2libGluZyhjaGlsZCkpCi0gICAgICAgIGNo
aWxkcmVuLnNldChpbmRleCsrLCBidWlsZE9iamVjdEZvck5vZGUoY2hpbGQsIGRlcHRoKSk7Cisg
ICAgICAgIGNoaWxkcmVuLnNldChpbmRleCsrLCBidWlsZE9iamVjdEZvck5vZGUoY2hpbGQsIGRl
cHRoLCBub2Rlc01hcCkpOwogICAgIHJldHVybiBjaGlsZHJlbjsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNjdiMmJlOC4uZGUwODE0NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC02NCw5ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIHRoZSBJbnNwZWN0b3JDb250
cm9sbGVyLgogICAgICAgICBib29sIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCk7Cisg
ICAgICAgIHZvaWQgcmVsZWFzZURhbmdsaW5nTm9kZXMoKTsKIAogICAgICAgICBOb2RlKiBub2Rl
Rm9ySWQobG9uZyBub2RlSWQpOwotICAgICAgICBsb25nIGlkRm9yTm9kZShOb2RlKiBub2RlKTsK
ICAgICAgICAgbG9uZyBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGUpOwogCiAgICBw
cml2YXRlOgpAQCAtNzUsMTUgKzc1LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZl
bnQpOwogCi0gICAgICAgIGxvbmcgYmluZChOb2RlKiBub2RlKTsKLSAgICAgICAgdm9pZCB1bmJp
bmQoTm9kZSogbm9kZSk7CisgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4sIGxv
bmc+IE5vZGVUb0lkTWFwOworICAgICAgICBsb25nIGJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRN
YXAqIG5vZGVzTWFwKTsKKyAgICAgICAgdm9pZCB1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRN
YXAqIG5vZGVzTWFwKTsKIAogICAgICAgICB2b2lkIHB1c2hEb2N1bWVudFRvRnJvbnRlbmQoKTsK
ICAgICAgICAgdm9pZCBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQobG9uZyBub2RlSWQpOwogCi0g
ICAgICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvck5vZGUoTm9kZSogbm9kZSwgaW50IGRl
cHRoKTsKKyAgICAgICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBub2Rl
LCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CiAgICAgICAgIFNjcmlwdEFycmF5
IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhFbGVtZW50KiBlbGVtZW50KTsKLSAgICAg
ICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxkcmVuKE5vZGUqIGNvbnRh
aW5lciwgaW50IGRlcHRoKTsKKyAgICAgICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckNvbnRh
aW5lckNoaWxkcmVuKE5vZGUqIGNvbnRhaW5lciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9k
ZXNNYXApOwogCiAgICAgICAgIC8vIFdlIHJlcHJlc2VudCBlbWJlZGRlZCBkb21zIGFzIGEgcGFy
dCBvZiB0aGUgc2FtZSBoaWVyYXJjaHkuIEhlbmNlIHdlIHRyZWF0IGNoaWxkcmVuIG9mIGZyYW1l
IG93bmVycyBkaWZmZXJlbnRseS4KICAgICAgICAgLy8gV2UgYWxzbyBza2lwIHdoaXRlc3BhY2Ug
dGV4dCBub2RlcyBjb25kaXRpb25hbGx5LiBGb2xsb3dpbmcgbWV0aG9kcyBlbmNhcHN1bGF0ZSB0
aGVzZSBzcGVjaWZpY3MuCkBAIC05OCw4ICs5OSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgZGlzY2FyZEJpbmRpbmdzKCk7CiAKICAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmQqIG1fZnJvbnRlbmQ7Ci0gICAgICAgIEhhc2hNYXA8Tm9kZSosIGxvbmc+IG1fbm9kZVRvSWQ7
CisgICAgICAgIE5vZGVUb0lkTWFwIG1fZG9jdW1lbnROb2RlVG9JZE1hcDsKKyAgICAgICAgLy8g
T3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBub2Rlcy4KKyAgICAgICAgVmVjdG9yPE5v
ZGVUb0lkTWFwKj4gbV9kYW5nbGluZ05vZGVUb0lkTWFwczsKICAgICAgICAgSGFzaE1hcDxsb25n
LCBOb2RlKj4gbV9pZFRvTm9kZTsKKyAgICAgICAgSGFzaE1hcDxsb25nLCBOb2RlVG9JZE1hcCo+
IG1faWRUb05vZGVzTWFwOwogICAgICAgICBIYXNoU2V0PGxvbmc+IG1fY2hpbGRyZW5SZXF1ZXN0
ZWQ7CiAgICAgICAgIGxvbmcgbV9sYXN0Tm9kZUlkOwogICAgICAgICBMaXN0SGFzaFNldDxSZWZQ
dHI8RG9jdW1lbnQ+ID4gbV9kb2N1bWVudHM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHAKaW5kZXggZjc0NWFlMy4uNTJhNjg5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kLmNwcApAQCAtMjg0LDYgKzI4NCwxMyBAQCB2b2lkIEluc3BlY3RvckZyb250
ZW5kOjpzZXREb2N1bWVudChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpCiAgICAgZnVuY3Rpb24t
PmNhbGwoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6c2V0RGV0YWNoZWRSb290KGNv
bnN0IFNjcmlwdE9iamVjdCYgcm9vdCkKK3sKKyAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxs
PiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoInNldERldGFjaGVkUm9vdCIpKTsKKyAgICBmdW5j
dGlvbi0+YXBwZW5kQXJndW1lbnQocm9vdCk7CisgICAgZnVuY3Rpb24tPmNhbGwoKTsKK30KKwog
dm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6c2V0Q2hpbGROb2RlcyhpbnQgcGFyZW50SWQsIGNvbnN0
IFNjcmlwdEFycmF5JiBub2RlcykKIHsKICAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBm
dW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoInNldENoaWxkTm9kZXMiKSk7CkBAIC0yOTIsOSArMjk5
LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6c2V0Q2hpbGROb2RlcyhpbnQgcGFyZW50SWQs
IGNvbnN0IFNjcmlwdEFycmF5JiBub2RlcykKICAgICBmdW5jdGlvbi0+Y2FsbCgpOwogfQogCi12
b2lkIEluc3BlY3RvckZyb250ZW5kOjpoYXNDaGlsZHJlblVwZGF0ZWQoaW50IGlkLCBib29sIG5l
d1ZhbHVlKQordm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6Y2hpbGROb2RlQ291bnRVcGRhdGVkKGlu
dCBpZCwgaW50IG5ld1ZhbHVlKQogewotICAgIE93blB0cjxTY3JpcHRGdW5jdGlvbkNhbGw+IGZ1
bmN0aW9uKG5ld0Z1bmN0aW9uQ2FsbCgiaGFzQ2hpbGRyZW5VcGRhdGVkIikpOworICAgIE93blB0
cjxTY3JpcHRGdW5jdGlvbkNhbGw+IGZ1bmN0aW9uKG5ld0Z1bmN0aW9uQ2FsbCgiY2hpbGROb2Rl
Q291bnRVcGRhdGVkIikpOwogICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChpZCk7CiAgICAg
ZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KG5ld1ZhbHVlKTsKICAgICBmdW5jdGlvbi0+Y2FsbCgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaCBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKaW5kZXggNjAwZjUwYS4uNTk3MjU3
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCkBAIC0xMDMsOCArMTAzLDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdm9pZCBzZXREb2N1bWVu
dChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpOworICAgICAgICB2b2lkIHNldERldGFjaGVkUm9v
dChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpOwogICAgICAgICB2b2lkIHNldENoaWxkTm9kZXMo
aW50IHBhcmVudElkLCBjb25zdCBTY3JpcHRBcnJheSYgbm9kZXMpOwotICAgICAgICB2b2lkIGhh
c0NoaWxkcmVuVXBkYXRlZChpbnQgaWQsIGJvb2wgbmV3VmFsdWUpOworICAgICAgICB2b2lkIGNo
aWxkTm9kZUNvdW50VXBkYXRlZChpbnQgaWQsIGludCBuZXdWYWx1ZSk7CiAgICAgICAgIHZvaWQg
Y2hpbGROb2RlSW5zZXJ0ZWQoaW50IHBhcmVudElkLCBpbnQgcHJldklkLCBjb25zdCBTY3JpcHRP
YmplY3QmIG5vZGUpOwogICAgICAgICB2b2lkIGNoaWxkTm9kZVJlbW92ZWQoaW50IHBhcmVudElk
LCBpbnQgaWQpOwogICAgICAgICB2b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKGludCBpZCwgY29uc3Qg
U2NyaXB0QXJyYXkmIGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzCmluZGV4IDMyODdkZWIuLjg4NGQ5ZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTQ3MywxMiArNDczLDE4IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBfZm9ybWF0bm9kZTogZnVuY3Rp
b24ob2JqZWN0LCBlbGVtKQogICAgIHsKLSAgICAgICAgdmFyIHRyZWVPdXRsaW5lID0gbmV3IFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lKCk7Ci0gICAgICAgIHRyZWVPdXRsaW5lLnJv
b3RET01Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJZChvYmplY3Qubm9kZUlk
KTsKLSAgICAgICAgdHJlZU91dGxpbmUuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJvdXRsaW5lLWRp
c2Nsb3N1cmUiKTsKLSAgICAgICAgaWYgKCF0cmVlT3V0bGluZS5jaGlsZHJlblswXS5oYXNDaGls
ZHJlbikKLSAgICAgICAgICAgIHRyZWVPdXRsaW5lLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2lu
Z2xlLW5vZGUiKTsKLSAgICAgICAgZWxlbS5hcHBlbmRDaGlsZCh0cmVlT3V0bGluZS5lbGVtZW50
KTsKKyAgICAgICAgZnVuY3Rpb24gcHJpbnROb2RlKG5vZGVJZCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCFub2RlSWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
dmFyIHRyZWVPdXRsaW5lID0gbmV3IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lKCk7
CisgICAgICAgICAgICB0cmVlT3V0bGluZS5yb290RE9NTm9kZSA9IFdlYkluc3BlY3Rvci5kb21B
Z2VudC5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIHRyZWVPdXRsaW5lLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygib3V0bGluZS1kaXNjbG9zdXJlIik7CisgICAgICAgICAgICBpZiAoIXRy
ZWVPdXRsaW5lLmNoaWxkcmVuWzBdLmhhc0NoaWxkcmVuKQorICAgICAgICAgICAgICAgIHRyZWVP
dXRsaW5lLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2luZ2xlLW5vZGUiKTsKKyAgICAgICAgICAg
IGVsZW0uYXBwZW5kQ2hpbGQodHJlZU91dGxpbmUuZWxlbWVudCk7CisgICAgICAgIH0KKyAgICAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlci5wdXNoTm9kZVRvRnJvbnRlbmQob2JqZWN0LCBwcmludE5v
ZGUpOwogICAgIH0sCiAKICAgICBfZm9ybWF0b2JqZWN0OiBmdW5jdGlvbihvYmosIGVsZW0pCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXggNzk0MmYwYS4uYTMyMDA5
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtMzgyLDYgKzM4
MiwxMiBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9iaW5kTm9kZXModGhpcy5kb2N1bWVudC5jaGlsZHJlbik7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5wYW5lbHMuZWxlbWVudHMucmVzZXQoKTsKICAgICB9LAorICAgIAorICAgIF9zZXREZXRhY2hl
ZFJvb3Q6IGZ1bmN0aW9uKHBheWxvYWQpCisgICAgeworICAgICAgICB2YXIgcm9vdCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLmRvY3VtZW50LCBwYXlsb2FkKTsKKyAgICAgICAgdGhp
cy5faWRUb0RPTU5vZGVbcGF5bG9hZC5pZF0gPSByb290OworICAgIH0sCiAKICAgICBfc2V0Q2hp
bGROb2RlczogZnVuY3Rpb24ocGFyZW50SWQsIHBheWxvYWRzKQogICAgIHsKQEAgLTQwMCw5ICs0
MDYsMTAgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQog
ICAgIH0sCiAKLSAgICBfaGFzQ2hpbGRyZW5VcGRhdGVkOiBmdW5jdGlvbihub2RlSWQsIG5ld1Zh
bHVlKQorICAgIF9jaGlsZE5vZGVDb3VudFVwZGF0ZWQ6IGZ1bmN0aW9uKG5vZGVJZCwgbmV3VmFs
dWUpCiAgICAgewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07
CisgICAgICAgIG5vZGUuX2NoaWxkTm9kZUNvdW50ID0gbmV3VmFsdWU7CiAgICAgICAgIHZhciBv
dXRsaW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZTsKICAgICAg
ICAgdmFyIHRyZWVFbGVtZW50ID0gb3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7CiAgICAg
ICAgIGlmICh0cmVlRWxlbWVudCkgewpAQCAtNTc1LDE0ICs1ODIsMTkgQEAgV2ViSW5zcGVjdG9y
LnNldERvY3VtZW50ID0gZnVuY3Rpb24oKQogICAgIHRoaXMuZG9tQWdlbnQuX3NldERvY3VtZW50
LmFwcGx5KHRoaXMuZG9tQWdlbnQsIGFyZ3VtZW50cyk7CiB9CiAKK1dlYkluc3BlY3Rvci5zZXRE
ZXRhY2hlZFJvb3QgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5kb21BZ2VudC5fc2V0RGV0YWNo
ZWRSb290LmFwcGx5KHRoaXMuZG9tQWdlbnQsIGFyZ3VtZW50cyk7Cit9CisKIFdlYkluc3BlY3Rv
ci5zZXRDaGlsZE5vZGVzID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMuZG9tQWdlbnQuX3NldENo
aWxkTm9kZXMuYXBwbHkodGhpcy5kb21BZ2VudCwgYXJndW1lbnRzKTsKIH0KIAotV2ViSW5zcGVj
dG9yLmhhc0NoaWxkcmVuVXBkYXRlZCA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5jaGlsZE5v
ZGVDb3VudFVwZGF0ZWQgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhpcy5kb21BZ2VudC5faGFzQ2hp
bGRyZW5VcGRhdGVkLmFwcGx5KHRoaXMuZG9tQWdlbnQsIGFyZ3VtZW50cyk7CisgICAgdGhpcy5k
b21BZ2VudC5fY2hpbGROb2RlQ291bnRVcGRhdGVkLmFwcGx5KHRoaXMuZG9tQWdlbnQsIGFyZ3Vt
ZW50cyk7CiB9CiAKIFdlYkluc3BlY3Rvci5jaGlsZE5vZGVJbnNlcnRlZCA9IGZ1bmN0aW9uKCkK
QEAgLTcwMCw2ICs3MTIsMTMgQEAgSW5zcGVjdG9yQ29udHJvbGxlci5hZGRJbnNwZWN0ZWROb2Rl
ID0gZnVuY3Rpb24obm9kZUlkLCBjYWxsYmFjaykKICAgICB9LCAwKTsKIH0KIAorSW5zcGVjdG9y
Q29udHJvbGxlci5wdXNoTm9kZVRvRnJvbnRlbmQgPSBmdW5jdGlvbihub2RlSWQsIGNhbGxiYWNr
KQoreworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGNhbGxiYWNrKEluamVj
dGVkU2NyaXB0LnB1c2hOb2RlVG9Gcm9udGVuZChub2RlSWQpKTsKKyAgICB9LCAwKTsKK30KKwog
SW5zcGVjdG9yQ29udHJvbGxlci5wZXJmb3JtU2VhcmNoID0gZnVuY3Rpb24od2hpdGVzcGFjZVRy
aW1tZWRRdWVyeSwgY2FsbGJhY2spCiB7CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwppbmRleCBkMDU4
NjZjLi45Yzc0Y2I2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5q
ZWN0ZWRTY3JpcHQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVk
U2NyaXB0LmpzCkBAIC04NjMsMTQgKzg2MywyMCBAQCBJbmplY3RlZFNjcmlwdC5fb2JqZWN0Rm9y
SWQgPSBmdW5jdGlvbihvYmplY3RJZCkKICAgICByZXR1cm4gb2JqZWN0SWQ7CiB9CiAKK0luamVj
dGVkU2NyaXB0LnB1c2hOb2RlVG9Gcm9udGVuZCA9IGZ1bmN0aW9uKG9iamVjdFByb3h5KQorewor
ICAgIHZhciBvYmplY3QgPSBJbmplY3RlZFNjcmlwdC5fcmVzb2x2ZU9iamVjdChvYmplY3RQcm94
eSk7CisgICAgaWYgKCFvYmplY3QgfHwgT2JqZWN0LnR5cGUob2JqZWN0LCBJbmplY3RlZFNjcmlw
dC5fd2luZG93KCkpICE9PSAibm9kZSIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gSW5zcGVjdG9yQ29udHJvbGxlci5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG9iamVjdCwgZmFs
c2UpOworfQorCiAvLyBDYWxsZWQgZnJvbSB3aXRoaW4gSW5zcGVjdG9yQ29udHJvbGxlciBvbiB0
aGUgJ2luc3BlY3RlZCBwYWdlJyBzaWRlLgogSW5qZWN0ZWRTY3JpcHQuY3JlYXRlUHJveHlPYmpl
Y3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVjdElkKQogewogICAgIHZhciByZXN1bHQgPSB7fTsK
ICAgICByZXN1bHQub2JqZWN0SWQgPSBvYmplY3RJZDsKICAgICByZXN1bHQudHlwZSA9IE9iamVj
dC50eXBlKG9iamVjdCwgSW5qZWN0ZWRTY3JpcHQuX3dpbmRvdygpKTsKLSAgICBpZiAocmVzdWx0
LnR5cGUgPT09ICJub2RlIikKLSAgICAgICAgcmVzdWx0Lm5vZGVJZCA9IEluc3BlY3RvckNvbnRy
b2xsZXIucHVzaE5vZGVQYXRoVG9Gcm9udGVuZChvYmplY3QsIGZhbHNlKTsKIAogICAgIHZhciB0
eXBlID0gdHlwZW9mIG9iamVjdDsKICAgICBpZiAodHlwZSA9PT0gIm9iamVjdCIgfHwgdHlwZSA9
PT0gImZ1bmN0aW9uIikgewo=
</data>
<flag name="review"
          id="19315"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>