<?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>155692</bug_id>
          
          <creation_ts>2016-03-19 17:05:39 -0700</creation_ts>
          <short_desc>Associated commits don&apos;t immediately show up on an analysis task page</short_desc>
          <delta_ts>2016-03-20 17:57:04 -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>Perf Dashboard</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1176541</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-19 17:05:39 -0700</bug_when>
    <thetext>When the user newly associates a commit to an analysis task,
the new commit doesn&apos;t immediately show up on the UI in occasions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176543</commentid>
    <comment_count>1</comment_count>
      <attachid>274528</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-19 17:23:46 -0700</bug_when>
    <thetext>Created attachment 274528
Fixes the bug and adds tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176633</commentid>
    <comment_count>2</comment_count>
      <attachid>274528</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-20 17:49:05 -0700</bug_when>
    <thetext>Comment on attachment 274528
Fixes the bug and adds tests

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176634</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-20 17:57:04 -0700</bug_when>
    <thetext>Committed r198479: &lt;http://trac.webkit.org/changeset/198479&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274528</attachid>
            <date>2016-03-19 17:23:46 -0700</date>
            <delta_ts>2016-03-20 17:49:05 -0700</delta_ts>
            <desc>Fixes the bug and adds tests</desc>
            <filename>bug-155692-20160319172346.patch</filename>
            <type>text/plain</type>
            <size>35000</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NDcyKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDcwIEBACisyMDE2LTAzLTE5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFzc29jaWF0ZWQgY29tbWl0cyBkb24ndCBpbW1lZGlhdGVseSBzaG93IHVwIG9u
IGFuIGFuYWx5c2lzIHRhc2sgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU1NjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IHJlc29sdmVDb21taXRzIGluIEFu
YWx5c2lzVGFzay5fY29uc3RydWN0QW5hbHlzaXNUYXNrc0Zyb21SYXdEYXRhIG5vdCBiZWluZwor
ICAgICAgICBhYmxlIHRvIGZpbmQgdGhlIG1hdGNoaW5nIGNvbW1pdCBsb2cgaWYgdGhlIGNvbW1p
dCBsb2cgaGFkIGJlZW4gY3JlYXRlZCBieSB0aGUgY2hhcnRzIHdoaWNoIGRvbid0CisgICAgICAg
IHNldCB0aGUgcmVtb3RlIGlkZW50aWZpZXJzIG9uIGVhY2ggQ29tbWl0TG9nIG9iamVjdHMuCisK
KyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBtb2RpZnlpbmcgL2FwaS9tZWFzdXJlbWVudC1zZXQg
dG8gaW5jbHVkZSB0aGUgY29tbWl0IElELCBhbmQgbWFraW5nIENvbW1pdExvZworICAgICAgICB1
c2UgdGhlIHJlYWwgZGF0YWJhc2UgSUQgYXMgaXRzIElEIGluc3RlYWQgb2YgYSBmYWtlIElEIHdl
IGNyZWF0ZSBmcm9tIHJlcG9zaXRvcnkgYW5kIHJldmlzaW9uLgorCisgICAgICAgIEFsc28gYWRk
ZWQgYSBidW5jaCBvZiBNb2NoYSB1bml0IHRlc3RzIGZvciBBbmFseXNpc1Rhc2suZmV0Y2hBbGwu
CisKKyAgICAgICAgKiBwdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5waHA6CisgICAgICAgIChN
ZWFzdXJlbWVudFNldEZldGNoZXI6OmV4ZWN1dGVfcXVlcnkpOiBGZXRjaCBjb21taXRfaWQuCisg
ICAgICAgIChNZWFzdXJlbWVudFNldEZldGNoZXI6OmZvcm1hdF9ydW4pOiBVc2UgcGFzcy1ieS1y
ZWZlcmVuY2UgdG8gYXZvaWQgbWFraW5nIGEgY29weSBvZiB0aGUgcm93LgorICAgICAgICAoTWVh
c3VyZW1lbnRTZXRGZXRjaGVyOjpwYXJzZV9yZXZpc2lvbnNfYXJyYXkpOiBJbmNsdWRlIGNvbW1p
dF9pZCBhcyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgcmVzdWx0LgorICAgICAgICAqIHB1YmxpYy92
My9pbnN0cnVtZW50YXRpb24uanM6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNp
cy10YXNrLmpzOgorICAgICAgICAoQW5hbHlzaXNUYXNrKTogRml4ZWQgYSBidWcgdGhhdCBfYnVp
bGRSZXF1ZXN0Q291bnQgYW5kIF9maW5pc2hlZEJ1aWxkUmVxdWVzdENvdW50IGNvdWxkIGJlIGtl
cHQKKyAgICAgICAgYXMgc3RyaW5ncyBhbmQgaGFzUGVuZGluZ1JlcXVlc3RzKCkgY291bGQgcmV0
dXJuIGEgd3JvbmcgcmVzdWx0IGJlY2F1c2UgaXQgd291bGQgcGVyZm9ybSBzdHJpbmcKKyAgICAg
ICAgaW5lcXVhbGl0eSBpbnN0ZWFkIG9mIG51bWVyaWNhbCBpbmVxdWFsaXR5LgorICAgICAgICAo
QW5hbHlzaXNUYXNrLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOiBEaXR0by4KKyAgICAgICAg
KEFuYWx5c2lzVGFzay5wcm90b3R5cGUuZGlzc29jaWF0ZUNvbW1pdCk6CisgICAgICAgIChBbmFs
eXNpc1Rhc2suX2NvbnN0cnVjdEFuYWx5c2lzVGFza3NGcm9tUmF3RGF0YSk6CisgICAgICAgIChB
bmFseXNpc1Rhc2suX2NvbnN0cnVjdEFuYWx5c2lzVGFza3NGcm9tUmF3RGF0YS5yZXNvbHZlQ29t
bWl0cyk6IFVzZSBmaW5kQnlJZCBub3cgdGhhdCBDb21taXRMb2cKKyAgICAgICAgb2JqZWN0cyBh
bGwgdXNlIHRoZSBzYW1lIGlkIGFzIHRoZSBkYXRhYmFzZSBpZC4KKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL2NvbW1pdC1sb2cuanM6CisgICAgICAgIChDb21taXRMb2cpOgorICAgICAgICAo
Q29tbWl0TG9nLnByb3RvdHlwZS5yZW1vdGVJZCk6IERlbGV0ZWQgc2luY2Ugd2Ugbm8gbG9uZ2Vy
IGNyZWF0ZSBhIGZha2UgaWQgZm9yIGNvbW1pdCBsb2dzIGZvcgorICAgICAgICBtZWFzdXJlbWVu
dCBzZXRzLgorICAgICAgICAoQ29tbWl0TG9nLmZpbmRCeVJlbW90ZUlkKTogRGVsZXRlZC4KKyAg
ICAgICAgKENvbW1pdExvZy5lbnN1cmVTaW5nbGV0b24pOiBEZWxldGVkLgorICAgICAgICAoQ29t
bWl0TG9nLmZldGNoQmV0d2VlblJldmlzaW9ucyk6CisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL2RhdGEtbW9kZWwuanM6CisgICAgICAgIChEYXRhTW9kZWxPYmplY3QuY2xlYXJTdGF0aWNN
YXApOiBBZGRlZCB0byBhaWQgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoRGF0YU1vZGVsT2JqZWN0
LmVuc3VyZU5hbWVkU3RhdGljTWFwKTogRml4ZWQgYSB0eXBvLiBFYWNoIG1hcCBpcyBhIGRpY3Rp
b25hcnksIG5vdCBhbiBhcnJheS4KKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL21ldHJpYy5q
czoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzOgorICAgICAgICAqIHB1
YmxpYy92My9tb2RlbHMvcm9vdC1zZXQuanM6CisgICAgICAgIChSb290U2V0KTogVXBkYXRlZCBw
ZXIgdGhlIGludGVyZmFjZSBjaGFuZ2UgaW4gQ29tbWl0TG9nLmVuc3VyZVNpbmdsZXRvbi4KKyAg
ICAgICAgKE1lYXN1cmVtZW50Um9vdFNldCk6IFVwZGF0ZWQgcGVyIC9hcGkvbWVhc3VyZW1lbnQt
c2V0IGNoYW5nZS4gVXNlIHRoZSBmaXJzdCB2YWx1ZSBhcyB0aGUgaWQuCisgICAgICAgICogcHVi
bGljL3YzL21vZGVscy90ZXN0LmpzOgorICAgICAgICAqIHVuaXQtdGVzdHMvYW5hbHlzaXMtdGFz
ay10ZXN0cy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGVBbmFseXNpc1Rhc2spOgorICAgICAg
ICAobWVhc3VyZW1lbnRDbHVzdGVyKToKKyAgICAgICAgKiB1bml0LXRlc3RzL2NoZWNrY29uZmln
LmpzOiBBZGRlZCBzb21lIGFzc2VydGlvbiBtZXNzYWdlIHRvIGhlbHAgYWlkIGRpYWdub3Npbmcg
dGhlIGZhaWx1cmUuCisgICAgICAgICogdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1hZGFwdG9yLXRl
c3RzLmpzOiBVcGRhdGVkIHRoZSBzYW1wbGUgZGF0YSBwZXIgdGhlIEFQSSBjaGFuZ2UgaW4KKyAg
ICAgICAgL2FwaS9tZWFzdXJlbWVudC1zZXQgYW5kIGFsc28gYWRkZWQgYXNzZXJ0aW9ucyBmb3Ig
Y29tbWl0IGxvZyBpZHMuCisgICAgICAgICogdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtdGVz
dHMuanM6CisgICAgICAgIChiZWZvcmVFYWNoKToKKyAgICAgICAgKiB1bml0LXRlc3RzL3Jlc291
cmNlczogQWRkZWQuCisgICAgICAgICogdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUt
YXBpLmpzOiBBZGRlZC4gRXh0cmFjdGVkIGZyb20gbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzIHRv
IGJlCisgICAgICAgIHVzZWQgaW4gYW5hbHlzaXMtdGFzay10ZXN0cy5qcy4KKyAgICAgICAgKGFz
c2VydC5ub3RSZWFjaGVkLmFzc2VydC5ub3RSZWFjaGVkKToKKyAgICAgICAgKGdsb2JhbC5SZW1v
dGVBUEkuZ2V0SlNPTik6CisgICAgICAgIChnbG9iYWwuUmVtb3RlQVBJLmdldEpTT05XaXRoU3Rh
dHVzKToKKyAgICAgICAgKGJlZm9yZUVhY2gpOgorICAgICAgICAqIHVuaXQtdGVzdHMvcmVzb3Vy
Y2VzL3YzLW1vZGVscy5qczogQWRkZWQuIEV4dHJhY3RlZCBmcm9tIG1lYXN1cmVtZW50LXNldC10
ZXN0cy5qcyB0byBiZSB1c2VkIGluCisgICAgICAgIGFuYWx5c2lzLXRhc2stdGVzdHMuanMgYW5k
IGFkZGVkIG1vcmUgaW1wb3J0cyBhcyBuZWVkZWQuCisgICAgICAgIChpbXBvcnRGcm9tVjMpOgor
ICAgICAgICAoYmVmb3JlRWFjaCk6CisKIDIwMTYtMDMtMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVyIHIxOTg0NjQuCkluZGV4OiBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9tZWFzdXJlbWVudC1zZXQucGhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL21lYXN1cmVt
ZW50LXNldC5waHAJKHJldmlzaW9uIDE5ODQ2NikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5waHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw3
ICsxNjUsNyBAQCBjbGFzcyBNZWFzdXJlbWVudFNldEZldGNoZXIgewogICAgIGZ1bmN0aW9uIGV4
ZWN1dGVfcXVlcnkoJGNvbmZpZ19pZCkgewogICAgICAgICByZXR1cm4gJHRoaXMtPmRiLT5xdWVy
eSgnCiAgICAgICAgICAgICBTRUxFQ1QgdGVzdF9ydW5zLiosIGJ1aWxkcy4qLAotICAgICAgICAg
ICAgYXJyYXlfYWdnKChjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uLCBjb21taXRf
dGltZSkpIEFTIHJldmlzaW9ucywKKyAgICAgICAgICAgIGFycmF5X2FnZygoY29tbWl0X2lkLCBj
b21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uLCBjb21taXRfdGltZSkpIEFTIHJldmlz
aW9ucywKICAgICAgICAgICAgIG1heChjb21taXRfdGltZSkgQVMgcmV2aXNpb25fdGltZSwgbWF4
KGNvbW1pdF9vcmRlcikgQVMgcmV2aXNpb25fb3JkZXIKICAgICAgICAgICAgICAgICBGUk9NIGJ1
aWxkcwogICAgICAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gYnVpbGRfY29tbWl0cyBP
TiBjb21taXRfYnVpbGQgPSBidWlsZF9pZApAQCAtMTgwLDcgKzE4MCw3IEBAIGNsYXNzIE1lYXN1
cmVtZW50U2V0RmV0Y2hlciB7CiAgICAgICAgICAgICAnY29tbWl0VGltZScsICdidWlsZCcsICdi
dWlsZFRpbWUnLCAnYnVpbGROdW1iZXInLCAnYnVpbGRlcicpOwogICAgIH0KIAotICAgIHByaXZh
dGUgc3RhdGljIGZ1bmN0aW9uIGZvcm1hdF9ydW4oJHJ1biwgJiRjb21taXRfdGltZSkgeworICAg
IHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGZvcm1hdF9ydW4oJiRydW4sICYkY29tbWl0X3RpbWUp
IHsKICAgICAgICAgJGNvbW1pdF90aW1lID0gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJHJ1blsncmV2
aXNpb25fdGltZSddKTsKICAgICAgICAgJGJ1aWxkX3RpbWUgPSBEYXRhYmFzZTo6dG9fanNfdGlt
ZSgkcnVuWydidWlsZF90aW1lJ10pOwogICAgICAgICBpZiAoISRjb21taXRfdGltZSkKQEAgLTIw
MCwxNiArMjAwLDE5IEBAIGNsYXNzIE1lYXN1cmVtZW50U2V0RmV0Y2hlciB7CiAgICAgICAgICAg
ICBpbnR2YWwoJHJ1blsnYnVpbGRfYnVpbGRlciddKSk7CiAgICAgfQogCi0gICAgcHJpdmF0ZSBz
dGF0aWMgZnVuY3Rpb24gcGFyc2VfcmV2aXNpb25zX2FycmF5KCRwb3N0Z3Jlc19hcnJheSkgewot
ICAgICAgICAvLyBlLmcuIHsiKFdlYktpdCwxMzE0NTYsXCIyMDEyLTEwLTE2IDE0OjUzOjAwXCIp
IiwiKENocm9taXVtLDE2MjAwNCwpIn0KKyAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwYXJz
ZV9yZXZpc2lvbnNfYXJyYXkoJiRwb3N0Z3Jlc19hcnJheSkgeworICAgICAgICAvLyBlLmcuIHsi
KDxjb21taXQtaWQ+LDxyZXBvc2l0b3J5LWlkPiw8cmV2aXNpb24+LFwiMjAxMi0xMC0xNiAxNDo1
MzowMFwiKSIsIig8Y29tbWl0LWlkPiw8cmVwb3NpdG9yeS1pZD4sPHJldmlzaW9uPiwpIn0KICAg
ICAgICAgJG91dGVyX2FycmF5ID0ganNvbl9kZWNvZGUoJ1snIC4gdHJpbSgkcG9zdGdyZXNfYXJy
YXksICd7fScpIC4gJ10nKTsKICAgICAgICAgJHJldmlzaW9ucyA9IGFycmF5KCk7CiAgICAgICAg
IGZvcmVhY2ggKCRvdXRlcl9hcnJheSBhcyAkaXRlbSkgewogICAgICAgICAgICAgJG5hbWVfYW5k
X3JldmlzaW9uID0gZXhwbG9kZSgnLCcsIHRyaW0oJGl0ZW0sICcoKScpKTsKICAgICAgICAgICAg
IGlmICghJG5hbWVfYW5kX3JldmlzaW9uWzBdKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgJHRpbWUgPSBEYXRhYmFzZTo6dG9fanNfdGltZSh0cmltKCRuYW1lX2FuZF9y
ZXZpc2lvblsyXSwgJyInKSk7Ci0gICAgICAgICAgICBhcnJheV9wdXNoKCRyZXZpc2lvbnMsIGFy
cmF5KGludHZhbCh0cmltKCRuYW1lX2FuZF9yZXZpc2lvblswXSwgJyInKSksIHRyaW0oJG5hbWVf
YW5kX3JldmlzaW9uWzFdLCAnIicpLCAkdGltZSkpOworICAgICAgICAgICAgJGNvbW1pdF9pZCA9
IGludHZhbCh0cmltKCRuYW1lX2FuZF9yZXZpc2lvblswXSwgJyInKSk7CisgICAgICAgICAgICAk
cmVwb3NpdG9yeV9pZCA9IGludHZhbCh0cmltKCRuYW1lX2FuZF9yZXZpc2lvblsxXSwgJyInKSk7
CisgICAgICAgICAgICAkcmV2aXNpb24gPSB0cmltKCRuYW1lX2FuZF9yZXZpc2lvblsyXSwgJyIn
KTsKKyAgICAgICAgICAgICR0aW1lID0gRGF0YWJhc2U6OnRvX2pzX3RpbWUodHJpbSgkbmFtZV9h
bmRfcmV2aXNpb25bM10sICciJykpOworICAgICAgICAgICAgYXJyYXlfcHVzaCgkcmV2aXNpb25z
LCBhcnJheSgkY29tbWl0X2lkLCAkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uLCAkdGltZSkpOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiAkcmV2aXNpb25zOwogICAgIH0KSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5zdHJ1bWVudGF0aW9uLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5zdHJ1bWVudGF0aW9u
LmpzCShyZXZpc2lvbiAxOTg0NjYpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2luc3RydW1lbnRhdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAKKyd1
c2Ugc3RyaWN0JzsKKwogY2xhc3MgSW5zdHJ1bWVudGF0aW9uIHsKIAogICAgIHN0YXRpYyBzdGFy
dE1lYXN1cmluZ1RpbWUoZG9tYWluLCBsYWJlbCkKQEAgLTUzLDMgKzU1LDYgQEAgY2xhc3MgSW5z
dHJ1bWVudGF0aW9uIHsKICAgICB9CiAKIH0KKworaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVm
aW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMuSW5zdHJ1bWVudGF0aW9uID0gSW5zdHJ1bWVudGF0
aW9uOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5h
bHlzaXMtdGFzay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCShyZXZpc2lvbiAxOTg0NjYpCisrKyBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorJ3VzZSBzdHJpY3QnOwogCiBjbGFzcyBBbmFs
eXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICBjb25zdHJ1Y3RvcihpZCwgb2Jq
ZWN0KQpAQCAtMjIsOCArMjMsOCBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVk
T2JqZWN0CiAgICAgICAgIHRoaXMuX2J1Z3MgPSBvYmplY3QuYnVncyB8fCBbXTsKICAgICAgICAg
dGhpcy5fY2F1c2VzID0gb2JqZWN0LmNhdXNlcyB8fCBbXTsKICAgICAgICAgdGhpcy5fZml4ZXMg
PSBvYmplY3QuZml4ZXMgfHwgW107Ci0gICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdENvdW50ID0g
b2JqZWN0LmJ1aWxkUmVxdWVzdENvdW50OwotICAgICAgICB0aGlzLl9maW5pc2hlZEJ1aWxkUmVx
dWVzdENvdW50ID0gb2JqZWN0LmZpbmlzaGVkQnVpbGRSZXF1ZXN0Q291bnQ7CisgICAgICAgIHRo
aXMuX2J1aWxkUmVxdWVzdENvdW50ID0gK29iamVjdC5idWlsZFJlcXVlc3RDb3VudDsKKyAgICAg
ICAgdGhpcy5fZmluaXNoZWRCdWlsZFJlcXVlc3RDb3VudCA9ICtvYmplY3QuZmluaXNoZWRCdWls
ZFJlcXVlc3RDb3VudDsKICAgICB9CiAKICAgICBzdGF0aWMgZmluZEJ5UGxhdGZvcm1BbmRNZXRy
aWMocGxhdGZvcm1JZCwgbWV0cmljSWQpCkBAIC01MCw4ICs1MSw4IEBAIGNsYXNzIEFuYWx5c2lz
VGFzayBleHRlbmRzIExhYmVsZWRPYmplY3QKICAgICAgICAgdGhpcy5fYnVncyA9IG9iamVjdC5i
dWdzIHx8IFtdOwogICAgICAgICB0aGlzLl9jYXVzZXMgPSBvYmplY3QuY2F1c2VzIHx8IFtdOwog
ICAgICAgICB0aGlzLl9maXhlcyA9IG9iamVjdC5maXhlcyB8fCBbXTsKLSAgICAgICAgdGhpcy5f
YnVpbGRSZXF1ZXN0Q291bnQgPSBvYmplY3QuYnVpbGRSZXF1ZXN0Q291bnQ7Ci0gICAgICAgIHRo
aXMuX2ZpbmlzaGVkQnVpbGRSZXF1ZXN0Q291bnQgPSBvYmplY3QuZmluaXNoZWRCdWlsZFJlcXVl
c3RDb3VudDsKKyAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0Q291bnQgPSArb2JqZWN0LmJ1aWxk
UmVxdWVzdENvdW50OworICAgICAgICB0aGlzLl9maW5pc2hlZEJ1aWxkUmVxdWVzdENvdW50ID0g
K29iamVjdC5maW5pc2hlZEJ1aWxkUmVxdWVzdENvdW50OwogICAgIH0KIAogICAgIGhhc1Jlc3Vs
dHMoKSB7IHJldHVybiB0aGlzLl9maW5pc2hlZEJ1aWxkUmVxdWVzdENvdW50OyB9CkBAIC0xMzgs
NyArMTM5LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdAogICAg
ICAgICB2YXIgaWQgPSB0aGlzLmlkKCk7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdhc3NvY2lhdGUtY29tbWl0JywgewogICAgICAgICAgICAgdGFzazogaWQsCi0g
ICAgICAgICAgICBjb21taXQ6IGNvbW1pdC5yZW1vdGVJZCgpLAorICAgICAgICAgICAgY29tbWl0
OiBjb21taXQuaWQoKSwKICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkgewogICAgICAg
ICAgICAgcmV0dXJuIEFuYWx5c2lzVGFzay5jYWNoZWRGZXRjaCgnLi4vYXBpL2FuYWx5c2lzLXRh
c2tzJywge2lkOiBpZH0sIHRydWUpCiAgICAgICAgICAgICAgICAgLnRoZW4oQW5hbHlzaXNUYXNr
Ll9jb25zdHJ1Y3RBbmFseXNpc1Rhc2tzRnJvbVJhd0RhdGEuYmluZChBbmFseXNpc1Rhc2spKTsK
QEAgLTIzMiwxMSArMjMzLDExIEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRP
YmplY3QKICAgICAgICAgICAgIHJhd0RhdGEucmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQocmF3RGF0YS5yZXBvc2l0b3J5KTsKICAgICAgICAgICAgIGlmICghcmF3RGF0YS5yZXBvc2l0
b3J5KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgQ29tbWl0TG9nLmVu
c3VyZVNpbmdsZXRvbihyYXdEYXRhLnJlcG9zaXRvcnksIHJhd0RhdGEpOworICAgICAgICAgICAg
Q29tbWl0TG9nLmVuc3VyZVNpbmdsZXRvbihyYXdEYXRhLmlkLCByYXdEYXRhKTsKICAgICAgICAg
fQogCiAgICAgICAgIGZ1bmN0aW9uIHJlc29sdmVDb21taXRzKGNvbW1pdHMpIHsKLSAgICAgICAg
ICAgIHJldHVybiBjb21taXRzLm1hcChmdW5jdGlvbiAoaWQpIHsgcmV0dXJuIENvbW1pdExvZy5m
aW5kQnlSZW1vdGVJZChpZCk7IH0pLmZpbHRlcihmdW5jdGlvbiAoY29tbWl0KSB7IHJldHVybiAh
IWNvbW1pdDsgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tbWl0cy5tYXAoZnVuY3Rpb24gKGlk
KSB7IHJldHVybiBDb21taXRMb2cuZmluZEJ5SWQoaWQpOyB9KS5maWx0ZXIoZnVuY3Rpb24gKGNv
bW1pdCkgeyByZXR1cm4gISFjb21taXQ7IH0pOwogICAgICAgICB9CiAKICAgICAgICAgdmFyIHJl
c3VsdHMgPSBbXTsKQEAgLTI2NiwzICsyNjcsNiBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5k
cyBMYWJlbGVkT2JqZWN0CiAgICAgICAgIH0pOwogICAgIH0KIH0KKworaWYgKHR5cGVvZiBtb2R1
bGUgIT0gJ3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMuQW5hbHlzaXNUYXNrID0gQW5h
bHlzaXNUYXNrOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvY29tbWl0LWxvZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCShyZXZpc2lvbiAxOTg0NjYpCisrKyBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC01LDI3ICs1LDEzIEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFN
b2RlbE9iamVjdCAKICAgICB7CiAgICAgICAgIHN1cGVyKGlkKTsKICAgICAgICAgdGhpcy5fcmVw
b3NpdG9yeSA9IHJhd0RhdGEucmVwb3NpdG9yeTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5fcmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOwogICAgICAgICB0aGlzLl9yYXdE
YXRhID0gcmF3RGF0YTsKICAgICAgICAgdGhpcy5fcmVtb3RlSWQgPSByYXdEYXRhLmlkOwogICAg
ICAgICBpZiAodGhpcy5fcmVtb3RlSWQpCiAgICAgICAgICAgICB0aGlzLmVuc3VyZU5hbWVkU3Rh
dGljTWFwKCdyZW1vdGVJZCcpW3RoaXMuX3JlbW90ZUlkXSA9IHRoaXM7CiAgICAgfQogCi0gICAg
Ly8gRklYTUU6IEFsbCB0aGlzIG5vbi1zZW5zZSBzaG91bGQgZ28gYXdheSBvbmNlIG1lYXN1cmVt
ZW50LXNldCBzdGFydCByZXR1cm5pbmcgcmVhbCBjb21taXQgaWQuCi0gICAgcmVtb3RlSWQoKSB7
IHJldHVybiB0aGlzLl9yZW1vdGVJZDsgfQotICAgIHN0YXRpYyBmaW5kQnlSZW1vdGVJZChpZCkK
LSAgICB7Ci0gICAgICAgIHZhciByZW1vdGVJZE1hcCA9IHN1cGVyLm5hbWVkU3RhdGljTWFwKCdy
ZW1vdGVJZCcpOwotICAgICAgICByZXR1cm4gcmVtb3RlSWRNYXAgPyByZW1vdGVJZE1hcFtpZF0g
OiBudWxsOwotICAgIH0KLQotICAgIHN0YXRpYyBlbnN1cmVTaW5nbGV0b24ocmVwb3NpdG9yeSwg
cmF3RGF0YSkKLSAgICB7Ci0gICAgICAgIHZhciBpZCA9IHJlcG9zaXRvcnkuaWQoKSArICctJyAr
IHJhd0RhdGFbJ3JldmlzaW9uJ107Ci0gICAgICAgIHJhd0RhdGEucmVwb3NpdG9yeSA9IHJlcG9z
aXRvcnk7Ci0gICAgICAgIHJldHVybiBzdXBlci5lbnN1cmVTaW5nbGV0b24oaWQsIHJhd0RhdGEp
OwotICAgIH0KLQogICAgIHVwZGF0ZVNpbmdsZXRvbihyYXdEYXRhKQogICAgIHsKICAgICAgICAg
c3VwZXIudXBkYXRlU2luZ2xldG9uKHJhd0RhdGEpOwpAQCAtOTksNyArODUsMTAgQEAgY2xhc3Mg
Q29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IAogCiAgICAgICAgIHZhciBzZWxmID0g
dGhpczsKICAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5nZXRKU09OV2l0aFN0YXR1cyh1cmwpLnRo
ZW4oZnVuY3Rpb24gKGRhdGEpIHsKLSAgICAgICAgICAgIHZhciBjb21taXRzID0gZGF0YVsnY29t
bWl0cyddLm1hcChmdW5jdGlvbiAocmF3RGF0YSkgeyByZXR1cm4gQ29tbWl0TG9nLmVuc3VyZVNp
bmdsZXRvbihyZXBvc2l0b3J5LCByYXdEYXRhKTsgfSk7CisgICAgICAgICAgICB2YXIgY29tbWl0
cyA9IGRhdGFbJ2NvbW1pdHMnXS5tYXAoZnVuY3Rpb24gKHJhd0RhdGEpIHsKKyAgICAgICAgICAg
ICAgICByYXdEYXRhLnJlcG9zaXRvcnkgPSByZXBvc2l0b3J5OworICAgICAgICAgICAgICAgIHJl
dHVybiBDb21taXRMb2cuZW5zdXJlU2luZ2xldG9uKHJhd0RhdGEuaWQsIHJhd0RhdGEpOworICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICBzZWxmLl9jYWNoZUNvbW1pdExvZ3MocmVwb3NpdG9y
eSwgZnJvbSwgdG8sIGNvbW1pdHMpOwogICAgICAgICAgICAgcmV0dXJuIGNvbW1pdHM7CiAgICAg
ICAgIH0pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
ZGF0YS1tb2RlbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCShyZXZpc2lvbiAxOTg0NjYpCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMCw2ICsyMCw4IEBAIGNsYXNzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICB1
cGRhdGVTaW5nbGV0b24ob2JqZWN0KSB7IH0KIAorICAgIHN0YXRpYyBjbGVhclN0YXRpY01hcCgp
IHsgdGhpc1tEYXRhTW9kZWxPYmplY3QuU3RhdGljTWFwU3ltYm9sXSA9IG51bGw7IH0KKwogICAg
IHN0YXRpYyBuYW1lZFN0YXRpY01hcChuYW1lKQogICAgIHsKICAgICAgICAgdmFyIHN0YXRpY01h
cCA9IHRoaXNbRGF0YU1vZGVsT2JqZWN0LlN0YXRpY01hcFN5bWJvbF07CkBAIC0zMiw3ICszNCw3
IEBAIGNsYXNzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgICAgICB0aGlzW0RhdGFNb2RlbE9i
amVjdC5TdGF0aWNNYXBTeW1ib2xdID0ge307CiAgICAgICAgIHZhciBzdGF0aWNNYXAgPSB0aGlz
W0RhdGFNb2RlbE9iamVjdC5TdGF0aWNNYXBTeW1ib2xdOwogICAgICAgICBpZiAoIXN0YXRpY01h
cFtuYW1lXSkKLSAgICAgICAgICAgIHN0YXRpY01hcFtuYW1lXSA9IFtdOworICAgICAgICAgICAg
c3RhdGljTWFwW25hbWVdID0ge307CiAgICAgICAgIHJldHVybiBzdGF0aWNNYXBbbmFtZV07CiAg
ICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9t
ZXRyaWMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvbWV0cmljLmpzCShyZXZpc2lvbiAxOTg0NjYpCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZXRyaWMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw0IEBACisndXNlIHN0cmljdCc7CiAKIGNsYXNzIE1ldHJpYyBleHRlbmRzIExhYmVsZWRP
YmplY3QgewogICAgIGNvbnN0cnVjdG9yKGlkLCBvYmplY3QpCkBAIC04NiwzICs4Nyw2IEBAIGNs
YXNzIE1ldHJpYyBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB9CiAgICAgfTsKIH0K
KworaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMu
TWV0cmljID0gTWV0cmljOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvcGxhdGZvcm0uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMJKHJldmlzaW9uIDE5ODQ2NikKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorJ3VzZSBzdHJpY3QnOwogCiBjbGFzcyBQbGF0Zm9y
bSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgIGNvbnN0cnVjdG9yKGlkLCBvYmplY3QpCkBA
IC0zNCwzICszNSw2IEBAIGNsYXNzIFBsYXRmb3JtIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9sYXN0TW9kaWZpZWRCeU1ldHJpY1ttZXRyaWMuaWQoKV07CiAg
ICAgfQogfQorCitpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykKKyAgICBtb2R1bGUu
ZXhwb3J0cy5QbGF0Zm9ybSA9IFBsYXRmb3JtOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvcm9vdC1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcm9vdC1zZXQuanMJKHJldmlzaW9uIDE5
ODQ2NikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Jvb3Qt
c2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCwxMSArMTQsMTEgQEAgY2xhc3MgUm9vdFNldCBl
eHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICAgICAgZm9yICh2YXIgcm93IG9mIG9iamVj
dC5yb290cykgewogICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlJZCA9IHJvdy5yZXBvc2l0b3J5
OwotICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHJlcG9z
aXRvcnlJZCk7CisgICAgICAgICAgICByb3cucmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQocmVwb3NpdG9yeUlkKTsKIAogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3Jl
cG9zaXRvcnlUb0NvbW1pdE1hcFtyZXBvc2l0b3J5SWRdKTsKLSAgICAgICAgICAgIHRoaXMuX3Jl
cG9zaXRvcnlUb0NvbW1pdE1hcFtyZXBvc2l0b3J5SWRdID0gQ29tbWl0TG9nLmVuc3VyZVNpbmds
ZXRvbihyZXBvc2l0b3J5LCByb3cpOwotICAgICAgICAgICAgdGhpcy5fcmVwb3NpdG9yaWVzLnB1
c2gocmVwb3NpdG9yeSk7CisgICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXBb
cmVwb3NpdG9yeUlkXSA9IENvbW1pdExvZy5lbnN1cmVTaW5nbGV0b24ocm93LmlkLCByb3cpOwor
ICAgICAgICAgICAgdGhpcy5fcmVwb3NpdG9yaWVzLnB1c2gocm93LnJlcG9zaXRvcnkpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC03NCwxMiArNzQsMTYgQEAgY2xhc3MgTWVhc3VyZW1lbnRSb290
U2V0IGV4dGVuZHMgUm9vdFNldAogICAgIHsKICAgICAgICAgc3VwZXIoaWQsIG51bGwpOwogICAg
ICAgICBmb3IgKHZhciB2YWx1ZXMgb2YgcmV2aXNpb25MaXN0KSB7Ci0gICAgICAgICAgICB2YXIg
cmVwb3NpdG9yeUlkID0gdmFsdWVzWzBdOworICAgICAgICAgICAgLy8gWzxjb21taXQtaWQ+LCA8
cmVwb3NpdG9yeS1pZD4sIDxyZXZpc2lvbj4sIDx0aW1lPl0KKyAgICAgICAgICAgIHZhciBjb21t
aXRJZCA9IHZhbHVlc1swXTsKKyAgICAgICAgICAgIHZhciByZXBvc2l0b3J5SWQgPSB2YWx1ZXNb
MV07CisgICAgICAgICAgICB2YXIgcmV2aXNpb24gPSB2YWx1ZXNbMl07CisgICAgICAgICAgICB2
YXIgdGltZSA9IHZhbHVlc1szXTsKICAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChyZXBvc2l0b3J5SWQpOwogICAgICAgICAgICAgaWYgKCFyZXBvc2l0b3J5
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICB0aGlzLl9yZXBvc2l0
b3J5VG9Db21taXRNYXBbcmVwb3NpdG9yeUlkXSA9IENvbW1pdExvZy5lbnN1cmVTaW5nbGV0b24o
cmVwb3NpdG9yeSwge3JldmlzaW9uOiB2YWx1ZXNbMV0sIHRpbWU6IHZhbHVlc1syXX0pOworICAg
ICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwW3JlcG9zaXRvcnlJZF0gPSBDb21t
aXRMb2cuZW5zdXJlU2luZ2xldG9uKGNvbW1pdElkLCB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwg
cmV2aXNpb246IHJldmlzaW9uLCB0aW1lOiB0aW1lfSk7CiAgICAgICAgICAgICB0aGlzLl9yZXBv
c2l0b3JpZXMucHVzaChyZXBvc2l0b3J5KTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC5qcwkocmV2
aXNpb24gMTk4NDY2KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvdGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKKyd1c2Ugc3RyaWN0JzsK
IAogY2xhc3MgVGVzdCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgIGNvbnN0cnVjdG9yKGlk
LCBvYmplY3QsIGlzVG9wTGV2ZWwpCkBAIC00MiwzICs0Myw2IEBAIGNsYXNzIFRlc3QgZXh0ZW5k
cyBMYWJlbGVkT2JqZWN0IHsKICAgICBhZGRDaGlsZFRlc3QodGVzdCkgeyB0aGlzLl9jaGlsZFRl
c3RzLnB1c2godGVzdCk7IH0KICAgICBhZGRNZXRyaWMobWV0cmljKSB7IHRoaXMuX21ldHJpY3Mu
cHVzaChtZXRyaWMpOyB9CiB9CisKK2lmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKQor
ICAgIG1vZHVsZS5leHBvcnRzLlRlc3QgPSBUZXN0OwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0cy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpz
CShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5h
bHlzaXMtdGFzay10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyNCBAQAorJ3Vz
ZSBzdHJpY3QnOworCit2YXIgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK3JlcXVpcmUo
Jy4vcmVzb3VyY2VzL3YzLW1vZGVscy5qcycpOworcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1y
ZW1vdGUtYXBpLmpzJyk7CisKK2Z1bmN0aW9uIHNhbXBsZUFuYWx5c2lzVGFzaygpCit7CisgICAg
cmV0dXJuIHsKKyAgICAgICAgJ2FuYWx5c2lzVGFza3MnOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgJ2F1dGhvcic6IG51bGwsCisgICAgICAgICAgICAgICAgJ2J1Z3MnOiBbXSwK
KyAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0Q291bnQnOiAnMTQnLAorICAgICAgICAgICAg
ICAgICdmaW5pc2hlZEJ1aWxkUmVxdWVzdENvdW50JzogJzYnLAorICAgICAgICAgICAgICAgICdj
YXRlZ29yeSc6ICdpZGVudGlmaWVkJywKKyAgICAgICAgICAgICAgICAnY2F1c2VzJzogWworICAg
ICAgICAgICAgICAgICAgICAnMTA1OTc1JworICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgJ2NyZWF0ZWRBdCc6IDE0NTQ1OTQzMzAwMDAsCisgICAgICAgICAgICAgICAgJ2VuZFJ1
bic6ICczNzI1MzQ0OCcsCisgICAgICAgICAgICAgICAgJ2VuZFJ1blRpbWUnOiAxNDU0NTE1MDIw
MzAzLAorICAgICAgICAgICAgICAgICdmaXhlcyc6IFtdLAorICAgICAgICAgICAgICAgICdpZCc6
ICcxMDgyJywKKyAgICAgICAgICAgICAgICAnbWV0cmljJzogJzI4ODQnLAorICAgICAgICAgICAg
ICAgICduYW1lJzogJ1BvdGVudGlhbCAxLjIlIHJlZ3Jlc3Npb24gYmV0d2VlbiAyMDE2LTAyLTAy
IDIwOjIwIGFuZCAwMi0wMyAxNTo1NycsCisgICAgICAgICAgICAgICAgJ25lZWRlZCc6IG51bGws
CisgICAgICAgICAgICAgICAgJ3BsYXRmb3JtJzogJzY1JywKKyAgICAgICAgICAgICAgICAncmVz
dWx0JzogJ3JlZ3Jlc3Npb24nLAorICAgICAgICAgICAgICAgICdzZWdtZW50YXRpb25TdHJhdGVn
eSc6ICcxJywKKyAgICAgICAgICAgICAgICAnc3RhcnRSdW4nOiAnMzcxMTc5NDknLAorICAgICAg
ICAgICAgICAgICdzdGFydFJ1blRpbWUnOiAxNDU0NDQ0NDU4NzkxLAorICAgICAgICAgICAgICAg
ICd0ZXN0UmFuZ2VTdHJhZ2VneSc6ICcyJworICAgICAgICAgICAgfQorICAgICAgICBdLAorICAg
ICAgICAnYnVncyc6IFtdLAorICAgICAgICAnY29tbWl0cyc6IFsKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAnYXV0aG9yRW1haWwnOiAnY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcnLAor
ICAgICAgICAgICAgICAgICdhdXRob3JOYW1lJzogJ0NvbW1pdCBRdWV1ZScsCisgICAgICAgICAg
ICAgICAgJ2lkJzogJzEwNTk3NScsCisgICAgICAgICAgICAgICAgJ21lc3NhZ2UnOiAnQ29tbWl0
IG1lc3NhZ2UnLAorICAgICAgICAgICAgICAgICdvcmRlcic6IG51bGwsCisgICAgICAgICAgICAg
ICAgJ3BhcmVudCc6IG51bGwsCisgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcnknOiAnMTEnLAor
ICAgICAgICAgICAgICAgICdyZXZpc2lvbic6ICcxOTYwNTEnLAorICAgICAgICAgICAgICAgICd0
aW1lJzogMTQ1NDQ4MTI0NjEwOAorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAn
c3RhdHVzJzogJ09LJworICAgIH07Cit9CisKK2Z1bmN0aW9uIG1lYXN1cmVtZW50Q2x1c3Rlcigp
Cit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ2NsdXN0ZXJTaXplJzogNTE4NDAwMDAwMCwKKyAg
ICAgICAgJ2NsdXN0ZXJTdGFydCc6IDk0NjY4NDgwMDAwMCwKKyAgICAgICAgJ2NvbmZpZ3VyYXRp
b25zJzogeworICAgICAgICAgICAgJ2N1cnJlbnQnOiBbCisgICAgICAgICAgICAgICAgWworICAg
ICAgICAgICAgICAgICAgICAzNzE4ODE2MSwKKyAgICAgICAgICAgICAgICAgICAgMTI0LjE1MDE1
NjYyMTE2LAorICAgICAgICAgICAgICAgICAgICAyNSwKKyAgICAgICAgICAgICAgICAgICAgMzEw
My43NTM5MTU1MjkxLAorICAgICAgICAgICAgICAgICAgICAzODUzOTguMDYwMDM0MTQsCisgICAg
ICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICBbCisgICAgICAgICAg
ICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA1OTc4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICc3OTE0NTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0NTQ0ODEyMDQ2NDkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTA1OTc1LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDExLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxOTYwNTEnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE0NTQ0ODEyNDYxMDgKKyAgICAgICAgICAgICAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTA1NTAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJzEwLjExIDE1RDIxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwCisgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgICAgIDE0NTQ0ODEyNDYxMDgsCisgICAgICAgICAgICAgICAgICAgIDIy
NzAyMCwKKyAgICAgICAgICAgICAgICAgICAgMTQ1NDQ5MjEzOTQ5NiwKKyAgICAgICAgICAgICAg
ICAgICAgJzMxNTEnLAorICAgICAgICAgICAgICAgICAgICAxNzkKKyAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2VuZFRpbWUnOiAxNDU0NzE2
ODAwMDAwLAorICAgICAgICAnZm9ybWF0TWFwJzogWworICAgICAgICAgICAgJ2lkJywKKyAgICAg
ICAgICAgICdtZWFuJywKKyAgICAgICAgICAgICdpdGVyYXRpb25Db3VudCcsCisgICAgICAgICAg
ICAnc3VtJywKKyAgICAgICAgICAgICdzcXVhcmVTdW0nLAorICAgICAgICAgICAgJ21hcmtlZE91
dGxpZXInLAorICAgICAgICAgICAgJ3JldmlzaW9ucycsCisgICAgICAgICAgICAnY29tbWl0VGlt
ZScsCisgICAgICAgICAgICAnYnVpbGQnLAorICAgICAgICAgICAgJ2J1aWxkVGltZScsCisgICAg
ICAgICAgICAnYnVpbGROdW1iZXInLAorICAgICAgICAgICAgJ2J1aWxkZXInCisgICAgICAgIF0s
CisgICAgICAgICdsYXN0TW9kaWZpZWQnOiAxNDU1MjM2MjE2MTUzLAorICAgICAgICAnc3RhcnRU
aW1lJzogMTQ0OTUzMjgwMDAwMCwKKyAgICAgICAgJ3N0YXR1cyc6ICdPSycKKyAgICB9OworfQor
CitkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgZnVuY3Rpb24gKCkgeworICAgIGRlc2NyaWJlKCdm
ZXRjaEFsbCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCByZXF1ZXN0IGFsbCBh
bmFseXNpcyB0YXNrcycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBjYWxsQ291bnQg
PSAwOworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmZldGNoQWxsKCkudGhlbihmdW5jdGlvbiAo
KSB7IGNhbGxDb3VudCsrOyB9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQs
IDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnLi4vYXBpL2FuYWx5c2lzLXRh
c2tzJyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IHJlcXVlc3QgYWxs
IGFuYWx5c2lzIHRhc2tzIG11bHRpcGxlIHRpbWVzJywgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgdmFyIGNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICBBbmFseXNpc1Rhc2suZmV0Y2hBbGwo
KS50aGVuKGZ1bmN0aW9uICgpIHsgY2FsbENvdW50Kys7IH0pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNhbGxDb3VudCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcu
Li9hcGkvYW5hbHlzaXMtdGFza3MnKTsKKworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmZldGNo
QWxsKCkudGhlbihmdW5jdGlvbiAoKSB7IGNhbGxDb3VudCsrOyB9KTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjYWxsQ291bnQsIDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmVzb2x2
ZSB0aGUgcHJvbWlzZSB3aGVuIHRoZSByZXF1ZXN0IGlzIGZ1bGxmaWxsZWQnLCBmdW5jdGlvbiAo
ZG9uZSkgeworICAgICAgICAgICAgdmFyIGNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICB2YXIg
cHJvbWlzZSA9IEFuYWx5c2lzVGFzay5mZXRjaEFsbCgpLnRoZW4oZnVuY3Rpb24gKCkgeyBjYWxs
Q291bnQrKzsgfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50LCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy4uL2FwaS9hbmFseXNpcy10YXNrcycpOwor
CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHNhbXBsZUFuYWx5c2lzVGFzaygpKTsK
KworICAgICAgICAgICAgdmFyIGFub3RoZXJDYWxsQ291bnQgPSAwOworICAgICAgICAgICAgcmV0
dXJuIHByb21pc2UudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNhbGxDb3VudCwgMSk7CisgICAgICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmZldGNoQWxs
KCkudGhlbihmdW5jdGlvbiAoKSB7IGFub3RoZXJDYWxsQ291bnQrKzsgfSk7CisgICAgICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2Fs
bENvdW50LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckNhbGxDb3Vu
dCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24g
KGVycm9yKSB7IGRvbmUoZXJyb3IpOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCBjcmVhdGUgQW5hbHlzaXNUYXNrIG9iamVjdHMnLCBmdW5jdGlvbiAoZG9uZSkgeworICAg
ICAgICAgICAgdmFyIHByb21pc2UgPSBBbmFseXNpc1Rhc2suZmV0Y2hBbGwoKTsKKyAgICAgICAg
ICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlQW5hbHlzaXNUYXNrKCkpOworCisgICAgICAg
ICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQW5hbHlzaXNUYXNrLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgdmFyIHRhc2sgPSBBbmFseXNpc1Rhc2suYWxsKClbMF07CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2suaWQoKSwgMTA4Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRhc2subWV0cmljKCksIHNvbWVNZXRyaWMpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0YXNrLnBsYXRmb3JtKCksIHNvbWVQbGF0Zm9ybSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKHRhc2suaGFzUmVzdWx0cygpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2sodGFzay5o
YXNQZW5kaW5nUmVxdWVzdHMoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
cmVxdWVzdExhYmVsKCksICc2IG9mIDE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRhc2suY2F0ZWdvcnkoKSwgJ2lkZW50aWZpZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksICdyZWdyZXNzaW9uJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2suc3RhcnRNZWFzdXJlbWVudElkKCksIDM3MTE3OTQ5KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5zdGFydFRpbWUoKSwgMTQ1NDQ0NDQ1ODc5MSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suZW5kTWVhc3VyZW1lbnRJZCgpLCAz
NzI1MzQ0OCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suZW5kVGltZSgpLCAx
NDU0NTE1MDIwMzAzKTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICB9KS5j
YXRjaChmdW5jdGlvbiAoZXJyb3IpIHsgZG9uZShlcnJvcik7IH0pOworICAgICAgICB9KTsKKwor
ICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBDb21taXRMb2cgb2JqZWN0cyBmb3IgYGNhdXNlc2An
LCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICAgICAgdmFyIHByb21pc2UgPSBBbmFseXNpc1Rh
c2suZmV0Y2hBbGwoKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlQW5h
bHlzaXNUYXNrKCkpOworCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQW5hbHlzaXNUYXNrLmFsbCgpLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgdmFyIHRhc2sgPSBBbmFseXNpc1Rhc2suYWxsKClb
MF07CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jYXVzZXMoKS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIHZhciBjb21taXQgPSB0YXNrLmNhdXNlcygpWzBdOworCisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbigpLCAnMTk2MDUxJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXBvc2l0b3J5KCksIHdlYmtp
dCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtjb21taXQudGltZSgpLCAxNDU0NDgx
MjQ2MTA4KTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICB9KS5jYXRjaChm
dW5jdGlvbiAoZXJyb3IpIHsgZG9uZShlcnJvcik7IH0pOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnc2hvdWxkIGZpbmQgQ29tbWl0TG9nIG9iamVjdHMgZm9yIGBjYXVzZXNgIHdoZW4gTWVh
c3VyZW1lbnRBZGFwdG9yIGNyZWF0ZWQgbWF0Y2hpbmcgb2JqZWN0cycsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgICAgICB2YXIgYWRvcHRvciA9IG5ldyBNZWFzdXJlbWVudEFkYXB0b3IobWVh
c3VyZW1lbnRDbHVzdGVyKCkuZm9ybWF0TWFwKTsKKyAgICAgICAgICAgIHZhciBhZG9wdGVkTWVh
c3VyZW1lbnQgPSBhZG9wdG9yLmFwcGx5VG8obWVhc3VyZW1lbnRDbHVzdGVyKCkuY29uZmlndXJh
dGlvbnMuY3VycmVudFswXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYWRvcHRlZE1lYXN1
cmVtZW50LmlkLCAzNzE4ODE2MSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYWRvcHRlZE1l
YXN1cmVtZW50LnJvb3RTZXQoKS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkucmV2aXNpb24o
KSwgJzE5NjA1MScpOworCisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IEFuYWx5c2lzVGFzay5m
ZXRjaEFsbCgpOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVBbmFseXNp
c1Rhc2soKSk7CisKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChBbmFseXNpc1Rhc2suYWxsKCkubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICB2YXIgdGFzayA9IEFuYWx5c2lzVGFzay5hbGwoKVswXTsK
KworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNhdXNlcygpLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgdmFyIGNvbW1pdCA9IHRhc2suY2F1c2VzKClbMF07CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbigpLCAnMTk2MDUxJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXBvc2l0b3J5KCksIHdlYmtpdCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtjb21taXQudGltZSgpLCAxNDU0NDgxMjQ2MTA4
KTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv
biAoZXJyb3IpIHsgZG9uZShlcnJvcik7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY2hlY2tjb25maWcuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY2hlY2tj
b25maWcuanMJKHJldmlzaW9uIDE5ODQ2NikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2NoZWNrY29uZmlnLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAot
InVzZSBzdHJpY3QiOworJ3VzZSBzdHJpY3QnOwogCiB2YXIgYXNzZXJ0ID0gcmVxdWlyZSgnYXNz
ZXJ0Jyk7CiB2YXIgZnMgPSByZXF1aXJlKCdmcycpOwpAQCAtMjYsOCArMjYsOCBAQCBkZXNjcmli
ZSgnY29uZmlnLmpzb24nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIGRlZmluZSBg
ZGF0YURpcmVjdG9yeWAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydC5vayhDb25maWcu
dmFsdWUoJ2RhdGFEaXJlY3RvcnknKSk7Ci0gICAgICAgIGFzc2VydC5vayhmcy5leGlzdHNTeW5j
KENvbmZpZy5wYXRoKCdkYXRhRGlyZWN0b3J5JykpKTsKLSAgICAgICAgYXNzZXJ0Lm9rKGZzLnN0
YXRTeW5jKENvbmZpZy5wYXRoKCdkYXRhRGlyZWN0b3J5JykpLmlzRGlyZWN0b3J5KCkpOworICAg
ICAgICBhc3NlcnQub2soZnMuZXhpc3RzU3luYyhDb25maWcucGF0aCgnZGF0YURpcmVjdG9yeScp
KSwgJ2RhdGFEaXJlY3Rvcnkgc2hvdWxkIGV4aXN0Jyk7CisgICAgICAgIGFzc2VydC5vayhmcy5z
dGF0U3luYyhDb25maWcucGF0aCgnZGF0YURpcmVjdG9yeScpKS5pc0RpcmVjdG9yeSgpLCAnZGF0
YURpcmVjdG9yeSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CiAgICAgfSk7CiAKICAgICBpdCgn
c2hvdWxkIGRlZmluZSBganNvbkNhY2hlTWF4QWdlYCcsIGZ1bmN0aW9uICgpIHsKSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LWFkYXB0b3ItdGVz
dHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMv
bWVhc3VyZW1lbnQtYWRhcHRvci10ZXN0cy5qcwkocmV2aXNpb24gMTk4NDY2KQorKysgV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtYWRhcHRvci10ZXN0cy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMiwyNCArMiwxNSBAQAogCiB2YXIgYXNzZXJ0ID0gcmVxdWly
ZSgnYXNzZXJ0Jyk7CiAKLWdsb2JhbC5EYXRhTW9kZWxPYmplY3QgPSByZXF1aXJlKCcuLi9wdWJs
aWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMnKS5EYXRhTW9kZWxPYmplY3Q7Ci1nbG9iYWwuTGFi
ZWxlZE9iamVjdCA9IHJlcXVpcmUoJy4uL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcycp
LkxhYmVsZWRPYmplY3Q7Ci1nbG9iYWwuQ29tbWl0TG9nID0gcmVxdWlyZSgnLi4vcHVibGljL3Yz
L21vZGVscy9jb21taXQtbG9nLmpzJykuQ29tbWl0TG9nOwotZ2xvYmFsLkJ1aWxkID0gcmVxdWly
ZSgnLi4vcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzJykuQnVpbGQ7Ci1nbG9iYWwuQnVpbGRl
ciA9IHJlcXVpcmUoJy4uL3B1YmxpYy92My9tb2RlbHMvYnVpbGRlci5qcycpLkJ1aWxkZXI7Ci1n
bG9iYWwuTWVhc3VyZW1lbnRSb290U2V0ID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21vZGVscy9y
b290LXNldC5qcycpLk1lYXN1cmVtZW50Um9vdFNldDsKLWdsb2JhbC5NZWFzdXJlbWVudEFkYXB0
b3IgPSByZXF1aXJlKCcuLi9wdWJsaWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanMn
KS5NZWFzdXJlbWVudEFkYXB0b3I7Ci1nbG9iYWwuUmVwb3NpdG9yeSA9IHJlcXVpcmUoJy4uL3B1
YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcycpLlJlcG9zaXRvcnk7Ci1nbG9iYWwuUm9vdFNl
dCA9IHJlcXVpcmUoJy4uL3B1YmxpYy92My9tb2RlbHMvcm9vdC1zZXQuanMnKS5Sb290U2V0Owot
Z2xvYmFsLlN0YXRpc3RpY3MgPSByZXF1aXJlKCcuLi9wdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3Mu
anMnKTsKK3JlcXVpcmUoJy4vcmVzb3VyY2VzL3YzLW1vZGVscycpOwogCiB2YXIgc2FtcGxlQ2x1
c3RlciA9IHsKICAgICAnY2x1c3RlclN0YXJ0JzogOTQ2Njg0ODAwMDAwLAogICAgICdjbHVzdGVy
U2l6ZSc6IDUxODQwMDAwMDAsCiAgICAgJ2NvbmZpZ3VyYXRpb25zJzogewogICAgICAgICAnY3Vy
cmVudCc6IFsKLSAgICAgICAgICAgIFsyODk1NDk4MywgMjE3Ljk0NjA3MTQyODU3LCAyMCwgNDM1
OC45MjE0Mjg1NzE0LCA5NTAzMDMuMDIzNjU0MzQsIGZhbHNlLCBbWzksICcxMC4xMSAxNUQyMScs
IDBdLCBbMTEsICcxOTI0ODMnLCAxNDQ3NzA3MDU1NTc2XSwgWzk5OSwgJ3NvbWUgdW5rbm93biBy
ZXZpc2lvbicsIDBdXSwgMTQ0NzcwNzA1NTU3NiwgMTg0NjI5LCAxNDQ3NzYyMjY2MTUzLCAnMTc4
JywgMTc2XSwKLSAgICAgICAgICAgIFsyODk1MjI1NywgMjIwLjExNDU1MzU3MTQzLCAyMCwgNDQw
Mi4yOTEwNzE0Mjg2LCA5NjkwOTkuNjc1MDk4ODUsIGZhbHNlLCBbWzksICcxMC4xMSAxNUQyMScs
IDBdLCBbMTEsICcxOTI0ODYnLCAxNDQ3NzEzNTAwNDYwXV0sIDE0NDc3MTM1MDA0NjAsIDE4NDYx
NCwgMTQ0Nzc2MDI1NTY4MywgJzE3NycsIDE3Nl0KKyAgICAgICAgICAgIFsyODk1NDk4MywgMjE3
Ljk0NjA3MTQyODU3LCAyMCwgNDM1OC45MjE0Mjg1NzE0LCA5NTAzMDMuMDIzNjU0MzQsIGZhbHNl
LCBbWzExMSwgOSwgJzEwLjExIDE1RDIxJywgMF0sIFsyMjIsIDExLCAnMTkyNDgzJywgMTQ0Nzcw
NzA1NTU3Nl0sIFszMzMsIDk5OSwgJ3NvbWUgdW5rbm93biByZXZpc2lvbicsIDBdXSwgMTQ0Nzcw
NzA1NTU3NiwgMTg0NjI5LCAxNDQ3NzYyMjY2MTUzLCAnMTc4JywgMTc2XSwKKyAgICAgICAgICAg
IFsyODk1MjI1NywgMjIwLjExNDU1MzU3MTQzLCAyMCwgNDQwMi4yOTEwNzE0Mjg2LCA5NjkwOTku
Njc1MDk4ODUsIGZhbHNlLCBbWzExMSwgOSwgJzEwLjExIDE1RDIxJywgMF0sIFs0NDQsIDExLCAn
MTkyNDg2JywgMTQ0NzcxMzUwMDQ2MF1dLCAxNDQ3NzEzNTAwNDYwLCAxODQ2MTQsIDE0NDc3NjAy
NTU2ODMsICcxNzcnLCAxNzZdCiAgICAgICAgIF0KICAgICB9LAogICAgICdmb3JtYXRNYXAnOiBb
J2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1bScsICdtYXJr
ZWRPdXRsaWVyJywgJ3JldmlzaW9ucycsCkBAIC0zMywxMCArMjQsNiBAQCB2YXIgc2FtcGxlQ2x1
c3RlciA9IHsKIH07CiB2YXIgc2FtcGxlRGF0YSA9IHNhbXBsZUNsdXN0ZXIuY29uZmlndXJhdGlv
bnMuY3VycmVudFswXTsKIAotdmFyIG9zeCA9IG5ldyBSZXBvc2l0b3J5KDksIHtuYW1lOiAnT1Mg
WCd9KTsKLXZhciB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxMSwge25hbWU6ICdXZWJLaXQnLCB1
cmw6ICdodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8kMSd9KTsKLXZhciBidWlsZGVy
ID0gbmV3IEJ1aWxkZXIoMTc2LCB7bmFtZTogJ1dlYktpdCBQZXJmIEJ1aWxkZXInLCBidWlsZFVy
bDogJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzLyRidWlsZGVyTmFtZS8kYnVpbGRO
dW1iZXInfSk7Ci0KIGRlc2NyaWJlKCdNZWFzdXJlbWVudEFkYXB0b3InLCBmdW5jdGlvbiAoKSB7
CiAgICAgZGVzY3JpYmUoJ2FwcGx5VG8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGl0KCdzaG91
bGQgYWRhcHQgaWQnLCBmdW5jdGlvbiAoKSB7CkBAIC04Nyw2ICs3NCw3IEBAIGRlc2NyaWJlKCdN
ZWFzdXJlbWVudEFkYXB0b3InLCBmdW5jdGlvbiAKICAgICAgICAgICAgIGFzc2VydC5vayhjb21t
aXQgaW5zdGFuY2VvZiBDb21taXRMb2cpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dC5yZXBvc2l0b3J5KCksIG9zeCk7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0LnRpbWUo
KSBpbnN0YW5jZW9mIERhdGUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5pZCgp
LCAxMTEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbigpLCAnMTAu
MTEgMTVEMjEnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQubGFiZWwoKSwgJzEw
LjExIDE1RDIxJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnRpdGxlKCksICdP
UyBYIGF0IDEwLjExIDE1RDIxJyk7CkBAIC0xMDQsNiArOTIsNyBAQCBkZXNjcmliZSgnTWVhc3Vy
ZW1lbnRBZGFwdG9yJywgZnVuY3Rpb24gCiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0IGlu
c3RhbmNlb2YgQ29tbWl0TG9nKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmVw
b3NpdG9yeSgpLCB3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdC50aW1lKCkg
aW5zdGFuY2VvZiBEYXRlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQuaWQoKSwg
MjIyKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrY29tbWl0LnRpbWUoKSwgMTQ0NzcwNzA1
NTU3Nik7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJldmlzaW9uKCksICcxOTI0
ODMnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQubGFiZWwoKSwgJ3IxOTI0ODMn
KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50
LXNldC10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMJKHJldmlzaW9uIDE5ODQ2NikKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC10ZXN0cy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDggQEAKIAogdmFyIGFzc2VydCA9IHJlcXVpcmUo
J2Fzc2VydCcpOwogCityZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKTsK
KwogZ2xvYmFsLkRhdGFNb2RlbE9iamVjdCA9IHJlcXVpcmUoJy4uL3B1YmxpYy92My9tb2RlbHMv
ZGF0YS1tb2RlbC5qcycpLkRhdGFNb2RlbE9iamVjdDsKIGdsb2JhbC5MYWJlbGVkT2JqZWN0ID0g
cmVxdWlyZSgnLi4vcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzJykuTGFiZWxlZE9iamVj
dDsKIGdsb2JhbC5Db21taXRMb2cgPSByZXF1aXJlKCcuLi9wdWJsaWMvdjMvbW9kZWxzL2NvbW1p
dC1sb2cuanMnKS5Db21taXRMb2c7CkBAIC0xNSwzNiArMTcsMTEgQEAgZ2xvYmFsLlJlcG9zaXRv
cnkgPSByZXF1aXJlKCcuLi9wdWJsaWMvdgogZ2xvYmFsLlJvb3RTZXQgPSByZXF1aXJlKCcuLi9w
dWJsaWMvdjMvbW9kZWxzL3Jvb3Qtc2V0LmpzJykuUm9vdFNldDsKIGdsb2JhbC5TdGF0aXN0aWNz
ID0gcmVxdWlyZSgnLi4vcHVibGljL3NoYXJlZC9zdGF0aXN0aWNzLmpzJyk7CiAKLWlmICghYXNz
ZXJ0Lm5vdFJlYWNoZWQpCi0gICAgYXNzZXJ0Lm5vdFJlYWNoZWQgPSBmdW5jdGlvbiAoKSB7IGFz
c2VydChmYWxzZSwgJ1RoaXMgY29kZSBwYXRoIHNob3VsZCBub3QgYmUgcmVhY2hlZCcpOyB9Ci0K
LXZhciByZXF1ZXN0cyA9IFtdOwotCi1nbG9iYWwuUmVtb3RlQVBJID0gewotICAgIGdldEpTT046
IGZ1bmN0aW9uICgpCi0gICAgewotICAgICAgICBhc3NlcnQubm90UmVhY2hlZCgpOwotICAgIH0s
Ci0gICAgZ2V0SlNPTldpdGhTdGF0dXM6IGZ1bmN0aW9uICh1cmwpCi0gICAgewotICAgICAgICB2
YXIgcmVxdWVzdCA9IHsKLSAgICAgICAgICAgIHVybDogdXJsLAotICAgICAgICAgICAgcHJvbWlz
ZTogbnVsbCwKLSAgICAgICAgICAgIHJlc29sdmU6IG51bGwsCi0gICAgICAgICAgICByZWplY3Q6
IG51bGwsCi0gICAgICAgIH07Ci0KLSAgICAgICAgcmVxdWVzdC5wcm9taXNlID0gbmV3IFByb21p
c2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgcmVxdWVzdC5yZXNv
bHZlID0gcmVzb2x2ZTsKLSAgICAgICAgICAgIHJlcXVlc3QucmVqZWN0ID0gcmVqZWN0OwotICAg
ICAgICB9KTsKLQotICAgICAgICByZXF1ZXN0cy5wdXNoKHJlcXVlc3QpOwotICAgICAgICByZXR1
cm4gcmVxdWVzdC5wcm9taXNlOwotICAgIH0sCi19OwotCiBkZXNjcmliZSgnTWVhc3VyZW1lbnRT
ZXQnLCBmdW5jdGlvbiAoKSB7CisgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgICAg
IE1lYXN1cmVtZW50U2V0Ll9zZXQgPSBudWxsOworICAgIH0pOworCiAgICAgZGVzY3JpYmUoJ2Zp
bmRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgbmV3IE1l
YXN1cmVtZW50U2V0IGZvciBhIG5ldyBwYWlyIG9mIHBsYXRmb3JtIGFuZCBtYXRyaWMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoTWVhc3VyZW1lbnRTZXQuZmlu
ZFNldCgxLCAxLCAzMDAwKSwgTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAyLCAzMDAwKSk7CkBA
IC01NywxMSArMzQsNiBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7
CiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnZmV0Y2hCZXR3ZWVuJywgZnVuY3Rpb24gKCkgewot
ICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHJlcXVlc3RzID0g
W107Ci0gICAgICAgICAgICBNZWFzdXJlbWVudFNldC5fc2V0ID0gbnVsbDsKLSAgICAgICAgfSk7
Ci0KICAgICAgICAgaXQoJ3Nob3VsZCBhbHdheXMgcmVxdWVzdCB0aGUgY2FjaGVkIHByaW1hcnkg
Y2x1c3RlciBmaXJzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHZhciBzZXQgPSBNZWFz
dXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDMwMDApOwogICAgICAgICAgICAgc2V0LmZldGNoQmV0
d2VlbigxMDAwLCAyMDAwLCBmdW5jdGlvbiAoKSB7IGFzc2VydC5ub3RSZWFjaGVkKCk7IH0pOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2st
cmVtb3RlLWFwaS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCShyZXZpc2lvbiAwKQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3RlLWFw
aS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACit2YXIgYXNzZXJ0ID0gcmVxdWly
ZSgnYXNzZXJ0Jyk7CisKK2lmICghYXNzZXJ0Lm5vdFJlYWNoZWQpCisgICAgYXNzZXJ0Lm5vdFJl
YWNoZWQgPSBmdW5jdGlvbiAoKSB7IGFzc2VydChmYWxzZSwgJ1RoaXMgY29kZSBwYXRoIHNob3Vs
ZCBub3QgYmUgcmVhY2hlZCcpOyB9CisKK2dsb2JhbC5yZXF1ZXN0cyA9IFtdOworZ2xvYmFsLlJl
bW90ZUFQSSA9IHsKKyAgICBnZXRKU09OOiBmdW5jdGlvbiAoKQorICAgIHsKKyAgICAgICAgYXNz
ZXJ0Lm5vdFJlYWNoZWQoKTsKKyAgICB9LAorICAgIGdldEpTT05XaXRoU3RhdHVzOiBmdW5jdGlv
biAodXJsKQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSB7CisgICAgICAgICAgICB1cmw6
IHVybCwKKyAgICAgICAgICAgIHByb21pc2U6IG51bGwsCisgICAgICAgICAgICByZXNvbHZlOiBu
dWxsLAorICAgICAgICAgICAgcmVqZWN0OiBudWxsLAorICAgICAgICB9OworCisgICAgICAgIHJl
cXVlc3QucHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsK
KyAgICAgICAgICAgIHJlcXVlc3QucmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICByZXF1
ZXN0LnJlamVjdCA9IHJlamVjdDsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVxdWVzdHMucHVz
aChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QucHJvbWlzZTsKKyAgICB9LAorfTsK
KworYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgcmVxdWVzdHMgPSBbXTsKK30pOwpJbmRl
eDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL3YzLW1vZGVs
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9y
ZXNvdXJjZXMvdjMtbW9kZWxzLmpzCShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL3YzLW1vZGVscy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQxIEBACisndXNlIHN0cmljdCc7CisKK2Z1bmN0aW9uIGltcG9ydEZyb21WMyhm
aWxlLCBuYW1lKSB7CisgICAgY29uc3QgbW9kZWxzRGlyZWN0b3J5ID0gJy4uLy4uL3B1YmxpYy92
My8nOworCisgICAgZ2xvYmFsW25hbWVdID0gcmVxdWlyZShtb2RlbHNEaXJlY3RvcnkgKyBmaWxl
KVtuYW1lXTsKK30KKworaW1wb3J0RnJvbVYzKCdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdEYXRh
TW9kZWxPYmplY3QnKTsKK2ltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnTGFi
ZWxlZE9iamVjdCcpOworCitpbXBvcnRGcm9tVjMoJ21vZGVscy9hbmFseXNpcy10YXNrLmpzJywg
J0FuYWx5c2lzVGFzaycpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvYnVpbGRlci5qcycsICdCdWls
ZCcpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvYnVpbGRlci5qcycsICdCdWlsZGVyJyk7CitpbXBv
cnRGcm9tVjMoJ21vZGVscy9jb21taXQtbG9nLmpzJywgJ0NvbW1pdExvZycpOworaW1wb3J0RnJv
bVYzKCdtb2RlbHMvbWVhc3VyZW1lbnQtYWRhcHRvci5qcycsICdNZWFzdXJlbWVudEFkYXB0b3In
KTsKK2ltcG9ydEZyb21WMygnbW9kZWxzL21ldHJpYy5qcycsICdNZXRyaWMnKTsKK2ltcG9ydEZy
b21WMygnbW9kZWxzL3BsYXRmb3JtLmpzJywgJ1BsYXRmb3JtJyk7CitpbXBvcnRGcm9tVjMoJ21v
ZGVscy9yZXBvc2l0b3J5LmpzJywgJ1JlcG9zaXRvcnknKTsKK2ltcG9ydEZyb21WMygnbW9kZWxz
L3Jvb3Qtc2V0LmpzJywgJ01lYXN1cmVtZW50Um9vdFNldCcpOworaW1wb3J0RnJvbVYzKCdtb2Rl
bHMvcm9vdC1zZXQuanMnLCAnUm9vdFNldCcpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvdGVzdC5q
cycsICdUZXN0Jyk7CisKK2ltcG9ydEZyb21WMygnaW5zdHJ1bWVudGF0aW9uLmpzJywgJ0luc3Ry
dW1lbnRhdGlvbicpOworCitnbG9iYWwuU3RhdGlzdGljcyA9IHJlcXVpcmUoJy4uLy4uL3B1Ymxp
Yy9zaGFyZWQvc3RhdGlzdGljcy5qcycpOworCitiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAg
ICBBbmFseXNpc1Rhc2suX2ZldGNoQWxsUHJvbWlzZSA9IG51bGw7CisgICAgQW5hbHlzaXNUYXNr
LmNsZWFyU3RhdGljTWFwKCk7CisgICAgQ29tbWl0TG9nLmNsZWFyU3RhdGljTWFwKCk7CisgICAg
Um9vdFNldC5jbGVhclN0YXRpY01hcCgpOworCisgICAgZ2xvYmFsLm9zeCA9IFJlcG9zaXRvcnku
ZW5zdXJlU2luZ2xldG9uKDksIHtuYW1lOiAnT1MgWCd9KTsKKyAgICBnbG9iYWwud2Via2l0ID0g
UmVwb3NpdG9yeS5lbnN1cmVTaW5nbGV0b24oMTEsIHtuYW1lOiAnV2ViS2l0JywgdXJsOiAnaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvJDEnfSk7CisgICAgZ2xvYmFsLmJ1aWxkZXIg
PSBuZXcgQnVpbGRlcigxNzYsIHtuYW1lOiAnV2ViS2l0IFBlcmYgQnVpbGRlcicsIGJ1aWxkVXJs
OiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvJGJ1aWxkZXJOYW1lLyRidWlsZE51
bWJlcid9KTsKKworICAgIGdsb2JhbC5zb21lVGVzdCA9IFRlc3QuZW5zdXJlU2luZ2xldG9uKDE5
MjgsIHtuYW1lOiAnU29tZSB0ZXN0J30pOworICAgIGdsb2JhbC5zb21lTWV0cmljID0gTWV0cmlj
LmVuc3VyZVNpbmdsZXRvbigyODg0LCB7bmFtZTogJ1NvbWUgbWV0cmljJywgdGVzdDogc29tZVRl
c3R9KTsKKyAgICBnbG9iYWwuc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9u
KDY1LCB7bmFtZTogJ1NvbWUgcGxhdGZvcm0nLCBtZXRyaWNzOiBbc29tZU1ldHJpY119KTsKK30p
Owo=
</data>
<flag name="review"
          id="298961"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="298984"
          type_id="3"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>