<?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>177466</bug_id>
          
          <creation_ts>2017-09-25 14:45:10 -0700</creation_ts>
          <short_desc>[Curl] Simplify JobManager&apos;s duty and move them to client for easy handling</short_desc>
          <delta_ts>2017-09-27 12:16:52 -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 Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>galpeter</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352437</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-09-25 14:45:10 -0700</bug_when>
    <thetext>Simplify JobManager and client do the work more because they know how to do that better than manager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352521</commentid>
    <comment_count>1</comment_count>
      <attachid>321780</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-09-25 17:18:47 -0700</bug_when>
    <thetext>Created attachment 321780
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352764</commentid>
    <comment_count>2</comment_count>
      <attachid>321780</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 11:21:03 -0700</bug_when>
    <thetext>Comment on attachment 321780
patch

Clearing flags on attachment: 321780

Committed r222508: &lt;http://trac.webkit.org/changeset/222508&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352765</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 11:21:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353254</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:16:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/34692931&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321780</attachid>
            <date>2017-09-25 17:18:47 -0700</date>
            <delta_ts>2017-09-26 11:21:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>177466-1.diff</filename>
            <type>text/plain</type>
            <size>26584</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZmQwOWUwOGFlNS4uMTk1MzJlZGJiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNy0wOS0yNSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIFNpbXBsaWZ5IEpvYk1hbmFnZXIncyBkdXR5IGFuZCBt
b3ZlIHRoZSB0YXNrcyB0byBjbGllbnQKKyAgICAgICAgZm9yIGVhc3kgaGFuZGxpbmcuIEFsc28g
c2ltbGlmeSBDdXJsSGFuZGxlIGJ5IG5vdCBzdG9yaW5nIGludGVybmFsCisgICAgICAgIGVycm9y
IHZhbHVlIGFzIGEgbWVtYmVyIHZhcmlhYmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEhhbmRsZTo6cGVyZm9ybSk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsSGFuZGxlOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsSGFuZGxl
OjpnZXRFZmZlY3RpdmVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEhhbmRsZTo6Z2V0UHJp
bWFyeVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEhhbmRsZTo6Z2V0UmVzcG9uc2VDb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxIYW5kbGU6OmdldENvbnRlbnRMZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybEhhbmRsZTo6Z2V0SHR0cEF1dGhBdmFpbCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsSGFuZGxlOjpnZXROZXR3b3JrTG9hZE1ldHJpY3MpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bEhhbmRsZTo6ZXJyb3JDb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
cmxIYW5kbGU6OnNldEVycm9yQ29kZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxv
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6c2V0dXBUcmFuc2Zlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZENvbXBsZXRlVHJhbnNmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybERvd25sb2FkOjpkaWRDYW5jZWxUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJsRG93bmxvYWQ6OnNldHVwUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDdXJsRG93bmxvYWQ6Om5vdGlmeUZpbmlzaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDdXJsRG93bmxvYWQ6Om5vdGlmeUZhaWwpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybEpvYk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEpvYkxpc3Q6
OnN0YXJ0Sm9icyk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsSm9iTGlzdDo6ZmluaXNoSm9icyk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsSm9iTWFuYWdlcjo6YWRkKToKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxKb2JNYW5hZ2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEpvYk1h
bmFnZXI6OmNhbGxPbkpvYlRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsSm9iTWFuYWdl
cjo6dXBkYXRlSm9iTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsSm9iTWFuYWdlcjo6d29y
a2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxKb2JMaXN0Ojpub3RpZnlSZXN1bHQp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsSm9iTWFuYWdl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxE
ZWxlZ2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6
OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6
ZGlzcGF0Y2hTeW5jaHJvbm91c0pvYik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUN1cmxEZWxlZ2F0ZTo6c2V0dXBUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6ZGlkQ29tcGxldGVUcmFuc2Zlcik6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6ZGlkQ2FuY2VsVHJhbnNmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmRpZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6ZGlkRmFpbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6c2V0dXBSZXF1ZXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
Ojpub3RpZnlGaW5pc2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGVDdXJsRGVsZWdhdGU6Om5vdGlmeUZhaWwpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5oOgorCiAyMDE3LTA5LTI1
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYklETF0gRmFjdG9y
IG91dCBJc0V4Y2VwdGlvbk9yIGNoZWNrIGZyb20gdG9KUy90b0pTTmV3bHlDcmVhdGVkIHNpZ25h
dHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Q29udGV4dC5jcHAKaW5kZXggMGZiOWI4NjMzZjcuLmJmN2E1OTlhNDBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTI3MCwxNCArMjcwLDEyIEBAIHZvaWQgQ3VybEhhbmRsZTo6aW5pdGlhbGl6ZSgpCiAKIENVUkxj
b2RlIEN1cmxIYW5kbGU6OnBlcmZvcm0oKQogewotICAgIG1fZXJyb3JDb2RlID0gY3VybF9lYXN5
X3BlcmZvcm0obV9oYW5kbGUpOwotICAgIHJldHVybiBtX2Vycm9yQ29kZTsKKyAgICByZXR1cm4g
Y3VybF9lYXN5X3BlcmZvcm0obV9oYW5kbGUpOwogfQogCiBDVVJMY29kZSBDdXJsSGFuZGxlOjpw
YXVzZShpbnQgYml0bWFzaykKIHsKLSAgICBtX2Vycm9yQ29kZSA9IGN1cmxfZWFzeV9wYXVzZSht
X2hhbmRsZSwgYml0bWFzayk7Ci0gICAgcmV0dXJuIG1fZXJyb3JDb2RlOworICAgIHJldHVybiBj
dXJsX2Vhc3lfcGF1c2UobV9oYW5kbGUsIGJpdG1hc2spOwogfQogCiB2b2lkIEN1cmxIYW5kbGU6
OmVuYWJsZVNoYXJlSGFuZGxlKCkKQEAgLTU0MSwxNCArNTM5LDEyIEBAIHZvaWQgQ3VybEhhbmRs
ZTo6c2V0U3NsQ3R4Q2FsbGJhY2tGdW5jdGlvbihjdXJsX3NzbF9jdHhfY2FsbGJhY2sgY2FsbGJh
Y2tGdW5jLCB2CiAKIFVSTCBDdXJsSGFuZGxlOjpnZXRFZmZlY3RpdmVVUkwoKQogewotICAgIGlm
ICghbV9oYW5kbGUpIHsKLSAgICAgICAgbV9lcnJvckNvZGUgPSBDVVJMRV9GQUlMRURfSU5JVDsK
KyAgICBpZiAoIW1faGFuZGxlKQogICAgICAgICByZXR1cm4gVVJMKCk7Ci0gICAgfQogCiAgICAg
Y2hhciogdXJsOwotICAgIG1fZXJyb3JDb2RlID0gY3VybF9lYXN5X2dldGluZm8obV9oYW5kbGUs
IENVUkxJTkZPX0VGRkVDVElWRV9VUkwsICZ1cmwpOwotICAgIGlmIChtX2Vycm9yQ29kZSAhPSBD
VVJMRV9PSykKKyAgICBDVVJMY29kZSBlcnJvckNvZGUgPSBjdXJsX2Vhc3lfZ2V0aW5mbyhtX2hh
bmRsZSwgQ1VSTElORk9fRUZGRUNUSVZFX1VSTCwgJnVybCk7CisgICAgaWYgKGVycm9yQ29kZSAh
PSBDVVJMRV9PSykKICAgICAgICAgcmV0dXJuIFVSTCgpOwogCiAgICAgcmV0dXJuIFVSTChVUkwo
KSwgdXJsKTsKQEAgLTU1NiwxNCArNTUyLDEyIEBAIFVSTCBDdXJsSGFuZGxlOjpnZXRFZmZlY3Rp
dmVVUkwoKQogCiBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiBDdXJsSGFuZGxlOjpnZXRQcmltYXJ5
UG9ydCgpCiB7Ci0gICAgaWYgKCFtX2hhbmRsZSkgewotICAgICAgICBtX2Vycm9yQ29kZSA9IENV
UkxFX0ZBSUxFRF9JTklUOworICAgIGlmICghbV9oYW5kbGUpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgfQogCiAgICAgbG9uZyBwb3J0OwotICAgIG1fZXJyb3JDb2RlID0gY3Vy
bF9lYXN5X2dldGluZm8obV9oYW5kbGUsIENVUkxJTkZPX1BSSU1BUllfUE9SVCwgJnBvcnQpOwot
ICAgIGlmIChtX2Vycm9yQ29kZSAhPSBDVVJMRV9PSykKKyAgICBDVVJMY29kZSBlcnJvckNvZGUg
PSBjdXJsX2Vhc3lfZ2V0aW5mbyhtX2hhbmRsZSwgQ1VSTElORk9fUFJJTUFSWV9QT1JULCAmcG9y
dCk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBDVVJMRV9PSykKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAogICAgIC8qCkBAIC01NzUsMTQgKzU2OSwxMiBAQCBzdGQ6Om9wdGlvbmFsPHVp
bnQxNl90PiBDdXJsSGFuZGxlOjpnZXRQcmltYXJ5UG9ydCgpCiAKIHN0ZDo6b3B0aW9uYWw8bG9u
Zz4gQ3VybEhhbmRsZTo6Z2V0UmVzcG9uc2VDb2RlKCkKIHsKLSAgICBpZiAoIW1faGFuZGxlKSB7
Ci0gICAgICAgIG1fZXJyb3JDb2RlID0gQ1VSTEVfRkFJTEVEX0lOSVQ7CisgICAgaWYgKCFtX2hh
bmRsZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICB9CiAKICAgICBsb25nIHJl
c3BvbnNlQ29kZTsKLSAgICBtX2Vycm9yQ29kZSA9IGN1cmxfZWFzeV9nZXRpbmZvKG1faGFuZGxl
LCBDVVJMSU5GT19SRVNQT05TRV9DT0RFLCAmcmVzcG9uc2VDb2RlKTsKLSAgICBpZiAobV9lcnJv
ckNvZGUgIT0gQ1VSTEVfT0spCisgICAgQ1VSTGNvZGUgZXJyb3JDb2RlID0gY3VybF9lYXN5X2dl
dGluZm8obV9oYW5kbGUsIENVUkxJTkZPX1JFU1BPTlNFX0NPREUsICZyZXNwb25zZUNvZGUpOwor
ICAgIGlmIChlcnJvckNvZGUgIT0gQ1VSTEVfT0spCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKICAgICByZXR1cm4gcmVzcG9uc2VDb2RlOwpAQCAtNTkwLDE1ICs1ODIsMTMgQEAgc3Rk
OjpvcHRpb25hbDxsb25nPiBDdXJsSGFuZGxlOjpnZXRSZXNwb25zZUNvZGUoKQogCiBzdGQ6Om9w
dGlvbmFsPGxvbmcgbG9uZz4gQ3VybEhhbmRsZTo6Z2V0Q29udGVudExlbmd0aCgpCiB7Ci0gICAg
aWYgKCFtX2hhbmRsZSkgewotICAgICAgICBtX2Vycm9yQ29kZSA9IENVUkxFX0ZBSUxFRF9JTklU
OworICAgIGlmICghbV9oYW5kbGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
fQogCiAgICAgZG91YmxlIGNvbnRlbnRMZW5ndGg7CiAKLSAgICBtX2Vycm9yQ29kZSA9IGN1cmxf
ZWFzeV9nZXRpbmZvKG1faGFuZGxlLCBDVVJMSU5GT19DT05URU5UX0xFTkdUSF9ET1dOTE9BRCwg
JmNvbnRlbnRMZW5ndGgpOwotICAgIGlmIChtX2Vycm9yQ29kZSAhPSBDVVJMRV9PSykKKyAgICBD
VVJMY29kZSBlcnJvckNvZGUgPSBjdXJsX2Vhc3lfZ2V0aW5mbyhtX2hhbmRsZSwgQ1VSTElORk9f
Q09OVEVOVF9MRU5HVEhfRE9XTkxPQUQsICZjb250ZW50TGVuZ3RoKTsKKyAgICBpZiAoZXJyb3JD
b2RlICE9IENVUkxFX09LKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oY29udGVudExlbmd0aCk7CkBAIC02MDYsMTQgKzU5
NiwxMiBAQCBzdGQ6Om9wdGlvbmFsPGxvbmcgbG9uZz4gQ3VybEhhbmRsZTo6Z2V0Q29udGVudExl
bmd0aCgpCiAKIHN0ZDo6b3B0aW9uYWw8bG9uZz4gQ3VybEhhbmRsZTo6Z2V0SHR0cEF1dGhBdmFp
bCgpCiB7Ci0gICAgaWYgKCFtX2hhbmRsZSkgewotICAgICAgICBtX2Vycm9yQ29kZSA9IENVUkxF
X0ZBSUxFRF9JTklUOworICAgIGlmICghbV9oYW5kbGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgfQogCiAgICAgbG9uZyBodHRwQXV0aEF2YWlsYWJsZTsKLSAgICBtX2Vycm9y
Q29kZSA9IGN1cmxfZWFzeV9nZXRpbmZvKG1faGFuZGxlLCBDVVJMSU5GT19IVFRQQVVUSF9BVkFJ
TCwgJmh0dHBBdXRoQXZhaWxhYmxlKTsKLSAgICBpZiAobV9lcnJvckNvZGUgIT0gQ1VSTEVfT0sp
CisgICAgQ1VSTGNvZGUgZXJyb3JDb2RlID0gY3VybF9lYXN5X2dldGluZm8obV9oYW5kbGUsIENV
UkxJTkZPX0hUVFBBVVRIX0FWQUlMLCAmaHR0cEF1dGhBdmFpbGFibGUpOworICAgIGlmIChlcnJv
ckNvZGUgIT0gQ1VSTEVfT0spCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBy
ZXR1cm4gaHR0cEF1dGhBdmFpbGFibGU7CkBAIC02MjYsMjUgKzYxNCwyMyBAQCBzdGQ6Om9wdGlv
bmFsPE5ldHdvcmtMb2FkTWV0cmljcz4gQ3VybEhhbmRsZTo6Z2V0TmV0d29ya0xvYWRNZXRyaWNz
KCkKICAgICBkb3VibGUgYXBwQ29ubmVjdCA9IDAuMDsKICAgICBkb3VibGUgc3RhcnRUcmFuc2Zl
ciA9IDAuMDsKIAotICAgIGlmICghbV9oYW5kbGUpIHsKLSAgICAgICAgbV9lcnJvckNvZGUgPSBD
VVJMRV9GQUlMRURfSU5JVDsKKyAgICBpZiAoIW1faGFuZGxlKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIH0KIAotICAgIG1fZXJyb3JDb2RlID0gY3VybF9lYXN5X2dldGluZm8o
bV9oYW5kbGUsIENVUkxJTkZPX05BTUVMT09LVVBfVElNRSwgJm5hbWVMb29rdXApOwotICAgIGlm
IChtX2Vycm9yQ29kZSAhPSBDVVJMRV9PSykKKyAgICBDVVJMY29kZSBlcnJvckNvZGUgPSBjdXJs
X2Vhc3lfZ2V0aW5mbyhtX2hhbmRsZSwgQ1VSTElORk9fTkFNRUxPT0tVUF9USU1FLCAmbmFtZUxv
b2t1cCk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBDVVJMRV9PSykKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIAotICAgIG1fZXJyb3JDb2RlID0gY3VybF9lYXN5X2dldGluZm8obV9oYW5k
bGUsIENVUkxJTkZPX0NPTk5FQ1RfVElNRSwgJmNvbm5lY3QpOwotICAgIGlmIChtX2Vycm9yQ29k
ZSAhPSBDVVJMRV9PSykKKyAgICBlcnJvckNvZGUgPSBjdXJsX2Vhc3lfZ2V0aW5mbyhtX2hhbmRs
ZSwgQ1VSTElORk9fQ09OTkVDVF9USU1FLCAmY29ubmVjdCk7CisgICAgaWYgKGVycm9yQ29kZSAh
PSBDVVJMRV9PSykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIG1fZXJyb3JD
b2RlID0gY3VybF9lYXN5X2dldGluZm8obV9oYW5kbGUsIENVUkxJTkZPX0FQUENPTk5FQ1RfVElN
RSwgJmFwcENvbm5lY3QpOwotICAgIGlmIChtX2Vycm9yQ29kZSAhPSBDVVJMRV9PSykKKyAgICBl
cnJvckNvZGUgPSBjdXJsX2Vhc3lfZ2V0aW5mbyhtX2hhbmRsZSwgQ1VSTElORk9fQVBQQ09OTkVD
VF9USU1FLCAmYXBwQ29ubmVjdCk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBDVVJMRV9PSykKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIG1fZXJyb3JDb2RlID0gY3VybF9lYXN5
X2dldGluZm8obV9oYW5kbGUsIENVUkxJTkZPX1NUQVJUVFJBTlNGRVJfVElNRSwgJnN0YXJ0VHJh
bnNmZXIpOwotICAgIGlmIChtX2Vycm9yQ29kZSAhPSBDVVJMRV9PSykKKyAgICBlcnJvckNvZGUg
PSBjdXJsX2Vhc3lfZ2V0aW5mbyhtX2hhbmRsZSwgQ1VSTElORk9fU1RBUlRUUkFOU0ZFUl9USU1F
LCAmc3RhcnRUcmFuc2Zlcik7CisgICAgaWYgKGVycm9yQ29kZSAhPSBDVVJMRV9PSykKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIE5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3Jr
TG9hZE1ldHJpY3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ29udGV4dC5oCmluZGV4IDcyZTNkYjMwNjgxLi43MzAzNGU5YWE4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKQEAg
LTIyNCw5ICsyMjQsNiBAQCBwdWJsaWM6CiAgICAgQ1VSTGNvZGUgcGVyZm9ybSgpOwogICAgIENV
Ukxjb2RlIHBhdXNlKGludCk7CiAKLSAgICBDVVJMY29kZSBlcnJvckNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX2Vycm9yQ29kZTsgfQotICAgIHZvaWQgc2V0RXJyb3JDb2RlKENVUkxjb2RlIGVycm9y
Q29kZSkgeyBtX2Vycm9yQ29kZSA9IGVycm9yQ29kZTsgfQotCiAgICAgc3RhdGljIGNvbnN0IFN0
cmluZyBlcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlKTsKIAogICAgIHZvaWQgZW5hYmxlU2hhcmVI
YW5kbGUoKTsKQEAgLTI5OCw3ICsyOTUsNiBAQCBwcml2YXRlOgogCiAgICAgQ1VSTCogbV9oYW5k
bGUgeyBudWxscHRyIH07CiAgICAgY2hhciBtX2Vycm9yQnVmZmVyW0NVUkxfRVJST1JfU0laRV0g
eyB9OwotICAgIENVUkxjb2RlIG1fZXJyb3JDb2RlOwogCiAgICAgQ3VybFNMaXN0IG1fcmVxdWVz
dEhlYWRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxEb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybERvd25sb2FkLmNwcAppbmRleCBmNWIzM2EwMjM2Ni4uMWU5N2U0YzZjNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxv
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCkBAIC03NywxNSArNzcsMTMgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3Vy
bERvd25sb2FkTGlzdGVuZXIqIGxpc3RlbmVyLCBSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFIKIAog
Ym9vbCBDdXJsRG93bmxvYWQ6OnN0YXJ0KCkKIHsKLSAgICBtX2pvYiA9IEN1cmxKb2JNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5hZGQobV9jdXJsSGFuZGxlLCAqdGhpcyk7Ci0gICAgcmV0dXJuICEhbV9q
b2I7CisgICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRvbigpLmFkZCh0aGlzKTsKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogYm9vbCBDdXJsRG93bmxvYWQ6OmNhbmNlbCgpCiB7Ci0gICAgQ3VybEpv
YlRpY2tldCBqb2IgPSBtX2pvYjsKLSAgICBtX2pvYiA9IG51bGxwdHI7Ci0gICAgQ3VybEpvYk1h
bmFnZXI6OnNpbmdsZXRvbigpLmNhbmNlbChqb2IpOworICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5n
bGV0b24oKS5jYW5jZWwodGhpcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEwNyw3ICsx
MDUsNyBAQCB2b2lkIEN1cmxEb3dubG9hZDo6cmVsZWFzZSgpCiAgICAgZGVyZWYoKTsKIH0KIAot
dm9pZCBDdXJsRG93bmxvYWQ6OnNldHVwUmVxdWVzdCgpCitDVVJMKiBDdXJsRG93bmxvYWQ6OnNl
dHVwVHJhbnNmZXIoKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCkBAIC0x
MjEsMjQgKzExOSwyMiBAQCB2b2lkIEN1cmxEb3dubG9hZDo6c2V0dXBSZXF1ZXN0KCkKICAgICBt
X2N1cmxIYW5kbGUuZW5hYmxlSHR0cEF1dGhlbnRpY2F0aW9uKENVUkxBVVRIX0FOWSk7CiAgICAg
bV9jdXJsSGFuZGxlLnNldENBQ2VydFBhdGgoQ3VybENvbnRleHQ6OnNpbmdsZXRvbigpLnNzbEhh
bmRsZSgpLmdldENBQ2VydFBhdGgoKSk7CiAKKyAgICByZXR1cm4gbV9jdXJsSGFuZGxlLmhhbmRs
ZSgpOwogfQogCi12b2lkIEN1cmxEb3dubG9hZDo6bm90aWZ5RmluaXNoKCkKK3ZvaWQgQ3VybERv
d25sb2FkOjpkaWRDb21wbGV0ZVRyYW5zZmVyKENVUkxjb2RlIHJlc3VsdCkKIHsKLSAgICBjYWxs
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAg
aWYgKCFwcm90ZWN0ZWRUaGlzLT5tX2pvYikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
cHJvdGVjdGVkVGhpcy0+ZGlkRmluaXNoKCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXN1bHRdIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9
PSBDVVJMRV9PSykKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEZpbmlzaCgpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWlsKCk7CiAgICAgfSk7
CiB9CiAKLXZvaWQgQ3VybERvd25sb2FkOjpub3RpZnlGYWlsKCkKK3ZvaWQgQ3VybERvd25sb2Fk
OjpkaWRDYW5jZWxUcmFuc2ZlcigpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9q
b2IpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEZhaWwo
KTsKLSAgICB9KTsKKwogfQogCiB2b2lkIEN1cmxEb3dubG9hZDo6Y2xvc2VGaWxlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaApp
bmRleCAxMjc5MWIxMzYzMC4uMmE4MGU0MDFmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKQEAgLTY4LDkgKzY4LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZXRhaW4oKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbGVhc2Uo
KSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0dXBSZXF1ZXN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBub3RpZnlGaW5pc2goKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmeUZhaWwoKSBvdmVycmlk
ZTsKKyAgICBDVVJMKiBoYW5kbGUoKSBvdmVycmlkZSB7IHJldHVybiBtX2N1cmxIYW5kbGUuaGFu
ZGxlKCk7IH0KKyAgICBDVVJMKiBzZXR1cFRyYW5zZmVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDb21wbGV0ZVRyYW5zZmVyKENVUkxjb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENhbmNl
bFRyYW5zZmVyKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsb3NlRmlsZSgpOwogICAgIHZvaWQg
bW92ZUZpbGVUb0Rlc3RpbmF0aW9uKCk7CkBAIC05Myw3ICs5NCw2IEBAIHByaXZhdGU6CiAKICAg
ICBDdXJsSGFuZGxlIG1fY3VybEhhbmRsZTsKICAgICBVUkwgbV91cmw7Ci0gICAgQ3VybEpvYlRp
Y2tldCBtX2pvYjsKICAgICBTdHJpbmcgbV90ZW1wUGF0aDsKICAgICBTdHJpbmcgbV9kZXN0aW5h
dGlvbjsKICAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgbV90ZW1wSGFuZGxlIHsgaW52YWxpZFBsYXRm
b3JtRmlsZUhhbmRsZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxKb2JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsSm9iTWFuYWdlci5jcHAKaW5kZXggMTU1ZTgwNDZkYzcuLmM3MmQ2NTc1
MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bEpvYk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsSm9iTWFuYWdlci5jcHAKQEAgLTMwLDE3ICszMCw4IEBACiAKICNpZiBVU0UoQ1VSTCkK
IAotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmgiCi0jaW5jbHVkZSA8aXRl
cmF0b3I+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWVudW0gY2xhc3MgQ3VybEpvYlJlc3VsdCB7IERvbmUsIEVycm9yLCBDYW5jZWxsZWQg
fTsKLQogLyoKICAqIEN1cmxKb2JMaXN0IGlzIHVzZWQgb25seSBpbiBiYWNrZ3JvdW5kIHNvIHRo
YXQgbm8gbmVlZCB0byBtYW5hZ2UgbXV0ZXgKICAqLwpAQCAtNDgsNzkgKzM5LDgyIEBAIGNsYXNz
IEN1cmxKb2JMaXN0IDogcHVibGljIEN1cmxNdWx0aUhhbmRsZSB7CiBwdWJsaWM6CiAgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVKb2JzLmlzRW1wdHkoKTsgfQogCi0g
ICAgdm9pZCBzdGFydEpvYnMoSGFzaE1hcDxDdXJsSm9iVGlja2V0LCBDdXJsSm9iQ2xpZW50Kj4m
JiBqb2JzKQorICAgIHZvaWQgc3RhcnRKb2JzKEhhc2hTZXQ8Q3VybEpvYkNsaWVudCo+JiYgam9i
cykKICAgICB7CiAgICAgICAgIGF1dG8gbG9jYWxKb2JzID0gV1RGTW92ZShqb2JzKTsKLSAgICAg
ICAgZm9yIChhdXRvJiBqb2IgOiBsb2NhbEpvYnMpIHsKLSAgICAgICAgICAgIGpvYi52YWx1ZS0+
c2V0dXBSZXF1ZXN0KCk7Ci0gICAgICAgICAgICBtX2FjdGl2ZUpvYnMuYWRkKGpvYi5rZXksIGpv
Yi52YWx1ZSk7Ci0gICAgICAgICAgICBhZGRIYW5kbGUoam9iLmtleSk7CisgICAgICAgIGZvciAo
YXV0byYgY2xpZW50IDogbG9jYWxKb2JzKSB7CisgICAgICAgICAgICBDVVJMKiBoYW5kbGUgPSBj
bGllbnQtPnNldHVwVHJhbnNmZXIoKTsKKyAgICAgICAgICAgIGlmICghaGFuZGxlKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9hY3RpdmVKb2JzLmFkZChoYW5kbGUs
IGNsaWVudCk7CisgICAgICAgICAgICBhZGRIYW5kbGUoaGFuZGxlKTsKICAgICAgICAgfQogICAg
IH0KIAotICAgIHZvaWQgZmluaXNoSm9icyhIYXNoU2V0PEN1cmxKb2JUaWNrZXQ+JiYgdGlja2V0
cywgQ3VybEpvYlJlc3VsdCByZXN1bHQpCisgICAgdm9pZCBmaW5pc2hKb2JzKEhhc2hNYXA8Q1VS
TCosIENVUkxjb2RlPiYmIHRpY2tldHMsIFdURjo6RnVuY3Rpb248dm9pZChDdXJsSm9iQ2xpZW50
KiwgQ1VSTGNvZGUpPiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7CiAgICAgICAgIGF1dG8gbG9j
YWxUaWNrZXRzID0gV1RGTW92ZSh0aWNrZXRzKTsKICAgICAgICAgZm9yIChhdXRvJiB0aWNrZXQg
OiBsb2NhbFRpY2tldHMpIHsKLSAgICAgICAgICAgIGlmICghbV9hY3RpdmVKb2JzLmNvbnRhaW5z
KHRpY2tldCkpCisgICAgICAgICAgICBpZiAoIW1fYWN0aXZlSm9icy5jb250YWlucyh0aWNrZXQu
a2V5KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlbW92ZUhhbmRs
ZSh0aWNrZXQpOwotICAgICAgICAgICAgbm90aWZ5UmVzdWx0KG1fYWN0aXZlSm9icy5pbmxpbmVH
ZXQodGlja2V0KSwgcmVzdWx0KTsKLSAgICAgICAgICAgIG1fYWN0aXZlSm9icy5yZW1vdmUodGlj
a2V0KTsKLSAgICAgICAgfQotICAgIH0KIAotcHJpdmF0ZToKLSAgICB2b2lkIG5vdGlmeVJlc3Vs
dChDdXJsSm9iQ2xpZW50KiBjbGllbnQsIEN1cmxKb2JSZXN1bHQgcmVzdWx0KQotICAgIHsKLSAg
ICAgICAgc3dpdGNoIChyZXN1bHQpIHsKLSAgICAgICAgY2FzZSBDdXJsSm9iUmVzdWx0OjpEb25l
OgotICAgICAgICAgICAgY2xpZW50LT5ub3RpZnlGaW5pc2goKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIEN1cmxKb2JSZXN1bHQ6OkVycm9yOgotICAgICAgICAgICAgY2xpZW50
LT5ub3RpZnlGYWlsKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDdXJsSm9i
UmVzdWx0OjpDYW5jZWxsZWQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorICAgICAg
ICAgICAgQ1VSTCogaGFuZGxlID0gdGlja2V0LmtleTsKKyAgICAgICAgICAgIENVUkxjb2RlIHJl
c3VsdCA9IHRpY2tldC52YWx1ZTsKKyAgICAgICAgICAgIEN1cmxKb2JDbGllbnQqIGNsaWVudCA9
IG1fYWN0aXZlSm9icy5pbmxpbmVHZXQoaGFuZGxlKTsKKworICAgICAgICAgICAgcmVtb3ZlSGFu
ZGxlKGhhbmRsZSk7CisgICAgICAgICAgICBtX2FjdGl2ZUpvYnMucmVtb3ZlKGhhbmRsZSk7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjbGllbnQsIHJlc3VsdCk7CiAKLSAgICAgICAg
Y2xpZW50LT5yZWxlYXNlKCk7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtjbGllbnRd
KCkgeworICAgICAgICAgICAgICAgIGNsaWVudC0+cmVsZWFzZSgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KICAgICB9CiAKLSAgICBIYXNoTWFwPEN1cmxKb2JUaWNrZXQsIEN1cmxKb2JD
bGllbnQqPiBtX2FjdGl2ZUpvYnM7Citwcml2YXRlOgorICAgIEhhc2hNYXA8Q1VSTCosIEN1cmxK
b2JDbGllbnQqPiBtX2FjdGl2ZUpvYnM7CiB9OwogCi1DdXJsSm9iVGlja2V0IEN1cmxKb2JNYW5h
Z2VyOjphZGQoQ3VybEhhbmRsZSYgY3VybCwgQ3VybEpvYkNsaWVudCYgY2xpZW50KQorYm9vbCBD
dXJsSm9iTWFuYWdlcjo6YWRkKEN1cmxKb2JDbGllbnQqIGNsaWVudCkKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgY2xpZW50LnJldGFpbigpOworICAgIGlmICghY2xpZW50
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBDdXJsSm9iVGlja2V0IHRpY2tldCA9IHN0
YXRpY19jYXN0PEN1cmxKb2JUaWNrZXQ+KGN1cmwuaGFuZGxlKCkpOworICAgIGNsaWVudC0+cmV0
YWluKCk7CiAKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAg
ICAgICBtX2NhbmNlbGxlZFRpY2tldHMucmVtb3ZlKHRpY2tldCk7Ci0gICAgICAgIG1fcGVuZGlu
Z0pvYnMuYWRkKHRpY2tldCwgJmNsaWVudCk7CisgICAgICAgIG1fcGVuZGluZ0pvYnMuYWRkKGNs
aWVudCk7CiAgICAgfQogCiAgICAgc3RhcnRUaHJlYWRJZk5lZWRlZCgpOwogCi0gICAgcmV0dXJu
IHRpY2tldDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBDdXJsSm9iTWFuYWdlcjo6Y2Fu
Y2VsKEN1cmxKb2JUaWNrZXQgam9iKQordm9pZCBDdXJsSm9iTWFuYWdlcjo6Y2FuY2VsKEN1cmxK
b2JDbGllbnQqIGNsaWVudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCisgICAg
aWYgKCFjbGllbnQgfHwgIWNsaWVudC0+aGFuZGxlKCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAgIG1fY2FuY2VsbGVkVGlja2V0cy5hZGQo
am9iKTsKKyAgICBtX2NhbmNlbGxlZEpvYnMuYWRkKGNsaWVudC0+aGFuZGxlKCksIENVUkxFX09L
KTsKIH0KIAogdm9pZCBDdXJsSm9iTWFuYWdlcjo6Y2FsbE9uSm9iVGhyZWFkKFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIHRhc2spCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7Ci0g
ICAgbV90YXNrUXVldWUuYXBwZW5kKFdURk1vdmUodGFzaykpOworICAgIHsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgIG1fdGFza1F1ZXVlLmFwcGVuZChXVEZN
b3ZlKHRhc2spKTsKKyAgICB9CisKKyAgICBzdGFydFRocmVhZElmTmVlZGVkKCk7CiB9CiAKIHZv
aWQgQ3VybEpvYk1hbmFnZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQoKQpAQCAtMTY0LDI1ICsxNTgs
MzAgQEAgdm9pZCBDdXJsSm9iTWFuYWdlcjo6dXBkYXRlSm9iTGlzdChDdXJsSm9iTGlzdCYgam9i
cykKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIEhhc2hNYXA8Q3VybEpv
YlRpY2tldCwgQ3VybEpvYkNsaWVudCo+IHBlbmRpbmdKb2JzOwotICAgIEhhc2hTZXQ8Q3VybEpv
YlRpY2tldD4gY2FuY2VsbGVkVGlja2V0czsKKyAgICBIYXNoU2V0PEN1cmxKb2JDbGllbnQqPiBw
ZW5kaW5nSm9iczsKKyAgICBIYXNoTWFwPENVUkwqLCBDVVJMY29kZT4gY2FuY2VsbGVkSm9iczsK
ICAgICBWZWN0b3I8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiB0YXNrUXVldWU7CiAKICAgICB7CiAg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgICAgIHBlbmRpbmdKb2Jz
ID0gV1RGTW92ZShtX3BlbmRpbmdKb2JzKTsKLSAgICAgICAgY2FuY2VsbGVkVGlja2V0cyA9IFdU
Rk1vdmUobV9jYW5jZWxsZWRUaWNrZXRzKTsKKyAgICAgICAgY2FuY2VsbGVkSm9icyA9IFdURk1v
dmUobV9jYW5jZWxsZWRKb2JzKTsKICAgICAgICAgdGFza1F1ZXVlID0gV1RGTW92ZShtX3Rhc2tR
dWV1ZSk7CiAgICAgfQogCi0gICAgam9icy5zdGFydEpvYnMoV1RGTW92ZShwZW5kaW5nSm9icykp
OwotICAgIGpvYnMuZmluaXNoSm9icyhXVEZNb3ZlKGNhbmNlbGxlZFRpY2tldHMpLCBDdXJsSm9i
UmVzdWx0OjpDYW5jZWxsZWQpOwotICAgIGpvYnMuZmluaXNoSm9icyhXVEZNb3ZlKG1fZmluaXNo
ZWRUaWNrZXRzKSwgQ3VybEpvYlJlc3VsdDo6RG9uZSk7Ci0gICAgam9icy5maW5pc2hKb2JzKFdU
Rk1vdmUobV9mYWlsZWRUaWNrZXRzKSwgQ3VybEpvYlJlc3VsdDo6RXJyb3IpOwotCiAgICAgZm9y
IChhdXRvJiB0YXNrIDogdGFza1F1ZXVlKQogICAgICAgICB0YXNrKCk7CisKKyAgICBqb2JzLnN0
YXJ0Sm9icyhXVEZNb3ZlKHBlbmRpbmdKb2JzKSk7CisKKyAgICBqb2JzLmZpbmlzaEpvYnMoV1RG
TW92ZShjYW5jZWxsZWRKb2JzKSwgW10oQ3VybEpvYkNsaWVudCogY2xpZW50LCBDVVJMY29kZSkg
eworICAgICAgICBjbGllbnQtPmRpZENhbmNlbFRyYW5zZmVyKCk7CisgICAgfSk7CisKKyAgICBq
b2JzLmZpbmlzaEpvYnMoV1RGTW92ZShtX2ZpbmlzaGVkSm9icyksIFtdKEN1cmxKb2JDbGllbnQq
IGNsaWVudCwgQ1VSTGNvZGUgcmVzdWx0KSB7CisgICAgICAgIGNsaWVudC0+ZGlkQ29tcGxldGVU
cmFuc2ZlcihyZXN1bHQpOworICAgIH0pOwogfQogCiB2b2lkIEN1cmxKb2JNYW5hZ2VyOjp3b3Jr
ZXJUaHJlYWQoKQpAQCAtMjI5LDExICsyMjgsNyBAQCB2b2lkIEN1cmxKb2JNYW5hZ2VyOjp3b3Jr
ZXJUaHJlYWQoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBBU1NFUlQo
bXNnLT5tc2cgPT0gQ1VSTE1TR19ET05FKTsKLSAgICAgICAgICAgIGF1dG8gdGlja2V0ID0gc3Rh
dGljX2Nhc3Q8Q3VybEpvYlRpY2tldD4obXNnLT5lYXN5X2hhbmRsZSk7Ci0gICAgICAgICAgICBp
ZiAobXNnLT5kYXRhLnJlc3VsdCA9PSBDVVJMRV9PSykKLSAgICAgICAgICAgICAgICBtX2Zpbmlz
aGVkVGlja2V0cy5hZGQodGlja2V0KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBtX2ZhaWxlZFRpY2tldHMuYWRkKHRpY2tldCk7CisgICAgICAgICAgICBtX2ZpbmlzaGVkSm9i
cy5hZGQobXNnLT5lYXN5X2hhbmRsZSwgbXNnLT5kYXRhLnJlc3VsdCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAoam9icy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEpvYk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsSm9iTWFuYWdlci5oCmluZGV4IDQyMzAyY2U1YzJlLi43
YTA4YzRlYjgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxKb2JNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxKb2JNYW5hZ2VyLmgKQEAgLTM3LDE2ICszNywxNiBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBDdXJsSm9iTGlzdDsKLXVzaW5nIEN1cmxKb2JUaWNrZXQgPSB2b2lk
KjsKIAogY2xhc3MgQ3VybEpvYkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJl
dGFpbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZSgpID0gMDsKIAotICAgIHZpcnR1
YWwgdm9pZCBzZXR1cFJlcXVlc3QoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlz
aCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmFpbCgpID0gMDsKKyAgICB2aXJ0dWFs
IENVUkwqIGhhbmRsZSgpID0gMDsKKyAgICB2aXJ0dWFsIENVUkwqIHNldHVwVHJhbnNmZXIoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlVHJhbnNmZXIoQ1VSTGNvZGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsVHJhbnNmZXIoKSA9IDA7CiB9OwogCiBjbGFzcyBD
dXJsSm9iTWFuYWdlciB7CkBAIC02MSw4ICs2MSw4IEBAIHB1YmxpYzoKICAgICBDdXJsSm9iTWFu
YWdlcigpID0gZGVmYXVsdDsKICAgICB+Q3VybEpvYk1hbmFnZXIoKSB7IHN0b3BUaHJlYWQoKTsg
fQogCi0gICAgQ3VybEpvYlRpY2tldCBhZGQoQ3VybEhhbmRsZSYsIEN1cmxKb2JDbGllbnQmKTsK
LSAgICB2b2lkIGNhbmNlbChDdXJsSm9iVGlja2V0KTsKKyAgICBib29sIGFkZChDdXJsSm9iQ2xp
ZW50Kik7CisgICAgdm9pZCBjYW5jZWwoQ3VybEpvYkNsaWVudCopOwogCiAgICAgdm9pZCBjYWxs
T25Kb2JUaHJlYWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwogCkBAIC03NiwxMCArNzYsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgd29ya2VyVGhyZWFkKCk7CiAKICAgICBSZWZQdHI8VGhyZWFk
PiBtX3RocmVhZDsKLSAgICBIYXNoTWFwPEN1cmxKb2JUaWNrZXQsIEN1cmxKb2JDbGllbnQqPiBt
X3BlbmRpbmdKb2JzOwotICAgIEhhc2hTZXQ8Q3VybEpvYlRpY2tldD4gbV9jYW5jZWxsZWRUaWNr
ZXRzOwotICAgIEhhc2hTZXQ8Q3VybEpvYlRpY2tldD4gbV9maW5pc2hlZFRpY2tldHM7Ci0gICAg
SGFzaFNldDxDdXJsSm9iVGlja2V0PiBtX2ZhaWxlZFRpY2tldHM7CisgICAgSGFzaFNldDxDdXJs
Sm9iQ2xpZW50Kj4gbV9wZW5kaW5nSm9iczsKKyAgICBIYXNoTWFwPENVUkwqLCBDVVJMY29kZT4g
bV9maW5pc2hlZEpvYnM7CisgICAgSGFzaE1hcDxDVVJMKiwgQ1VSTGNvZGU+IG1fY2FuY2VsbGVk
Sm9iczsKICAgICBWZWN0b3I8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tRdWV1ZTsKICAg
ICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBib29sIG1fcnVuVGhyZWFkIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCmluZGV4IGZjNzAxOWM1NmVkLi5h
OTBhYTQwY2NhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCkBAIC05
MywxNiArOTMsMzEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6cmVsZWFzZUhh
bmRsZSgpCiAgICAgbV9oYW5kbGUgPSBudWxscHRyOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxl
Q3VybERlbGVnYXRlOjpzdGFydCgpCit2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpz
dGFydChib29sIGlzU3luY1JlcXVlc3QpCiB7Ci0gICAgbV9qb2IgPSBDdXJsSm9iTWFuYWdlcjo6
c2luZ2xldG9uKCkuYWRkKG1fY3VybEhhbmRsZSwgKnRoaXMpOwotICAgIHJldHVybiAhIW1fam9i
OworICAgIG1faXNTeW5jUmVxdWVzdCA9IGlzU3luY1JlcXVlc3Q7CisKKyAgICBpZiAoIW1faXNT
eW5jUmVxdWVzdCkgeworICAgICAgICAvLyBGb3IgYXN5bmNocm9ub3VzLCB1c2UgQ3VybEpvYk1h
bmFnZXIuIEN1cmwgcHJvY2Vzc2VzIHJ1bnMgb24gc3ViIHRocmVhZC4KKyAgICAgICAgQ3VybEpv
Yk1hbmFnZXI6OnNpbmdsZXRvbigpLmFkZCh0aGlzKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBGb3Igc3luY2hyb25vdXMsIGRvZXMgbm90IHVzZSBDdXJsSm9iTWFuYWdlci4gQ3VybCBwcm9j
ZXNzZXMgcnVucyBvbiBtYWluIHRocmVhZC4KKyAgICAgICAgcmV0YWluKCk7CisgICAgICAgIHNl
dHVwVHJhbnNmZXIoKTsKKworICAgICAgICAvLyBjdXJsX2Vhc3lfcGVyZm9ybSBibG9ja3MgdW50
aWwgdGhlIHRyYW5zZmVyIGlzIGZpbmlzaGVkLgorICAgICAgICBDVVJMY29kZSByZXN1bHRDb2Rl
ID0gbV9jdXJsSGFuZGxlLnBlcmZvcm0oKTsKKyAgICAgICAgZGlkQ29tcGxldGVUcmFuc2Zlcihy
ZXN1bHRDb2RlKTsKKyAgICAgICAgcmVsZWFzZSgpOworICAgIH0KIH0KIAogdm9pZCBSZXNvdXJj
ZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y2FuY2VsKCkKIHsKICAgICByZWxlYXNlSGFuZGxlKCk7Ci0g
ICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRvbigpLmNhbmNlbChtX2pvYik7CisKKyAgICBpZiAo
IW1faXNTeW5jUmVxdWVzdCkKKyAgICAgICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRvbigpLmNh
bmNlbCh0aGlzKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6c2V0RGVm
ZXJzTG9hZGluZyhib29sIGRlZmVycykKQEAgLTE0Myw5ICsxNTgsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpzZXRBdXRoZW50aWNhdGlvbihjb25zdCBTdHJpbmcmIHVzZXIs
IGNvbnN0IFN0cgogCiB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaXNwYXRjaFN5
bmNocm9ub3VzSm9iKCkKIHsKLSAgICBVUkwga3VybCA9IG1fZmlyc3RSZXF1ZXN0LnVybCgpOwot
Ci0gICAgaWYgKGt1cmwucHJvdG9jb2xJc0RhdGEoKSkgeworICAgIGlmIChtX2ZpcnN0UmVxdWVz
dC51cmwoKS5wcm90b2NvbElzRGF0YSgpKSB7CiAgICAgICAgIGhhbmRsZURhdGFVUkwoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NSwxNSArMTY4LDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZUN1cmxEZWxlZ2F0ZTo6ZGlzcGF0Y2hTeW5jaHJvbm91c0pvYigpCiAgICAgLy8gYW5kIHdl
IHdvdWxkIGFzc2VydCBzbyBmb3JjZSBkZWZlcnNMb2FkaW5nIHRvIGJlIGZhbHNlLgogICAgIG1f
ZGVmZXJzTG9hZGluZyA9IGZhbHNlOwogCi0gICAgc2V0dXBSZXF1ZXN0KCk7Ci0KLSAgICAvLyBj
dXJsX2Vhc3lfcGVyZm9ybSBibG9ja3MgdW50aWwgdGhlIHRyYW5zZmVyIGlzIGZpbmlzaGVkLgot
ICAgIENVUkxjb2RlIHJldCA9IG1fY3VybEhhbmRsZS5wZXJmb3JtKCk7Ci0KLSAgICBpZiAocmV0
ICE9IENVUkxFX09LKQotICAgICAgICBub3RpZnlGYWlsKCk7Ci0gICAgZWxzZQotICAgICAgICBu
b3RpZnlGaW5pc2goKTsKKyAgICBzdGFydCh0cnVlKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRs
ZUN1cmxEZWxlZ2F0ZTo6cmV0YWluKCkKQEAgLTE3Niw3ICsxODEsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpyZWxlYXNlKCkKICAgICBkZXJlZigpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpzZXR1cFJlcXVlc3QoKQorQ1VSTCogUmVzb3VyY2VI
YW5kbGVDdXJsRGVsZWdhdGU6OnNldHVwVHJhbnNmZXIoKQogewogICAgIEN1cmxDb250ZXh0JiBj
b250ZXh0ID0gQ3VybENvbnRleHQ6OnNpbmdsZXRvbigpOwogCkBAIC0yNDUsMzggKzI1MCw0NiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpzZXR1cFJlcXVlc3QoKQogICAgIGFw
cGx5QXV0aGVudGljYXRpb24oKTsKIAogICAgIG1fY3VybEhhbmRsZS5lbmFibGVQcm94eUlmRXhp
c3RzKCk7CisKKyAgICByZXR1cm4gbV9jdXJsSGFuZGxlLmhhbmRsZSgpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpub3RpZnlGaW5pc2goKQordm9pZCBSZXNvdXJjZUhh
bmRsZUN1cmxEZWxlZ2F0ZTo6ZGlkQ29tcGxldGVUcmFuc2ZlcihDVVJMY29kZSByZXN1bHQpCiB7
Ci0gICAgTmV0d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtMb2FkTWV0cmljcyA9IGdldE5ldHdvcmtM
b2FkTWV0cmljcygpOworICAgIGlmIChyZXN1bHQgPT0gQ1VSTEVfT0spIHsKKyAgICAgICAgTmV0
d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtMb2FkTWV0cmljcyA9IGdldE5ldHdvcmtMb2FkTWV0cmlj
cygpOwogCi0gICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICBkaWRGaW5pc2gobmV0d29y
a0xvYWRNZXRyaWNzKTsKLSAgICBlbHNlIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtZXRyaWNzID0gbmV0d29ya0xvYWRNZXRyaWNz
Lmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1faGFu
ZGxlKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PmRpZEZpbmlzaChtZXRyaWNzKTsKLSAgICAgICAgfSk7CisgICAgICAgIGlmIChpc01haW5UaHJl
YWQoKSkKKyAgICAgICAgICAgIGRpZEZpbmlzaChuZXR3b3JrTG9hZE1ldHJpY3MpOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgbWV0cmljcyA9IG5ldHdvcmtMb2FkTWV0cmljcy5pc29sYXRlZENvcHko
KV0geworICAgICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9oYW5kbGUpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5k
aWRGaW5pc2gobWV0cmljcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxz
ZSB7CisgICAgICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvciA9IFJlc291cmNlRXJyb3I6
Omh0dHBFcnJvcihyZXN1bHQsIG1fZmlyc3RSZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgaWYgKG1f
c3NsVmVyaWZpZXIuc3NsRXJyb3JzKCkpCisgICAgICAgICAgICByZXNvdXJjZUVycm9yLnNldFNz
bEVycm9ycyhtX3NzbFZlcmlmaWVyLnNzbEVycm9ycygpKTsKKworICAgICAgICBpZiAoaXNNYWlu
VGhyZWFkKCkpCisgICAgICAgICAgICBkaWRGYWlsKHJlc291cmNlRXJyb3IpOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgZXJyb3IgPSByZXNvdXJjZUVycm9yLmlzb2xhdGVkQ29weSgpXSB7CisgICAg
ICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX2hhbmRsZSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEZhaWwoZXJy
b3IpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9CisKKyAgICBtX2Zvcm1EYXRh
U3RyZWFtID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6
bm90aWZ5RmFpbCgpCit2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaWRDYW5jZWxU
cmFuc2ZlcigpCiB7Ci0gICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yID0gUmVzb3VyY2VF
cnJvcjo6aHR0cEVycm9yKG1fY3VybEhhbmRsZS5lcnJvckNvZGUoKSwgbV9maXJzdFJlcXVlc3Qu
dXJsKCkpOwotICAgIGlmIChtX3NzbFZlcmlmaWVyLnNzbEVycm9ycygpKQotICAgICAgICByZXNv
dXJjZUVycm9yLnNldFNzbEVycm9ycyhtX3NzbFZlcmlmaWVyLnNzbEVycm9ycygpKTsKLQotICAg
IGlmIChpc01haW5UaHJlYWQoKSkKLSAgICAgICAgZGlkRmFpbChyZXNvdXJjZUVycm9yKTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBlcnJvciA9IHJlc291cmNlRXJyb3IuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9oYW5kbGUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlkRmFpbChlcnJvcik7Ci0gICAgICAg
IH0pOwotICAgIH0KKyAgICBtX2Zvcm1EYXRhU3RyZWFtID0gbnVsbHB0cjsKIH0KIAogUmVzb3Vy
Y2VSZXNwb25zZSYgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OnJlc3BvbnNlKCkKQEAgLTQy
NSw4ICs0MzgsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaWRGaW5pc2go
TmV0d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtMb2FkTWV0cmljcwogewogICAgIHJlc3BvbnNlKCku
c2V0RGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0cmljcyhuZXR3b3JrTG9hZE1ldHJpY3MpOwogCi0g
ICAgbV9mb3JtRGF0YVN0cmVhbSA9IG51bGxwdHI7Ci0KICAgICBpZiAoIW1faGFuZGxlKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTQ0Nyw4ICs0NTgsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3Vy
bERlbGVnYXRlOjpkaWRGaW5pc2goTmV0d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtMb2FkTWV0cmlj
cwogCiB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaWRGYWlsKGNvbnN0IFJlc291
cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7Ci0gICAgbV9mb3JtRGF0YVN0cmVhbSA9IG51bGxw
dHI7Ci0KICAgICBpZiAoIW1faGFuZGxlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxE
ZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlLmgKaW5kZXggNTI3MDJhMDE3NjYuLjVhMWViZDQ1NDJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuaApAQCAtMjksNyArMjksNiBAQAogI2lmIFVT
RShDVVJMKQogCiAjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgotI2luY2x1ZGUgIkN1cmxDb250ZXh0
LmgiCiAjaW5jbHVkZSAiQ3VybEpvYk1hbmFnZXIuaCIKICNpbmNsdWRlICJDdXJsU1NMVmVyaWZp
ZXIuaCIKICNpbmNsdWRlICJGb3JtRGF0YVN0cmVhbUN1cmwuaCIKQEAgLTU0LDcgKzUzLDcgQEAg
cHVibGljOgogICAgIGJvb2wgaGFzSGFuZGxlKCkgY29uc3Q7CiAgICAgdm9pZCByZWxlYXNlSGFu
ZGxlKCk7CiAKLSAgICBib29sIHN0YXJ0KCk7CisgICAgYm9vbCBzdGFydCgpIHsgc3RhcnQoZmFs
c2UpOyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgY2FuY2VsKCk7CiAKICAgICB2b2lkIHNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CkBAIC02NiwxMyArNjUsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJldGFpbigpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVsZWFzZSgpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCBzZXR1cFJlcXVlc3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmeUZpbmlzaCgpIG92
ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5RmFpbCgpIG92ZXJyaWRlOworICAgIENVUkwqIGhhbmRs
ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VybEhhbmRsZS5oYW5kbGUoKTsgfQorICAgIENVUkwq
IHNldHVwVHJhbnNmZXIoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENvbXBsZXRlVHJhbnNmZXIo
Q1VSTGNvZGUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2FuY2VsVHJhbnNmZXIoKSBvdmVycmlk
ZTsKIAogICAgIC8vIENhbGxlZCBmcm9tIG1haW4gdGhyZWFkLgogICAgIFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKCk7CiAKKyAgICB2b2lkIHN0YXJ0KGJvb2wgaXNTeW5jUmVxdWVzdCk7CisK
ICAgICB2b2lkIHNldHVwQXV0aGVudGljYXRpb24oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUFs
bEhlYWRlcnMobG9uZyBodHRwQ29kZSwgbG9uZyBsb25nIGNvbnRlbnRMZW5ndGgsIHVpbnQxNl90
IGNvbm5lY3RQb3J0LCBsb25nIGF2YWlsYWJsZUh0dHBBdXRoKTsKQEAgLTEwOCw3ICsxMTAsNiBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxGb3JtRGF0YVN0cmVhbT4gbV9mb3JtRGF0
YVN0cmVhbTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TXVsdGlwYXJ0SGFuZGxlPiBtX211bHRpcGFy
dEhhbmRsZTsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2F1dGhGYWlsdXJlQ291bnQgeyAwIH07Ci0g
ICAgQ3VybEpvYlRpY2tldCBtX2pvYiB7IG51bGxwdHIgfTsKICAgICAvLyBVc2VkIGJ5IHdvcmtl
ciB0aHJlYWQuCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZmlyc3RSZXF1ZXN0OwogICAgIEhUVFBI
ZWFkZXJNYXAgbV9jdXN0b21IVFRQSGVhZGVyRmllbGRzOwpAQCAtMTIyLDYgKzEyMyw3IEBAIHBy
aXZhdGU6CiAgICAgQ3VybEhhbmRsZSBtX2N1cmxIYW5kbGU7CiAgICAgQ3VybFNTTFZlcmlmaWVy
IG1fc3NsVmVyaWZpZXI7CiAgICAgLy8gVXNlZCBieSBib3RoIHRocmVhZHMuCisgICAgYm9vbCBt
X2lzU3luY1JlcXVlc3QgeyBmYWxzZSB9OwogICAgIENvbmRpdGlvbiBtX3dvcmtlclRocmVhZENv
bmRpdGlvblZhcmlhYmxlOwogICAgIExvY2sgbV93b3JrZXJUaHJlYWRNdXRleDsKICAgICBzaXpl
X3QgbV9zZW5kQnl0ZXMgeyAwIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>