<?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>94416</bug_id>
          
          <creation_ts>2012-08-18 12:22:07 -0700</creation_ts>
          <short_desc>Web Inspector: load scripts panel lazily</short_desc>
          <delta_ts>2012-08-21 16:39:45 -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>
          <dependson>94414</dependson>
    
    <dependson>94423</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>johnjbarton</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>698937</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-18 12:22:07 -0700</bug_when>
    <thetext>This change removes access to WebInspector.panels.scripts and loads it lazily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698938</commentid>
    <comment_count>1</comment_count>
      <attachid>159265</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-18 12:31:08 -0700</bug_when>
    <thetext>Created attachment 159265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699004</commentid>
    <comment_count>2</comment_count>
      <attachid>159288</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-19 01:47:21 -0700</bug_when>
    <thetext>Created attachment 159288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699037</commentid>
    <comment_count>3</comment_count>
      <attachid>159296</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-19 09:05:10 -0700</bug_when>
    <thetext>Created attachment 159296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699349</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-20 02:27:44 -0700</bug_when>
    <thetext>Committed r126012: &lt;http://trac.webkit.org/changeset/126012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701290</commentid>
    <comment_count>5</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-21 16:39:45 -0700</bug_when>
    <thetext>I thnk this causes
Bug 94647 - Web Inspector: [regression] Settings panel fails to open</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159265</attachid>
            <date>2012-08-18 12:31:08 -0700</date>
            <delta_ts>2012-08-19 01:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94416-20120818233028.patch</filename>
            <type>text/plain</type>
            <size>78344</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkwN2FlZmNlMzIwMDM3
Mjg1NmExY2VhNDAwMzMxMDZmZDAzNmU0NS4uY2I5YTIzYzRlYmU0OGM2NWMxYTU2Y2NkNWYxZmFi
ZWEzYTI5NDQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDEyLTA4LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGxvYWQgc2NyaXB0cyBwYW5lbCBsYXppbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgLSByZW1vdmVzIGFjY2VzcyB0byBXZWJJbnNwZWN0b3IucGFu
ZWxzLnNjcmlwdHMgYW5kIGxvYWRzIGl0IGxhemlseS4KKyAgICAgICAgLSBleHRyYWN0cyBjbGFz
c2VzIHRvIHRoZWlyIG93biBmaWxlcyB3aGVuIGNsYXNzZXMgcmVzaWRpbmcgaW4gb25lIGZpbGUg
YmVsb25nIHRvIGRpZmZlcmVudCBtb2R1bGVzCisgICAgICAgIC0gcmVtb3ZlcyBTdHlsZXNQYW5l
bC5qcyBpbiBmYXZvciBvZiB0aGUgYWN0dWFsIGNsYXNzZXMgaXQgY29udGFpbnMgCisKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2cuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEFQ
SS5qczoKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLl9wZW5kaW5nQ29tbWFuZHMuaXNE
ZWJ1Z2dpbmdFbmFibGVkKToKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLnNldERlYnVn
Z2luZ0VuYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlQnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
QnJlYWtwb2ludHNTaWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlQnJl
YWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2FkZExpc3RFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcmVt
b3ZlTGlzdEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUJyZWFrcG9pbnRz
U2lkZWJhclBhbmUucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS5fZnVuY3Rpb25Db250ZXh0TWVudUV2
ZW50RmlyZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1v
ZGVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2hvd0dvVG9Tb3Vy
Y2VEaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEph
dmFTY3JpcHRTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9ydW5CdXR0
b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0
bGluZURpYWxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFs
b2cuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cu
cHJvdG90eXBlLml0ZW1UaXRsZUF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUuaXRlbVN1YnRpdGxlQXQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5pdGVtS2V5QXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5pdGVt
c0NvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5w
cm90b3R5cGUucmVxdWVzdEl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUucmVxdWVzdEl0ZW1zLmRpZEdldFN0eWxlU2hlZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5z
ZWxlY3RJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxv
Zy5wcm90b3R5cGUucmV3cml0ZVF1ZXJ5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlU291cmNlLmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNQYW5lbC5qcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNv
dXJjZUNvZGVQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VD
b2RlUHJvdmlkZXIucHJvdG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlk
ZXIucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3BvcHVsYXRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUu
X3Jlc291cmNlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29k
ZVByb3ZpZGVyLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVT
b3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5pc0Vk
aXRhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS5wcm90b3R5cGUud29y
a2luZ0NvcHlDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnBy
b3RvdHlwZS53b3JraW5nQ29weUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxl
U291cmNlLnByb3RvdHlwZS5fY2FsbE9yU2V0VGltZW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU3R5bGVTb3VyY2UucHJvdG90eXBlLl9jb21taXRJbmNyZW1lbnRhbEVkaXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5fY2xlYXJJbmNyZW1lbnRhbFVw
ZGF0ZVRpbWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbnNwZWN0b3JTdHlsZVNvdXJjZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3BhbmVsRGVzY3Jp
cHRvcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5fc2hvd0FuY2hvckxvY2F0aW9uKToKKworMjAxMi0wOC0xOCAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBsb2FkIG5ldHdv
cmsgcGFuZWwgbGF6aWx5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NDQxNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI4MWJlMzcwN2Rk
YjQxMjA3ZTNkZmEyZDM2OWQzZDdlNmU5YzQyN2YuLmExMzg1ODJhZTFiYWVmOTU4MmE3YzUwYmNj
MjhjY2EzNGQ1MzllNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQg
QEAKIDIwMTItMDgtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogbG9hZCBzY3JpcHRzIHBhbmVsIGxhemlseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisK
KzIwMTItMDgtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogbG9hZCBuZXR3b3JrIHBhbmVsIGxhemlseQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MTQKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDljZjFkNzI0ZTdiYWVjYTNjM2Y4YjgxZmY2YmFiYjI0ZTBiOTVlNjYuLjEyYzMw
MTJhNjhhZWRjYTNjYmE4NWZiOTg2ZTk5MGM1ODdiZTg3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTYyNTYsOCArNjI1Niw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZh
bmNlZFNlYXJjaENvbnRyb2xsZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ2hlY2tib3guanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29sb3IuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGls
ZXJTY3JpcHRNYXBwaW5nLmpzJywKQEAgLTYyOTgsNyArNjI5Niw2IEBACiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlTWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvRmlsZVV0aWxzLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9Hb1RvTGluZURpYWxvZy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9IQVJFbnRyeS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9IYW5kbGVyUmVnaXN0cnkuanMnLApAQCAtNjMxMywxMCArNjMxMCwxMCBAQAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRGb3JtYXR0ZXIuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5qcycsCi0g
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvanNkaWZmbGliLmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTGlua2lmaWVyLmpzJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yT3ZlcmxheUNvbnRyb2xsZXIu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmlldy5qcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcycsCkBA
IC02MzM5LDE2ICs2MzM2LDExIEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVRyZWVNb2RlbC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVR5cGUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VVdGlscy5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhp
c3RvcnlWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3Vy
Y2VNYXBwaW5nLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hh
aW5TaWRlYmFyUGFuZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVy
LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldv
cmtlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0
TW9kZWwuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmln
YXRvci5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3Bl
LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRyb2xsZXIu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzJywK
QEAgLTYzNjksOCArNjM2MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
cGVjdHJ1bS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TcGxpdFZpZXcu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU3RhdHVzQmFyQnV0dG9uLmpz
JywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1BhbmVsLmpzJywKLSAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMnLApAQCAtNjM4MiwxNSArNjM3MywxMiBA
QAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMnLAotICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlRnJhbWUuanMnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9Vc2VyQWdlbnRTdXBwb3J0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL1VzZXJNZXRyaWNzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL3V0
aWxpdGllcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzJywK
LSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFy
UGFuZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2Vy
LmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFu
ZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvZGlhbG9nLmNzcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzJywKQEAgLTY0NjAsNiArNjQ0OCwy
MyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VXZWJTb2NrZXRG
cmFtZVZpZXcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1Bh
bmVsLmpzJywKICAgICAgICAgXSwKKyAgICAgICAgJ3dlYmluc3BlY3Rvcl9zY3JpcHRzX2pzX2Zp
bGVzJzogWworICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tT
aWRlYmFyUGFuZS5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJl
ZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNTZWFyY2hTY29wZS5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzJywKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcycsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGVGcmFtZS5qcycsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUu
anMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5l
LmpzJywKKyAgICAgICAgXSwKICAgICAgICAgJ3dlYmluc3BlY3Rvcl90aW1lbGluZV9qc19maWxl
cyc6IFsKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3Mu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRy
b2xsZXIuanMnLApAQCAtNjUwOCw2ICs2NTEzLDcgQEAKICAgICAgICAgICAgICc8QCh3ZWJpbnNw
ZWN0b3JfZWxlbWVudHNfanNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3Jf
cmVzb3VyY2VzX2pzX2ZpbGVzKScsCiAgICAgICAgICAgICAnPEAod2ViaW5zcGVjdG9yX25ldHdv
cmtfanNfZmlsZXMpJywKKyAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3Jfc2NyaXB0c19qc19m
aWxlcyknLAogICAgICAgICAgICAgJzxAKHdlYmluc3BlY3Rvcl90aW1lbGluZV9qc19maWxlcykn
LAogICAgICAgICAgICAgJzxAKHdlYmluc3BlY3Rvcl9wcm9maWxlc19qc19maWxlcyknLAogICAg
ICAgICAgICAgJzxAKHdlYmluc3BlY3Rvcl9hdWRpdHNfanNfZmlsZXMpJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzdhZWExYjJjM2U0NTBk
MGFmOTgzMDI1YmU4OTRiYTQ4NzhmZjZjZC4uNDZlNmFhNzJiYzU2YmRmNTFkN2UzZTJhYmNmMzU5
ZjRlMGRlMDhhZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTc1OTk0LDYgKzc1OTk0LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXE5hdGl2ZUJy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXE5hdmlnYXRvck92ZXJs
YXlDb250cm9sbGVyLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtNzYyNzQsNiArNzYyNzgs
MTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcyIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGlu
c3BlY3Rvclxmcm9udC1lbmRcU25pcHBldFN0b3JhZ2UuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CkBAIC03NjMyMiw3ICs3NjMzMCw3IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFN0eWxlc1BhbmVsLmpz
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU3R5bGVTaGVldE91
dGxpbmVEaWFsb2cuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKQEAgLTc2MzMw
LDYgKzc2MzM4LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFN0eWxlU291cmNlLmpzIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XGZyb250LWVuZFxTdW1tYXJ5QmFyLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzMjli
N2YzYmYwZDljNWVmZjkzMjBlYmU2ZDE3YjFiMDVmZjY4ZmEuLmIxMjI3NzE1OTM4OGRhZTg0MzUx
MTI0MGFjNjNjMTBiYzQ2MTQ1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1NTk1LDYgKzI1NTk1LDcgQEAKIAkJCQkiJChE
RVJJVkVEX0ZJTEVfRElSKS9XZWJDb3JlL0VsZW1lbnRzUGFuZWwuanMiLAogCQkJCSIkKERFUklW
RURfRklMRV9ESVIpL1dlYkNvcmUvUmVzb3VyY2VzUGFuZWwuanMiLAogCQkJCSIkKERFUklWRURf
RklMRV9ESVIpL1dlYkNvcmUvTmV0d29ya1BhbmVsLmpzIiwKKwkJCQkiJChERVJJVkVEX0ZJTEVf
RElSKS9XZWJDb3JlL1NjcmlwdHNQYW5lbC5qcyIsCiAJCQkJIiQoREVSSVZFRF9GSUxFX0RJUikv
V2ViQ29yZS9UaW1lbGluZVBhbmVsLmpzIiwKIAkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9XZWJD
b3JlL1Byb2ZpbGVzUGFuZWwuanMiLAogCQkJCSIkKERFUklWRURfRklMRV9ESVIpL1dlYkNvcmUv
QXVkaXRzUGFuZWwuanMiLApAQCAtMjU2MDMsNyArMjU2MDQsNyBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9z
aDsKLQkJCXNoZWxsU2NyaXB0ID0gIiMgRG9uJ3QgZG8gYW55dGhpbmcgZm9yIERlYnVnIGJ1aWxk
cywgc28gdGhlIEluc3BlY3RvciBpcyBlYXNpZXIgdG8gZGVidWcuXG4jIERvbid0IGRvIGFueXRo
aW5nIGZvciBQcm9kdWN0aW9uIGJ1aWxkcywgc2luY2UgdGhlIEluc3BlY3RvciBpc24ndCBpbnN0
YWxsZWQuXG5pZiBbWyAke0NPTkZJR1VSQVRJT046PURlYnVnfSA9PSBcIkRlYnVnXCIgfHwgJHtD
T05GSUdVUkFUSU9OOj1Qcm9kdWN0aW9ufSA9PSBcIlByb2R1Y3Rpb25cIiBdXTsgdGhlblxuICAg
IGV4aXRcbmZpXG5cbiMgQ29tYmluZSBhbGwgc2NyaXB0IHJlc291cmNlcyBpbiB0aGUgaW5zcGVj
dG9yLmh0bWwgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2NvbWJpbmUtamF2YXNjcmlwdC1y
ZXNvdXJjZXMucGxcIiAtLWlucHV0LWh0bWwgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmh0bWxcIiAtLWdlbmVyYXRlZC1zY3JpcHRzLWRpciBcIiR7QlVJTFRfUFJP
RFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlXCIgLS1vdXRwdXQtZGlyIFwiJHtERVJJ
VkVEX0ZJTEVfRElSfS9XZWJDb3JlXCIgLS1vdXRwdXQtc2NyaXB0LW5hbWUgaW5zcGVjdG9yLmpz
XG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIEVsZW1lbnRzUGFuZWwuanMgZmlsZS5cblwi
JFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JD
Uk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzXCIgXCIke1NSQ1JPT1R9
L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9FbGVt
ZW50c1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gUmVzb3VyY2VzUGFu
ZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9y
dHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
c1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9E
SVJ9L1dlYkNvcmUvUmVzb3VyY2VzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0
cyBpbiBOZXR3b3JrUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1q
YXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9O
ZXR3b3JrUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtE
RVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL05ldHdvcmtQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNj
cmlwdCBpbXBvcnRzIGluIFRpbWVsaW5lUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVj
dG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9u
dC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9UaW1lbGluZVBhbmVsLmpzXCJc
blxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gUHJvZmlsZXNQYW5lbC5qcyBmaWxlLlxuXCIk
U1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5weVwiIFwiJHtTUkNS
T09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0v
aW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Byb2Zp
bGVzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBBdWRpdHNQYW5lbC5q
cyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5w
eVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzXCIgXCIk
e1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2Vi
Q29yZS9BdWRpdHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIENvZGVN
aXJyb3JUZXh0RWRpdG9yLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2
YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvQ29k
ZU1pcnJvclRleHRFZGl0b3IuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwi
IFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzXCJc
blxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzIGZp
bGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIg
XCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpz
XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJ
Un0vV2ViQ29yZS9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanNcIlxuXG5pZiBbIC1kIFwiJHtUQVJH
RVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xERVJfUEFUSH0vaW5zcGVj
dG9yXCIgXTsgdGhlblxuICAgIGNkIFwiJHtUQVJHRVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVE
X1JFU09VUkNFU19GT0xERVJfUEFUSH0vaW5zcGVjdG9yXCJcblxuICAgICMgUmVtb3ZlIGFueSB0
b3AtbGV2ZWwgSmF2YVNjcmlwdCBmaWxlcywgc2luY2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdp
dGggdGhlIGNvbWJpbmVkIGZpbGUuXG4gICAgIyBLZWVwIEluc3BlY3RvckJhY2tlbmQqLmpzIGZp
bGVzIHNvIHRoZXkgY2FuIGJlIHVzZWQgYnkgb3RoZXIgZnJvbnQtZW5kcy5cbiAgICBmaW5kIC4g
LWRlcHRoIDEgLW5hbWUgXCIqLmpzXCIgLW5vdCAtbmFtZSBcIkluc3BlY3RvckJhY2tlbmQqLmpz
XCIgfCB4YXJncyBybSAtcmZcblxuICAgICMgQ29weSB0aGUgbW9kaWZpZWQgSFRNTCBmaWxlIGFu
ZCB0aGUgY29tYmluZWQgc2NyaXB0cy5cbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2Vi
Q29yZS9pbnNwZWN0b3IuaHRtbFwiIGluc3BlY3Rvci5odG1sXG4gICAgY3AgXCIke0RFUklWRURf
RklMRV9ESVJ9L1dlYkNvcmUvaW5zcGVjdG9yLmpzXCIgaW5zcGVjdG9yLmpzXG4gICAgY3AgXCIk
e0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvRWxlbWVudHNQYW5lbC5qc1wiIEVsZW1lbnRzUGFu
ZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9SZXNvdXJjZXNQYW5l
bC5qc1wiIFJlc291cmNlc1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dl
YkNvcmUvTmV0d29ya1BhbmVsLmpzXCIgTmV0d29ya1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvVGltZWxpbmVQYW5lbC5qc1wiIFRpbWVsaW5lUGFuZWwuanNc
biAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzXCIg
UHJvZmlsZXNQYW5lbC5qc1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0F1
ZGl0c1BhbmVsLmpzXCIgQXVkaXRzUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJ
Un0vV2ViQ29yZS9Db2RlTWlycm9yVGV4dEVkaXRvci5qc1wiIENvZGVNaXJyb3JUZXh0RWRpdG9y
LmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvU2NyaXB0Rm9ybWF0dGVy
V29ya2VyLmpzXCIgU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzXG5maVxuIjsKKwkJCXNoZWxsU2Ny
aXB0ID0gIiMgRG9uJ3QgZG8gYW55dGhpbmcgZm9yIERlYnVnIGJ1aWxkcywgc28gdGhlIEluc3Bl
Y3RvciBpcyBlYXNpZXIgdG8gZGVidWcuXG4jIERvbid0IGRvIGFueXRoaW5nIGZvciBQcm9kdWN0
aW9uIGJ1aWxkcywgc2luY2UgdGhlIEluc3BlY3RvciBpc24ndCBpbnN0YWxsZWQuXG5pZiBbWyAk
e0NPTkZJR1VSQVRJT046PURlYnVnfSA9PSBcIkRlYnVnXCIgfHwgJHtDT05GSUdVUkFUSU9OOj1Q
cm9kdWN0aW9ufSA9PSBcIlByb2R1Y3Rpb25cIiBdXTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbiMg
Q29tYmluZSBhbGwgc2NyaXB0IHJlc291cmNlcyBpbiB0aGUgaW5zcGVjdG9yLmh0bWwgZmlsZS5c
blwiJFNSQ1JPT1QvaW5zcGVjdG9yL2NvbWJpbmUtamF2YXNjcmlwdC1yZXNvdXJjZXMucGxcIiAt
LWlucHV0LWh0bWwgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWxcIiAtLWdlbmVyYXRlZC1zY3JpcHRzLWRpciBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlXCIgLS1vdXRwdXQtZGlyIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9X
ZWJDb3JlXCIgLS1vdXRwdXQtc2NyaXB0LW5hbWUgaW5zcGVjdG9yLmpzXG5cbiMgSW5saW5lIHNj
cmlwdCBpbXBvcnRzIGluIEVsZW1lbnRzUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVj
dG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9u
dC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9FbGVtZW50c1BhbmVsLmpzXCJc
blxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gUmVzb3VyY2VzUGFuZWwuanMgZmlsZS5cblwi
JFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JD
Uk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qc1wiIFwiJHtTUkNST09U
fS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvUmVz
b3VyY2VzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBOZXR3b3JrUGFu
ZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9y
dHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanNc
IiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElS
fS9XZWJDb3JlL05ldHdvcmtQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGlu
IFNjcmlwdHNQYW5lbC5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFz
Y3JpcHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qc1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvU2NyaXB0c1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0
IGltcG9ydHMgaW4gVGltZWxpbmVQYW5lbC5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3Iv
aW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVu
ZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1RpbWVsaW5lUGFuZWwuanNcIlxuXG4j
IElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBQcm9maWxlc1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNS
T09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qc1wiIFwiJHtTUkNST09UfS9pbnNw
ZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvUHJvZmlsZXNQ
YW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIEF1ZGl0c1BhbmVsLmpzIGZp
bGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIg
XCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanNcIiBcIiR7U1JD
Uk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3Jl
L0F1ZGl0c1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gQ29kZU1pcnJv
clRleHRFZGl0b3IuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2Ny
aXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9Db2RlTWly
cm9yVGV4dEVkaXRvci5qc1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIk
e0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvQ29kZU1pcnJvclRleHRFZGl0b3IuanNcIlxuXG4j
IElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMgZmlsZS5c
blwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7
U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanNcIiBc
IiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9X
ZWJDb3JlL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qc1wiXG5cbmlmIFsgLWQgXCIke1RBUkdFVF9C
VUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VTX0ZPTERFUl9QQVRIfS9pbnNwZWN0b3Jc
IiBdOyB0aGVuXG4gICAgY2QgXCIke1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVT
T1VSQ0VTX0ZPTERFUl9QQVRIfS9pbnNwZWN0b3JcIlxuXG4gICAgIyBSZW1vdmUgYW55IHRvcC1s
ZXZlbCBKYXZhU2NyaXB0IGZpbGVzLCBzaW5jZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0
aGUgY29tYmluZWQgZmlsZS5cbiAgICAjIEtlZXAgSW5zcGVjdG9yQmFja2VuZCouanMgZmlsZXMg
c28gdGhleSBjYW4gYmUgdXNlZCBieSBvdGhlciBmcm9udC1lbmRzLlxuICAgIGZpbmQgLiAtZGVw
dGggMSAtbmFtZSBcIiouanNcIiAtbm90IC1uYW1lIFwiSW5zcGVjdG9yQmFja2VuZCouanNcIiB8
IHhhcmdzIHJtIC1yZlxuXG4gICAgIyBDb3B5IHRoZSBtb2RpZmllZCBIVE1MIGZpbGUgYW5kIHRo
ZSBjb21iaW5lZCBzY3JpcHRzLlxuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3Jl
L2luc3BlY3Rvci5odG1sXCIgaW5zcGVjdG9yLmh0bWxcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxF
X0RJUn0vV2ViQ29yZS9pbnNwZWN0b3IuanNcIiBpbnNwZWN0b3IuanNcbiAgICBjcCBcIiR7REVS
SVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9FbGVtZW50c1BhbmVsLmpzXCIgRWxlbWVudHNQYW5lbC5q
c1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpz
XCIgUmVzb3VyY2VzUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29y
ZS9OZXR3b3JrUGFuZWwuanNcIiBOZXR3b3JrUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9G
SUxFX0RJUn0vV2ViQ29yZS9TY3JpcHRzUGFuZWwuanNcIiBTY3JpcHRzUGFuZWwuanNcbiAgICBj
cCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9UaW1lbGluZVBhbmVsLmpzXCIgVGltZWxp
bmVQYW5lbC5qc1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Byb2ZpbGVz
UGFuZWwuanNcIiBQcm9maWxlc1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9
L1dlYkNvcmUvQXVkaXRzUGFuZWwuanNcIiBBdWRpdHNQYW5lbC5qc1xuICAgIGNwIFwiJHtERVJJ
VkVEX0ZJTEVfRElSfS9XZWJDb3JlL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzXCIgQ29kZU1pcnJv
clRleHRFZGl0b3IuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9TY3Jp
cHRGb3JtYXR0ZXJXb3JrZXIuanNcIiBTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanNcbmZpXG4iOwog
CQl9OwogCQkxQzgxQkEzMzBFOTczNTdDMDAyNjZFMDcgLyogQ29weSBJbnNwZWN0b3IgUmVzb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5IGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CmluZGV4IDIzNzc2NDY1ZTNh
MzY3ZDcyNGZjZjc3ZjBlOWU5ZmYxYTUwZTQ3M2UuLmNiMWRjOTIyZTIzODA5ODMzYjA5MTk5ZTQ4
ZjEzMjRiN2E1YWU3NDYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1m
cm9udC1lbmQucHkKQEAgLTg4LDEyICs4OCwxNCBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAg
IkxpbmtpZmllci5qcyIsCiAgICAgICAgICAgICAiTmV0d29ya0xvZy5qcyIsCiAgICAgICAgICAg
ICAiUGxhY2FyZC5qcyIsCisgICAgICAgICAgICAiUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2VI
ZWxwZXIuanMiLAogICAgICAgICAgICAgIlNBU1NTb3VyY2VNYXBwaW5nLmpzIiwKICAgICAgICAg
ICAgICJTY3JpcHQuanMiLAogICAgICAgICAgICAgIlNjcmlwdEZvcm1hdHRlci5qcyIsCiAgICAg
ICAgICAgICAiU2NyaXB0U25pcHBldE1vZGVsLmpzIiwKICAgICAgICAgICAgICJTbmlwcGV0U3Rv
cmFnZS5qcyIsCiAgICAgICAgICAgICAiU291cmNlTWFwcGluZy5qcyIsCisgICAgICAgICAgICAi
U3R5bGVTb3VyY2UuanMiLAogICAgICAgICAgICAgIlRpbWVsaW5lTWFuYWdlci5qcyIsCiAgICAg
ICAgICAgICAiUmF3U291cmNlQ29kZS5qcyIsCiAgICAgICAgICAgICAiUmVtb3RlT2JqZWN0Lmpz
IiwKQEAgLTE1OCwxMiArMTYwLDExIEBAIG1vZHVsZXMgPSBbCiAgICAgICAgICJkZXBlbmRlbmNp
ZXMiOiBbInNkayIsICJ1aSJdLAogICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICJD
b25zb2xlTWVzc2FnZS5qcyIsCi0gICAgICAgICAgICAiQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5q
cyIsCiAgICAgICAgICAgICAiRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyIsCiAgICAgICAg
ICAgICAiRE9NUHJlc2VudGF0aW9uVXRpbHMuanMiLAogICAgICAgICAgICAgIkVsZW1lbnRzVHJl
ZU91dGxpbmUuanMiLAotICAgICAgICAgICAgIkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5q
cyIsCiAgICAgICAgICAgICAiR29Ub0xpbmVEaWFsb2cuanMiLAorICAgICAgICAgICAgIk5hdGl2
ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiLAogICAgICAgICAgICAgIk5hdmlnYXRvck92ZXJs
YXlDb250cm9sbGVyLmpzIiwKICAgICAgICAgICAgICJOYXZpZ2F0b3JWaWV3LmpzIiwKICAgICAg
ICAgICAgICJKYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMiLApAQCAtMTcyLDcgKzE3Myw2IEBA
IG1vZHVsZXMgPSBbCiAgICAgICAgICAgICAiT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMiLAog
ICAgICAgICAgICAgIlNvdXJjZUZyYW1lLmpzIiwKICAgICAgICAgICAgICJUaW1lbGluZUdyaWQu
anMiLAotICAgICAgICAgICAgIlVJU291cmNlQ29kZUZyYW1lLmpzIiwKICAgICAgICAgXQogICAg
IH0sCiAgICAgewpAQCAtMjI2LDE3ICsyMjYsMjAgQEAgbW9kdWxlcyA9IFsKICAgICAgICAgInRh
cmdldF9uYW1lIjogInNjcmlwdHMiLAogICAgICAgICAiZGVwZW5kZW5jaWVzIjogWyJjb21wb25l
bnRzIl0sCiAgICAgICAgICJzb3VyY2VzIjogWworICAgICAgICAgICAgIkJyZWFrcG9pbnRzU2lk
ZWJhclBhbmUuanMiLAogICAgICAgICAgICAgIkNhbGxTdGFja1NpZGViYXJQYW5lLmpzIiwKLSAg
ICAgICAgICAgICJTY29wZUNoYWluU2lkZWJhclBhbmUuanMiLAorICAgICAgICAgICAgIkZpbHRl
cmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcyIsCiAgICAgICAgICAgICAiSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLmpzIiwKLSAgICAgICAgICAgICJQcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBl
ci5qcyIsCiAgICAgICAgICAgICAiUmV2aXNpb25IaXN0b3J5Vmlldy5qcyIsCisgICAgICAgICAg
ICAiU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzIiwKICAgICAgICAgICAgICJTY3JpcHRzTmF2aWdh
dG9yLmpzIiwKICAgICAgICAgICAgICJTY3JpcHRzUGFuZWwuanMiLAogICAgICAgICAgICAgIlNj
cmlwdHNTZWFyY2hTY29wZS5qcyIsCisgICAgICAgICAgICAiU25pcHBldEphdmFTY3JpcHRTb3Vy
Y2VGcmFtZS5qcyIsCisgICAgICAgICAgICAiU3R5bGVTaGVldE91dGxpbmVEaWFsb2cuanMiLAog
ICAgICAgICAgICAgIlRhYmJlZEVkaXRvckNvbnRhaW5lci5qcyIsCisgICAgICAgICAgICAiVUlT
b3VyY2VDb2RlRnJhbWUuanMiLAogICAgICAgICAgICAgIldhdGNoRXhwcmVzc2lvbnNTaWRlYmFy
UGFuZS5qcyIsCi0gICAgICAgICAgICAiV29ya2VyTWFuYWdlci5qcyIsCiAgICAgICAgICAgICAi
V29ya2Vyc1NpZGViYXJQYW5lLmpzIiwKICAgICAgICAgXQogICAgIH0sCkBAIC0yNzMsMTMgKzI3
Niw2IEBAIG1vZHVsZXMgPSBbCiAgICAgICAgIF0KICAgICB9LAogICAgIHsKLSAgICAgICAgInRh
cmdldF9uYW1lIjogInN0eWxlcyIsCi0gICAgICAgICJkZXBlbmRlbmNpZXMiOiBbImNvbXBvbmVu
dHMiXSwKLSAgICAgICAgInNvdXJjZXMiOiBbCi0gICAgICAgICAgICAiU3R5bGVzUGFuZWwuanMi
LAotICAgICAgICBdCi0gICAgfSwKLSAgICB7CiAgICAgICAgICJ0YXJnZXRfbmFtZSI6ICJleHRl
bnNpb25zIiwKICAgICAgICAgImRlcGVuZGVuY2llcyI6IFsiY29tcG9uZW50cyJdLAogICAgICAg
ICAic291cmNlcyI6IFsKQEAgLTI5Niw2ICsyOTIsNyBAQCBtb2R1bGVzID0gWwogICAgICAgICAi
ZGVwZW5kZW5jaWVzIjogWyJjb21wb25lbnRzIiwgImV4dGVuc2lvbnMiXSwKICAgICAgICAgInNv
dXJjZXMiOiBbCiAgICAgICAgICAgICAiU2V0dGluZ3NTY3JlZW4uanMiLAorICAgICAgICAgICAg
Ildvcmtlck1hbmFnZXIuanMiLAogICAgICAgICBdCiAgICAgfSwKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJv
bGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFy
Y2hDb250cm9sbGVyLmpzCmluZGV4IDBlNzY0ZDFjMTUyMzIxMWZmOGFhZjI0NDMyZTY5NWQzYjRk
M2EyN2EuLjY5NTA1OTM3NTgwNDc4Mzk2YWMyOTRjOWQyNzk3YTUzZGNkY2U5MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250
cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5j
ZWRTZWFyY2hDb250cm9sbGVyLmpzCkBAIC01Niw3ICs1Niw3IEBAIFdlYkluc3BlY3Rvci5BZHZh
bmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXlGcm9tRXZlbnQoZXZlbnQpID09PSB0
aGlzLl9zaG9ydGN1dC5rZXkpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fc2VhcmNoVmlldyB8
fCAhdGhpcy5fc2VhcmNoVmlldy5pc1Nob3dpbmcoKSB8fCB0aGlzLl9zZWFyY2hWaWV3Ll9zZWFy
Y2ggIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuaW5zcGVjdG9yVmlldy5zZXRDdXJyZW50UGFuZWwoV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRz
Iik7CiAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7CiAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5kZXgg
M2FjNzE4ZjdjOTA3MTcwNTJhOTVhOTc0MzUzNmUxMWQ0M2VhYWEyYy4uMGMyY2YzNDRiYzZjNGQ4
OTlhNDg1MjJlZmE5Y2QzM2FkYjJlMTc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpAQCAt
MjQ4LDU5ICsyNDgsNiBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJh
clBhbmUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3RvcgogCiAvKioKICAqIEBjb25z
dHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZX0KLSAqLwotV2Vi
SW5zcGVjdG9yLk5hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUgPSBmdW5jdGlvbih0aXRsZSkK
LXsKLSAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUuY2FsbCh0aGlzLCB0aXRsZSk7Ci0KLSAg
ICB0aGlzLmxpc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKLSAgICB0
aGlzLmxpc3RFbGVtZW50LmNsYXNzTmFtZSA9ICJicmVha3BvaW50LWxpc3QiOwotCi0gICAgdGhp
cy5lbXB0eUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlz
LmVtcHR5RWxlbWVudC5jbGFzc05hbWUgPSAiaW5mbyI7Ci0gICAgdGhpcy5lbXB0eUVsZW1lbnQu
dGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vIEJyZWFrcG9pbnRzIik7Ci0K
LSAgICB0aGlzLmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZW1wdHlFbGVtZW50KTsKLX0K
LQotV2ViSW5zcGVjdG9yLk5hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0g
ewotICAgIF9hZGRMaXN0RWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCwgYmVmb3JlRWxlbWVudCkK
LSAgICB7Ci0gICAgICAgIGlmIChiZWZvcmVFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5saXN0
RWxlbWVudC5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYmVmb3JlRWxlbWVudCk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgaWYgKCF0aGlzLmxpc3RFbGVtZW50LmZpcnN0Q2hpbGQpIHsKLSAg
ICAgICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZW1wdHlFbGVt
ZW50KTsKLSAgICAgICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
bGlzdEVsZW1lbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVu
dC5hcHBlbmRDaGlsZChlbGVtZW50KTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfcmVtb3Zl
TGlzdEVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQpCi0gICAgewotICAgICAgICB0aGlzLmxpc3RF
bGVtZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpOwotICAgICAgICBpZiAoIXRoaXMubGlzdEVsZW1l
bnQuZmlyc3RDaGlsZCkgewotICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGls
ZCh0aGlzLmxpc3RFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5lbXB0eUVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9yZXNl
dDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVDaGls
ZHJlbigpOwotICAgICAgICBpZiAodGhpcy5saXN0RWxlbWVudC5wYXJlbnRFbGVtZW50KSB7Ci0g
ICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMubGlzdEVsZW1lbnQp
OwotICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5RWxl
bWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3Bv
aW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJh
clBhbmUucHJvdG90eXBlOwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dl
Ykluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lfQogICovCiBXZWJJbnNwZWN0
b3IuWEhSQnJlYWtwb2ludHNTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlh
bG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cuanMKaW5kZXggMWQwYTIyZmJlN2FjZWY2YWIzZjU5NmI1OTlmMTZlY2U1
ZTRkZTZmYS4uZjAyNzc2NWU0ZmJjZTgwMmMyZjRjNWQzNmMwMTFkN2E5MmZmMzRjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKQEAgLTYyMiwxMSArNjIyLDYgQEAgV2ViSW5z
cGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZyA9IGZ1bmN0aW9uKHBhbmVsLCB1aVNvdXJjZUNvZGVQ
cm92aWRlcikKICAgICB0aGlzLl91aVNvdXJjZUNvZGVzLnNvcnQoY29tcGFyZUZ1bmN0aW9uKTsK
IH0KIAotV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZy5jcmVhdGVTaG9ydGN1dCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICByZXR1cm4gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFr
ZURlc2NyaXB0b3IoIm8iLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMu
Q3RybE9yTWV0YSk7Ci19Ci0KIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cucHJvdG90
eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRl
bmRBUEkuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZy
b250ZW5kQVBJLmpzCmluZGV4IDgzMDYxZmFiNGNkMjE4YTY0ZDgxMWQ5M2FjODY3NGU0OTY0YzBl
ZGMuLjYyMDUxMDRkM2ViZGEwNDc0OGVjZWVjOGRjYjk4OTZhNjBhOTczNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRBUEku
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9u
dGVuZEFQSS5qcwpAQCAtMzMsMTYgKzMzLDE1IEBAIEluc3BlY3RvckZyb250ZW5kQVBJID0gewog
CiAgICAgaXNEZWJ1Z2dpbmdFbmFibGVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmRlYnVnZ2luZ0VuYWJsZWQ7CisgICAgICAg
IHJldHVybiBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMgJiYgV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLmRlYnVnZ2luZ0VuYWJsZWQ7CiAgICAgfSwKIAogICAgIHNldERlYnVnZ2luZ0Vu
YWJsZWQ6IGZ1bmN0aW9uKGVuYWJsZWQpCiAgICAgewogICAgICAgICBpZiAoZW5hYmxlZCkgewot
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmVuYWJsZURlYnVnZ2luZygp
OwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuc2V0Q3VycmVudFBhbmVs
KFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cyk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKCJzY3JpcHRzIikuZW5hYmxlRGVidWdnaW5nKCk7CiAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmRpc2FibGVEZWJ1Z2dpbmco
KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbCgic2NyaXB0cyIpLmRpc2FibGVEZWJ1
Z2dpbmcoKTsKICAgICB9LAogCiAgICAgaXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQ6IGZ1bmN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0
aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjE1
NDc0NWE5YWVmNjk2ZWNkN2IzODFkZmY4MmI2NzFhNWY4MWM4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVCcmVha3BvaW50c1NpZGVi
YXJQYW5lLmpzCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVu
ZHMge1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZX0KKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZUJy
ZWFrcG9pbnRzU2lkZWJhclBhbmUgPSBmdW5jdGlvbih0aXRsZSkKK3sKKyAgICBXZWJJbnNwZWN0
b3IuU2lkZWJhclBhbmUuY2FsbCh0aGlzLCB0aXRsZSk7CisKKyAgICB0aGlzLmxpc3RFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKKyAgICB0aGlzLmxpc3RFbGVtZW50LmNs
YXNzTmFtZSA9ICJicmVha3BvaW50LWxpc3QiOworCisgICAgdGhpcy5lbXB0eUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLmVtcHR5RWxlbWVudC5jbGFz
c05hbWUgPSAiaW5mbyI7CisgICAgdGhpcy5lbXB0eUVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIk5vIEJyZWFrcG9pbnRzIik7CisKKyAgICB0aGlzLmJvZHlFbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuZW1wdHlFbGVtZW50KTsKK30KKworV2ViSW5zcGVjdG9yLk5h
dGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0geworICAgIF9hZGRMaXN0RWxl
bWVudDogZnVuY3Rpb24oZWxlbWVudCwgYmVmb3JlRWxlbWVudCkKKyAgICB7CisgICAgICAgIGlm
IChiZWZvcmVFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5pbnNlcnRCZWZv
cmUoZWxlbWVudCwgYmVmb3JlRWxlbWVudCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
aWYgKCF0aGlzLmxpc3RFbGVtZW50LmZpcnN0Q2hpbGQpIHsKKyAgICAgICAgICAgICAgICB0aGlz
LmJvZHlFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZW1wdHlFbGVtZW50KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubGlzdEVsZW1lbnQpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfcmVtb3ZlTGlzdEVsZW1lbnQ6IGZ1bmN0
aW9uKGVsZW1lbnQpCisgICAgeworICAgICAgICB0aGlzLmxpc3RFbGVtZW50LnJlbW92ZUNoaWxk
KGVsZW1lbnQpOworICAgICAgICBpZiAoIXRoaXMubGlzdEVsZW1lbnQuZmlyc3RDaGlsZCkgewor
ICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmxpc3RFbGVtZW50
KTsKKyAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbXB0eUVs
ZW1lbnQpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICBp
ZiAodGhpcy5saXN0RWxlbWVudC5wYXJlbnRFbGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLmJv
ZHlFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMubGlzdEVsZW1lbnQpOworICAgICAgICAgICAgdGhp
cy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5RWxlbWVudCk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9w
ZXJ0aWVzU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2Jq
ZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5kZXggMWFkYWQzZGUyZjkzOTdiYmM3NjQ1NjE0NWVi
OTMwODE3MWZlNWI4Ni4uZWEzYjQ0ODUzZGUxNDE3NTZlOWUxNmFjOGFkY2ZlYzUyODIxZDhhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9w
ZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCkBAIC0zMTYsNyArMzE2LDcgQEAgV2ViSW5zcGVj
dG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaG93RnVu
Y3Rpb25EZWZpbml0aW9uKHJlc3BvbnNlLmxvY2F0aW9uKTsKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbCgic2NyaXB0cyIpLnNob3dGdW5jdGlvbkRlZmluaXRpb24ocmVzcG9uc2UubG9j
YXRpb24pOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcmV2ZWFsRnVuY3Rpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlw
cGV0TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNu
aXBwZXRNb2RlbC5qcwppbmRleCBkY2QyYjg0ZWFhMzBkZTEzMTRjYjQ1MzY4NjM3ZDQzZGMyOTVl
MWMyLi4zOTI0NDhkZmE4NGEzM2MxMmQ4YjI5NGVhYzE3NTU5NmExNzJmZDM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRN
b2RlbC5qcwpAQCAtNTQ3LDM1ICs1NDcsMyBAQCBXZWJJbnNwZWN0b3IuU25pcHBldENvbnRlbnRQ
cm92aWRlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlN0YXRpY0NvbgogICog
QHR5cGUgez9XZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsfQogICovCiBXZWJJbnNwZWN0
b3Iuc2NyaXB0U25pcHBldE1vZGVsID0gbnVsbDsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lfQotICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsfSBzY3JpcHRzUGFuZWwKLSAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZQotICovCi1XZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZSA9IGZ1bmN0
aW9uKHNjcmlwdHNQYW5lbCwgc25pcHBldEphdmFTY3JpcHRTb3VyY2UpCi17Ci0gICAgV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5jYWxsKHRoaXMsIHNjcmlwdHNQYW5lbCwgc25p
cHBldEphdmFTY3JpcHRTb3VyY2UpOwotICAgIAotICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0
U291cmNlID0gc25pcHBldEphdmFTY3JpcHRTb3VyY2U7Ci0gICAgdGhpcy5fcnVuQnV0dG9uID0g
bmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJS
dW4iKSwgImV2YWx1YXRlLXNuaXBwZXQtc3RhdHVzLWJhci1pdGVtIik7Ci0gICAgdGhpcy5fcnVu
QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcnVuQnV0dG9uQ2xpY2tlZCwg
dGhpcyk7Ci19Ci0KLVdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48RWxlbWVudD59Ci0g
ICAgICovCi0gICAgc3RhdHVzQmFySXRlbXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBbdGhpcy5fcnVuQnV0dG9uLmVsZW1lbnRdOwotICAgIH0sCi0KLSAgICBfcnVuQnV0dG9u
Q2xpY2tlZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UuZXZhbHVhdGUoKTsKLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5TbmlwcGV0SmF2
YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggMGE3ZjJiNGU4ODU4N2FjZTM4
NTU4NmYyY2RlNzgyNTU2ZjQ1ZjI1MC4uNDRkMDljZjc0MjEwODAxZWVhOTA3NTQ4YzVhMWNmNzU0
OWI5YTkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzUGFuZWwuanMKQEAgLTI0LDYgKzI0LDIxIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
K2ltcG9ydFNjcmlwdCgiQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyIpOworaW1wb3J0U2NyaXB0
KCJDYWxsU3RhY2tTaWRlYmFyUGFuZS5qcyIpOworaW1wb3J0U2NyaXB0KCJGaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cuanMiKTsKK2ltcG9ydFNjcmlwdCgiSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LmpzIik7CitpbXBvcnRTY3JpcHQoIlJldmlzaW9uSGlzdG9yeVZpZXcuanMiKTsKK2ltcG9ydFNj
cmlwdCgiU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzIik7CitpbXBvcnRTY3JpcHQoIlNjcmlwdHNO
YXZpZ2F0b3IuanMiKTsKK2ltcG9ydFNjcmlwdCgiU2NyaXB0c1NlYXJjaFNjb3BlLmpzIik7Citp
bXBvcnRTY3JpcHQoIlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUuanMiKTsKK2ltcG9ydFNj
cmlwdCgiU3R5bGVTaGVldE91dGxpbmVEaWFsb2cuanMiKTsKK2ltcG9ydFNjcmlwdCgiVGFiYmVk
RWRpdG9yQ29udGFpbmVyLmpzIik7CitpbXBvcnRTY3JpcHQoIlVJU291cmNlQ29kZUZyYW1lLmpz
Iik7CitpbXBvcnRTY3JpcHQoIldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcyIpOworaW1w
b3J0U2NyaXB0KCJXb3JrZXJzU2lkZWJhclBhbmUuanMiKTsKKwogLyoqCiAgKiBAY29uc3RydWN0
b3IKICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyRGVs
ZWdhdGV9CkBAIC0xMTExLDcgKzExMjYsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZSA9IHsKIAogICAgIHNob3dHb1RvU291cmNlRGlhbG9nOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5zZXRDdXJyZW50UGFuZWwodGhp
cyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuc2hvdyh0aGlzLCB0
aGlzLl93b3Jrc3BhY2UsIHRoaXMuZWRpdG9yVmlldy5tYWluRWxlbWVudCk7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0SmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4N2RkN2JiMTNm
MTQxZGM3ODM4ODk4ODYxYWM4ZDFmODg5MTQxYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUu
anMKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbH0gc2NyaXB0c1BhbmVsCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Tbmlw
cGV0SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRTb3VyY2UKKyAqLworV2ViSW5z
cGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBmdW5jdGlvbihzY3JpcHRzUGFu
ZWwsIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQoreworICAgIFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlRnJhbWUuY2FsbCh0aGlzLCBzY3JpcHRzUGFuZWwsIHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlKTsKKyAgICAKKyAgICB0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSA9IHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlOworICAgIHRoaXMuX3J1bkJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0
b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUnVuIiksICJldmFsdWF0
ZS1zbmlwcGV0LXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX3J1bkJ1dHRvbi5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3J1bkJ1dHRvbkNsaWNrZWQsIHRoaXMpOworfQorCitX
ZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7Cisg
ICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPEVsZW1lbnQ+fQorICAgICAqLworICAgIHN0
YXR1c0Jhckl0ZW1zOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gW3RoaXMuX3J1
bkJ1dHRvbi5lbGVtZW50XTsKKyAgICB9LAorCisgICAgX3J1bkJ1dHRvbkNsaWNrZWQ6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291cmNlLmV2YWx1
YXRlKCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VG
cmFtZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjUx
MDcyYjIyOWEzY2I1NTg4MTgxNjZlNDYxMTcyN2NiOTQ4MWY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxv
Zy5qcwpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBjb25zdHJ1
Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsb2dDb250ZW50
UHJvdmlkZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3CisgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKKyAqLworV2ViSW5zcGVjdG9y
LlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nID0gZnVuY3Rpb24odmlldywgc3R5bGVTb3VyY2UpCit7
CisgICAgV2ViSW5zcGVjdG9yLlNlbGVjdGlvbkRpYWxvZ0NvbnRlbnRQcm92aWRlci5jYWxsKHRo
aXMpOworCisgICAgdGhpcy5fcnVsZXMgPSBbXTsKKyAgICB0aGlzLl92aWV3ID0gdmlldzsKKyAg
ICB0aGlzLl9zdHlsZVNvdXJjZSA9IHN0eWxlU291cmNlOworfQorCisvKioKKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlZpZXd9IHZpZXcKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlN0eWxlU291
cmNlfSBzdHlsZVNvdXJjZQorICovCitXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFs
b2cuc2hvdyA9IGZ1bmN0aW9uKHZpZXcsIHN0eWxlU291cmNlKQoreworICAgIGlmIChXZWJJbnNw
ZWN0b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQorICAgICAgICByZXR1cm4gbnVsbDsKKyAg
ICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9n
KHZpZXcsIHN0eWxlU291cmNlKTsKKyAgICB2YXIgZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9n
ID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2coZGVsZWdhdGUp
OworICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyh2aWV3LmVsZW1lbnQsIGZpbHRlcmVkSXRl
bVNlbGVjdGlvbkRpYWxvZyk7Cit9CisKK1dlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURp
YWxvZy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1J
bmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpdGVtVGl0bGVBdDog
ZnVuY3Rpb24oaXRlbUluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzW2l0
ZW1JbmRleF0uc2VsZWN0b3JUZXh0OworICAgIH0sCisKKyAgICAvKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBpdGVtSW5kZXgKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAg
aXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVy
biAiIjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1JbmRl
eAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpdGVtS2V5QXQ6IGZ1bmN0
aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9ydWxlc1tpdGVtSW5k
ZXhdLnNlbGVjdG9yVGV4dDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVt
YmVyfQorICAgICAqLworICAgIGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9ydWxlcy5sZW5ndGg7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyKX0gY2FsbGJhY2sK
KyAgICAgKi8KKyAgICByZXF1ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gZGlkR2V0QWxsU3R5bGVTaGVldHMoZXJyb3IsIGluZm9zKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygw
LCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgIAor
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7ICsraSkgeworICAg
ICAgICAgICAgICAgIHZhciBpbmZvID0gaW5mb3NbaV07CisgICAgICAgICAgICAgICAgaWYgKGlu
Zm8uc291cmNlVVJMID09PSB0aGlzLl9zdHlsZVNvdXJjZS5jb250ZW50VVJMKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQoaW5m
by5zdHlsZVNoZWV0SWQsIGRpZEdldFN0eWxlU2hlZXQuYmluZCh0aGlzKSk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIENTU0Fn
ZW50LmdldEFsbFN0eWxlU2hlZXRzKGRpZEdldEFsbFN0eWxlU2hlZXRzLmJpbmQodGhpcykpOwor
CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVT
aGVldH0gc3R5bGVTaGVldAorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gZGlkR2V0U3R5
bGVTaGVldChzdHlsZVNoZWV0KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXN0eWxlU2hl
ZXQpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMuX3J1bGVzID0g
c3R5bGVTaGVldC5ydWxlczsKKyAgICAgICAgICAgIGNhbGxiYWNrKDAsIHRoaXMuX3J1bGVzLmxl
bmd0aCwgMCwgMSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtudW1iZXJ9IGl0ZW1JbmRleAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9tcHRWYWx1ZQor
ICAgICAqLworICAgIHNlbGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRleCwgcHJvbXB0VmFsdWUp
CisgICAgeworICAgICAgICB2YXIgbGluZU51bWJlciA9IHRoaXMuX3J1bGVzW2l0ZW1JbmRleF0u
c291cmNlTGluZTsKKyAgICAgICAgaWYgKCFpc05hTihsaW5lTnVtYmVyKSAmJiBsaW5lTnVtYmVy
ID49IDApCisgICAgICAgICAgICB0aGlzLl92aWV3LmhpZ2hsaWdodExpbmUobGluZU51bWJlcik7
CisgICAgICAgIHRoaXMuX3ZpZXcuZm9jdXMoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLwor
ICAgIHJld3JpdGVRdWVyeTogZnVuY3Rpb24ocXVlcnkpCisgICAgeworICAgICAgICByZXR1cm4g
cXVlcnk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsb2dDb250ZW50
UHJvdmlkZXIucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU3R5bGVTb3VyY2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzcxZDZlN2FkY2NmZTg0MTAwMjNlMjA1
YjcwYWUxMDgzYzQzNzY1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMKQEAgLTAsMCArMSwxOTggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xF
IElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKyAKKyAvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rv
ci5PYmplY3R9CisgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3Zp
ZGVyfQorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nfQorICovCitX
ZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5jdGlvbigpCit7Cisg
ICAgLyoqCisgICAgICogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0K
KyAgICAgKi8KKyAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107CisgICAgdGhpcy5fdWlTb3Vy
Y2VDb2RlRm9yVVJMID0ge307CisgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMu
UmVzb3VyY2VBZGRlZCwgdGhpcy5fcmVzb3VyY2VBZGRlZCwgdGhpcyk7Cit9CisKK1dlYkluc3Bl
Y3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisg
ICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQorICAgICAq
LworICAgIHVpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl91aVNvdXJjZUNvZGVzOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5SYXdMb2NhdGlvbn0gcmF3TG9jYXRpb24KKyAgICAgKiBAcmV0dXJuIHtXZWJJ
bnNwZWN0b3IuVUlMb2NhdGlvbn0KKyAgICAgKi8KKyAgICByYXdMb2NhdGlvblRvVUlMb2NhdGlv
bjogZnVuY3Rpb24ocmF3TG9jYXRpb24pCisgICAgeworICAgICAgICB2YXIgbG9jYXRpb24gPSAv
KiogQHR5cGUgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9uICovIHJhd0xvY2F0aW9uOworICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMW2xvY2F0aW9uLnVy
bF07CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24odWlTb3VyY2VD
b2RlLCBsb2NhdGlvbi5saW5lTnVtYmVyLCAwKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAgKiBA
cGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb2x1bW5O
dW1iZXIKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmF3TG9jYXRpb259CisgICAgICov
CisgICAgdWlMb2NhdGlvblRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuQ1NTTG9jYXRpb24odWlTb3VyY2VDb2RlLmNvbnRlbnRVUkwoKSB8fCAiIiwgbGluZU51
bWJlcik7CisgICAgfSwKKworICAgIF9wb3B1bGF0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgZnVuY3Rpb24gcG9wdWxhdGVGcmFtZShmcmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBmcmFtZS5jaGlsZEZyYW1lcy5sZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgICAgICBwb3B1bGF0ZUZyYW1lLmNhbGwodGhpcywgZnJhbWUuY2hpbGRGcmFtZXNbaV0p
OworCisgICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gZnJhbWUucmVzb3VyY2VzKCk7CisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc291cmNlcy5sZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgICAgICB0aGlzLl9yZXNvdXJjZUFkZGVkKHtkYXRhOnJlc291cmNlc1tpXX0pOworICAg
ICAgICB9CisKKyAgICAgICAgcG9wdWxhdGVGcmFtZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfcmVzb3VyY2VB
ZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYg
KHJlc291cmNlLnR5cGUgIT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0eWxlU291cmNlKHJlc291cmNlKTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VD
b2Rlcy5wdXNoKHVpU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVS
TFtyZXNvdXJjZS51cmxdID0gdWlTb3VyY2VDb2RlOworICAgICAgICBXZWJJbnNwZWN0b3IuY3Nz
TW9kZWwuc2V0U291cmNlTWFwcGluZyhyZXNvdXJjZS51cmwsIHRoaXMpOworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlk
ZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUpOworICAgIH0sCisKKyAg
ICByZXNldDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9
IFtdOworICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JVUkwgPSB7fTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLnJlc2V0U291cmNlTWFwcGluZ3MoKTsKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGUoKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQ
cm92aWRlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5
cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZX0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSByZXNvdXJjZQor
ICovCitXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UgPSBmdW5jdGlvbihyZXNvdXJjZSkKK3sKKyAg
ICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLmNhbGwodGhpcywgcmVzb3VyY2UudXJsLCByZXNv
dXJjZSwgcmVzb3VyY2UpOworfQorCitXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBkYXRlVGlt
ZW91dCA9IDIwMDsKKworV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZSA9IHsKKyAg
ICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGlzRWRpdGFibGU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjaworICAgICAqLwor
ICAgIHdvcmtpbmdDb3B5Q29tbWl0dGVkOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7ICAKKyAg
ICAgICAgdGhpcy5fY29tbWl0SW5jcmVtZW50YWxFZGl0KHRydWUsIGNhbGxiYWNrKTsKKyAgICB9
LAorCisgICAgd29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9jYWxsT3JTZXRUaW1lb3V0KHRoaXMuX2NvbW1pdEluY3JlbWVudGFsRWRpdC5iaW5kKHRo
aXMsIGZhbHNlLCBmdW5jdGlvbigpIHt9KSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCisgICAgICovCisgICAgX2NhbGxPclNl
dFRpbWVvdXQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEV4
dGVuc2lvbnMgdGVzdHMgb3ZlcnJpZGUgdXBkYXRlVGltZW91dCBiZWNhdXNlIGV4dGVuc2lvbnMg
ZG9uJ3QgaGF2ZSBhbnkgY29udHJvbCBvdmVyIGFwcGx5aW5nIGNoYW5nZXMgdG8gZG9tYWluIHNw
ZWNpZmljIGJpbmRpbmdzLiAgIAorICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNl
LnVwZGF0ZVRpbWVvdXQgPj0gMCkKKyAgICAgICAgICAgIHRoaXMuX2luY3JlbWVudGFsVXBkYXRl
VGltZXIgPSBzZXRUaW1lb3V0KGNhbGxiYWNrLCBXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBk
YXRlVGltZW91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCisg
ICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBf
Y29tbWl0SW5jcmVtZW50YWxFZGl0OiBmdW5jdGlvbihtYWpvckNoYW5nZSwgY2FsbGJhY2spCisg
ICAgeworICAgICAgICB0aGlzLl9jbGVhckluY3JlbWVudGFsVXBkYXRlVGltZXIoKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlc291cmNlQmluZGluZygpLnNldFN0eWxlQ29udGVu
dCh0aGlzLCB0aGlzLndvcmtpbmdDb3B5KCksIG1ham9yQ2hhbmdlLCBjYWxsYmFjayk7CisgICAg
fSwKKworICAgIF9jbGVhckluY3JlbWVudGFsVXBkYXRlVGltZXI6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyKQorICAgICAgICAgICAg
Y2xlYXJUaW1lb3V0KHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXIpOworICAgICAgICBkZWxl
dGUgdGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcjsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rv
ci5TdHlsZVNvdXJjZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZX0KKyAqIEBwYXJhbSB7Q1NTQWdlbnQuU3R5bGVTaGVldElk
fSBzdHlsZVNoZWV0SWQKKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAqIEBwYXJhbSB7c3RyaW5n
fSBjb250ZW50CisgKi8KK1dlYkluc3BlY3Rvci5JbnNwZWN0b3JTdHlsZVNvdXJjZSA9IGZ1bmN0
aW9uKHN0eWxlU2hlZXRJZCwgdXJsLCBjb250ZW50KQoreworICAgIFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUuY2FsbCh0aGlzLCAiPGluc3BlY3RvciBzdHlsZT4iLCBudWxsLCBuZXcgV2ViSW5z
cGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
dHlsZXNoZWV0LCBjb250ZW50KSk7Cit9CisKK1dlYkluc3BlY3Rvci5JbnNwZWN0b3JTdHlsZVNv
dXJjZS5wcm90b3R5cGUgPSB7Cit9CisKK1dlYkluc3BlY3Rvci5JbnNwZWN0b3JTdHlsZVNvdXJj
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxl
c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNQYW5l
bC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQxZGM3ZmFmYTRmOWRlNTk1ZTAy
YjkwMzA3ODlhOTJiZTI0MWUwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1BhbmVs
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzI1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICoK
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4KLSAqIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLyoq
Ci0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQotICog
QGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0KLSAqIEBpbXBs
ZW1lbnRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZ30KLSAqLwotV2ViSW5zcGVjdG9yLlN0
eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rpb24oKQotewotICAgIC8qKgotICAgICAq
IEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59Ci0gICAgICovCi0gICAg
dGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOwotICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9
IHt9OwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQs
IHRoaXMuX3Jlc291cmNlQWRkZWQsIHRoaXMpOwotfQotCi1XZWJJbnNwZWN0b3IuU3R5bGVzVUlT
b3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEByZXR1cm4g
e0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0KLSAgICAgKi8KLSAgICB1aVNvdXJj
ZUNvZGVzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VD
b2RlczsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmF3
TG9jYXRpb259IHJhd0xvY2F0aW9uCi0gICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJTG9j
YXRpb259Ci0gICAgICovCi0gICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0aW9uKHJh
d0xvY2F0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIGxvY2F0aW9uID0gLyoqIEB0eXBlIFdlYklu
c3BlY3Rvci5DU1NMb2NhdGlvbiAqLyByYXdMb2NhdGlvbjsKLSAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IHRoaXMuX3VpU291cmNlQ29kZUZvclVSTFtsb2NhdGlvbi51cmxdOwotICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgbG9jYXRpb24u
bGluZU51bWJlciwgMCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCi0gICAgICogQHBhcmFtIHtudW1iZXJ9
IGxpbmVOdW1iZXIKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gY29sdW1uTnVtYmVyCi0gICAgICog
QHJldHVybiB7V2ViSW5zcGVjdG9yLlJhd0xvY2F0aW9ufQotICAgICAqLwotICAgIHVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0
aW9uKHVpU291cmNlQ29kZS5jb250ZW50VVJMKCkgfHwgIiIsIGxpbmVOdW1iZXIpOwotICAgIH0s
Ci0KLSAgICBfcG9wdWxhdGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIHBv
cHVsYXRlRnJhbWUoZnJhbWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZnJhbWUuY2hpbGRGcmFtZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgcG9w
dWxhdGVGcmFtZS5jYWxsKHRoaXMsIGZyYW1lLmNoaWxkRnJhbWVzW2ldKTsKLQotICAgICAgICAg
ICAgdmFyIHJlc291cmNlcyA9IGZyYW1lLnJlc291cmNlcygpOwotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZXNvdXJjZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgdGhp
cy5fcmVzb3VyY2VBZGRlZCh7ZGF0YTpyZXNvdXJjZXNbaV19KTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwubWFpbkZyYW1lKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRXZlbnR9IGV2ZW50Ci0gICAgICovCi0gICAgX3Jlc291cmNlQWRkZWQ6IGZ1bmN0aW9u
KGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gLyoqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuUmVzb3VyY2V9ICovIGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChyZXNvdXJjZS50eXBl
ICE9PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0KQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5TdHls
ZVNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMucHVzaCh1aVNv
dXJjZUNvZGUpOwotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JVUkxbcmVzb3VyY2UudXJs
XSA9IHVpU291cmNlQ29kZTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnNldFNvdXJj
ZU1hcHBpbmcocmVzb3VyY2UudXJsLCB0aGlzKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNv
dXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKLSAgICB9LAotCi0gICAgcmVzZXQ6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKLSAgICAgICAg
dGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMID0ge307Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jc3NN
b2RlbC5yZXNldFNvdXJjZU1hcHBpbmdzKCk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7Ci0g
ICAgfQotfQotCi1XZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwotCi0vKioKLSAq
IEBjb25zdHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9Ci0g
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0gcmVzb3VyY2UKLSAqLwotV2ViSW5zcGVj
dG9yLlN0eWxlU291cmNlID0gZnVuY3Rpb24ocmVzb3VyY2UpCi17Ci0gICAgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZS5jYWxsKHRoaXMsIHJlc291cmNlLnVybCwgcmVzb3VyY2UsIHJlc291cmNl
KTsKLX0KLQotV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnVwZGF0ZVRpbWVvdXQgPSAyMDA7Ci0K
LVdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICog
QHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBpc0VkaXRhYmxlOiBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBh
cmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKLSAgICAgKi8KLSAgICB3b3JraW5nQ29w
eUNvbW1pdHRlZDogZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgeyAgCi0gICAgICAgIHRoaXMuX2Nv
bW1pdEluY3JlbWVudGFsRWRpdCh0cnVlLCBjYWxsYmFjayk7Ci0gICAgfSwKLQotICAgIHdvcmtp
bmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FsbE9yU2V0
VGltZW91dCh0aGlzLl9jb21taXRJbmNyZW1lbnRhbEVkaXQuYmluZCh0aGlzLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7fSkpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KD9zdHJpbmcpfSBjYWxsYmFjawotICAgICAqLwotICAgIF9jYWxsT3JTZXRUaW1lb3V0OiBmdW5j
dGlvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBFeHRlbnNpb25zIHRlc3Rz
IG92ZXJyaWRlIHVwZGF0ZVRpbWVvdXQgYmVjYXVzZSBleHRlbnNpb25zIGRvbid0IGhhdmUgYW55
IGNvbnRyb2wgb3ZlciBhcHBseWluZyBjaGFuZ2VzIHRvIGRvbWFpbiBzcGVjaWZpYyBiaW5kaW5n
cy4gICAKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS51cGRhdGVUaW1lb3V0
ID49IDApCi0gICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyID0gc2V0VGlt
ZW91dChjYWxsYmFjaywgV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnVwZGF0ZVRpbWVvdXQpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKLSAgICB9LAotCi0gICAg
LyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBtYWpvckNoYW5nZQotICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCi0gICAgICovCi0gICAgX2NvbW1pdEluY3JlbWVu
dGFsRWRpdDogZnVuY3Rpb24obWFqb3JDaGFuZ2UsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAg
dGhpcy5fY2xlYXJJbmNyZW1lbnRhbFVwZGF0ZVRpbWVyKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5jc3NNb2RlbC5yZXNvdXJjZUJpbmRpbmcoKS5zZXRTdHlsZUNvbnRlbnQodGhpcywgdGhpcy53
b3JraW5nQ29weSgpLCBtYWpvckNoYW5nZSwgY2FsbGJhY2spOwotICAgIH0sCi0KLSAgICBfY2xl
YXJJbmNyZW1lbnRhbFVwZGF0ZVRpbWVyOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAo
dGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcikKLSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0
aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2luY3Jl
bWVudGFsVXBkYXRlVGltZXI7Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2Uu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBl
OwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGV9Ci0gKiBAcGFyYW0ge0NTU0FnZW50LlN0eWxlU2hlZXRJZH0gc3R5bGVTaGVldElk
Ci0gKiBAcGFyYW0ge3N0cmluZ30gdXJsCi0gKiBAcGFyYW0ge3N0cmluZ30gY29udGVudAotICov
Ci1XZWJJbnNwZWN0b3IuSW5zcGVjdG9yU3R5bGVTb3VyY2UgPSBmdW5jdGlvbihzdHlsZVNoZWV0
SWQsIHVybCwgY29udGVudCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLmNhbGwo
dGhpcywgIjxpbnNwZWN0b3Igc3R5bGU+IiwgbnVsbCwgbmV3IFdlYkluc3BlY3Rvci5TdGF0aWND
b250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCwgY29u
dGVudCkpOwotfQotCi1XZWJJbnNwZWN0b3IuSW5zcGVjdG9yU3R5bGVTb3VyY2UucHJvdG90eXBl
ID0gewotfQotCi1XZWJJbnNwZWN0b3IuSW5zcGVjdG9yU3R5bGVTb3VyY2UucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlOwotCi0vKioKLSAq
IEBjb25zdHJ1Y3RvcgotICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFs
b2dDb250ZW50UHJvdmlkZXJ9Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3Ci0g
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKLSAqLwotV2Vi
SW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nID0gZnVuY3Rpb24odmlldywgc3R5bGVT
b3VyY2UpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlNlbGVjdGlvbkRpYWxvZ0NvbnRlbnRQcm92aWRl
ci5jYWxsKHRoaXMpOwotCi0gICAgdGhpcy5fcnVsZXMgPSBbXTsKLSAgICB0aGlzLl92aWV3ID0g
dmlldzsKLSAgICB0aGlzLl9zdHlsZVNvdXJjZSA9IHN0eWxlU291cmNlOwotfQotCi0vKioKLSAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlZpZXd9IHZpZXcKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlN0eWxlU291cmNlfSBzdHlsZVNvdXJjZQotICovCi1XZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91
dGxpbmVEaWFsb2cuc2hvdyA9IGZ1bmN0aW9uKHZpZXcsIHN0eWxlU291cmNlKQotewotICAgIGlm
IChXZWJJbnNwZWN0b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQotICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nKHZpZXcsIHN0eWxlU291cmNlKTsKLSAgICB2YXIgZmlsdGVyZWRJdGVtU2VsZWN0
aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2co
ZGVsZWdhdGUpOwotICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyh2aWV3LmVsZW1lbnQsIGZp
bHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyk7Ci19Ci0KLVdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1i
ZXJ9IGl0ZW1JbmRleAotICAgICAqIEByZXR1cm4ge3N0cmluZ30KLSAgICAgKi8KLSAgICBpdGVt
VGl0bGVBdDogZnVuY3Rpb24oaXRlbUluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3J1bGVzW2l0ZW1JbmRleF0uc2VsZWN0b3JUZXh0OwotICAgIH0sCi0KLSAgICAvKgotICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAg
ICovCi0gICAgaXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAiIjsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9
IGl0ZW1JbmRleAotICAgICAqIEByZXR1cm4ge3N0cmluZ30KLSAgICAgKi8KLSAgICBpdGVtS2V5
QXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9ydWxl
c1tpdGVtSW5kZXhdLnNlbGVjdG9yVGV4dDsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJl
dHVybiB7bnVtYmVyfQotICAgICAqLwotICAgIGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9ydWxlcy5sZW5ndGg7Ci0gICAgfSwKLQotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyKX0g
Y2FsbGJhY2sKLSAgICAgKi8KLSAgICByZXF1ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQot
ICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZGlkR2V0QWxsU3R5bGVTaGVldHMoZXJyb3IsIGluZm9z
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBj
YWxsYmFjaygwLCAwLCAwLCAwKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0gIAotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgICAgIHZhciBpbmZvID0gaW5mb3NbaV07Ci0gICAgICAgICAgICAg
ICAgaWYgKGluZm8uc291cmNlVVJMID09PSB0aGlzLl9zdHlsZVNvdXJjZS5jb250ZW50VVJMKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRl
Rm9ySWQoaW5mby5zdHlsZVNoZWV0SWQsIGRpZEdldFN0eWxlU2hlZXQuYmluZCh0aGlzKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKGRpZEdldEFsbFN0eWxlU2hlZXRzLmJpbmQo
dGhpcykpOwotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBAcGFyYW0gez9XZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVTaGVldH0gc3R5bGVTaGVldAotICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24g
ZGlkR2V0U3R5bGVTaGVldChzdHlsZVNoZWV0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
IXN0eWxlU2hlZXQpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRoaXMu
X3J1bGVzID0gc3R5bGVTaGVldC5ydWxlczsKLSAgICAgICAgICAgIGNhbGxiYWNrKDAsIHRoaXMu
X3J1bGVzLmxlbmd0aCwgMCwgMSk7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1JbmRleAotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9t
cHRWYWx1ZQotICAgICAqLwotICAgIHNlbGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRleCwgcHJv
bXB0VmFsdWUpCi0gICAgewotICAgICAgICB2YXIgbGluZU51bWJlciA9IHRoaXMuX3J1bGVzW2l0
ZW1JbmRleF0uc291cmNlTGluZTsKLSAgICAgICAgaWYgKCFpc05hTihsaW5lTnVtYmVyKSAmJiBs
aW5lTnVtYmVyID49IDApCi0gICAgICAgICAgICB0aGlzLl92aWV3LmhpZ2hsaWdodExpbmUobGlu
ZU51bWJlcik7Ci0gICAgICAgIHRoaXMuX3ZpZXcuZm9jdXMoKTsKLSAgICB9LAotCi0gICAgLyoq
Ci0gICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICogQHJldHVybiB7c3RyaW5nfQot
ICAgICAqLwotICAgIHJld3JpdGVRdWVyeTogZnVuY3Rpb24ocXVlcnkpCi0gICAgewotICAgICAg
ICByZXR1cm4gcXVlcnk7Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxp
bmVEaWFsb2cucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFs
b2dDb250ZW50UHJvdmlkZXIucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDZlNzQ1YmU2ZmRjZWE2YjQwMjcwMGM1ZDAxODA0
NjE1YTI4ZDdjMjQuLmRkZTRlMTNhMGY4NDFjYzJiOGM4ZjVlY2M5ZDZhOTI4YTE1OTc0YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEw
Miw2ICsxMDIsNyBAQAogICAgIDxmaWxlPkxpbmtpZmllci5qczwvZmlsZT4KICAgICA8ZmlsZT5N
ZW1vcnlTdGF0aXN0aWNzLmpzPC9maWxlPgogICAgIDxmaWxlPk1ldHJpY3NTaWRlYmFyUGFuZS5q
czwvZmlsZT4KKyAgICA8ZmlsZT5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzPC9maWxl
PgogICAgIDxmaWxlPk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczwvZmlsZT4KICAgICA8Zmls
ZT5OYXZpZ2F0b3JPdmVybGF5Q29udHJvbGxlci5qczwvZmlsZT4KICAgICA8ZmlsZT5OYXZpZ2F0
b3JWaWV3LmpzPC9maWxlPgpAQCAtMTYxLDYgKzE2Miw3IEBACiAgICAgPGZpbGU+U2lkZWJhck92
ZXJsYXkuanM8L2ZpbGU+CiAgICAgPGZpbGU+U2lkZWJhclBhbmUuanM8L2ZpbGU+CiAgICAgPGZp
bGU+U2lkZWJhclRyZWVFbGVtZW50LmpzPC9maWxlPgorICAgIDxmaWxlPlNuaXBwZXRKYXZhU2Ny
aXB0U291cmNlRnJhbWUuanM8L2ZpbGU+CiAgICAgPGZpbGU+U25pcHBldFN0b3JhZ2UuanM8L2Zp
bGU+CiAgICAgPGZpbGU+U29mdENvbnRleHRNZW51LmpzPC9maWxlPgogICAgIDxmaWxlPlNvdXJj
ZUNTU1Rva2VuaXplci5qczwvZmlsZT4KQEAgLTE3Miw3ICsxNzQsOCBAQAogICAgIDxmaWxlPlNw
ZWN0cnVtLmpzPC9maWxlPgogICAgIDxmaWxlPlNwbGl0Vmlldy5qczwvZmlsZT4KICAgICA8Zmls
ZT5TdGF0dXNCYXJCdXR0b24uanM8L2ZpbGU+Ci0gICAgPGZpbGU+U3R5bGVzUGFuZWwuanM8L2Zp
bGU+CisgICAgPGZpbGU+U3R5bGVTaGVldE91dGxpbmVEaWFsb2cuanM8L2ZpbGU+CisgICAgPGZp
bGU+U3R5bGVTb3VyY2UuanM8L2ZpbGU+CiAgICAgPGZpbGU+U3R5bGVzU2lkZWJhclBhbmUuanM8
L2ZpbGU+CiAgICAgPGZpbGU+VGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzPC9maWxlPgogICAgIDxm
aWxlPlRhYmJlZFBhbmUuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA4YzkwNjRhYWVhOTIyNDQ3Zjk3ZTQyNzY2
MzE1ZjA1NWM3ZDM4MTc3Li43Nzg1ZjdkMWZjODU2OGE4YjZhNjRkZmNhN2I4NjgwNzBhZTNhMDJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
Lmh0bWwKQEAgLTk3LDEyICs5Nyw4IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iUmVtb3RlT2JqZWN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJPYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iT2JqZWN0
UG9wb3ZlckhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNjb3BlQ2hhaW5T
aWRlYmFyUGFuZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJXb3JrZXJzU2lkZWJhclBhbmUuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvbG9y
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJD
U1NDb21wbGV0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iQ1NTS2V5d29yZENvbXBsZXRpb25zLmpzIj48L3NjcmlwdD4KQEAgLTExMSwx
MyArMTA3LDcgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJUZXh0RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJEZWZhdWx0VGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU291cmNlRnJhbWUuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlVJU291cmNlQ29kZUZyYW1l
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJK
YXZhU2NyaXB0U291cmNlRnJhbWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9IlNwbGl0Vmlldy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHRzUGFu
ZWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IlJldmlzaW9uSGlzdG9yeVZpZXcuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9IlNjcmlwdHNOYXZpZ2F0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvbnNvbGVQYW5lbC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRXh0ZW5zaW9uQVBJ
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJF
eHRlbnNpb25BdWRpdENhdGVnb3J5LmpzIj48L3NjcmlwdD4KQEAgLTE1MCwxMiArMTQwLDEwIEBA
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJDb21waWxlclNjcmlwdE1hcHBpbmcuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNBU1NTb3VyY2VNYXBwaW5nLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHRz
U2VhcmNoU2NvcGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkRPTUFnZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJUZXN0Q29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJHb1RvTGluZURpYWxvZy5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJTaWRlYmFyT3ZlcmxheS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2V0dGluZ3NTY3JlZW4uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNob3J0Y3V0c1NjcmVl
bi5qcyI+PC9zY3JpcHQ+CkBAIC0xNjksOCArMTU3LDggQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJIYW5kbGVyUmVnaXN0cnkuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNuaXBwZXRTdG9yYWdl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJT
Y3JpcHRTbmlwcGV0TW9kZWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlN0eWxlc1BhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJQcm9ncmVzc0Jhci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU3R5bGVTb3VyY2UuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgogPGJvZHkgY2xhc3M9ImRldGFjaGVkIiBpZD0iLXdlYmtpdC13ZWItaW5z
cGVjdG9yIj4KICAgICA8ZGl2IGlkPSJ0b29sYmFyIj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNGQ1ODdjMjUxYzU1YjQ0ODg5M2Y2
N2VmZGE4YzZjMGE5ZWVlMDQ4Ny4uZjc1OTZkN2FkYzIzYmMwYzg0YTViYzE3YWZjYTZhYjFhNzcy
OTE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKQEAgLTQwLDcgKzQwLDcgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgdmFy
IGVsZW1lbnRzID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoImVsZW1lbnRzIiwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbGVtZW50cyIpLCAiRWxlbWVudHNQYW5lbCIsICJFbGVt
ZW50c1BhbmVsLmpzIik7CiAgICAgICAgIHZhciByZXNvdXJjZXMgPSBuZXcgV2ViSW5zcGVjdG9y
LlBhbmVsRGVzY3JpcHRvcigicmVzb3VyY2VzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNv
dXJjZXMiKSwgIlJlc291cmNlc1BhbmVsIiwgIlJlc291cmNlc1BhbmVsLmpzIik7CiAgICAgICAg
IHZhciBuZXR3b3JrID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoIm5ldHdvcmsi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5ldHdvcmsiKSwgIk5ldHdvcmtQYW5lbCIsICJOZXR3
b3JrUGFuZWwuanMiKTsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSBuZXcgV2ViSW5zcGVjdG9yLlBh
bmVsRGVzY3JpcHRvcigic2NyaXB0cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU291cmNlcyIp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwoKSk7
CisgICAgICAgIHZhciBzY3JpcHRzID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3Io
InNjcmlwdHMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvdXJjZXMiKSwgIlNjcmlwdHNQYW5l
bCIsICJTY3JpcHRzUGFuZWwuanMiKTsKICAgICAgICAgdmFyIHRpbWVsaW5lID0gbmV3IFdlYklu
c3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoInRpbWVsaW5lIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJUaW1lbGluZSIpLCAiVGltZWxpbmVQYW5lbCIsICJUaW1lbGluZVBhbmVsLmpzIik7CiAgICAg
ICAgIHZhciBwcm9maWxlcyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJwcm9m
aWxlcyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsZXMiKSwgIlByb2ZpbGVzUGFuZWwi
LCAiUHJvZmlsZXNQYW5lbC5qcyIpOwogICAgICAgICB2YXIgYXVkaXRzID0gbmV3IFdlYkluc3Bl
Y3Rvci5QYW5lbERlc2NyaXB0b3IoImF1ZGl0cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXVk
aXRzIiksICJBdWRpdHNQYW5lbCIsICJBdWRpdHNQYW5lbC5qcyIpOwpAQCAtNzM5LDcgKzczOSw3
IEBAIFdlYkluc3BlY3Rvci5fcmVnaXN0ZXJTaG9ydGN1dHMgPSBmdW5jdGlvbigpCiAgICAgdmFy
IGFkdmFuY2VkU2VhcmNoU2hvcnRjdXQgPSBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250
cm9sbGVyLmNyZWF0ZVNob3J0Y3V0KCk7CiAgICAgc2VjdGlvbi5hZGRLZXkoYWR2YW5jZWRTZWFy
Y2hTaG9ydGN1dC5uYW1lLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBhY3Jvc3MgYWxs
IHNvdXJjZXMiKSk7CiAKLSAgICB2YXIgb3BlblJlc291cmNlU2hvcnRjdXQgPSBXZWJJbnNwZWN0
b3IuT3BlblJlc291cmNlRGlhbG9nLmNyZWF0ZVNob3J0Y3V0KCk7CisgICAgdmFyIG9wZW5SZXNv
dXJjZVNob3J0Y3V0ID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0
b3IoIm8iLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0
YSk7CiAgICAgc2VjdGlvbi5hZGRLZXkob3BlblJlc291cmNlU2hvcnRjdXQubmFtZSwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJHbyB0byBzb3VyY2UiKSk7CiAKICAgICBpZiAoV2ViSW5zcGVjdG9y
LmlzTWFjKCkpIHsKQEAgLTc4OSw3ICs3ODksNyBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlE
b3duID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgc3dpdGNoIChldmVudC5rZXlJZGVudGlmaWVyKSB7
CiAgICAgICAgIGNhc2UgIlUrMDA0RiI6IC8vIE8ga2V5CiAgICAgICAgICAgICBpZiAoIWV2ZW50
LnNoaWZ0S2V5ICYmICFldmVudC5hbHRLZXkgJiYgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuZXZlbnRIYXNDdHJsT3JNZXRhKGV2ZW50KSkgewotICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5zaG93R29Ub1NvdXJjZURpYWxvZygpOworICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKS5zaG93R29Ub1NvdXJjZURpYWxv
ZygpOwogICAgICAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUodHJ1ZSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMjQsNyArMTAyNCw3IEBAIFdlYkluc3BlY3Rvci5f
c2hvd0FuY2hvckxvY2F0aW9uID0gZnVuY3Rpb24oYW5jaG9yKQogICAgIHZhciBwcmVmZXJyZWRQ
YW5lbCA9IHRoaXMucGFuZWxzW2FuY2hvci5wcmVmZXJyZWRQYW5lbF07CiAgICAgaWYgKHByZWZl
cnJlZFBhbmVsICYmIFdlYkluc3BlY3Rvci5fc2hvd0FuY2hvckxvY2F0aW9uSW5QYW5lbChhbmNo
b3IsIHByZWZlcnJlZFBhbmVsKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKFdlYklu
c3BlY3Rvci5fc2hvd0FuY2hvckxvY2F0aW9uSW5QYW5lbChhbmNob3IsIHRoaXMucGFuZWxzLnNj
cmlwdHMpKQorICAgIGlmIChXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbkluUGFuZWwo
YW5jaG9yLCB0aGlzLnBhbmVsKCJzY3JpcHRzIikpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBpZiAoV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVsKGFuY2hvciwgdGhp
cy5wYW5lbCgicmVzb3VyY2VzIikpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAppbmRleCA2MWVjZDEyZWFlYTUxYTBhMTgwODExZGFiMDRjYzAyYzBkYzEx
NjliLi42MDFjYjYwOTMzMzYxODA0ZThjNzUwNWNiM2ZmNDE2YTljNzZhMDZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC04NzYsNiArODc2LDcgQEAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX2VsZW1lbnRzX2pzJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRv
b2xzX3Jlc291cmNlc19qcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NvbmNhdGVuYXRlZF9kZXZ0b29sc19uZXR3b3JrX2pzJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3NjcmlwdHNfanMnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNf
dGltZWxpbmVfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25j
YXRlbmF0ZWRfZGV2dG9vbHNfcHJvZmlsZXNfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfYXVkaXRzX2pzJywKQEAgLTk2Myw2
ICs5NjQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRl
bmF0ZWRfZGV2dG9vbHNfZWxlbWVudHNfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfcmVzb3VyY2VzX2pzJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX25ldHdv
cmtfanMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0
ZWRfZGV2dG9vbHNfc2NyaXB0c19qcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc190aW1lbGluZV9qcycsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19wcm9maWxlc19q
cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9k
ZXZ0b29sc19hdWRpdHNfanMnLApAQCAtOTg2LDYgKzk4OCw3IEBACiAgICAgICAgICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9yL0VsZW1lbnRzUGFuZWwuanMn
LAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rv
ci9SZXNvdXJjZXNQYW5lbC5qcycsCiAgICAgICAgICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9yZXNvdXJjZXMvaW5zcGVjdG9yL05ldHdvcmtQYW5lbC5qcycsCisgICAgICAgICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9yL1NjcmlwdHNQYW5lbC5qcycs
CiAgICAgICAgICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9y
L1RpbWVsaW5lUGFuZWwuanMnLAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
cmVzb3VyY2VzL2luc3BlY3Rvci9Qcm9maWxlc1BhbmVsLmpzJywKICAgICAgICAgICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvQXVkaXRzUGFuZWwuanMnLApA
QCAtMTE1OSw2ICsxMTYyLDIyIEBACiAgICAgICAgICAgICAgICAgICAgIH1dLAogICAgICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndGFyZ2V0
X25hbWUnOiAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3NjcmlwdHNfanMnLAorICAgICAgICAgICAg
ICAgICAgICAndHlwZSc6ICdub25lJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbnMnOiBb
eworICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ2NvbmNhdGVuYXRlX2Rl
dnRvb2xzX3NjcmlwdHNfanMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmlwdF9uYW1l
JzogJ3NjcmlwdHMvaW5saW5lX2pzX2ltcG9ydHMucHknLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2lucHV0X2ZpbGUnOiAnLi4vLi4vV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICc8QChfc2NyaXB0X25hbWUpJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnPEAod2ViaW5zcGVjdG9yX3NjcmlwdHNfanNfZmlsZXMpJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAnc2VhcmNoX3Bh
dGgnOiAnLi4vLi4vV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdvdXRwdXRzJzogWyc8KFBST0RVQ1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9y
L1NjcmlwdHNQYW5lbC5qcyddLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbic6IFsn
cHl0aG9uJywgJzxAKF9zY3JpcHRfbmFtZSknLCAnPEAoX2lucHV0X2ZpbGUpJywgJzxAKF9zZWFy
Y2hfcGF0aCknLCAnPEAoX291dHB1dHMpJ10sCisgICAgICAgICAgICAgICAgICAgIH1dLAorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAn
dGFyZ2V0X25hbWUnOiAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3RpbWVsaW5lX2pzJywKICAgICAg
ICAgICAgICAgICAgICAgJ3R5cGUnOiAnbm9uZScsCiAgICAgICAgICAgICAgICAgICAgICdhY3Rp
b25zJzogW3sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAwNTFmM2I5MzIwZTdhMTlmMzMxMTZlNDFhZWEyOTNjNmY4MjIwMzMx
Li5mNGI2YjliNzMyMzRkOGE5ZWJlMmU4NmQ2ZTEzNTFkMzYzMzdiZGYzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMjIgQEAKIDIwMTItMDgtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5v
cmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbG9hZCBzY3JpcHRzIHBhbmVsIGxhemlseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5n
ZSByZW1vdmVzIGFjY2VzcyB0byBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMgYW5kIGxvYWRz
IGl0IGxhemlseS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRl
c3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdCk6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2ZpbHRl
cmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sOgorCisyMDEyLTA4LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGxvYWQgbmV0d29yayBwYW5lbCBsYXppbHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDE0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IDFmZGUxZDkwOWY1YTY1ZDRmMjRl
Zjc5N2JkYmQ5ZmE3ODA3YWMyM2YuLjA0MzY4ZmZkZTE5MzE4MTFjM2UzOWNhNDVlN2E4ODExMGVk
NzcxY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXItdGVzdC5qcwpAQCAtMTYwLDcgKzE2MCw3IEBAIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRTY3Jp
cHQgPSBmdW5jdGlvbigpCiAKIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSA9IGZ1bmN0
aW9uKHNjcmlwdE5hbWUsIGNhbGxiYWNrKQogewotICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0czsKKyAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJzY3JpcHRzIik7CiAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBwYW5lbC5fd29ya3NwYWNlLnVp
U291cmNlQ29kZXMoKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVu
Z3RoOyArK2kpIHsKICAgICAgICAgaWYgKHVpU291cmNlQ29kZXNbaV0ucGFyc2VkVVJMLmxhc3RQ
YXRoQ29tcG9uZW50ID09PSBzY3JpcHROYW1lKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAppbmRleCA5NGE0ZTJjZGM2ZjBkOWE2ODdi
YWE1YTU2ODc1MzcxZmFmNjJkYzcxLi4wYjM1OGFjNDk0YzNlOWNkMzBjNGI3NGEyYjQyY2NlYmEw
YzU4NTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
cy1wYW5lbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRz
LXBhbmVsLmh0bWwKQEAgLTksNiArOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIC8vIEFs
d2F5cyB1c2UgaW5kZW50YXRpb24gaW4gc2NyaXB0cyBkcm9wIGJveAogICAgIFdlYkluc3BlY3Rv
ci5faXNNYWMgPSBmYWxzZTsKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7
CiAKICAgICB2YXIgdWlTb3VyY2VDb2RlczsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sCmluZGV4IDdmZjRiZWIzNDhhNTU5NzM5
ZTg0MmMzYjRiMWMyM2MxYzQ3ZTgwMWMuLjMzN2I3MGE5NmVhNzdmZjUxOWRhMzljZDMxYTEyYzMz
ZmFjMWRkM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHRzLXNvcnRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0cy1zb3J0aW5nLmh0bWwKQEAgLTgsNiArOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAg
IC8vIEFsd2F5cyB1c2UgaW5kZW50YXRpb24gaW4gc2NyaXB0cyBkcm9wIGJveAogICAgIFdlYklu
c3BlY3Rvci5faXNNYWMgPSBmYWxzZTsKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3Jp
cHRzIik7CiAKICAgICB2YXIgbmF2aWdhdG9yRmlsZVNlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rv
ci5TY3JpcHRzTmF2aWdhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy5o
dG1sCmluZGV4IGI3OGViMzZlZDViMTRjNzhlM2QyZDlhYzEwOTI3Y2M0YTQwODY1MzEuLmU0MmM5
MmIyZWM1NTBmYmFiM2FiNjQwNDU4NzljNzVjYjI1OGY5NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRp
YWxvZy1maWx0ZXJpbmcuaHRtbApAQCAtNSw2ICs1LDggQEAKIAogZnVuY3Rpb24gdGVzdCgpCiB7
CisgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOworCiAgICAgZnVuY3Rpb24g
Y2hlY2tRdWVyeSh0aXRsZSwgcXVlcnksIGlucHV0KQogICAgIHsKICAgICAgICAgdmFyIG91dHB1
dCA9IFtdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LWlu
c3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Vk
aXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbAppbmRleCA5YjI5NDIxMzIyYWQ3YzBkOTkwNzMy
ZmQ1YzE2YTIwMDkyMTIzYmYzLi4yMTJlYTBhODI3MmRhNDZiNTdiMWFlYzFmMjRmMTg3NTZlNjQz
N2QxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVj
dG9yLXN0eWxlc2hlZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Vk
aXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCiAgICAgewotICAgICAgICBXZWJJbnNw
ZWN0b3IucGFuZWxzLnNjcmlwdHMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHNvdXJj
ZUNvZGVBZGRlZCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbCgic2NyaXB0cyIpLl93b3Jr
c3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIu
RXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCBzb3VyY2VDb2RlQWRkZWQpOwogICAgICAgICBXZWJJ
bnNwZWN0b3IuY3NzTW9kZWwuYWRkUnVsZShub2RlLmlkLCAiI2luc3BlY3RlZCIsIHN1Y2Nlc3ND
YWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTsKIAogICAgICAgICBmdW5jdGlvbiBzdWNjZXNzQ2Fs
bGJhY2soKSB7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRp
dG9ycy1oaXN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMt
aGlzdG9yeS5odG1sCmluZGV4IDNjNGVlMTc0YzIzOTQ3MjQ5NmUwMGZlMzBjN2I3N2ZlMzdhNDg2
MDEuLmQyMTY4N2UyMWRjN2M2MjFjYTNhNzc0ZjRlZWViOWU2YzIwZjczOTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRtbApAQCAtNCw2
ICs0LDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIHZhciB0ZXN0ID0gZnVu
Y3Rpb24oKQogeworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKKwogICAg
IGZ1bmN0aW9uIGR1bXBIaXN0b3J5KGhpc3RvcnkpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiICBoaXN0b3J5ID0gIiArIEpTT04uc3RyaW5naWZ5KGhpc3RvcnkuX3Nl
cmlhbGl6ZVRvT2JqZWN0KCkpICsgIiIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159288</attachid>
            <date>2012-08-19 01:47:21 -0700</date>
            <delta_ts>2012-08-19 09:04:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94416-20120819124640.patch</filename>
            <type>text/plain</type>
            <size>76741</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI3ZmE2OTBmNDkxMmRi
ZTNjMDgwMTE3YTBjYTZhZWNlYjllNzUzZi4uZjU1OWI0YWJjMDQ0Yzg1OTYxNmU5ZWIxZjBkZTdj
Y2U3YWNmNTYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA4LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGxvYWQgc2NyaXB0cyBwYW5lbCBsYXppbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgLSByZW1vdmVzIGFjY2VzcyB0byBXZWJJbnNwZWN0b3IucGFu
ZWxzLnNjcmlwdHMgYW5kIGxvYWRzIGl0IGxhemlseS4KKyAgICAgICAgLSBleHRyYWN0cyBjbGFz
c2VzIHRvIHRoZWlyIG93biBmaWxlcyB3aGVuIGNsYXNzZXMgcmVzaWRpbmcgaW4gb25lIGZpbGUg
YmVsb25nIHRvIGRpZmZlcmVudCBtb2R1bGVzCisgICAgICAgIC0gcmVtb3ZlcyBTdHlsZXNQYW5l
bC5qcyBpbiBmYXZvciBvZiB0aGUgYWN0dWFsIGNsYXNzZXMgaXQgY29udGFpbnMgCisKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2cuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEFQ
SS5qczoKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLl9wZW5kaW5nQ29tbWFuZHMuaXNE
ZWJ1Z2dpbmdFbmFibGVkKToKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLnNldERlYnVn
Z2luZ0VuYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlQnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
QnJlYWtwb2ludHNTaWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlQnJl
YWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2FkZExpc3RFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcmVt
b3ZlTGlzdEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUJyZWFrcG9pbnRz
U2lkZWJhclBhbmUucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS5fZnVuY3Rpb25Db250ZXh0TWVudUV2
ZW50RmlyZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1v
ZGVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2hvd0dvVG9Tb3Vy
Y2VEaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEph
dmFTY3JpcHRTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9ydW5CdXR0
b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0
bGluZURpYWxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFs
b2cuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cu
cHJvdG90eXBlLml0ZW1UaXRsZUF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUuaXRlbVN1YnRpdGxlQXQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5pdGVtS2V5QXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5pdGVt
c0NvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5w
cm90b3R5cGUucmVxdWVzdEl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUucmVxdWVzdEl0ZW1zLmRpZEdldFN0eWxlU2hlZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5z
ZWxlY3RJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxv
Zy5wcm90b3R5cGUucmV3cml0ZVF1ZXJ5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlU291cmNlLmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNQYW5lbC5qcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNv
dXJjZUNvZGVQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VD
b2RlUHJvdmlkZXIucHJvdG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlk
ZXIucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3BvcHVsYXRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUu
X3Jlc291cmNlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29k
ZVByb3ZpZGVyLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVT
b3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5pc0Vk
aXRhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS5wcm90b3R5cGUud29y
a2luZ0NvcHlDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnBy
b3RvdHlwZS53b3JraW5nQ29weUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxl
U291cmNlLnByb3RvdHlwZS5fY2FsbE9yU2V0VGltZW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU3R5bGVTb3VyY2UucHJvdG90eXBlLl9jb21taXRJbmNyZW1lbnRhbEVkaXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5fY2xlYXJJbmNyZW1lbnRhbFVw
ZGF0ZVRpbWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbnNwZWN0b3JTdHlsZVNvdXJjZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3BhbmVsRGVzY3Jp
cHRvcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5fc2hvd0FuY2hvckxvY2F0aW9uKToKKwogMjAxMi0wOC0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcmVwYXJlIHNj
cmlwdHMgcGFuZWwgdG8gYmUgbGF6aWx5IGxvYWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCBiODFiZTM3MDdkZGI0MTIwN2UzZGZhMmQzNjlkM2Q3ZTZlOWM0MjdmLi5hMTM4NTgyYWUx
YmFlZjk1ODJhN2M1MGJjYzI4Y2NhMzRkNTM5ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDE0IEBACiAyMDEyLTA4LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGxvYWQgc2NyaXB0cyBwYW5l
bCBsYXppbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorCisyMDEyLTA4LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hy
b21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGxvYWQgbmV0d29yayBwYW5lbCBs
YXppbHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
NDE0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5Y2YxZDcyNGU3YmFlY2EzYzNmOGI4MWZmNmJhYmIy
NGUwYjk1ZTY2Li4xMmMzMDEyYTY4YWVkY2EzY2JhODVmYjk4NmU5OTBjNTg3YmU4N2ZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC02MjU2LDggKzYyNTYsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcycsCi0gICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzJywKLSAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NoZWNrYm94LmpzJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcycsCkBAIC02Mjk4LDcgKzYyOTYsNiBA
QAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1hbmFnZXIuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVVdGlscy5qcycsCi0gICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvR29Ub0xpbmVEaWFsb2cuanMnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50cnkuanMnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvSGFuZGxlclJlZ2lzdHJ5LmpzJywKQEAgLTYzMTMsMTAgKzYzMTAs
MTAgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0
TWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0
Rm9ybWF0dGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2UuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlw
dFNvdXJjZUZyYW1lLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2pzZGlm
ZmxpYi5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9LZXlib2FyZFNob3J0
Y3V0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0xpbmtpZmllci5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVCcmVha3BvaW50c1NpZGVi
YXJQYW5lLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvck92
ZXJsYXlDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05h
dmlnYXRvclZpZXcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a01hbmFnZXIuanMnLApAQCAtNjMzOSwxNiArNjMzNiwxMSBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUeXBlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdEZvcm1hdHRlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0U25pcHBldE1vZGVsLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNTZWFyY2hTY29wZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
ZWFyY2hDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1No
b3J0Y3V0c1NjcmVlbi5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5nc1NjcmVlbi5qcycsCkBAIC02MzY5LDggKzYzNjEsNyBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvU3BlY3RydW0uanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvU3BsaXRWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1N0
YXR1c0JhckJ1dHRvbi5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNQYW5lbC5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0
b3JDb250YWluZXIuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVT
b3VyY2UuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzJywKQEAgLTYz
ODIsMTUgKzYzNzMsMTIgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xi
YXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzJywKLSAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZUZyYW1lLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvVXNlckFnZW50U3VwcG9ydC5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvVmlldy5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4
cHJlc3Npb25zU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvV29ya2VyTWFuYWdlci5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9X
b3JrZXJzU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
V29ya3NwYWNlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RpYWxvZy5j
c3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcycsCkBA
IC02NDYwLDYgKzY0NDgsMjMgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlV2ViU29ja2V0RnJhbWVWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtQYW5lbC5qcycsCiAgICAgICAgIF0sCisgICAgICAgICd3ZWJpbnNwZWN0
b3Jfc2NyaXB0c19qc19maWxlcyc6IFsKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcycsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzJywKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcycsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzJywKKyAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcycsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUuanMnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxv
Zy5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250
YWluZXIuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2Rl
RnJhbWUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNz
aW9uc1NpZGViYXJQYW5lLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dv
cmtlcnNTaWRlYmFyUGFuZS5qcycsCisgICAgICAgIF0sCiAgICAgICAgICd3ZWJpbnNwZWN0b3Jf
dGltZWxpbmVfanNfZmlsZXMnOiBbCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9N
ZW1vcnlTdGF0aXN0aWNzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lRnJhbWVDb250cm9sbGVyLmpzJywKQEAgLTY1MDgsNiArNjUxMyw3IEBACiAgICAgICAg
ICAgICAnPEAod2ViaW5zcGVjdG9yX2VsZW1lbnRzX2pzX2ZpbGVzKScsCiAgICAgICAgICAgICAn
PEAod2ViaW5zcGVjdG9yX3Jlc291cmNlc19qc19maWxlcyknLAogICAgICAgICAgICAgJzxAKHdl
Ymluc3BlY3Rvcl9uZXR3b3JrX2pzX2ZpbGVzKScsCisgICAgICAgICAgICAnPEAod2ViaW5zcGVj
dG9yX3NjcmlwdHNfanNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfdGlt
ZWxpbmVfanNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfcHJvZmlsZXNf
anNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfYXVkaXRzX2pzX2ZpbGVz
KScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDc3YWVhMWIyYzNlNDUwZDBhZjk4MzAyNWJlODk0YmE0ODc4ZmY2Y2QuLjQ2ZTZhYTcyYmM1NmJk
ZjUxZDdlM2UyYWJjZjM1OWY0ZTBkZTA4YWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NTk5NCw2ICs3NTk5NCwxMCBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZy
b250LWVuZFxOYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxOYXZpZ2F0b3JPdmVybGF5Q29udHJvbGxlci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAg
LTc2Mjc0LDYgKzc2Mjc4LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNuaXBwZXRKYXZhU2NyaXB0
U291cmNlRnJhbWUuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNuaXBwZXRTdG9yYWdlLmpzIgogCQkJ
CQk+CiAJCQkJPC9GaWxlPgpAQCAtNzYzMjIsNyArNzYzMzAsNyBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxTdHlsZXNQYW5lbC5qcyIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQt
ZW5kXFN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCkBAIC03NjMzMCw2ICs3NjMzOCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxTdHlsZVNv
dXJjZS5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU3VtbWFyeUJhci5qcyIKIAkJCQkJPgogCQkJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyMzI5YjdmM2JmMGQ5YzVlZmY5MzIwZWJlNmQxN2IxYjA1ZmY2OGZhLi5iMTIy
NzcxNTkzODhkYWU4NDM1MTEyNDBhYzYzYzEwYmM0NjE0NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTU5NSw2ICsyNTU5
NSw3IEBACiAJCQkJIiQoREVSSVZFRF9GSUxFX0RJUikvV2ViQ29yZS9FbGVtZW50c1BhbmVsLmpz
IiwKIAkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpzIiwK
IAkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9XZWJDb3JlL05ldHdvcmtQYW5lbC5qcyIsCisJCQkJ
IiQoREVSSVZFRF9GSUxFX0RJUikvV2ViQ29yZS9TY3JpcHRzUGFuZWwuanMiLAogCQkJCSIkKERF
UklWRURfRklMRV9ESVIpL1dlYkNvcmUvVGltZWxpbmVQYW5lbC5qcyIsCiAJCQkJIiQoREVSSVZF
RF9GSUxFX0RJUikvV2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzIiwKIAkJCQkiJChERVJJVkVEX0ZJ
TEVfRElSKS9XZWJDb3JlL0F1ZGl0c1BhbmVsLmpzIiwKQEAgLTI1NjAzLDcgKzI1NjA0LDcgQEAK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNo
ZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICIjIERvbid0IGRvIGFueXRoaW5n
IGZvciBEZWJ1ZyBidWlsZHMsIHNvIHRoZSBJbnNwZWN0b3IgaXMgZWFzaWVyIHRvIGRlYnVnLlxu
IyBEb24ndCBkbyBhbnl0aGluZyBmb3IgUHJvZHVjdGlvbiBidWlsZHMsIHNpbmNlIHRoZSBJbnNw
ZWN0b3IgaXNuJ3QgaW5zdGFsbGVkLlxuaWYgW1sgJHtDT05GSUdVUkFUSU9OOj1EZWJ1Z30gPT0g
XCJEZWJ1Z1wiIHx8ICR7Q09ORklHVVJBVElPTjo9UHJvZHVjdGlvbn0gPT0gXCJQcm9kdWN0aW9u
XCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG4jIENvbWJpbmUgYWxsIHNjcmlwdCByZXNvdXJj
ZXMgaW4gdGhlIGluc3BlY3Rvci5odG1sIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9jb21i
aW5lLWphdmFzY3JpcHQtcmVzb3VyY2VzLnBsXCIgLS1pbnB1dC1odG1sIFwiJHtTUkNST09UfS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sXCIgLS1nZW5lcmF0ZWQtc2NyaXB0cy1k
aXIgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZVwiIC0tb3V0
cHV0LWRpciBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZVwiIC0tb3V0cHV0LXNjcmlwdC1u
YW1lIGluc3BlY3Rvci5qc1xuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBFbGVtZW50c1Bh
bmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBv
cnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
c1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9E
SVJ9L1dlYkNvcmUvRWxlbWVudHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRz
IGluIFJlc291cmNlc1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUt
amF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwi
JHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpzXCJcblxuIyBJbmxp
bmUgc2NyaXB0IGltcG9ydHMgaW4gTmV0d29ya1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2lu
c3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9m
cm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9OZXR3b3JrUGFuZWwuanNc
IlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBUaW1lbGluZVBhbmVsLmpzIGZpbGUuXG5c
IiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NS
Q1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qc1wiIFwiJHtTUkNST09U
fS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvVGlt
ZWxpbmVQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFByb2ZpbGVzUGFu
ZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9y
dHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJ
Un0vV2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMg
aW4gQXVkaXRzUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZh
c2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dHNQYW5lbC5qc1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvQXVkaXRzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQg
aW1wb3J0cyBpbiBDb2RlTWlycm9yVGV4dEVkaXRvci5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNw
ZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzXCIgXCIke1NSQ1JPT1R9L2luc3Bl
Y3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9Db2RlTWlycm9y
VGV4dEVkaXRvci5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFNjcmlwdEZvcm1h
dHRlcldvcmtlci5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3Jp
cHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZv
cm1hdHRlcldvcmtlci5qc1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIk
e0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzXCJcblxu
aWYgWyAtZCBcIiR7VEFSR0VUX0JVSUxEX0RJUn0vJHtVTkxPQ0FMSVpFRF9SRVNPVVJDRVNfRk9M
REVSX1BBVEh9L2luc3BlY3RvclwiIF07IHRoZW5cbiAgICBjZCBcIiR7VEFSR0VUX0JVSUxEX0RJ
Un0vJHtVTkxPQ0FMSVpFRF9SRVNPVVJDRVNfRk9MREVSX1BBVEh9L2luc3BlY3RvclwiXG5cbiAg
ICAjIFJlbW92ZSBhbnkgdG9wLWxldmVsIEphdmFTY3JpcHQgZmlsZXMsIHNpbmNlIHRoZXkgd2ls
bCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb21iaW5lZCBmaWxlLlxuICAgICMgS2VlcCBJbnNwZWN0
b3JCYWNrZW5kKi5qcyBmaWxlcyBzbyB0aGV5IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGZyb250LWVu
ZHMuXG4gICAgZmluZCAuIC1kZXB0aCAxIC1uYW1lIFwiKi5qc1wiIC1ub3QgLW5hbWUgXCJJbnNw
ZWN0b3JCYWNrZW5kKi5qc1wiIHwgeGFyZ3Mgcm0gLXJmXG5cbiAgICAjIENvcHkgdGhlIG1vZGlm
aWVkIEhUTUwgZmlsZSBhbmQgdGhlIGNvbWJpbmVkIHNjcmlwdHMuXG4gICAgY3AgXCIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvaW5zcGVjdG9yLmh0bWxcIiBpbnNwZWN0b3IuaHRtbFxuICAg
IGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL2luc3BlY3Rvci5qc1wiIGluc3BlY3Rv
ci5qc1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0VsZW1lbnRzUGFuZWwu
anNcIiBFbGVtZW50c1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNv
cmUvUmVzb3VyY2VzUGFuZWwuanNcIiBSZXNvdXJjZXNQYW5lbC5qc1xuICAgIGNwIFwiJHtERVJJ
VkVEX0ZJTEVfRElSfS9XZWJDb3JlL05ldHdvcmtQYW5lbC5qc1wiIE5ldHdvcmtQYW5lbC5qc1xu
ICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1RpbWVsaW5lUGFuZWwuanNcIiBU
aW1lbGluZVBhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvUHJv
ZmlsZXNQYW5lbC5qc1wiIFByb2ZpbGVzUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxF
X0RJUn0vV2ViQ29yZS9BdWRpdHNQYW5lbC5qc1wiIEF1ZGl0c1BhbmVsLmpzXG4gICAgY3AgXCIk
e0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvQ29kZU1pcnJvclRleHRFZGl0b3IuanNcIiBDb2Rl
TWlycm9yVGV4dEVkaXRvci5qc1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3Jl
L1NjcmlwdEZvcm1hdHRlcldvcmtlci5qc1wiIFNjcmlwdEZvcm1hdHRlcldvcmtlci5qc1xuZmlc
biI7CisJCQlzaGVsbFNjcmlwdCA9ICIjIERvbid0IGRvIGFueXRoaW5nIGZvciBEZWJ1ZyBidWls
ZHMsIHNvIHRoZSBJbnNwZWN0b3IgaXMgZWFzaWVyIHRvIGRlYnVnLlxuIyBEb24ndCBkbyBhbnl0
aGluZyBmb3IgUHJvZHVjdGlvbiBidWlsZHMsIHNpbmNlIHRoZSBJbnNwZWN0b3IgaXNuJ3QgaW5z
dGFsbGVkLlxuaWYgW1sgJHtDT05GSUdVUkFUSU9OOj1EZWJ1Z30gPT0gXCJEZWJ1Z1wiIHx8ICR7
Q09ORklHVVJBVElPTjo9UHJvZHVjdGlvbn0gPT0gXCJQcm9kdWN0aW9uXCIgXV07IHRoZW5cbiAg
ICBleGl0XG5maVxuXG4jIENvbWJpbmUgYWxsIHNjcmlwdCByZXNvdXJjZXMgaW4gdGhlIGluc3Bl
Y3Rvci5odG1sIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9jb21iaW5lLWphdmFzY3JpcHQt
cmVzb3VyY2VzLnBsXCIgLS1pbnB1dC1odG1sIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5odG1sXCIgLS1nZW5lcmF0ZWQtc2NyaXB0cy1kaXIgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZVwiIC0tb3V0cHV0LWRpciBcIiR7REVS
SVZFRF9GSUxFX0RJUn0vV2ViQ29yZVwiIC0tb3V0cHV0LXNjcmlwdC1uYW1lIGluc3BlY3Rvci5q
c1xuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBFbGVtZW50c1BhbmVsLmpzIGZpbGUuXG5c
IiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NS
Q1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qc1wiIFwiJHtTUkNST09U
fS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvRWxl
bWVudHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFJlc291cmNlc1Bh
bmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBv
cnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVf
RElSfS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9y
dHMgaW4gTmV0d29ya1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUt
amF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya1BhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7
REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9OZXR3b3JrUGFuZWwuanNcIlxuXG4jIElubGluZSBz
Y3JpcHQgaW1wb3J0cyBpbiBTY3JpcHRzUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVj
dG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250
LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1NjcmlwdHNQYW5lbC5qc1wiXG5c
biMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFRpbWVsaW5lUGFuZWwuanMgZmlsZS5cblwiJFNS
Q1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9P
VH0vaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2lu
c3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9UaW1lbGlu
ZVBhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gUHJvZmlsZXNQYW5lbC5q
cyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5w
eVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanNcIiBc
IiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9X
ZWJDb3JlL1Byb2ZpbGVzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBB
dWRpdHNQYW5lbC5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3Jp
cHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1Bh
bmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9G
SUxFX0RJUn0vV2ViQ29yZS9BdWRpdHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBv
cnRzIGluIENvZGVNaXJyb3JUZXh0RWRpdG9yLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rv
ci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9m
cm9udC1lbmQvQ29kZU1pcnJvclRleHRFZGl0b3IuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9y
L2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0NvZGVNaXJyb3JUZXh0
RWRpdG9yLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gU2NyaXB0Rm9ybWF0dGVy
V29ya2VyLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1p
bXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0
dGVyV29ya2VyLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVS
SVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanNcIlxuXG5pZiBb
IC1kIFwiJHtUQVJHRVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xERVJf
UEFUSH0vaW5zcGVjdG9yXCIgXTsgdGhlblxuICAgIGNkIFwiJHtUQVJHRVRfQlVJTERfRElSfS8k
e1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xERVJfUEFUSH0vaW5zcGVjdG9yXCJcblxuICAgICMg
UmVtb3ZlIGFueSB0b3AtbGV2ZWwgSmF2YVNjcmlwdCBmaWxlcywgc2luY2UgdGhleSB3aWxsIGJl
IHJlcGxhY2VkIHdpdGggdGhlIGNvbWJpbmVkIGZpbGUuXG4gICAgIyBLZWVwIEluc3BlY3RvckJh
Y2tlbmQqLmpzIGZpbGVzIHNvIHRoZXkgY2FuIGJlIHVzZWQgYnkgb3RoZXIgZnJvbnQtZW5kcy5c
biAgICBmaW5kIC4gLWRlcHRoIDEgLW5hbWUgXCIqLmpzXCIgLW5vdCAtbmFtZSBcIkluc3BlY3Rv
ckJhY2tlbmQqLmpzXCIgfCB4YXJncyBybSAtcmZcblxuICAgICMgQ29weSB0aGUgbW9kaWZpZWQg
SFRNTCBmaWxlIGFuZCB0aGUgY29tYmluZWQgc2NyaXB0cy5cbiAgICBjcCBcIiR7REVSSVZFRF9G
SUxFX0RJUn0vV2ViQ29yZS9pbnNwZWN0b3IuaHRtbFwiIGluc3BlY3Rvci5odG1sXG4gICAgY3Ag
XCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvaW5zcGVjdG9yLmpzXCIgaW5zcGVjdG9yLmpz
XG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvRWxlbWVudHNQYW5lbC5qc1wi
IEVsZW1lbnRzUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9S
ZXNvdXJjZXNQYW5lbC5qc1wiIFJlc291cmNlc1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURf
RklMRV9ESVJ9L1dlYkNvcmUvTmV0d29ya1BhbmVsLmpzXCIgTmV0d29ya1BhbmVsLmpzXG4gICAg
Y3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvU2NyaXB0c1BhbmVsLmpzXCIgU2NyaXB0
c1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvVGltZWxpbmVQ
YW5lbC5qc1wiIFRpbWVsaW5lUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0v
V2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzXCIgUHJvZmlsZXNQYW5lbC5qc1xuICAgIGNwIFwiJHtE
RVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0F1ZGl0c1BhbmVsLmpzXCIgQXVkaXRzUGFuZWwuanNc
biAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9Db2RlTWlycm9yVGV4dEVkaXRv
ci5qc1wiIENvZGVNaXJyb3JUZXh0RWRpdG9yLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9E
SVJ9L1dlYkNvcmUvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzXCIgU2NyaXB0Rm9ybWF0dGVyV29y
a2VyLmpzXG5maVxuIjsKIAkJfTsKIAkJMUM4MUJBMzMwRTk3MzU3QzAwMjY2RTA3IC8qIENvcHkg
SW5zcGVjdG9yIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250
LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQpp
bmRleCAyMzc3NjQ2NWUzYTM2N2Q3MjRmY2Y3N2YwZTllOWZmMWE1MGU0NzNlLi5jYjFkYzkyMmUy
MzgwOTgzM2IwOTE5OWU0OGYxMzI0YjdhNWFlNzQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04OCwxMiArODgsMTQgQEAgbW9kdWxlcyA9
IFsKICAgICAgICAgICAgICJMaW5raWZpZXIuanMiLAogICAgICAgICAgICAgIk5ldHdvcmtMb2cu
anMiLAogICAgICAgICAgICAgIlBsYWNhcmQuanMiLAorICAgICAgICAgICAgIlByZXNlbnRhdGlv
bkNvbnNvbGVNZXNzYWdlSGVscGVyLmpzIiwKICAgICAgICAgICAgICJTQVNTU291cmNlTWFwcGlu
Zy5qcyIsCiAgICAgICAgICAgICAiU2NyaXB0LmpzIiwKICAgICAgICAgICAgICJTY3JpcHRGb3Jt
YXR0ZXIuanMiLAogICAgICAgICAgICAgIlNjcmlwdFNuaXBwZXRNb2RlbC5qcyIsCiAgICAgICAg
ICAgICAiU25pcHBldFN0b3JhZ2UuanMiLAogICAgICAgICAgICAgIlNvdXJjZU1hcHBpbmcuanMi
LAorICAgICAgICAgICAgIlN0eWxlU291cmNlLmpzIiwKICAgICAgICAgICAgICJUaW1lbGluZU1h
bmFnZXIuanMiLAogICAgICAgICAgICAgIlJhd1NvdXJjZUNvZGUuanMiLAogICAgICAgICAgICAg
IlJlbW90ZU9iamVjdC5qcyIsCkBAIC0xNTgsMTIgKzE2MCwxMSBAQCBtb2R1bGVzID0gWwogICAg
ICAgICAiZGVwZW5kZW5jaWVzIjogWyJzZGsiLCAidWkiXSwKICAgICAgICAgInNvdXJjZXMiOiBb
CiAgICAgICAgICAgICAiQ29uc29sZU1lc3NhZ2UuanMiLAotICAgICAgICAgICAgIkJyZWFrcG9p
bnRzU2lkZWJhclBhbmUuanMiLAogICAgICAgICAgICAgIkRPTUJyZWFrcG9pbnRzU2lkZWJhclBh
bmUuanMiLAogICAgICAgICAgICAgIkRPTVByZXNlbnRhdGlvblV0aWxzLmpzIiwKICAgICAgICAg
ICAgICJFbGVtZW50c1RyZWVPdXRsaW5lLmpzIiwKLSAgICAgICAgICAgICJGaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cuanMiLAogICAgICAgICAgICAgIkdvVG9MaW5lRGlhbG9nLmpzIiwKKyAg
ICAgICAgICAgICJOYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIiwKICAgICAgICAgICAg
ICJOYXZpZ2F0b3JPdmVybGF5Q29udHJvbGxlci5qcyIsCiAgICAgICAgICAgICAiTmF2aWdhdG9y
Vmlldy5qcyIsCiAgICAgICAgICAgICAiSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIiwKQEAg
LTE3Miw3ICsxNzMsNiBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIk9iamVjdFByb3BlcnRp
ZXNTZWN0aW9uLmpzIiwKICAgICAgICAgICAgICJTb3VyY2VGcmFtZS5qcyIsCiAgICAgICAgICAg
ICAiVGltZWxpbmVHcmlkLmpzIiwKLSAgICAgICAgICAgICJVSVNvdXJjZUNvZGVGcmFtZS5qcyIs
CiAgICAgICAgIF0KICAgICB9LAogICAgIHsKQEAgLTIyNiwxNyArMjI2LDIwIEBAIG1vZHVsZXMg
PSBbCiAgICAgICAgICJ0YXJnZXRfbmFtZSI6ICJzY3JpcHRzIiwKICAgICAgICAgImRlcGVuZGVu
Y2llcyI6IFsiY29tcG9uZW50cyJdLAogICAgICAgICAic291cmNlcyI6IFsKKyAgICAgICAgICAg
ICJCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIiwKICAgICAgICAgICAgICJDYWxsU3RhY2tTaWRl
YmFyUGFuZS5qcyIsCi0gICAgICAgICAgICAiU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzIiwKKyAg
ICAgICAgICAgICJGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMiLAogICAgICAgICAgICAg
IkphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcyIsCi0gICAgICAgICAgICAiUHJlc2VudGF0aW9uQ29u
c29sZU1lc3NhZ2VIZWxwZXIuanMiLAogICAgICAgICAgICAgIlJldmlzaW9uSGlzdG9yeVZpZXcu
anMiLAorICAgICAgICAgICAgIlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyIsCiAgICAgICAgICAg
ICAiU2NyaXB0c05hdmlnYXRvci5qcyIsCiAgICAgICAgICAgICAiU2NyaXB0c1BhbmVsLmpzIiwK
ICAgICAgICAgICAgICJTY3JpcHRzU2VhcmNoU2NvcGUuanMiLAorICAgICAgICAgICAgIlNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlRnJhbWUuanMiLAorICAgICAgICAgICAgIlN0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLmpzIiwKICAgICAgICAgICAgICJUYWJiZWRFZGl0b3JDb250YWluZXIuanMiLAor
ICAgICAgICAgICAgIlVJU291cmNlQ29kZUZyYW1lLmpzIiwKICAgICAgICAgICAgICJXYXRjaEV4
cHJlc3Npb25zU2lkZWJhclBhbmUuanMiLAotICAgICAgICAgICAgIldvcmtlck1hbmFnZXIuanMi
LAogICAgICAgICAgICAgIldvcmtlcnNTaWRlYmFyUGFuZS5qcyIsCiAgICAgICAgIF0KICAgICB9
LApAQCAtMjczLDEzICsyNzYsNiBAQCBtb2R1bGVzID0gWwogICAgICAgICBdCiAgICAgfSwKICAg
ICB7Ci0gICAgICAgICJ0YXJnZXRfbmFtZSI6ICJzdHlsZXMiLAotICAgICAgICAiZGVwZW5kZW5j
aWVzIjogWyJjb21wb25lbnRzIl0sCi0gICAgICAgICJzb3VyY2VzIjogWwotICAgICAgICAgICAg
IlN0eWxlc1BhbmVsLmpzIiwKLSAgICAgICAgXQotICAgIH0sCi0gICAgewogICAgICAgICAidGFy
Z2V0X25hbWUiOiAiZXh0ZW5zaW9ucyIsCiAgICAgICAgICJkZXBlbmRlbmNpZXMiOiBbImNvbXBv
bmVudHMiXSwKICAgICAgICAgInNvdXJjZXMiOiBbCkBAIC0yOTYsNiArMjkyLDcgQEAgbW9kdWxl
cyA9IFsKICAgICAgICAgImRlcGVuZGVuY2llcyI6IFsiY29tcG9uZW50cyIsICJleHRlbnNpb25z
Il0sCiAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgIlNldHRpbmdzU2NyZWVuLmpz
IiwKKyAgICAgICAgICAgICJXb3JrZXJNYW5hZ2VyLmpzIiwKICAgICAgICAgXQogICAgIH0sCiAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZh
bmNlZFNlYXJjaENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwppbmRleCAwZTc2NGQxYzE1MjMyMTFmZjhh
YWYyNDQzMmU2OTVkM2I0ZDNhMjdhLi42OTUwNTkzNzU4MDQ3ODM5NmFjMjk0YzlkMjc5N2E1M2Rj
ZGNlOTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fk
dmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwpAQCAtNTYsNyArNTYsNyBAQCBX
ZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICB7
CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5RnJvbUV2
ZW50KGV2ZW50KSA9PT0gdGhpcy5fc2hvcnRjdXQua2V5KSB7CiAgICAgICAgICAgICBpZiAoIXRo
aXMuX3NlYXJjaFZpZXcgfHwgIXRoaXMuX3NlYXJjaFZpZXcuaXNTaG93aW5nKCkgfHwgdGhpcy5f
c2VhcmNoVmlldy5fc2VhcmNoICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7Ci0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuc2V0Q3VycmVudFBhbmVsKFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cyk7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbCgic2NyaXB0cyIpOwogICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpOwogICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5l
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGVi
YXJQYW5lLmpzCmluZGV4IDNhYzcxOGY3YzkwNzE3MDUyYTk1YTk3NDM1MzZlMTFkNDNlYWFhMmMu
LjBjMmNmMzQ0YmM2YzRkODk5YTQ4NTIyZWZhOWNkMzNhZGIyZTE3OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lk
ZWJhclBhbmUuanMKQEAgLTI0OCw1OSArMjQ4LDYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRC
cmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IK
IAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJh
clBhbmV9Ci0gKi8KLVdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lID0g
ZnVuY3Rpb24odGl0bGUpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhp
cywgdGl0bGUpOwotCi0gICAgdGhpcy5saXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoIm9sIik7Ci0gICAgdGhpcy5saXN0RWxlbWVudC5jbGFzc05hbWUgPSAiYnJlYWtwb2ludC1s
aXN0IjsKLQotICAgIHRoaXMuZW1wdHlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgdGhpcy5lbXB0eUVsZW1lbnQuY2xhc3NOYW1lID0gImluZm8iOwotICAgIHRo
aXMuZW1wdHlFbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBC
cmVha3BvaW50cyIpOwotCi0gICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVt
cHR5RWxlbWVudCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQ
YW5lLnByb3RvdHlwZSA9IHsKLSAgICBfYWRkTGlzdEVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQs
IGJlZm9yZUVsZW1lbnQpCi0gICAgewotICAgICAgICBpZiAoYmVmb3JlRWxlbWVudCkKLSAgICAg
ICAgICAgIHRoaXMubGlzdEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1l
bnQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5saXN0RWxlbWVudC5m
aXJzdENoaWxkKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGls
ZCh0aGlzLmVtcHR5RWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHRoaXMubGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICB9
LAotCi0gICAgX3JlbW92ZUxpc3RFbGVtZW50OiBmdW5jdGlvbihlbGVtZW50KQotICAgIHsKLSAg
ICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVDaGlsZChlbGVtZW50KTsKLSAgICAgICAgaWYg
KCF0aGlzLmxpc3RFbGVtZW50LmZpcnN0Q2hpbGQpIHsKLSAgICAgICAgICAgIHRoaXMuYm9keUVs
ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5saXN0RWxlbWVudCk7Ci0gICAgICAgICAgICB0aGlzLmJv
ZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZW1wdHlFbGVtZW50KTsKLSAgICAgICAgfQotICAg
IH0sCi0KLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMubGlzdEVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgaWYgKHRoaXMubGlzdEVsZW1lbnQucGFy
ZW50RWxlbWVudCkgewotICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0
aGlzLmxpc3RFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5lbXB0eUVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0
b3IuTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IK
ICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFuZX0K
ICAqLwogV2ViSW5zcGVjdG9yLlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUgPSBmdW5jdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCmluZGV4IDFkMGEyMmZiZTdhY2VmNmFi
M2Y1OTZiNTk5ZjE2ZWNlNWU0ZGU2ZmEuLmYwMjc3NjVlNGZiY2U4MDJjMmY0YzVkMzZjMDExZDdh
OTJmZjM0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCkBAIC02MjIsMTEg
KzYyMiw2IEBAIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlvbihwYW5l
bCwgdWlTb3VyY2VDb2RlUHJvdmlkZXIpCiAgICAgdGhpcy5fdWlTb3VyY2VDb2Rlcy5zb3J0KGNv
bXBhcmVGdW5jdGlvbik7CiB9CiAKLVdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuY3Jl
YXRlU2hvcnRjdXQgPSBmdW5jdGlvbigpCi17Ci0gICAgcmV0dXJuIFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJvIiwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpOwotfQotCiBXZWJJbnNwZWN0b3IuT3BlblJlc291
cmNlRGlhbG9nLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0g
aXRlbUluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTYxNTQ3NDVhOWFlZjY5NmVjZDdiMzgxZGZmODJiNjcxYTVmODFjOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlQnJlYWtwb2ludHNT
aWRlYmFyUGFuZS5qcwpAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmV9CisgKi8KK1dlYkluc3BlY3Rvci5OYXRp
dmVCcmVha3BvaW50c1NpZGViYXJQYW5lID0gZnVuY3Rpb24odGl0bGUpCit7CisgICAgV2ViSW5z
cGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgdGl0bGUpOworCisgICAgdGhpcy5saXN0RWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CisgICAgdGhpcy5saXN0RWxlbWVu
dC5jbGFzc05hbWUgPSAiYnJlYWtwb2ludC1saXN0IjsKKworICAgIHRoaXMuZW1wdHlFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5lbXB0eUVsZW1lbnQu
Y2xhc3NOYW1lID0gImluZm8iOworICAgIHRoaXMuZW1wdHlFbGVtZW50LnRleHRDb250ZW50ID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBCcmVha3BvaW50cyIpOworCisgICAgdGhpcy5ib2R5
RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5RWxlbWVudCk7Cit9CisKK1dlYkluc3BlY3Rv
ci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKKyAgICBfYWRkTGlz
dEVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQpCisgICAgeworICAgICAg
ICBpZiAoYmVmb3JlRWxlbWVudCkKKyAgICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQuaW5zZXJ0
QmVmb3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQpOworICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgIGlmICghdGhpcy5saXN0RWxlbWVudC5maXJzdENoaWxkKSB7CisgICAgICAgICAgICAgICAg
dGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVtcHR5RWxlbWVudCk7CisgICAgICAg
ICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3JlbW92ZUxpc3RFbGVtZW50OiBm
dW5jdGlvbihlbGVtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVD
aGlsZChlbGVtZW50KTsKKyAgICAgICAgaWYgKCF0aGlzLmxpc3RFbGVtZW50LmZpcnN0Q2hpbGQp
IHsKKyAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5saXN0RWxl
bWVudCk7CisgICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZW1w
dHlFbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHRoaXMubGlzdEVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAg
ICAgaWYgKHRoaXMubGlzdEVsZW1lbnQucGFyZW50RWxlbWVudCkgeworICAgICAgICAgICAgdGhp
cy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsKKyAgICAgICAgICAg
IHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbXB0eUVsZW1lbnQpOworICAgICAg
ICB9CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFu
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlw
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0
UHJvcGVydGllc1NlY3Rpb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCmluZGV4IDFhZGFkM2RlMmY5Mzk3YmJjNzY0NTYx
NDVlYjkzMDgxNzFmZTViODYuLmVhM2I0NDg1M2RlMTQxNzU2ZTllMTZhYzhhZGNmZWM1MjgyMWQ4
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0
UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwpAQCAtMzE2LDcgKzMxNiw3IEBAIFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2hv
d0Z1bmN0aW9uRGVmaW5pdGlvbihyZXNwb25zZS5sb2NhdGlvbik7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWwoInNjcmlwdHMiKS5zaG93RnVuY3Rpb25EZWZpbml0aW9uKHJlc3BvbnNl
LmxvY2F0aW9uKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHJldmVhbEZ1bmN0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRTbmlwcGV0TW9kZWwuanMKaW5kZXggZGNkMmI4NGVhYTMwZGUxMzE0Y2I0NTM2ODYzN2Q0M2Rj
Mjk1ZTFjMi4uMzkyNDQ4ZGZhODRhMzNjMTJkOGIyOTRlYWMxNzU1OTZhMTcyZmQzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9k
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlw
cGV0TW9kZWwuanMKQEAgLTU0NywzNSArNTQ3LDMgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRDb250
ZW50UHJvdmlkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TdGF0aWNDb24K
ICAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbH0KICAqLwogV2ViSW5z
cGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbCA9IG51bGw7Ci0KLS8qKgotICogQGNvbnN0cnVjdG9y
Ci0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0KLSAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0gc2NyaXB0c1BhbmVsCi0gKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRT
b3VyY2UKLSAqLwotV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBm
dW5jdGlvbihzY3JpcHRzUGFuZWwsIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQotewotICAgIFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUuY2FsbCh0aGlzLCBzY3JpcHRzUGFuZWws
IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKLSAgICAKLSAgICB0aGlzLl9zbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOwotICAgIHRoaXMuX3J1bkJ1dHRv
biA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUnVuIiksICJldmFsdWF0ZS1zbmlwcGV0LXN0YXR1cy1iYXItaXRlbSIpOwotICAgIHRoaXMu
X3J1bkJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3J1bkJ1dHRvbkNsaWNr
ZWQsIHRoaXMpOwotfQotCi1XZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFt
ZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHJldHVybiB7QXJyYXkuPEVsZW1lbnQ+
fQotICAgICAqLwotICAgIHN0YXR1c0Jhckl0ZW1zOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gW3RoaXMuX3J1bkJ1dHRvbi5lbGVtZW50XTsKLSAgICB9LAotCi0gICAgX3J1bkJ1
dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRKYXZh
U2NyaXB0U291cmNlLmV2YWx1YXRlKCk7Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0b3IuU25pcHBl
dEphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGVkMjg2YzI0YmZmOTk5
NTAzNDQ2ZWFjMzkwZTYyODMzYmIyYWUzYmIuLjcwMDdkMmU2NGMyMGRlNDJjMTc0N2UxOWMxOWM2
NTdkNjg5MDZiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yNCw2ICsyNCwyMSBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCitpbXBvcnRTY3JpcHQoIkJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiKTsKK2ltcG9ydFNj
cmlwdCgiQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMiKTsKK2ltcG9ydFNjcmlwdCgiRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLmpzIik7CitpbXBvcnRTY3JpcHQoIkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5qcyIpOworaW1wb3J0U2NyaXB0KCJSZXZpc2lvbkhpc3RvcnlWaWV3LmpzIik7CitpbXBv
cnRTY3JpcHQoIlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyIpOworaW1wb3J0U2NyaXB0KCJTY3Jp
cHRzTmF2aWdhdG9yLmpzIik7CitpbXBvcnRTY3JpcHQoIlNjcmlwdHNTZWFyY2hTY29wZS5qcyIp
OworaW1wb3J0U2NyaXB0KCJTbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIik7CitpbXBv
cnRTY3JpcHQoIlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIik7CitpbXBvcnRTY3JpcHQoIlRh
YmJlZEVkaXRvckNvbnRhaW5lci5qcyIpOworaW1wb3J0U2NyaXB0KCJVSVNvdXJjZUNvZGVGcmFt
ZS5qcyIpOworaW1wb3J0U2NyaXB0KCJXYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMiKTsK
K2ltcG9ydFNjcmlwdCgiV29ya2Vyc1NpZGViYXJQYW5lLmpzIik7CisKIC8qKgogICogQGNvbnN0
cnVjdG9yCiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5l
ckRlbGVnYXRlfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4N2RkN2JiMTNmMTQxZGM3ODM4ODk4ODYxYWM4ZDFmODg5MTQxYjIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRKYXZhU2NyaXB0
U291cmNlRnJhbWUuanMKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0KKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0gc2NyaXB0c1BhbmVsCisgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRTb3VyY2UK
KyAqLworV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBmdW5jdGlv
bihzY3JpcHRzUGFuZWwsIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQoreworICAgIFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUuY2FsbCh0aGlzLCBzY3JpcHRzUGFuZWwsIHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAKKyAgICB0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNv
dXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOworICAgIHRoaXMuX3J1bkJ1dHRvbiA9IG5l
dyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUnVu
IiksICJldmFsdWF0ZS1zbmlwcGV0LXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX3J1bkJ1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3J1bkJ1dHRvbkNsaWNrZWQsIHRo
aXMpOworfQorCitXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90
b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPEVsZW1lbnQ+fQorICAg
ICAqLworICAgIHN0YXR1c0Jhckl0ZW1zOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gW3RoaXMuX3J1bkJ1dHRvbi5lbGVtZW50XTsKKyAgICB9LAorCisgICAgX3J1bkJ1dHRvbkNs
aWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0
U291cmNlLmV2YWx1YXRlKCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMjUxMDcyYjIyOWEzY2I1NTg4MTgxNjZlNDYxMTcyN2NiOTQ4MWY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5qcwpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25E
aWFsb2dDb250ZW50UHJvdmlkZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3
CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKKyAqLwor
V2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nID0gZnVuY3Rpb24odmlldywgc3R5
bGVTb3VyY2UpCit7CisgICAgV2ViSW5zcGVjdG9yLlNlbGVjdGlvbkRpYWxvZ0NvbnRlbnRQcm92
aWRlci5jYWxsKHRoaXMpOworCisgICAgdGhpcy5fcnVsZXMgPSBbXTsKKyAgICB0aGlzLl92aWV3
ID0gdmlldzsKKyAgICB0aGlzLl9zdHlsZVNvdXJjZSA9IHN0eWxlU291cmNlOworfQorCisvKioK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlZpZXd9IHZpZXcKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlN0eWxlU291cmNlfSBzdHlsZVNvdXJjZQorICovCitXZWJJbnNwZWN0b3IuU3R5bGVTaGVl
dE91dGxpbmVEaWFsb2cuc2hvdyA9IGZ1bmN0aW9uKHZpZXcsIHN0eWxlU291cmNlKQoreworICAg
IGlmIChXZWJJbnNwZWN0b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQorICAgICAgICByZXR1
cm4gbnVsbDsKKyAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRP
dXRsaW5lRGlhbG9nKHZpZXcsIHN0eWxlU291cmNlKTsKKyAgICB2YXIgZmlsdGVyZWRJdGVtU2Vs
ZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2coZGVsZWdhdGUpOworICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyh2aWV3LmVsZW1lbnQs
IGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyk7Cit9CisKK1dlYkluc3BlY3Rvci5TdHlsZVNo
ZWV0T3V0bGluZURpYWxvZy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtu
dW1iZXJ9IGl0ZW1JbmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBp
dGVtVGl0bGVBdDogZnVuY3Rpb24oaXRlbUluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX3J1bGVzW2l0ZW1JbmRleF0uc2VsZWN0b3JUZXh0OworICAgIH0sCisKKyAgICAvKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Cisg
ICAgICovCisgICAgaXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiIjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1i
ZXJ9IGl0ZW1JbmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpdGVt
S2V5QXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9y
dWxlc1tpdGVtSW5kZXhdLnNlbGVjdG9yVGV4dDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9ydWxlcy5sZW5ndGg7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVy
KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICByZXF1ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gZGlkR2V0QWxsU3R5bGVTaGVldHMoZXJyb3IsIGlu
Zm9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgIAorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBpbmZvID0gaW5mb3NbaV07CisgICAgICAgICAg
ICAgICAgaWYgKGluZm8uc291cmNlVVJMID09PSB0aGlzLl9zdHlsZVNvdXJjZS5jb250ZW50VVJM
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3Jl
YXRlRm9ySWQoaW5mby5zdHlsZVNoZWV0SWQsIGRpZEdldFN0eWxlU2hlZXQuYmluZCh0aGlzKSk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKKyAgICAgICAgfQorCisg
ICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKGRpZEdldEFsbFN0eWxlU2hlZXRzLmJp
bmQodGhpcykpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9XZWJJbnNwZWN0
b3IuQ1NTU3R5bGVTaGVldH0gc3R5bGVTaGVldAorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rp
b24gZGlkR2V0U3R5bGVTaGVldChzdHlsZVNoZWV0KQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIXN0eWxlU2hlZXQpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRo
aXMuX3J1bGVzID0gc3R5bGVTaGVldC5ydWxlczsKKyAgICAgICAgICAgIGNhbGxiYWNrKDAsIHRo
aXMuX3J1bGVzLmxlbmd0aCwgMCwgMSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1JbmRleAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBw
cm9tcHRWYWx1ZQorICAgICAqLworICAgIHNlbGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRleCwg
cHJvbXB0VmFsdWUpCisgICAgeworICAgICAgICB2YXIgbGluZU51bWJlciA9IHRoaXMuX3J1bGVz
W2l0ZW1JbmRleF0uc291cmNlTGluZTsKKyAgICAgICAgaWYgKCFpc05hTihsaW5lTnVtYmVyKSAm
JiBsaW5lTnVtYmVyID49IDApCisgICAgICAgICAgICB0aGlzLl92aWV3LmhpZ2hsaWdodExpbmUo
bGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX3ZpZXcuZm9jdXMoKTsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHJldHVybiB7c3RyaW5n
fQorICAgICAqLworICAgIHJld3JpdGVRdWVyeTogZnVuY3Rpb24ocXVlcnkpCisgICAgeworICAg
ICAgICByZXR1cm4gcXVlcnk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91
dGxpbmVEaWFsb2cucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZWxlY3Rpb25E
aWFsb2dDb250ZW50UHJvdmlkZXIucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNmMTQ4YWJlODYy
Njg3M2ViZjk0YzE3NGQzODA5MTFhZTJiOTAyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMKQEAgLTAsMCArMSwxOTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuT2JqZWN0fQorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlcn0KKyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGlu
Z30KKyAqLworV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rp
b24oKQoreworICAgIC8qKgorICAgICAqIEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZT59CisgICAgICovCisgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOworICAgIHRo
aXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5F
dmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291cmNlQWRkZWQsIHRoaXMpOworfQor
CitXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0gewor
ICAgIC8qKgorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0KKyAgICAgKi8KKyAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2RlczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuUmF3TG9jYXRpb259IHJhd0xvY2F0aW9uCisgICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlVJTG9jYXRpb259CisgICAgICovCisgICAgcmF3TG9jYXRpb25U
b1VJTG9jYXRpb246IGZ1bmN0aW9uKHJhd0xvY2F0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIGxv
Y2F0aW9uID0gLyoqIEB0eXBlIFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbiAqLyByYXdMb2NhdGlv
bjsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3VpU291cmNlQ29kZUZvclVSTFts
b2NhdGlvbi51cmxdOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0aW9u
KHVpU291cmNlQ29kZSwgbG9jYXRpb24ubGluZU51bWJlciwgMCk7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2Rl
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFyYW0ge251bWJl
cn0gY29sdW1uTnVtYmVyCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlJhd0xvY2F0aW9u
fQorICAgICAqLworICAgIHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJj
ZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9uKHVpU291cmNlQ29kZS5jb250ZW50VVJMKCkgfHwg
IiIsIGxpbmVOdW1iZXIpOworICAgIH0sCisKKyAgICBfcG9wdWxhdGU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIGZ1bmN0aW9uIHBvcHVsYXRlRnJhbWUoZnJhbWUpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZnJhbWUuY2hpbGRGcmFtZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgcG9wdWxhdGVGcmFtZS5jYWxsKHRoaXMsIGZyYW1lLmNoaWxk
RnJhbWVzW2ldKTsKKworICAgICAgICAgICAgdmFyIHJlc291cmNlcyA9IGZyYW1lLnJlc291cmNl
cygpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJjZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VBZGRlZCh7ZGF0YTpyZXNvdXJjZXNb
aV19KTsKKyAgICAgICAgfQorCisgICAgICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAg
X3Jlc291cmNlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHJlc291
cmNlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9ICovIGV2ZW50LmRhdGE7Cisg
ICAgICAgIGlmIChyZXNvdXJjZS50eXBlICE9PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
dHlsZXNoZWV0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgIHRoaXMu
X3VpU291cmNlQ29kZXMucHVzaCh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JVUkxbcmVzb3VyY2UudXJsXSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmNzc01vZGVsLnNldFNvdXJjZU1hcHBpbmcocmVzb3VyY2UudXJsLCB0aGlzKTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKKyAg
ICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3VpU291
cmNlQ29kZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMID0ge307Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZXNldFNvdXJjZU1hcHBpbmdzKCk7CisgICAg
ICAgIHRoaXMuX3BvcHVsYXRlKCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU3R5bGVzVUlT
b3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0g
cmVzb3VyY2UKKyAqLworV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlID0gZnVuY3Rpb24ocmVzb3Vy
Y2UpCit7CisgICAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5jYWxsKHRoaXMsIHJlc291cmNl
LnVybCwgcmVzb3VyY2UsIHJlc291cmNlKTsKK30KKworV2ViSW5zcGVjdG9yLlN0eWxlU291cmNl
LnVwZGF0ZVRpbWVvdXQgPSAyMDA7CisKK1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS5wcm90b3R5
cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBp
c0VkaXRhYmxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sK
KyAgICAgKi8KKyAgICB3b3JraW5nQ29weUNvbW1pdHRlZDogZnVuY3Rpb24oY2FsbGJhY2spCisg
ICAgeyAgCisgICAgICAgIHRoaXMuX2NvbW1pdEluY3JlbWVudGFsRWRpdCh0cnVlLCBjYWxsYmFj
ayk7CisgICAgfSwKKworICAgIHdvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdGhpcy5fY2FsbE9yU2V0VGltZW91dCh0aGlzLl9jb21taXRJbmNyZW1lbnRhbEVk
aXQuYmluZCh0aGlzLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSkpOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjaworICAgICAqLworICAg
IF9jYWxsT3JTZXRUaW1lb3V0OiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIC8v
IEZJWE1FOiBFeHRlbnNpb25zIHRlc3RzIG92ZXJyaWRlIHVwZGF0ZVRpbWVvdXQgYmVjYXVzZSBl
eHRlbnNpb25zIGRvbid0IGhhdmUgYW55IGNvbnRyb2wgb3ZlciBhcHBseWluZyBjaGFuZ2VzIHRv
IGRvbWFpbiBzcGVjaWZpYyBiaW5kaW5ncy4gICAKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5T
dHlsZVNvdXJjZS51cGRhdGVUaW1lb3V0ID49IDApCisgICAgICAgICAgICB0aGlzLl9pbmNyZW1l
bnRhbFVwZGF0ZVRpbWVyID0gc2V0VGltZW91dChjYWxsYmFjaywgV2ViSW5zcGVjdG9yLlN0eWxl
U291cmNlLnVwZGF0ZVRpbWVvdXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsYmFj
ayhudWxsKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFufSBtYWpv
ckNoYW5nZQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCisgICAg
ICovCisgICAgX2NvbW1pdEluY3JlbWVudGFsRWRpdDogZnVuY3Rpb24obWFqb3JDaGFuZ2UsIGNh
bGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2xlYXJJbmNyZW1lbnRhbFVwZGF0ZVRpbWVy
KCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZXNvdXJjZUJpbmRpbmcoKS5zZXRT
dHlsZUNvbnRlbnQodGhpcywgdGhpcy53b3JraW5nQ29weSgpLCBtYWpvckNoYW5nZSwgY2FsbGJh
Y2spOworICAgIH0sCisKKyAgICBfY2xlYXJJbmNyZW1lbnRhbFVwZGF0ZVRpbWVyOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAodGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcikKKyAg
ICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyKTsKKyAg
ICAgICAgZGVsZXRlIHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXI7CisgICAgfQorfQorCitX
ZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4
dGVuZHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgKiBAcGFyYW0ge0NTU0FnZW50LlN0
eWxlU2hlZXRJZH0gc3R5bGVTaGVldElkCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgKiBAcGFy
YW0ge3N0cmluZ30gY29udGVudAorICovCitXZWJJbnNwZWN0b3IuSW5zcGVjdG9yU3R5bGVTb3Vy
Y2UgPSBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIHVybCwgY29udGVudCkKK3sKKyAgICBXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLmNhbGwodGhpcywgIjxpbnNwZWN0b3Igc3R5bGU+IiwgbnVsbCwg
bmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9yLnJlc291
cmNlVHlwZXMuU3R5bGVzaGVldCwgY29udGVudCkpOworfQorCitXZWJJbnNwZWN0b3IuSW5zcGVj
dG9yU3R5bGVTb3VyY2UucHJvdG90eXBlID0geworfQorCitXZWJJbnNwZWN0b3IuSW5zcGVjdG9y
U3R5bGVTb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TdHlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U3R5bGVzUGFuZWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MWRjN2ZhZmE0
ZjlkZTU5NWUwMmI5MDMwNzg5YTkyYmUyNDFlMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
dHlsZXNQYW5lbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMyNSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJ
TkMuCi0gKiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9i
amVjdH0KLSAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9
Ci0gKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmd9Ci0gKi8KLVdlYklu
c3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlciA9IGZ1bmN0aW9uKCkKLXsKLSAgICAv
KioKLSAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQotICAg
ICAqLwotICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKLSAgICB0aGlzLl91aVNvdXJjZUNv
ZGVGb3JVUkwgPSB7fTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNv
dXJjZUFkZGVkLCB0aGlzLl9yZXNvdXJjZUFkZGVkLCB0aGlzKTsKLX0KLQotV2ViSW5zcGVjdG9y
LlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAg
KiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59Ci0gICAgICovCi0g
ICAgdWlTb3VyY2VDb2RlczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3VpU291cmNlQ29kZXM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlJhd0xvY2F0aW9ufSByYXdMb2NhdGlvbgotICAgICAqIEByZXR1cm4ge1dlYkluc3Bl
Y3Rvci5VSUxvY2F0aW9ufQotICAgICAqLwotICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBm
dW5jdGlvbihyYXdMb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBsb2NhdGlvbiA9IC8qKiBA
dHlwZSBXZWJJbnNwZWN0b3IuQ1NTTG9jYXRpb24gKi8gcmF3TG9jYXRpb247Ci0gICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JVUkxbbG9jYXRpb24udXJsXTsK
LSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUs
IGxvY2F0aW9uLmxpbmVOdW1iZXIsIDApOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBsaW5lTnVtYmVyCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51bWJl
cgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SYXdMb2NhdGlvbn0KLSAgICAgKi8KLSAg
ICB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5DU1NMb2NhdGlvbih1aVNvdXJjZUNvZGUuY29udGVudFVSTCgpIHx8ICIiLCBsaW5lTnVtYmVy
KTsKLSAgICB9LAotCi0gICAgX3BvcHVsYXRlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBm
dW5jdGlvbiBwb3B1bGF0ZUZyYW1lKGZyYW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGZyYW1lLmNoaWxkRnJhbWVzLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBmcmFtZS5jaGlsZEZyYW1lc1tpXSk7Ci0K
LSAgICAgICAgICAgIHZhciByZXNvdXJjZXMgPSBmcmFtZS5yZXNvdXJjZXMoKTsKLSAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VzLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgICAgIHRoaXMuX3Jlc291cmNlQWRkZWQoe2RhdGE6cmVzb3VyY2VzW2ldfSk7Ci0gICAgICAg
IH0KLQotICAgICAgICBwb3B1bGF0ZUZyYW1lLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLnJlc291
cmNlVHJlZU1vZGVsLm1haW5GcmFtZSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAotICAgICAqLwotICAgIF9yZXNvdXJjZUFkZGVk
OiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IC8qKiBAdHlw
ZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSAqLyBldmVudC5kYXRhOwotICAgICAgICBpZiAocmVz
b3VyY2UudHlwZSAhPT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuU3R5bGVTb3VyY2UocmVzb3VyY2UpOwotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVz
LnB1c2godWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMW3Jl
c291cmNlLnVybF0gPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2Rl
bC5zZXRTb3VyY2VNYXBwaW5nKHJlc291cmNlLnVybCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5F
dmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZSk7Ci0gICAgfSwKLQotICAgIHJl
c2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107
Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OwotICAgICAgICBXZWJJbnNw
ZWN0b3IuY3NzTW9kZWwucmVzZXRTb3VyY2VNYXBwaW5ncygpOwotICAgICAgICB0aGlzLl9wb3B1
bGF0ZSgpOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3Zp
ZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsK
LQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlfQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJlc291cmNlCi0gKi8K
LVdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlKQotewotICAgIFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUuY2FsbCh0aGlzLCByZXNvdXJjZS51cmwsIHJlc291cmNl
LCByZXNvdXJjZSk7Ci19Ci0KLVdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS51cGRhdGVUaW1lb3V0
ID0gMjAwOwotCi1XZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UucHJvdG90eXBlID0gewotICAgIC8q
KgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAgaXNFZGl0YWJsZTogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCi0gICAgICovCi0gICAg
d29ya2luZ0NvcHlDb21taXR0ZWQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsgIAotICAgICAg
ICB0aGlzLl9jb21taXRJbmNyZW1lbnRhbEVkaXQodHJ1ZSwgY2FsbGJhY2spOwotICAgIH0sCi0K
LSAgICB3b3JraW5nQ29weUNoYW5nZWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X2NhbGxPclNldFRpbWVvdXQodGhpcy5fY29tbWl0SW5jcmVtZW50YWxFZGl0LmJpbmQodGhpcywg
ZmFsc2UsIGZ1bmN0aW9uKCkge30pKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFt
IHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKLSAgICAgKi8KLSAgICBfY2FsbE9yU2V0VGlt
ZW91dDogZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgewotICAgICAgICAvLyBGSVhNRTogRXh0ZW5z
aW9ucyB0ZXN0cyBvdmVycmlkZSB1cGRhdGVUaW1lb3V0IGJlY2F1c2UgZXh0ZW5zaW9ucyBkb24n
dCBoYXZlIGFueSBjb250cm9sIG92ZXIgYXBwbHlpbmcgY2hhbmdlcyB0byBkb21haW4gc3BlY2lm
aWMgYmluZGluZ3MuICAgCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBk
YXRlVGltZW91dCA+PSAwKQotICAgICAgICAgICAgdGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1l
ciA9IHNldFRpbWVvdXQoY2FsbGJhY2ssIFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS51cGRhdGVU
aW1lb3V0KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7Ci0gICAg
fSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbWFqb3JDaGFuZ2UKLSAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjawotICAgICAqLwotICAgIF9jb21t
aXRJbmNyZW1lbnRhbEVkaXQ6IGZ1bmN0aW9uKG1ham9yQ2hhbmdlLCBjYWxsYmFjaykKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2NsZWFySW5jcmVtZW50YWxVcGRhdGVUaW1lcigpOwotICAgICAgICBX
ZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVzb3VyY2VCaW5kaW5nKCkuc2V0U3R5bGVDb250ZW50KHRo
aXMsIHRoaXMud29ya2luZ0NvcHkoKSwgbWFqb3JDaGFuZ2UsIGNhbGxiYWNrKTsKLSAgICB9LAot
Ci0gICAgX2NsZWFySW5jcmVtZW50YWxVcGRhdGVUaW1lcjogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXIpCi0gICAgICAgICAgICBjbGVh
clRpbWVvdXQodGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcik7Ci0gICAgICAgIGRlbGV0ZSB0
aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlN0
eWxlU291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
LnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfQotICogQHBhcmFtIHtDU1NBZ2VudC5TdHlsZVNoZWV0SWR9IHN0
eWxlU2hlZXRJZAotICogQHBhcmFtIHtzdHJpbmd9IHVybAotICogQHBhcmFtIHtzdHJpbmd9IGNv
bnRlbnQKLSAqLwotV2ViSW5zcGVjdG9yLkluc3BlY3RvclN0eWxlU291cmNlID0gZnVuY3Rpb24o
c3R5bGVTaGVldElkLCB1cmwsIGNvbnRlbnQpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5jYWxsKHRoaXMsICI8aW5zcGVjdG9yIHN0eWxlPiIsIG51bGwsIG5ldyBXZWJJbnNwZWN0
b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxl
c2hlZXQsIGNvbnRlbnQpKTsKLX0KLQotV2ViSW5zcGVjdG9yLkluc3BlY3RvclN0eWxlU291cmNl
LnByb3RvdHlwZSA9IHsKLX0KLQotV2ViSW5zcGVjdG9yLkluc3BlY3RvclN0eWxlU291cmNlLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZTsK
LQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU2Vs
ZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyfQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVmll
d30gdmlldwotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2V9IHN0eWxlU291cmNl
Ci0gKi8KLVdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZyA9IGZ1bmN0aW9uKHZp
ZXcsIHN0eWxlU291cmNlKQotewotICAgIFdlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsb2dDb250
ZW50UHJvdmlkZXIuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMuX3J1bGVzID0gW107Ci0gICAgdGhp
cy5fdmlldyA9IHZpZXc7Ci0gICAgdGhpcy5fc3R5bGVTb3VyY2UgPSBzdHlsZVNvdXJjZTsKLX0K
LQotLyoqCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3Ci0gKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKLSAqLwotV2ViSW5zcGVjdG9yLlN0
eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnNob3cgPSBmdW5jdGlvbih2aWV3LCBzdHlsZVNvdXJjZSkK
LXsKLSAgICBpZiAoV2ViSW5zcGVjdG9yLkRpYWxvZy5jdXJyZW50SW5zdGFuY2UoKSkKLSAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5TdHls
ZVNoZWV0T3V0bGluZURpYWxvZyh2aWV3LCBzdHlsZVNvdXJjZSk7Ci0gICAgdmFyIGZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0
aW9uRGlhbG9nKGRlbGVnYXRlKTsKLSAgICBXZWJJbnNwZWN0b3IuRGlhbG9nLnNob3codmlldy5l
bGVtZW50LCBmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cpOwotfQotCi1XZWJJbnNwZWN0b3Iu
U3R5bGVTaGVldE91dGxpbmVEaWFsb2cucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAgICov
Ci0gICAgaXRlbVRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9ydWxlc1tpdGVtSW5kZXhdLnNlbGVjdG9yVGV4dDsKLSAgICB9LAotCi0gICAg
LyoKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gaXRlbUluZGV4Ci0gICAgICogQHJldHVybiB7c3Ry
aW5nfQotICAgICAqLwotICAgIGl0ZW1TdWJ0aXRsZUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpCi0g
ICAgewotICAgICAgICByZXR1cm4gIiI7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAgICovCi0g
ICAgaXRlbUtleUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5fcnVsZXNbaXRlbUluZGV4XS5zZWxlY3RvclRleHQ7Ci0gICAgfSwKLQotICAgIC8qKgot
ICAgICAqIEByZXR1cm4ge251bWJlcn0KLSAgICAgKi8KLSAgICBpdGVtc0NvdW50OiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcnVsZXMubGVuZ3RoOwotICAgIH0sCi0K
LSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgbnVtYmVyLCBudW1iZXIs
IG51bWJlcil9IGNhbGxiYWNrCi0gICAgICovCi0gICAgcmVxdWVzdEl0ZW1zOiBmdW5jdGlvbihj
YWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZEdldEFsbFN0eWxlU2hlZXRzKGVy
cm9yLCBpbmZvcykKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAg
ICAgICAgICAgY2FsbGJhY2soMCwgMCwgMCwgMCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5mb3Mu
bGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IGluZm9zW2ldOwotICAg
ICAgICAgICAgICAgIGlmIChpbmZvLnNvdXJjZVVSTCA9PT0gdGhpcy5fc3R5bGVTb3VyY2UuY29u
dGVudFVSTCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNo
ZWV0LmNyZWF0ZUZvcklkKGluZm8uc3R5bGVTaGVldElkLCBkaWRHZXRTdHlsZVNoZWV0LmJpbmQo
dGhpcykpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FsbGJhY2soMCwgMCwgMCwgMCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyhkaWRHZXRBbGxTdHlsZVNo
ZWV0cy5iaW5kKHRoaXMpKTsKLQotICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHs/V2Vi
SW5zcGVjdG9yLkNTU1N0eWxlU2hlZXR9IHN0eWxlU2hlZXQKLSAgICAgICAgICovCi0gICAgICAg
IGZ1bmN0aW9uIGRpZEdldFN0eWxlU2hlZXQoc3R5bGVTaGVldCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKCFzdHlsZVNoZWV0KSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soMCwgMCwg
MCwgMCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICB0aGlzLl9ydWxlcyA9IHN0eWxlU2hlZXQucnVsZXM7Ci0gICAgICAgICAgICBjYWxsYmFj
aygwLCB0aGlzLl9ydWxlcy5sZW5ndGgsIDAsIDEpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAgKiBAcGFyYW0ge3N0
cmluZ30gcHJvbXB0VmFsdWUKLSAgICAgKi8KLSAgICBzZWxlY3RJdGVtOiBmdW5jdGlvbihpdGVt
SW5kZXgsIHByb21wdFZhbHVlKQotICAgIHsKLSAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSB0aGlz
Ll9ydWxlc1tpdGVtSW5kZXhdLnNvdXJjZUxpbmU7Ci0gICAgICAgIGlmICghaXNOYU4obGluZU51
bWJlcikgJiYgbGluZU51bWJlciA+PSAwKQotICAgICAgICAgICAgdGhpcy5fdmlldy5oaWdobGln
aHRMaW5lKGxpbmVOdW1iZXIpOwotICAgICAgICB0aGlzLl92aWV3LmZvY3VzKCk7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAqIEByZXR1cm4g
e3N0cmluZ30KLSAgICAgKi8KLSAgICByZXdyaXRlUXVlcnk6IGZ1bmN0aW9uKHF1ZXJ5KQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHF1ZXJ5OwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlN0eWxl
U2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2Vs
ZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCA2ZTc0NWJlNmZkY2VhNmI0MDI3
MDBjNWQwMTgwNDYxNWEyOGQ3YzI0Li5kZGU0ZTEzYTBmODQxY2MyYjhjOGY1ZWNjOWQ2YTkyOGEx
NTk3NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dl
YktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCkBAIC0xMDIsNiArMTAyLDcgQEAKICAgICA8ZmlsZT5MaW5raWZpZXIuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+TWVtb3J5U3RhdGlzdGljcy5qczwvZmlsZT4KICAgICA8ZmlsZT5NZXRyaWNzU2lk
ZWJhclBhbmUuanM8L2ZpbGU+CisgICAgPGZpbGU+TmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFu
ZS5qczwvZmlsZT4KICAgICA8ZmlsZT5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanM8L2ZpbGU+
CiAgICAgPGZpbGU+TmF2aWdhdG9yT3ZlcmxheUNvbnRyb2xsZXIuanM8L2ZpbGU+CiAgICAgPGZp
bGU+TmF2aWdhdG9yVmlldy5qczwvZmlsZT4KQEAgLTE2MSw2ICsxNjIsNyBAQAogICAgIDxmaWxl
PlNpZGViYXJPdmVybGF5LmpzPC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJQYW5lLmpzPC9maWxl
PgogICAgIDxmaWxlPlNpZGViYXJUcmVlRWxlbWVudC5qczwvZmlsZT4KKyAgICA8ZmlsZT5Tbmlw
cGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzPC9maWxlPgogICAgIDxmaWxlPlNuaXBwZXRTdG9y
YWdlLmpzPC9maWxlPgogICAgIDxmaWxlPlNvZnRDb250ZXh0TWVudS5qczwvZmlsZT4KICAgICA8
ZmlsZT5Tb3VyY2VDU1NUb2tlbml6ZXIuanM8L2ZpbGU+CkBAIC0xNzIsNyArMTc0LDggQEAKICAg
ICA8ZmlsZT5TcGVjdHJ1bS5qczwvZmlsZT4KICAgICA8ZmlsZT5TcGxpdFZpZXcuanM8L2ZpbGU+
CiAgICAgPGZpbGU+U3RhdHVzQmFyQnV0dG9uLmpzPC9maWxlPgotICAgIDxmaWxlPlN0eWxlc1Bh
bmVsLmpzPC9maWxlPgorICAgIDxmaWxlPlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzPC9maWxl
PgorICAgIDxmaWxlPlN0eWxlU291cmNlLmpzPC9maWxlPgogICAgIDxmaWxlPlN0eWxlc1NpZGVi
YXJQYW5lLmpzPC9maWxlPgogICAgIDxmaWxlPlRhYmJlZEVkaXRvckNvbnRhaW5lci5qczwvZmls
ZT4KICAgICA8ZmlsZT5UYWJiZWRQYW5lLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggOGM5MDY0YWFlYTkyMjQ0
N2Y5N2U0Mjc2NjMxNWYwNTVjN2QzODE3Ny4uNzc4NWY3ZDFmYzg1NjhhOGI2YTY0ZGZjYTdiODY4
MDcwYWUzYTAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCkBAIC05NywxMiArOTcsOCBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlbW90ZU9iamVjdC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ik9iamVjdFBvcG92ZXJIZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik5hdGl2ZUJyZWFrcG9p
bnRzU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkRPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNhbGxTdGFja1NpZGViYXJQYW5l
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJT
Y29wZUNoYWluU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9IldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iV29ya2Vyc1NpZGVi
YXJQYW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJDb2xvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iQ1NTQ29tcGxldGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNTU0tleXdvcmRDb21wbGV0aW9ucy5qcyI+PC9zY3JpcHQ+
CkBAIC0xMTEsMTMgKzEwNyw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGVmYXVsdFRleHRFZGl0b3IuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNvdXJjZUZyYW1lLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJVSVNvdXJj
ZUNvZGVGcmFtZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTcGxpdFZpZXcuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRhYmJlZEVkaXRvckNvbnRhaW5l
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
U2NyaXB0c1BhbmVsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJSZXZpc2lvbkhpc3RvcnlWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHRzTmF2aWdhdG9yLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb25zb2xlUGFuZWwu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkV4
dGVuc2lvbkFQSS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iRXh0ZW5zaW9uQXVkaXRDYXRlZ29yeS5qcyI+PC9zY3JpcHQ+CkBAIC0xNTAsMTIg
KzE0MCwxMCBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9IlJlc291cmNlU2NyaXB0TWFwcGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTQVNTU291cmNlTWFw
cGluZy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iU2NyaXB0c1NlYXJjaFNjb3BlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJET01BZ2VudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGVzdENvbnRyb2xsZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRpYWxvZy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iR29Ub0xpbmVEaWFs
b2cuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2lkZWJhck92ZXJsYXkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNldHRpbmdzU2NyZWVuLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTaG9y
dGN1dHNTY3JlZW4uanMiPjwvc2NyaXB0PgpAQCAtMTY5LDggKzE1Nyw4IEBAIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxlclJlZ2lzdHJ5Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTbmlw
cGV0U3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iU2NyaXB0U25pcHBldE1vZGVsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTdHlsZXNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUHJvZ3Jlc3NCYXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlN0eWxlU291cmNl
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGNsYXNzPSJkZXRhY2hlZCIgaWQ9Ii13ZWJr
aXQtd2ViLWluc3BlY3RvciI+CiAgICAgPGRpdiBpZD0idG9vbGJhciI+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGE1ZDc2OWFjZDM2
YWRlM2M0MThkOGM1NmIxOTE4ZDI2OTU5NzlmOTYuLjFlZjU2MzU0NzJiNjY2NTkzNTE3ZjFjNDli
Mjk4ZjkyN2Q1ZTYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC00MCw3ICs0MCw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAg
ICAgICAgIHZhciBlbGVtZW50cyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJl
bGVtZW50cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWxlbWVudHMiKSwgIkVsZW1lbnRzUGFu
ZWwiLCAiRWxlbWVudHNQYW5lbC5qcyIpOwogICAgICAgICB2YXIgcmVzb3VyY2VzID0gbmV3IFdl
Ykluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoInJlc291cmNlcyIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiUmVzb3VyY2VzIiksICJSZXNvdXJjZXNQYW5lbCIsICJSZXNvdXJjZXNQYW5lbC5qcyIp
OwogICAgICAgICB2YXIgbmV0d29yayA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9y
KCJuZXR3b3JrIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXR3b3JrIiksICJOZXR3b3JrUGFu
ZWwiLCAiTmV0d29ya1BhbmVsLmpzIik7Ci0gICAgICAgIHZhciBzY3JpcHRzID0gbmV3IFdlYklu
c3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoInNjcmlwdHMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlNvdXJjZXMiKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsKCkpOworICAgICAgICB2YXIgc2NyaXB0cyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxE
ZXNjcmlwdG9yKCJzY3JpcHRzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTb3VyY2VzIiksICJT
Y3JpcHRzUGFuZWwiLCAiU2NyaXB0c1BhbmVsLmpzIik7CiAgICAgICAgIHZhciB0aW1lbGluZSA9
IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJ0aW1lbGluZSIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiVGltZWxpbmUiKSwgIlRpbWVsaW5lUGFuZWwiLCAiVGltZWxpbmVQYW5lbC5q
cyIpOwogICAgICAgICB2YXIgcHJvZmlsZXMgPSBuZXcgV2ViSW5zcGVjdG9yLlBhbmVsRGVzY3Jp
cHRvcigicHJvZmlsZXMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2ZpbGVzIiksICJQcm9m
aWxlc1BhbmVsIiwgIlByb2ZpbGVzUGFuZWwuanMiKTsKICAgICAgICAgdmFyIGF1ZGl0cyA9IG5l
dyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJhdWRpdHMiLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkF1ZGl0cyIpLCAiQXVkaXRzUGFuZWwiLCAiQXVkaXRzUGFuZWwuanMiKTsKQEAgLTU0
OSw2ICs1NDksNyBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRpZXMg
PSBmdW5jdGlvbigpCiAgICAgSW5zcGVjdG9yQWdlbnQuZW5hYmxlKHNob3dJbml0aWFsUGFuZWwp
OwogICAgIERhdGFiYXNlQWdlbnQuZW5hYmxlKCk7CiAgICAgRE9NU3RvcmFnZUFnZW50LmVuYWJs
ZSgpOworCiAgICAgaWYgKCFDYXBhYmlsaXRpZXMucHJvZmlsZXJDYXVzZXNSZWNvbXBpbGF0aW9u
IHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQuZ2V0KCkpCiAgICAgICAg
IFByb2ZpbGVyQWdlbnQuZW5hYmxlKCk7CiAKQEAgLTczOSw3ICs3NDAsNyBAQCBXZWJJbnNwZWN0
b3IuX3JlZ2lzdGVyU2hvcnRjdXRzID0gZnVuY3Rpb24oKQogICAgIHZhciBhZHZhbmNlZFNlYXJj
aFNob3J0Y3V0ID0gV2ViSW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5jcmVhdGVT
aG9ydGN1dCgpOwogICAgIHNlY3Rpb24uYWRkS2V5KGFkdmFuY2VkU2VhcmNoU2hvcnRjdXQubmFt
ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggYWNyb3NzIGFsbCBzb3VyY2VzIikpOwog
Ci0gICAgdmFyIG9wZW5SZXNvdXJjZVNob3J0Y3V0ID0gV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJj
ZURpYWxvZy5jcmVhdGVTaG9ydGN1dCgpOworICAgIHZhciBvcGVuUmVzb3VyY2VTaG9ydGN1dCA9
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJvIiwgV2ViSW5z
cGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpOwogICAgIHNlY3Rp
b24uYWRkS2V5KG9wZW5SZXNvdXJjZVNob3J0Y3V0Lm5hbWUsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiR28gdG8gc291cmNlIikpOwogCiAgICAgaWYgKFdlYkluc3BlY3Rvci5pc01hYygpKSB7CkBA
IC0xMDI0LDcgKzEwMjUsNyBAQCBXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbiA9IGZ1
bmN0aW9uKGFuY2hvcikKICAgICB2YXIgcHJlZmVycmVkUGFuZWwgPSB0aGlzLnBhbmVsc1thbmNo
b3IucHJlZmVycmVkUGFuZWxdOwogICAgIGlmIChwcmVmZXJyZWRQYW5lbCAmJiBXZWJJbnNwZWN0
b3IuX3Nob3dBbmNob3JMb2NhdGlvbkluUGFuZWwoYW5jaG9yLCBwcmVmZXJyZWRQYW5lbCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2Nh
dGlvbkluUGFuZWwoYW5jaG9yLCB0aGlzLnBhbmVscy5zY3JpcHRzKSkKKyAgICBpZiAoV2ViSW5z
cGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVsKGFuY2hvciwgdGhpcy5wYW5lbCgic2Ny
aXB0cyIpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5fc2hv
d0FuY2hvckxvY2F0aW9uSW5QYW5lbChhbmNob3IsIHRoaXMucGFuZWwoInJlc291cmNlcyIpKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggNjFl
Y2QxMmVhZWE1MWEwYTE4MDgxMWRhYjA0Y2MwMmMwZGMxMTY5Yi4uNjAxY2I2MDkzMzM2MTgwNGU4
Yzc1MDVjYjNmZjQxNmE5Yzc2YTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAt
ODc2LDYgKzg3Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nv
bmNhdGVuYXRlZF9kZXZ0b29sc19lbGVtZW50c19qcycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19yZXNvdXJjZXNfanMnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNf
bmV0d29ya19qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNh
dGVuYXRlZF9kZXZ0b29sc19zY3JpcHRzX2pzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3RpbWVsaW5lX2pzJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3Byb2Zp
bGVzX2pzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5h
dGVkX2RldnRvb2xzX2F1ZGl0c19qcycsCkBAIC05NjMsNiArOTY0LDcgQEAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX2VsZW1lbnRz
X2pzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVk
X2RldnRvb2xzX3Jlc291cmNlc19qcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19uZXR3b3JrX2pzJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3NjcmlwdHNfanMn
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2
dG9vbHNfdGltZWxpbmVfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfcHJvZmlsZXNfanMnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfYXVkaXRzX2pzJywKQEAg
LTk4Niw2ICs5ODgsNyBAQAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVz
b3VyY2VzL2luc3BlY3Rvci9FbGVtZW50c1BhbmVsLmpzJywKICAgICAgICAgICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvUmVzb3VyY2VzUGFuZWwuanMnLAog
ICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9O
ZXR3b3JrUGFuZWwuanMnLAorICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVz
b3VyY2VzL2luc3BlY3Rvci9TY3JpcHRzUGFuZWwuanMnLAogICAgICAgICAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9UaW1lbGluZVBhbmVsLmpzJywKICAg
ICAgICAgICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvUHJv
ZmlsZXNQYW5lbC5qcycsCiAgICAgICAgICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9yZXNv
dXJjZXMvaW5zcGVjdG9yL0F1ZGl0c1BhbmVsLmpzJywKQEAgLTExNTksNiArMTE2MiwyMiBAQAog
ICAgICAgICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3RhcmdldF9uYW1lJzogJ2NvbmNhdGVuYXRlZF9k
ZXZ0b29sc19zY3JpcHRzX2pzJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnbm9uZScs
CisgICAgICAgICAgICAgICAgICAgICdhY3Rpb25zJzogW3sKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdhY3Rpb25fbmFtZSc6ICdjb25jYXRlbmF0ZV9kZXZ0b29sc19zY3JpcHRzX2pzJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdzY3JpcHRfbmFtZSc6ICdzY3JpcHRzL2lubGluZV9qc19p
bXBvcnRzLnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dF9maWxlJzogJy4uLy4u
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
PEAoX3NjcmlwdF9uYW1lKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxAKHdlYmlu
c3BlY3Rvcl9zY3JpcHRzX2pzX2ZpbGVzKScsCisgICAgICAgICAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaF9wYXRoJzogJy4uLy4uL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3V0cHV0cyc6IFsn
PChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9TY3JpcHRzUGFuZWwuanMnXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0X25h
bWUpJywgJzxAKF9pbnB1dF9maWxlKScsICc8QChfc2VhcmNoX3BhdGgpJywgJzxAKF9vdXRwdXRz
KSddLAorICAgICAgICAgICAgICAgICAgICB9XSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgJ3RhcmdldF9uYW1lJzogJ2NvbmNhdGVu
YXRlZF9kZXZ0b29sc190aW1lbGluZV9qcycsCiAgICAgICAgICAgICAgICAgICAgICd0eXBlJzog
J25vbmUnLAogICAgICAgICAgICAgICAgICAgICAnYWN0aW9ucyc6IFt7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjRjOTQz
NTlkNmQ0YWIwYmFkODVkZTYwY2NjNTUwMWMzYWM0ZmRhYi4uNzIxYjExNTJiODI1ZmIwNTVjYWFl
NDJhOGZkNmI1NDA4Yjc1Y2IwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA4LTE4ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGxvYWQgc2NyaXB0cyBwYW5lbCBsYXppbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyBhY2Nlc3MgdG8gV2Vi
SW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzIGFuZCBsb2FkcyBpdCBsYXppbHkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzOgorICAgICAgICAoaW5pdGlh
bGl6ZV9EZWJ1Z2dlclRlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRz
LXBhbmVsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGlu
Zy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFs
b2ctZmlsdGVyaW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9lZGl0LWluc3Bl
Y3Rvci1zdHlsZXNoZWV0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3Jz
LWhpc3RvcnkuaHRtbDoKKwogMjAxMi0wOC0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcmVwYXJlIHNjcmlwdHMgcGFu
ZWwgdG8gYmUgbGF6aWx5IGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKaW5kZXggZjlhOWU4ZGViZDE1YzZiM2YzZTZkOTc4NTkz
ODEzYjA2NTgyZmU1NC4uNjY2ZGJjZWI5MmYzYjVhMzY0ZmI3NzcxOWJmMTIxNDZlNzVjYWI2ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVz
dC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzCkBAIC0xNjAsNyArMTYwLDcgQEAgSW5zcGVjdG9yVGVzdC5fcmVzdW1lZFNjcmlwdCA9IGZ1
bmN0aW9uKCkKIAogSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlID0gZnVuY3Rpb24oc2Ny
aXB0TmFtZSwgY2FsbGJhY2spCiB7Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzOworICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlw
dHMiKTsKICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHBhbmVsLl93b3Jrc3BhY2UudWlTb3VyY2VD
b2RlcygpOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsr
aSkgewogICAgICAgICBpZiAodWlTb3VyY2VDb2Rlc1tpXS5wYXJzZWRVUkwubGFzdFBhdGhDb21w
b25lbnQgPT09IHNjcmlwdE5hbWUpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IDk0YTRlMmNkYzZmMGQ5YTY4N2JhYTVhNTY4
NzUzNzFmYWY2MmRjNzEuLjBiMzU4YWM0OTRjM2U5Y2QzMGM0Yjc0YTJiNDJjY2ViYTBjNTg1MDIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVs
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwu
aHRtbApAQCAtOSw2ICs5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgLy8gQWx3YXlzIHVz
ZSBpbmRlbnRhdGlvbiBpbiBzY3JpcHRzIGRyb3AgYm94CiAgICAgV2ViSW5zcGVjdG9yLl9pc01h
YyA9IGZhbHNlOworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKIAogICAg
IHZhciB1aVNvdXJjZUNvZGVzOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwKaW5kZXggN2ZmNGJlYjM0OGE1NTk3MzllODQyYzNi
NGIxYzIzYzFjNDdlODAxYy4uMzM3YjcwYTk2ZWE3N2ZmNTE5ZGEzOWNkMzFhMTJjMzNmYWMxZGQz
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29y
dGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNv
cnRpbmcuaHRtbApAQCAtOCw2ICs4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgLy8gQWx3
YXlzIHVzZSBpbmRlbnRhdGlvbiBpbiBzY3JpcHRzIGRyb3AgYm94CiAgICAgV2ViSW5zcGVjdG9y
Ll9pc01hYyA9IGZhbHNlOworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsK
IAogICAgIHZhciBuYXZpZ2F0b3JGaWxlU2VsZWN0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlw
dHNOYXZpZ2F0b3IoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRl
cmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWwKaW5k
ZXggYjc4ZWIzNmVkNWIxNGM3OGUzZDJkOWFjMTA5MjdjYzRhNDA4NjUzMS4uZTQyYzkyYjJlYzU1
MGZiYWIzYWI2NDA0NTg3OWM3NWNiMjU4Zjk2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZp
bHRlcmluZy5odG1sCkBAIC01LDYgKzUsOCBAQAogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKKyAgICBX
ZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CisKICAgICBmdW5jdGlvbiBjaGVja1F1
ZXJ5KHRpdGxlLCBxdWVyeSwgaW5wdXQpCiAgICAgewogICAgICAgICB2YXIgb3V0cHV0ID0gW107
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9y
LXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZWRpdC1pbnNw
ZWN0b3Itc3R5bGVzaGVldC5odG1sCmluZGV4IDliMjk0MjEzMjJhZDdjMGQ5OTA3MzJmZDVjMTZh
MjAwOTIxMjNiZjMuLjIxMmVhMGE4MjcyZGE0NmI1N2IxYWVjMWYyNGYxODc1NmU2NDM3ZDEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZWRpdC1pbnNwZWN0b3Itc3R5
bGVzaGVldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZWRpdC1pbnNw
ZWN0b3Itc3R5bGVzaGVldC5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgZnVuY3Rpb24gc3RlcDEobm9kZSkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0cy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgc291cmNlQ29kZUFk
ZGVkKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsKCJzY3JpcHRzIikuX3dvcmtzcGFjZS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMu
VUlTb3VyY2VDb2RlQWRkZWQsIHNvdXJjZUNvZGVBZGRlZCk7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5jc3NNb2RlbC5hZGRSdWxlKG5vZGUuaWQsICIjaW5zcGVjdGVkIiwgc3VjY2Vzc0NhbGxiYWNr
LCBmYWlsdXJlQ2FsbGJhY2spOwogCiAgICAgICAgIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaygp
IHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhp
c3RvcnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5
Lmh0bWwKaW5kZXggM2M0ZWUxNzRjMjM5NDcyNDk2ZTAwZmUzMGM3Yjc3ZmUzN2E0ODYwMS4uZDIx
Njg3ZTIxZGM3YzYyMWNhM2E3NzRmNGVlZWI5ZTZjMjBmNzM5MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sCkBAIC00LDYgKzQsOCBA
QAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogdmFyIHRlc3QgPSBmdW5jdGlvbigp
CiB7CisgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOworCiAgICAgZnVuY3Rp
b24gZHVtcEhpc3RvcnkoaGlzdG9yeSkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIgIGhpc3RvcnkgPSAiICsgSlNPTi5zdHJpbmdpZnkoaGlzdG9yeS5fc2VyaWFsaXpl
VG9PYmplY3QoKSkgKyAiIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159296</attachid>
            <date>2012-08-19 09:05:10 -0700</date>
            <delta_ts>2012-08-20 02:04:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94416-20120819200426.patch</filename>
            <type>text/plain</type>
            <size>76179</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI3ZmE2OTBmNDkxMmRi
ZTNjMDgwMTE3YTBjYTZhZWNlYjllNzUzZi4uZjU1OWI0YWJjMDQ0Yzg1OTYxNmU5ZWIxZjBkZTdj
Y2U3YWNmNTYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA4LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGxvYWQgc2NyaXB0cyBwYW5lbCBsYXppbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgLSByZW1vdmVzIGFjY2VzcyB0byBXZWJJbnNwZWN0b3IucGFu
ZWxzLnNjcmlwdHMgYW5kIGxvYWRzIGl0IGxhemlseS4KKyAgICAgICAgLSBleHRyYWN0cyBjbGFz
c2VzIHRvIHRoZWlyIG93biBmaWxlcyB3aGVuIGNsYXNzZXMgcmVzaWRpbmcgaW4gb25lIGZpbGUg
YmVsb25nIHRvIGRpZmZlcmVudCBtb2R1bGVzCisgICAgICAgIC0gcmVtb3ZlcyBTdHlsZXNQYW5l
bC5qcyBpbiBmYXZvciBvZiB0aGUgYWN0dWFsIGNsYXNzZXMgaXQgY29udGFpbnMgCisKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2cuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEFQ
SS5qczoKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLl9wZW5kaW5nQ29tbWFuZHMuaXNE
ZWJ1Z2dpbmdFbmFibGVkKToKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLnNldERlYnVn
Z2luZ0VuYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlQnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
QnJlYWtwb2ludHNTaWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlQnJl
YWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2FkZExpc3RFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcmVt
b3ZlTGlzdEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUJyZWFrcG9pbnRz
U2lkZWJhclBhbmUucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS5fZnVuY3Rpb25Db250ZXh0TWVudUV2
ZW50RmlyZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1v
ZGVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2hvd0dvVG9Tb3Vy
Y2VEaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEph
dmFTY3JpcHRTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9ydW5CdXR0
b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0
bGluZURpYWxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFs
b2cuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cu
cHJvdG90eXBlLml0ZW1UaXRsZUF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUuaXRlbVN1YnRpdGxlQXQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5pdGVtS2V5QXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5pdGVt
c0NvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5w
cm90b3R5cGUucmVxdWVzdEl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUucmVxdWVzdEl0ZW1zLmRpZEdldFN0eWxlU2hlZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5z
ZWxlY3RJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxv
Zy5wcm90b3R5cGUucmV3cml0ZVF1ZXJ5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlU291cmNlLmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNQYW5lbC5qcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNv
dXJjZUNvZGVQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VD
b2RlUHJvdmlkZXIucHJvdG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlk
ZXIucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3BvcHVsYXRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUu
X3Jlc291cmNlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29k
ZVByb3ZpZGVyLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVT
b3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5pc0Vk
aXRhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS5wcm90b3R5cGUud29y
a2luZ0NvcHlDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnBy
b3RvdHlwZS53b3JraW5nQ29weUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxl
U291cmNlLnByb3RvdHlwZS5fY2FsbE9yU2V0VGltZW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU3R5bGVTb3VyY2UucHJvdG90eXBlLl9jb21taXRJbmNyZW1lbnRhbEVkaXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5fY2xlYXJJbmNyZW1lbnRhbFVw
ZGF0ZVRpbWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbnNwZWN0b3JTdHlsZVNvdXJjZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3BhbmVsRGVzY3Jp
cHRvcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5fc2hvd0FuY2hvckxvY2F0aW9uKToKKwogMjAxMi0wOC0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcmVwYXJlIHNj
cmlwdHMgcGFuZWwgdG8gYmUgbGF6aWx5IGxvYWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCBiODFiZTM3MDdkZGI0MTIwN2UzZGZhMmQzNjlkM2Q3ZTZlOWM0MjdmLi5hMTM4NTgyYWUx
YmFlZjk1ODJhN2M1MGJjYzI4Y2NhMzRkNTM5ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDE0IEBACiAyMDEyLTA4LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGxvYWQgc2NyaXB0cyBwYW5l
bCBsYXppbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorCisyMDEyLTA4LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hy
b21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGxvYWQgbmV0d29yayBwYW5lbCBs
YXppbHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
NDE0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5Y2YxZDcyNGU3YmFlY2EzYzNmOGI4MWZmNmJhYmIy
NGUwYjk1ZTY2Li4xMmMzMDEyYTY4YWVkY2EzY2JhODVmYjk4NmU5OTBjNTg3YmU4N2ZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC02MjU2LDggKzYyNTYsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcycsCi0gICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzJywKLSAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NoZWNrYm94LmpzJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcycsCkBAIC02Mjk4LDcgKzYyOTYsNiBA
QAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1hbmFnZXIuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVVdGlscy5qcycsCi0gICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvR29Ub0xpbmVEaWFsb2cuanMnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50cnkuanMnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvSGFuZGxlclJlZ2lzdHJ5LmpzJywKQEAgLTYzMTMsMTAgKzYzMTAs
MTAgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0
TWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0
Rm9ybWF0dGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2UuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlw
dFNvdXJjZUZyYW1lLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2pzZGlm
ZmxpYi5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9LZXlib2FyZFNob3J0
Y3V0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0xpbmtpZmllci5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVCcmVha3BvaW50c1NpZGVi
YXJQYW5lLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvck92
ZXJsYXlDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05h
dmlnYXRvclZpZXcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a01hbmFnZXIuanMnLApAQCAtNjMzOSwxNiArNjMzNiwxMSBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUeXBlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdEZvcm1hdHRlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0U25pcHBldE1vZGVsLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNTZWFyY2hTY29wZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
ZWFyY2hDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1No
b3J0Y3V0c1NjcmVlbi5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5nc1NjcmVlbi5qcycsCkBAIC02MzY5LDggKzYzNjEsNyBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvU3BlY3RydW0uanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvU3BsaXRWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1N0
YXR1c0JhckJ1dHRvbi5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNQYW5lbC5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0
b3JDb250YWluZXIuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVT
b3VyY2UuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzJywKQEAgLTYz
ODIsMTUgKzYzNzMsMTIgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xi
YXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzJywKLSAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZUZyYW1lLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvVXNlckFnZW50U3VwcG9ydC5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvVmlldy5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4
cHJlc3Npb25zU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvV29ya2VyTWFuYWdlci5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9X
b3JrZXJzU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
V29ya3NwYWNlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RpYWxvZy5j
c3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcycsCkBA
IC02NDYwLDYgKzY0NDgsMjMgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlV2ViU29ja2V0RnJhbWVWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtQYW5lbC5qcycsCiAgICAgICAgIF0sCisgICAgICAgICd3ZWJpbnNwZWN0
b3Jfc2NyaXB0c19qc19maWxlcyc6IFsKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcycsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzJywKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcycsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzJywKKyAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcycsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUuanMnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxv
Zy5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250
YWluZXIuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2Rl
RnJhbWUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNz
aW9uc1NpZGViYXJQYW5lLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dv
cmtlcnNTaWRlYmFyUGFuZS5qcycsCisgICAgICAgIF0sCiAgICAgICAgICd3ZWJpbnNwZWN0b3Jf
dGltZWxpbmVfanNfZmlsZXMnOiBbCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9N
ZW1vcnlTdGF0aXN0aWNzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lRnJhbWVDb250cm9sbGVyLmpzJywKQEAgLTY1MDgsNiArNjUxMyw3IEBACiAgICAgICAg
ICAgICAnPEAod2ViaW5zcGVjdG9yX2VsZW1lbnRzX2pzX2ZpbGVzKScsCiAgICAgICAgICAgICAn
PEAod2ViaW5zcGVjdG9yX3Jlc291cmNlc19qc19maWxlcyknLAogICAgICAgICAgICAgJzxAKHdl
Ymluc3BlY3Rvcl9uZXR3b3JrX2pzX2ZpbGVzKScsCisgICAgICAgICAgICAnPEAod2ViaW5zcGVj
dG9yX3NjcmlwdHNfanNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfdGlt
ZWxpbmVfanNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfcHJvZmlsZXNf
anNfZmlsZXMpJywKICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfYXVkaXRzX2pzX2ZpbGVz
KScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDc3YWVhMWIyYzNlNDUwZDBhZjk4MzAyNWJlODk0YmE0ODc4ZmY2Y2QuLjQ2ZTZhYTcyYmM1NmJk
ZjUxZDdlM2UyYWJjZjM1OWY0ZTBkZTA4YWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NTk5NCw2ICs3NTk5NCwxMCBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZy
b250LWVuZFxOYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxOYXZpZ2F0b3JPdmVybGF5Q29udHJvbGxlci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAg
LTc2Mjc0LDYgKzc2Mjc4LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNuaXBwZXRKYXZhU2NyaXB0
U291cmNlRnJhbWUuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNuaXBwZXRTdG9yYWdlLmpzIgogCQkJ
CQk+CiAJCQkJPC9GaWxlPgpAQCAtNzYzMjIsNyArNzYzMzAsNyBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxTdHlsZXNQYW5lbC5qcyIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQt
ZW5kXFN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCkBAIC03NjMzMCw2ICs3NjMzOCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxTdHlsZVNv
dXJjZS5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU3VtbWFyeUJhci5qcyIKIAkJCQkJPgogCQkJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyMzI5YjdmM2JmMGQ5YzVlZmY5MzIwZWJlNmQxN2IxYjA1ZmY2OGZhLi5iMTIy
NzcxNTkzODhkYWU4NDM1MTEyNDBhYzYzYzEwYmM0NjE0NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTU5NSw2ICsyNTU5
NSw3IEBACiAJCQkJIiQoREVSSVZFRF9GSUxFX0RJUikvV2ViQ29yZS9FbGVtZW50c1BhbmVsLmpz
IiwKIAkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpzIiwK
IAkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9XZWJDb3JlL05ldHdvcmtQYW5lbC5qcyIsCisJCQkJ
IiQoREVSSVZFRF9GSUxFX0RJUikvV2ViQ29yZS9TY3JpcHRzUGFuZWwuanMiLAogCQkJCSIkKERF
UklWRURfRklMRV9ESVIpL1dlYkNvcmUvVGltZWxpbmVQYW5lbC5qcyIsCiAJCQkJIiQoREVSSVZF
RF9GSUxFX0RJUikvV2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzIiwKIAkJCQkiJChERVJJVkVEX0ZJ
TEVfRElSKS9XZWJDb3JlL0F1ZGl0c1BhbmVsLmpzIiwKQEAgLTI1NjAzLDcgKzI1NjA0LDcgQEAK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNo
ZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICIjIERvbid0IGRvIGFueXRoaW5n
IGZvciBEZWJ1ZyBidWlsZHMsIHNvIHRoZSBJbnNwZWN0b3IgaXMgZWFzaWVyIHRvIGRlYnVnLlxu
IyBEb24ndCBkbyBhbnl0aGluZyBmb3IgUHJvZHVjdGlvbiBidWlsZHMsIHNpbmNlIHRoZSBJbnNw
ZWN0b3IgaXNuJ3QgaW5zdGFsbGVkLlxuaWYgW1sgJHtDT05GSUdVUkFUSU9OOj1EZWJ1Z30gPT0g
XCJEZWJ1Z1wiIHx8ICR7Q09ORklHVVJBVElPTjo9UHJvZHVjdGlvbn0gPT0gXCJQcm9kdWN0aW9u
XCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG4jIENvbWJpbmUgYWxsIHNjcmlwdCByZXNvdXJj
ZXMgaW4gdGhlIGluc3BlY3Rvci5odG1sIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9jb21i
aW5lLWphdmFzY3JpcHQtcmVzb3VyY2VzLnBsXCIgLS1pbnB1dC1odG1sIFwiJHtTUkNST09UfS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sXCIgLS1nZW5lcmF0ZWQtc2NyaXB0cy1k
aXIgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZVwiIC0tb3V0
cHV0LWRpciBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZVwiIC0tb3V0cHV0LXNjcmlwdC1u
YW1lIGluc3BlY3Rvci5qc1xuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBFbGVtZW50c1Bh
bmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBv
cnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
c1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9E
SVJ9L1dlYkNvcmUvRWxlbWVudHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRz
IGluIFJlc291cmNlc1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUt
amF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwi
JHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpzXCJcblxuIyBJbmxp
bmUgc2NyaXB0IGltcG9ydHMgaW4gTmV0d29ya1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2lu
c3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9m
cm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9OZXR3b3JrUGFuZWwuanNc
IlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBUaW1lbGluZVBhbmVsLmpzIGZpbGUuXG5c
IiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NS
Q1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qc1wiIFwiJHtTUkNST09U
fS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvVGlt
ZWxpbmVQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFByb2ZpbGVzUGFu
ZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9y
dHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJ
Un0vV2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMg
aW4gQXVkaXRzUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZh
c2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dHNQYW5lbC5qc1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvQXVkaXRzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQg
aW1wb3J0cyBpbiBDb2RlTWlycm9yVGV4dEVkaXRvci5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNw
ZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzXCIgXCIke1NSQ1JPT1R9L2luc3Bl
Y3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9Db2RlTWlycm9y
VGV4dEVkaXRvci5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFNjcmlwdEZvcm1h
dHRlcldvcmtlci5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3Jp
cHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZv
cm1hdHRlcldvcmtlci5qc1wiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIk
e0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzXCJcblxu
aWYgWyAtZCBcIiR7VEFSR0VUX0JVSUxEX0RJUn0vJHtVTkxPQ0FMSVpFRF9SRVNPVVJDRVNfRk9M
REVSX1BBVEh9L2luc3BlY3RvclwiIF07IHRoZW5cbiAgICBjZCBcIiR7VEFSR0VUX0JVSUxEX0RJ
Un0vJHtVTkxPQ0FMSVpFRF9SRVNPVVJDRVNfRk9MREVSX1BBVEh9L2luc3BlY3RvclwiXG5cbiAg
ICAjIFJlbW92ZSBhbnkgdG9wLWxldmVsIEphdmFTY3JpcHQgZmlsZXMsIHNpbmNlIHRoZXkgd2ls
bCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb21iaW5lZCBmaWxlLlxuICAgICMgS2VlcCBJbnNwZWN0
b3JCYWNrZW5kKi5qcyBmaWxlcyBzbyB0aGV5IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGZyb250LWVu
ZHMuXG4gICAgZmluZCAuIC1kZXB0aCAxIC1uYW1lIFwiKi5qc1wiIC1ub3QgLW5hbWUgXCJJbnNw
ZWN0b3JCYWNrZW5kKi5qc1wiIHwgeGFyZ3Mgcm0gLXJmXG5cbiAgICAjIENvcHkgdGhlIG1vZGlm
aWVkIEhUTUwgZmlsZSBhbmQgdGhlIGNvbWJpbmVkIHNjcmlwdHMuXG4gICAgY3AgXCIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvaW5zcGVjdG9yLmh0bWxcIiBpbnNwZWN0b3IuaHRtbFxuICAg
IGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL2luc3BlY3Rvci5qc1wiIGluc3BlY3Rv
ci5qc1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0VsZW1lbnRzUGFuZWwu
anNcIiBFbGVtZW50c1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNv
cmUvUmVzb3VyY2VzUGFuZWwuanNcIiBSZXNvdXJjZXNQYW5lbC5qc1xuICAgIGNwIFwiJHtERVJJ
VkVEX0ZJTEVfRElSfS9XZWJDb3JlL05ldHdvcmtQYW5lbC5qc1wiIE5ldHdvcmtQYW5lbC5qc1xu
ICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1RpbWVsaW5lUGFuZWwuanNcIiBU
aW1lbGluZVBhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvUHJv
ZmlsZXNQYW5lbC5qc1wiIFByb2ZpbGVzUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxF
X0RJUn0vV2ViQ29yZS9BdWRpdHNQYW5lbC5qc1wiIEF1ZGl0c1BhbmVsLmpzXG4gICAgY3AgXCIk
e0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvQ29kZU1pcnJvclRleHRFZGl0b3IuanNcIiBDb2Rl
TWlycm9yVGV4dEVkaXRvci5qc1xuICAgIGNwIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3Jl
L1NjcmlwdEZvcm1hdHRlcldvcmtlci5qc1wiIFNjcmlwdEZvcm1hdHRlcldvcmtlci5qc1xuZmlc
biI7CisJCQlzaGVsbFNjcmlwdCA9ICIjIERvbid0IGRvIGFueXRoaW5nIGZvciBEZWJ1ZyBidWls
ZHMsIHNvIHRoZSBJbnNwZWN0b3IgaXMgZWFzaWVyIHRvIGRlYnVnLlxuIyBEb24ndCBkbyBhbnl0
aGluZyBmb3IgUHJvZHVjdGlvbiBidWlsZHMsIHNpbmNlIHRoZSBJbnNwZWN0b3IgaXNuJ3QgaW5z
dGFsbGVkLlxuaWYgW1sgJHtDT05GSUdVUkFUSU9OOj1EZWJ1Z30gPT0gXCJEZWJ1Z1wiIHx8ICR7
Q09ORklHVVJBVElPTjo9UHJvZHVjdGlvbn0gPT0gXCJQcm9kdWN0aW9uXCIgXV07IHRoZW5cbiAg
ICBleGl0XG5maVxuXG4jIENvbWJpbmUgYWxsIHNjcmlwdCByZXNvdXJjZXMgaW4gdGhlIGluc3Bl
Y3Rvci5odG1sIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9jb21iaW5lLWphdmFzY3JpcHQt
cmVzb3VyY2VzLnBsXCIgLS1pbnB1dC1odG1sIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5odG1sXCIgLS1nZW5lcmF0ZWQtc2NyaXB0cy1kaXIgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZVwiIC0tb3V0cHV0LWRpciBcIiR7REVS
SVZFRF9GSUxFX0RJUn0vV2ViQ29yZVwiIC0tb3V0cHV0LXNjcmlwdC1uYW1lIGluc3BlY3Rvci5q
c1xuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBFbGVtZW50c1BhbmVsLmpzIGZpbGUuXG5c
IiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NS
Q1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qc1wiIFwiJHtTUkNST09U
fS9pbnNwZWN0b3IvZnJvbnQtZW5kXCIgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvRWxl
bWVudHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFJlc291cmNlc1Bh
bmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1pbXBv
cnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVf
RElSfS9XZWJDb3JlL1Jlc291cmNlc1BhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9y
dHMgaW4gTmV0d29ya1BhbmVsLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUt
amF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya1BhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7
REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9OZXR3b3JrUGFuZWwuanNcIlxuXG4jIElubGluZSBz
Y3JpcHQgaW1wb3J0cyBpbiBTY3JpcHRzUGFuZWwuanMgZmlsZS5cblwiJFNSQ1JPT1QvaW5zcGVj
dG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250
LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1NjcmlwdHNQYW5lbC5qc1wiXG5c
biMgSW5saW5lIHNjcmlwdCBpbXBvcnRzIGluIFRpbWVsaW5lUGFuZWwuanMgZmlsZS5cblwiJFNS
Q1JPT1QvaW5zcGVjdG9yL2lubGluZS1qYXZhc2NyaXB0LWltcG9ydHMucHlcIiBcIiR7U1JDUk9P
VH0vaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzXCIgXCIke1NSQ1JPT1R9L2lu
c3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9UaW1lbGlu
ZVBhbmVsLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gUHJvZmlsZXNQYW5lbC5q
cyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5w
eVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanNcIiBc
IiR7U1JDUk9PVH0vaW5zcGVjdG9yL2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9X
ZWJDb3JlL1Byb2ZpbGVzUGFuZWwuanNcIlxuXG4jIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBB
dWRpdHNQYW5lbC5qcyBmaWxlLlxuXCIkU1JDUk9PVC9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3Jp
cHQtaW1wb3J0cy5weVwiIFwiJHtTUkNST09UfS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1Bh
bmVsLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVSSVZFRF9G
SUxFX0RJUn0vV2ViQ29yZS9BdWRpdHNQYW5lbC5qc1wiXG5cbiMgSW5saW5lIHNjcmlwdCBpbXBv
cnRzIGluIENvZGVNaXJyb3JUZXh0RWRpdG9yLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rv
ci9pbmxpbmUtamF2YXNjcmlwdC1pbXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9m
cm9udC1lbmQvQ29kZU1pcnJvclRleHRFZGl0b3IuanNcIiBcIiR7U1JDUk9PVH0vaW5zcGVjdG9y
L2Zyb250LWVuZFwiIFwiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0NvZGVNaXJyb3JUZXh0
RWRpdG9yLmpzXCJcblxuIyBJbmxpbmUgc2NyaXB0IGltcG9ydHMgaW4gU2NyaXB0Rm9ybWF0dGVy
V29ya2VyLmpzIGZpbGUuXG5cIiRTUkNST09UL2luc3BlY3Rvci9pbmxpbmUtamF2YXNjcmlwdC1p
bXBvcnRzLnB5XCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0
dGVyV29ya2VyLmpzXCIgXCIke1NSQ1JPT1R9L2luc3BlY3Rvci9mcm9udC1lbmRcIiBcIiR7REVS
SVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanNcIlxuXG5pZiBb
IC1kIFwiJHtUQVJHRVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xERVJf
UEFUSH0vaW5zcGVjdG9yXCIgXTsgdGhlblxuICAgIGNkIFwiJHtUQVJHRVRfQlVJTERfRElSfS8k
e1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xERVJfUEFUSH0vaW5zcGVjdG9yXCJcblxuICAgICMg
UmVtb3ZlIGFueSB0b3AtbGV2ZWwgSmF2YVNjcmlwdCBmaWxlcywgc2luY2UgdGhleSB3aWxsIGJl
IHJlcGxhY2VkIHdpdGggdGhlIGNvbWJpbmVkIGZpbGUuXG4gICAgIyBLZWVwIEluc3BlY3RvckJh
Y2tlbmQqLmpzIGZpbGVzIHNvIHRoZXkgY2FuIGJlIHVzZWQgYnkgb3RoZXIgZnJvbnQtZW5kcy5c
biAgICBmaW5kIC4gLWRlcHRoIDEgLW5hbWUgXCIqLmpzXCIgLW5vdCAtbmFtZSBcIkluc3BlY3Rv
ckJhY2tlbmQqLmpzXCIgfCB4YXJncyBybSAtcmZcblxuICAgICMgQ29weSB0aGUgbW9kaWZpZWQg
SFRNTCBmaWxlIGFuZCB0aGUgY29tYmluZWQgc2NyaXB0cy5cbiAgICBjcCBcIiR7REVSSVZFRF9G
SUxFX0RJUn0vV2ViQ29yZS9pbnNwZWN0b3IuaHRtbFwiIGluc3BlY3Rvci5odG1sXG4gICAgY3Ag
XCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvaW5zcGVjdG9yLmpzXCIgaW5zcGVjdG9yLmpz
XG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvRWxlbWVudHNQYW5lbC5qc1wi
IEVsZW1lbnRzUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9S
ZXNvdXJjZXNQYW5lbC5qc1wiIFJlc291cmNlc1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURf
RklMRV9ESVJ9L1dlYkNvcmUvTmV0d29ya1BhbmVsLmpzXCIgTmV0d29ya1BhbmVsLmpzXG4gICAg
Y3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvU2NyaXB0c1BhbmVsLmpzXCIgU2NyaXB0
c1BhbmVsLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvVGltZWxpbmVQ
YW5lbC5qc1wiIFRpbWVsaW5lUGFuZWwuanNcbiAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0v
V2ViQ29yZS9Qcm9maWxlc1BhbmVsLmpzXCIgUHJvZmlsZXNQYW5lbC5qc1xuICAgIGNwIFwiJHtE
RVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL0F1ZGl0c1BhbmVsLmpzXCIgQXVkaXRzUGFuZWwuanNc
biAgICBjcCBcIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9Db2RlTWlycm9yVGV4dEVkaXRv
ci5qc1wiIENvZGVNaXJyb3JUZXh0RWRpdG9yLmpzXG4gICAgY3AgXCIke0RFUklWRURfRklMRV9E
SVJ9L1dlYkNvcmUvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzXCIgU2NyaXB0Rm9ybWF0dGVyV29y
a2VyLmpzXG5maVxuIjsKIAkJfTsKIAkJMUM4MUJBMzMwRTk3MzU3QzAwMjY2RTA3IC8qIENvcHkg
SW5zcGVjdG9yIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250
LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQpp
bmRleCAyMzc3NjQ2NWUzYTM2N2Q3MjRmY2Y3N2YwZTllOWZmMWE1MGU0NzNlLi5jYjFkYzkyMmUy
MzgwOTgzM2IwOTE5OWU0OGYxMzI0YjdhNWFlNzQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04OCwxMiArODgsMTQgQEAgbW9kdWxlcyA9
IFsKICAgICAgICAgICAgICJMaW5raWZpZXIuanMiLAogICAgICAgICAgICAgIk5ldHdvcmtMb2cu
anMiLAogICAgICAgICAgICAgIlBsYWNhcmQuanMiLAorICAgICAgICAgICAgIlByZXNlbnRhdGlv
bkNvbnNvbGVNZXNzYWdlSGVscGVyLmpzIiwKICAgICAgICAgICAgICJTQVNTU291cmNlTWFwcGlu
Zy5qcyIsCiAgICAgICAgICAgICAiU2NyaXB0LmpzIiwKICAgICAgICAgICAgICJTY3JpcHRGb3Jt
YXR0ZXIuanMiLAogICAgICAgICAgICAgIlNjcmlwdFNuaXBwZXRNb2RlbC5qcyIsCiAgICAgICAg
ICAgICAiU25pcHBldFN0b3JhZ2UuanMiLAogICAgICAgICAgICAgIlNvdXJjZU1hcHBpbmcuanMi
LAorICAgICAgICAgICAgIlN0eWxlU291cmNlLmpzIiwKICAgICAgICAgICAgICJUaW1lbGluZU1h
bmFnZXIuanMiLAogICAgICAgICAgICAgIlJhd1NvdXJjZUNvZGUuanMiLAogICAgICAgICAgICAg
IlJlbW90ZU9iamVjdC5qcyIsCkBAIC0xNTgsMTIgKzE2MCwxMSBAQCBtb2R1bGVzID0gWwogICAg
ICAgICAiZGVwZW5kZW5jaWVzIjogWyJzZGsiLCAidWkiXSwKICAgICAgICAgInNvdXJjZXMiOiBb
CiAgICAgICAgICAgICAiQ29uc29sZU1lc3NhZ2UuanMiLAotICAgICAgICAgICAgIkJyZWFrcG9p
bnRzU2lkZWJhclBhbmUuanMiLAogICAgICAgICAgICAgIkRPTUJyZWFrcG9pbnRzU2lkZWJhclBh
bmUuanMiLAogICAgICAgICAgICAgIkRPTVByZXNlbnRhdGlvblV0aWxzLmpzIiwKICAgICAgICAg
ICAgICJFbGVtZW50c1RyZWVPdXRsaW5lLmpzIiwKLSAgICAgICAgICAgICJGaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cuanMiLAogICAgICAgICAgICAgIkdvVG9MaW5lRGlhbG9nLmpzIiwKKyAg
ICAgICAgICAgICJOYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIiwKICAgICAgICAgICAg
ICJOYXZpZ2F0b3JPdmVybGF5Q29udHJvbGxlci5qcyIsCiAgICAgICAgICAgICAiTmF2aWdhdG9y
Vmlldy5qcyIsCiAgICAgICAgICAgICAiSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIiwKQEAg
LTE3Miw3ICsxNzMsNiBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIk9iamVjdFByb3BlcnRp
ZXNTZWN0aW9uLmpzIiwKICAgICAgICAgICAgICJTb3VyY2VGcmFtZS5qcyIsCiAgICAgICAgICAg
ICAiVGltZWxpbmVHcmlkLmpzIiwKLSAgICAgICAgICAgICJVSVNvdXJjZUNvZGVGcmFtZS5qcyIs
CiAgICAgICAgIF0KICAgICB9LAogICAgIHsKQEAgLTIyNiwxNyArMjI2LDIwIEBAIG1vZHVsZXMg
PSBbCiAgICAgICAgICJ0YXJnZXRfbmFtZSI6ICJzY3JpcHRzIiwKICAgICAgICAgImRlcGVuZGVu
Y2llcyI6IFsiY29tcG9uZW50cyJdLAogICAgICAgICAic291cmNlcyI6IFsKKyAgICAgICAgICAg
ICJCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIiwKICAgICAgICAgICAgICJDYWxsU3RhY2tTaWRl
YmFyUGFuZS5qcyIsCi0gICAgICAgICAgICAiU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzIiwKKyAg
ICAgICAgICAgICJGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMiLAogICAgICAgICAgICAg
IkphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcyIsCi0gICAgICAgICAgICAiUHJlc2VudGF0aW9uQ29u
c29sZU1lc3NhZ2VIZWxwZXIuanMiLAogICAgICAgICAgICAgIlJldmlzaW9uSGlzdG9yeVZpZXcu
anMiLAorICAgICAgICAgICAgIlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyIsCiAgICAgICAgICAg
ICAiU2NyaXB0c05hdmlnYXRvci5qcyIsCiAgICAgICAgICAgICAiU2NyaXB0c1BhbmVsLmpzIiwK
ICAgICAgICAgICAgICJTY3JpcHRzU2VhcmNoU2NvcGUuanMiLAorICAgICAgICAgICAgIlNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlRnJhbWUuanMiLAorICAgICAgICAgICAgIlN0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLmpzIiwKICAgICAgICAgICAgICJUYWJiZWRFZGl0b3JDb250YWluZXIuanMiLAor
ICAgICAgICAgICAgIlVJU291cmNlQ29kZUZyYW1lLmpzIiwKICAgICAgICAgICAgICJXYXRjaEV4
cHJlc3Npb25zU2lkZWJhclBhbmUuanMiLAotICAgICAgICAgICAgIldvcmtlck1hbmFnZXIuanMi
LAogICAgICAgICAgICAgIldvcmtlcnNTaWRlYmFyUGFuZS5qcyIsCiAgICAgICAgIF0KICAgICB9
LApAQCAtMjczLDEzICsyNzYsNiBAQCBtb2R1bGVzID0gWwogICAgICAgICBdCiAgICAgfSwKICAg
ICB7Ci0gICAgICAgICJ0YXJnZXRfbmFtZSI6ICJzdHlsZXMiLAotICAgICAgICAiZGVwZW5kZW5j
aWVzIjogWyJjb21wb25lbnRzIl0sCi0gICAgICAgICJzb3VyY2VzIjogWwotICAgICAgICAgICAg
IlN0eWxlc1BhbmVsLmpzIiwKLSAgICAgICAgXQotICAgIH0sCi0gICAgewogICAgICAgICAidGFy
Z2V0X25hbWUiOiAiZXh0ZW5zaW9ucyIsCiAgICAgICAgICJkZXBlbmRlbmNpZXMiOiBbImNvbXBv
bmVudHMiXSwKICAgICAgICAgInNvdXJjZXMiOiBbCkBAIC0yOTYsNiArMjkyLDcgQEAgbW9kdWxl
cyA9IFsKICAgICAgICAgImRlcGVuZGVuY2llcyI6IFsiY29tcG9uZW50cyIsICJleHRlbnNpb25z
Il0sCiAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgIlNldHRpbmdzU2NyZWVuLmpz
IiwKKyAgICAgICAgICAgICJXb3JrZXJNYW5hZ2VyLmpzIiwKICAgICAgICAgXQogICAgIH0sCiAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZh
bmNlZFNlYXJjaENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwppbmRleCAwZTc2NGQxYzE1MjMyMTFmZjhh
YWYyNDQzMmU2OTVkM2I0ZDNhMjdhLi42OTUwNTkzNzU4MDQ3ODM5NmFjMjk0YzlkMjc5N2E1M2Rj
ZGNlOTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fk
dmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwpAQCAtNTYsNyArNTYsNyBAQCBX
ZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICB7
CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5RnJvbUV2
ZW50KGV2ZW50KSA9PT0gdGhpcy5fc2hvcnRjdXQua2V5KSB7CiAgICAgICAgICAgICBpZiAoIXRo
aXMuX3NlYXJjaFZpZXcgfHwgIXRoaXMuX3NlYXJjaFZpZXcuaXNTaG93aW5nKCkgfHwgdGhpcy5f
c2VhcmNoVmlldy5fc2VhcmNoICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7Ci0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuc2V0Q3VycmVudFBhbmVsKFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cyk7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbCgic2NyaXB0cyIpOwogICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpOwogICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5l
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGVi
YXJQYW5lLmpzCmluZGV4IDNhYzcxOGY3YzkwNzE3MDUyYTk1YTk3NDM1MzZlMTFkNDNlYWFhMmMu
LjBjMmNmMzQ0YmM2YzRkODk5YTQ4NTIyZWZhOWNkMzNhZGIyZTE3OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lk
ZWJhclBhbmUuanMKQEAgLTI0OCw1OSArMjQ4LDYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRC
cmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IK
IAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJh
clBhbmV9Ci0gKi8KLVdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lID0g
ZnVuY3Rpb24odGl0bGUpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhp
cywgdGl0bGUpOwotCi0gICAgdGhpcy5saXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoIm9sIik7Ci0gICAgdGhpcy5saXN0RWxlbWVudC5jbGFzc05hbWUgPSAiYnJlYWtwb2ludC1s
aXN0IjsKLQotICAgIHRoaXMuZW1wdHlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgdGhpcy5lbXB0eUVsZW1lbnQuY2xhc3NOYW1lID0gImluZm8iOwotICAgIHRo
aXMuZW1wdHlFbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBC
cmVha3BvaW50cyIpOwotCi0gICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVt
cHR5RWxlbWVudCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQ
YW5lLnByb3RvdHlwZSA9IHsKLSAgICBfYWRkTGlzdEVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQs
IGJlZm9yZUVsZW1lbnQpCi0gICAgewotICAgICAgICBpZiAoYmVmb3JlRWxlbWVudCkKLSAgICAg
ICAgICAgIHRoaXMubGlzdEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1l
bnQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5saXN0RWxlbWVudC5m
aXJzdENoaWxkKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGls
ZCh0aGlzLmVtcHR5RWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHRoaXMubGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICB9
LAotCi0gICAgX3JlbW92ZUxpc3RFbGVtZW50OiBmdW5jdGlvbihlbGVtZW50KQotICAgIHsKLSAg
ICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVDaGlsZChlbGVtZW50KTsKLSAgICAgICAgaWYg
KCF0aGlzLmxpc3RFbGVtZW50LmZpcnN0Q2hpbGQpIHsKLSAgICAgICAgICAgIHRoaXMuYm9keUVs
ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5saXN0RWxlbWVudCk7Ci0gICAgICAgICAgICB0aGlzLmJv
ZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZW1wdHlFbGVtZW50KTsKLSAgICAgICAgfQotICAg
IH0sCi0KLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMubGlzdEVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgaWYgKHRoaXMubGlzdEVsZW1lbnQucGFy
ZW50RWxlbWVudCkgewotICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0
aGlzLmxpc3RFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5lbXB0eUVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0
b3IuTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IK
ICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFuZX0K
ICAqLwogV2ViSW5zcGVjdG9yLlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUgPSBmdW5jdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCmluZGV4IDFkMGEyMmZiZTdhY2VmNmFi
M2Y1OTZiNTk5ZjE2ZWNlNWU0ZGU2ZmEuLmYwMjc3NjVlNGZiY2U4MDJjMmY0YzVkMzZjMDExZDdh
OTJmZjM0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCkBAIC02MjIsMTEg
KzYyMiw2IEBAIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlvbihwYW5l
bCwgdWlTb3VyY2VDb2RlUHJvdmlkZXIpCiAgICAgdGhpcy5fdWlTb3VyY2VDb2Rlcy5zb3J0KGNv
bXBhcmVGdW5jdGlvbik7CiB9CiAKLVdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuY3Jl
YXRlU2hvcnRjdXQgPSBmdW5jdGlvbigpCi17Ci0gICAgcmV0dXJuIFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJvIiwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpOwotfQotCiBXZWJJbnNwZWN0b3IuT3BlblJlc291
cmNlRGlhbG9nLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0g
aXRlbUluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTYxNTQ3NDVhOWFlZjY5NmVjZDdiMzgxZGZmODJiNjcxYTVmODFjOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlQnJlYWtwb2ludHNT
aWRlYmFyUGFuZS5qcwpAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmV9CisgKi8KK1dlYkluc3BlY3Rvci5OYXRp
dmVCcmVha3BvaW50c1NpZGViYXJQYW5lID0gZnVuY3Rpb24odGl0bGUpCit7CisgICAgV2ViSW5z
cGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgdGl0bGUpOworCisgICAgdGhpcy5saXN0RWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CisgICAgdGhpcy5saXN0RWxlbWVu
dC5jbGFzc05hbWUgPSAiYnJlYWtwb2ludC1saXN0IjsKKworICAgIHRoaXMuZW1wdHlFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5lbXB0eUVsZW1lbnQu
Y2xhc3NOYW1lID0gImluZm8iOworICAgIHRoaXMuZW1wdHlFbGVtZW50LnRleHRDb250ZW50ID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBCcmVha3BvaW50cyIpOworCisgICAgdGhpcy5ib2R5
RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5RWxlbWVudCk7Cit9CisKK1dlYkluc3BlY3Rv
ci5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKKyAgICBfYWRkTGlz
dEVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQpCisgICAgeworICAgICAg
ICBpZiAoYmVmb3JlRWxlbWVudCkKKyAgICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQuaW5zZXJ0
QmVmb3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQpOworICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgIGlmICghdGhpcy5saXN0RWxlbWVudC5maXJzdENoaWxkKSB7CisgICAgICAgICAgICAgICAg
dGhpcy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVtcHR5RWxlbWVudCk7CisgICAgICAg
ICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3JlbW92ZUxpc3RFbGVtZW50OiBm
dW5jdGlvbihlbGVtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVD
aGlsZChlbGVtZW50KTsKKyAgICAgICAgaWYgKCF0aGlzLmxpc3RFbGVtZW50LmZpcnN0Q2hpbGQp
IHsKKyAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5saXN0RWxl
bWVudCk7CisgICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZW1w
dHlFbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHRoaXMubGlzdEVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAg
ICAgaWYgKHRoaXMubGlzdEVsZW1lbnQucGFyZW50RWxlbWVudCkgeworICAgICAgICAgICAgdGhp
cy5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsKKyAgICAgICAgICAg
IHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbXB0eUVsZW1lbnQpOworICAgICAg
ICB9CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuTmF0aXZlQnJlYWtwb2ludHNTaWRlYmFyUGFu
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlw
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0
UHJvcGVydGllc1NlY3Rpb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCmluZGV4IDFhZGFkM2RlMmY5Mzk3YmJjNzY0NTYx
NDVlYjkzMDgxNzFmZTViODYuLmVhM2I0NDg1M2RlMTQxNzU2ZTllMTZhYzhhZGNmZWM1MjgyMWQ4
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0
UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwpAQCAtMzE2LDcgKzMxNiw3IEBAIFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2hv
d0Z1bmN0aW9uRGVmaW5pdGlvbihyZXNwb25zZS5sb2NhdGlvbik7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWwoInNjcmlwdHMiKS5zaG93RnVuY3Rpb25EZWZpbml0aW9uKHJlc3BvbnNl
LmxvY2F0aW9uKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHJldmVhbEZ1bmN0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRTbmlwcGV0TW9kZWwuanMKaW5kZXggZGNkMmI4NGVhYTMwZGUxMzE0Y2I0NTM2ODYzN2Q0M2Rj
Mjk1ZTFjMi4uMzkyNDQ4ZGZhODRhMzNjMTJkOGIyOTRlYWMxNzU1OTZhMTcyZmQzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9k
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlw
cGV0TW9kZWwuanMKQEAgLTU0NywzNSArNTQ3LDMgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRDb250
ZW50UHJvdmlkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TdGF0aWNDb24K
ICAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbH0KICAqLwogV2ViSW5z
cGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbCA9IG51bGw7Ci0KLS8qKgotICogQGNvbnN0cnVjdG9y
Ci0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0KLSAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0gc2NyaXB0c1BhbmVsCi0gKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRT
b3VyY2UKLSAqLwotV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBm
dW5jdGlvbihzY3JpcHRzUGFuZWwsIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQotewotICAgIFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUuY2FsbCh0aGlzLCBzY3JpcHRzUGFuZWws
IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKLSAgICAKLSAgICB0aGlzLl9zbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOwotICAgIHRoaXMuX3J1bkJ1dHRv
biA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUnVuIiksICJldmFsdWF0ZS1zbmlwcGV0LXN0YXR1cy1iYXItaXRlbSIpOwotICAgIHRoaXMu
X3J1bkJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3J1bkJ1dHRvbkNsaWNr
ZWQsIHRoaXMpOwotfQotCi1XZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFt
ZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHJldHVybiB7QXJyYXkuPEVsZW1lbnQ+
fQotICAgICAqLwotICAgIHN0YXR1c0Jhckl0ZW1zOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gW3RoaXMuX3J1bkJ1dHRvbi5lbGVtZW50XTsKLSAgICB9LAotCi0gICAgX3J1bkJ1
dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRKYXZh
U2NyaXB0U291cmNlLmV2YWx1YXRlKCk7Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0b3IuU25pcHBl
dEphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDllM2M5ODlmZWY0ODJl
N2JlN2QyZjFmOGFmOTUzM2JiMGFlYWI4YTcuLjZmYjg2Yzc1MTliYWQwZmUwZmJkNTYwOTZkMTBj
ZDFhN2RlYjQ3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yNCw2ICsyNCwyMSBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCitpbXBvcnRTY3JpcHQoIkJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiKTsKK2ltcG9ydFNj
cmlwdCgiQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMiKTsKK2ltcG9ydFNjcmlwdCgiRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLmpzIik7CitpbXBvcnRTY3JpcHQoIkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5qcyIpOworaW1wb3J0U2NyaXB0KCJSZXZpc2lvbkhpc3RvcnlWaWV3LmpzIik7CitpbXBv
cnRTY3JpcHQoIlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyIpOworaW1wb3J0U2NyaXB0KCJTY3Jp
cHRzTmF2aWdhdG9yLmpzIik7CitpbXBvcnRTY3JpcHQoIlNjcmlwdHNTZWFyY2hTY29wZS5qcyIp
OworaW1wb3J0U2NyaXB0KCJTbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIik7CitpbXBv
cnRTY3JpcHQoIlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIik7CitpbXBvcnRTY3JpcHQoIlRh
YmJlZEVkaXRvckNvbnRhaW5lci5qcyIpOworaW1wb3J0U2NyaXB0KCJVSVNvdXJjZUNvZGVGcmFt
ZS5qcyIpOworaW1wb3J0U2NyaXB0KCJXYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMiKTsK
K2ltcG9ydFNjcmlwdCgiV29ya2Vyc1NpZGViYXJQYW5lLmpzIik7CisKIC8qKgogICogQGNvbnN0
cnVjdG9yCiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5l
ckRlbGVnYXRlfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4N2RkN2JiMTNmMTQxZGM3ODM4ODk4ODYxYWM4ZDFmODg5MTQxYjIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRKYXZhU2NyaXB0
U291cmNlRnJhbWUuanMKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0KKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0gc2NyaXB0c1BhbmVsCisgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRTb3VyY2UK
KyAqLworV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBmdW5jdGlv
bihzY3JpcHRzUGFuZWwsIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQoreworICAgIFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUuY2FsbCh0aGlzLCBzY3JpcHRzUGFuZWwsIHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAKKyAgICB0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNv
dXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOworICAgIHRoaXMuX3J1bkJ1dHRvbiA9IG5l
dyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUnVu
IiksICJldmFsdWF0ZS1zbmlwcGV0LXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX3J1bkJ1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3J1bkJ1dHRvbkNsaWNrZWQsIHRo
aXMpOworfQorCitXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90
b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPEVsZW1lbnQ+fQorICAg
ICAqLworICAgIHN0YXR1c0Jhckl0ZW1zOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gW3RoaXMuX3J1bkJ1dHRvbi5lbGVtZW50XTsKKyAgICB9LAorCisgICAgX3J1bkJ1dHRvbkNs
aWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0
U291cmNlLmV2YWx1YXRlKCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMjUxMDcyYjIyOWEzY2I1NTg4MTgxNjZlNDYxMTcyN2NiOTQ4MWY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0
T3V0bGluZURpYWxvZy5qcwpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25E
aWFsb2dDb250ZW50UHJvdmlkZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3
CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKKyAqLwor
V2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nID0gZnVuY3Rpb24odmlldywgc3R5
bGVTb3VyY2UpCit7CisgICAgV2ViSW5zcGVjdG9yLlNlbGVjdGlvbkRpYWxvZ0NvbnRlbnRQcm92
aWRlci5jYWxsKHRoaXMpOworCisgICAgdGhpcy5fcnVsZXMgPSBbXTsKKyAgICB0aGlzLl92aWV3
ID0gdmlldzsKKyAgICB0aGlzLl9zdHlsZVNvdXJjZSA9IHN0eWxlU291cmNlOworfQorCisvKioK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlZpZXd9IHZpZXcKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlN0eWxlU291cmNlfSBzdHlsZVNvdXJjZQorICovCitXZWJJbnNwZWN0b3IuU3R5bGVTaGVl
dE91dGxpbmVEaWFsb2cuc2hvdyA9IGZ1bmN0aW9uKHZpZXcsIHN0eWxlU291cmNlKQoreworICAg
IGlmIChXZWJJbnNwZWN0b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQorICAgICAgICByZXR1
cm4gbnVsbDsKKyAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRP
dXRsaW5lRGlhbG9nKHZpZXcsIHN0eWxlU291cmNlKTsKKyAgICB2YXIgZmlsdGVyZWRJdGVtU2Vs
ZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2coZGVsZWdhdGUpOworICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyh2aWV3LmVsZW1lbnQs
IGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyk7Cit9CisKK1dlYkluc3BlY3Rvci5TdHlsZVNo
ZWV0T3V0bGluZURpYWxvZy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtu
dW1iZXJ9IGl0ZW1JbmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBp
dGVtVGl0bGVBdDogZnVuY3Rpb24oaXRlbUluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX3J1bGVzW2l0ZW1JbmRleF0uc2VsZWN0b3JUZXh0OworICAgIH0sCisKKyAgICAvKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Cisg
ICAgICovCisgICAgaXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiIjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1i
ZXJ9IGl0ZW1JbmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpdGVt
S2V5QXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9y
dWxlc1tpdGVtSW5kZXhdLnNlbGVjdG9yVGV4dDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9ydWxlcy5sZW5ndGg7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVy
KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICByZXF1ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gZGlkR2V0QWxsU3R5bGVTaGVldHMoZXJyb3IsIGlu
Zm9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgIAorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBpbmZvID0gaW5mb3NbaV07CisgICAgICAgICAg
ICAgICAgaWYgKGluZm8uc291cmNlVVJMID09PSB0aGlzLl9zdHlsZVNvdXJjZS5jb250ZW50VVJM
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3Jl
YXRlRm9ySWQoaW5mby5zdHlsZVNoZWV0SWQsIGRpZEdldFN0eWxlU2hlZXQuYmluZCh0aGlzKSk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsKKyAgICAgICAgfQorCisg
ICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKGRpZEdldEFsbFN0eWxlU2hlZXRzLmJp
bmQodGhpcykpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9XZWJJbnNwZWN0
b3IuQ1NTU3R5bGVTaGVldH0gc3R5bGVTaGVldAorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rp
b24gZGlkR2V0U3R5bGVTaGVldChzdHlsZVNoZWV0KQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIXN0eWxlU2hlZXQpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygwLCAwLCAwLCAwKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRo
aXMuX3J1bGVzID0gc3R5bGVTaGVldC5ydWxlczsKKyAgICAgICAgICAgIGNhbGxiYWNrKDAsIHRo
aXMuX3J1bGVzLmxlbmd0aCwgMCwgMSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1JbmRleAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBw
cm9tcHRWYWx1ZQorICAgICAqLworICAgIHNlbGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRleCwg
cHJvbXB0VmFsdWUpCisgICAgeworICAgICAgICB2YXIgbGluZU51bWJlciA9IHRoaXMuX3J1bGVz
W2l0ZW1JbmRleF0uc291cmNlTGluZTsKKyAgICAgICAgaWYgKCFpc05hTihsaW5lTnVtYmVyKSAm
JiBsaW5lTnVtYmVyID49IDApCisgICAgICAgICAgICB0aGlzLl92aWV3LmhpZ2hsaWdodExpbmUo
bGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX3ZpZXcuZm9jdXMoKTsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHJldHVybiB7c3RyaW5n
fQorICAgICAqLworICAgIHJld3JpdGVRdWVyeTogZnVuY3Rpb24ocXVlcnkpCisgICAgeworICAg
ICAgICByZXR1cm4gcXVlcnk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91
dGxpbmVEaWFsb2cucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZWxlY3Rpb25E
aWFsb2dDb250ZW50UHJvdmlkZXIucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUzODczYTkxOGIw
NTQzMmQyMTFlYzE4MzExODg1M2FlZDEyMWQyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMKQEAgLTAsMCArMSwxODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuT2JqZWN0fQorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlcn0KKyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGlu
Z30KKyAqLworV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rp
b24oKQoreworICAgIC8qKgorICAgICAqIEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZT59CisgICAgICovCisgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOworICAgIHRo
aXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5F
dmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291cmNlQWRkZWQsIHRoaXMpOworfQor
CitXZWJJbnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0gewor
ICAgIC8qKgorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0KKyAgICAgKi8KKyAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2RlczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuUmF3TG9jYXRpb259IHJhd0xvY2F0aW9uCisgICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlVJTG9jYXRpb259CisgICAgICovCisgICAgcmF3TG9jYXRpb25U
b1VJTG9jYXRpb246IGZ1bmN0aW9uKHJhd0xvY2F0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIGxv
Y2F0aW9uID0gLyoqIEB0eXBlIFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbiAqLyByYXdMb2NhdGlv
bjsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3VpU291cmNlQ29kZUZvclVSTFts
b2NhdGlvbi51cmxdOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0aW9u
KHVpU291cmNlQ29kZSwgbG9jYXRpb24ubGluZU51bWJlciwgMCk7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2Rl
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFyYW0ge251bWJl
cn0gY29sdW1uTnVtYmVyCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlJhd0xvY2F0aW9u
fQorICAgICAqLworICAgIHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJj
ZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9uKHVpU291cmNlQ29kZS5jb250ZW50VVJMKCkgfHwg
IiIsIGxpbmVOdW1iZXIpOworICAgIH0sCisKKyAgICBfcG9wdWxhdGU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIGZ1bmN0aW9uIHBvcHVsYXRlRnJhbWUoZnJhbWUpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZnJhbWUuY2hpbGRGcmFtZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgcG9wdWxhdGVGcmFtZS5jYWxsKHRoaXMsIGZyYW1lLmNoaWxk
RnJhbWVzW2ldKTsKKworICAgICAgICAgICAgdmFyIHJlc291cmNlcyA9IGZyYW1lLnJlc291cmNl
cygpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJjZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VBZGRlZCh7ZGF0YTpyZXNvdXJjZXNb
aV19KTsKKyAgICAgICAgfQorCisgICAgICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAg
X3Jlc291cmNlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHJlc291
cmNlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9ICovIGV2ZW50LmRhdGE7Cisg
ICAgICAgIGlmIChyZXNvdXJjZS50eXBlICE9PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
dHlsZXNoZWV0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgIHRoaXMu
X3VpU291cmNlQ29kZXMucHVzaCh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JVUkxbcmVzb3VyY2UudXJsXSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmNzc01vZGVsLnNldFNvdXJjZU1hcHBpbmcocmVzb3VyY2UudXJsLCB0aGlzKTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKKyAg
ICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3VpU291
cmNlQ29kZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMID0ge307Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZXNldFNvdXJjZU1hcHBpbmdzKCk7CisgICAg
ICAgIHRoaXMuX3BvcHVsYXRlKCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU3R5bGVzVUlT
b3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0g
cmVzb3VyY2UKKyAqLworV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlID0gZnVuY3Rpb24ocmVzb3Vy
Y2UpCit7CisgICAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5jYWxsKHRoaXMsIHJlc291cmNl
LnVybCwgcmVzb3VyY2UsIHJlc291cmNlKTsKK30KKworV2ViSW5zcGVjdG9yLlN0eWxlU291cmNl
LnVwZGF0ZVRpbWVvdXQgPSAyMDA7CisKK1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS5wcm90b3R5
cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBp
c0VkaXRhYmxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sK
KyAgICAgKi8KKyAgICB3b3JraW5nQ29weUNvbW1pdHRlZDogZnVuY3Rpb24oY2FsbGJhY2spCisg
ICAgeyAgCisgICAgICAgIHRoaXMuX2NvbW1pdEluY3JlbWVudGFsRWRpdCh0cnVlLCBjYWxsYmFj
ayk7CisgICAgfSwKKworICAgIHdvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdGhpcy5fY2FsbE9yU2V0VGltZW91dCh0aGlzLl9jb21taXRJbmNyZW1lbnRhbEVk
aXQuYmluZCh0aGlzLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSkpOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjaworICAgICAqLworICAg
IF9jYWxsT3JTZXRUaW1lb3V0OiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIC8v
IEZJWE1FOiBFeHRlbnNpb25zIHRlc3RzIG92ZXJyaWRlIHVwZGF0ZVRpbWVvdXQgYmVjYXVzZSBl
eHRlbnNpb25zIGRvbid0IGhhdmUgYW55IGNvbnRyb2wgb3ZlciBhcHBseWluZyBjaGFuZ2VzIHRv
IGRvbWFpbiBzcGVjaWZpYyBiaW5kaW5ncy4gICAKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5T
dHlsZVNvdXJjZS51cGRhdGVUaW1lb3V0ID49IDApCisgICAgICAgICAgICB0aGlzLl9pbmNyZW1l
bnRhbFVwZGF0ZVRpbWVyID0gc2V0VGltZW91dChjYWxsYmFjaywgV2ViSW5zcGVjdG9yLlN0eWxl
U291cmNlLnVwZGF0ZVRpbWVvdXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsYmFj
ayhudWxsKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFufSBtYWpv
ckNoYW5nZQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCisgICAg
ICovCisgICAgX2NvbW1pdEluY3JlbWVudGFsRWRpdDogZnVuY3Rpb24obWFqb3JDaGFuZ2UsIGNh
bGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2xlYXJJbmNyZW1lbnRhbFVwZGF0ZVRpbWVy
KCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZXNvdXJjZUJpbmRpbmcoKS5zZXRT
dHlsZUNvbnRlbnQodGhpcywgdGhpcy53b3JraW5nQ29weSgpLCBtYWpvckNoYW5nZSwgY2FsbGJh
Y2spOworICAgIH0sCisKKyAgICBfY2xlYXJJbmNyZW1lbnRhbFVwZGF0ZVRpbWVyOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAodGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcikKKyAg
ICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyKTsKKyAg
ICAgICAgZGVsZXRlIHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXI7CisgICAgfQorfQorCitX
ZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU3R5bGVzUGFuZWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGM0MWRjN2ZhZmE0ZjlkZTU5NWUwMmI5MDMwNzg5YTkyYmUyNDFlMDMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNQYW5lbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMyNSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09H
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEdPT0dMRSBJTkMuCi0gKiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLk9iamVjdH0KLSAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlUHJvdmlkZXJ9Ci0gKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmd9
Ci0gKi8KLVdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlciA9IGZ1bmN0aW9u
KCkKLXsKLSAgICAvKioKLSAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGU+fQotICAgICAqLwotICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKLSAgICB0aGlz
Ll91aVNvdXJjZUNvZGVGb3JVUkwgPSB7fTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVl
TW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZl
bnRUeXBlcy5SZXNvdXJjZUFkZGVkLCB0aGlzLl9yZXNvdXJjZUFkZGVkLCB0aGlzKTsKLX0KLQot
V2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKLSAg
ICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59
Ci0gICAgICovCi0gICAgdWlTb3VyY2VDb2RlczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3VpU291cmNlQ29kZXM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJhd0xvY2F0aW9ufSByYXdMb2NhdGlvbgotICAgICAqIEByZXR1
cm4ge1dlYkluc3BlY3Rvci5VSUxvY2F0aW9ufQotICAgICAqLwotICAgIHJhd0xvY2F0aW9uVG9V
SUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBsb2Nh
dGlvbiA9IC8qKiBAdHlwZSBXZWJJbnNwZWN0b3IuQ1NTTG9jYXRpb24gKi8gcmF3TG9jYXRpb247
Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JVUkxbbG9j
YXRpb24udXJsXTsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1
aVNvdXJjZUNvZGUsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIDApOwotICAgIH0sCi0KLSAgICAvKioK
LSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQot
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCi0gICAgICogQHBhcmFtIHtudW1iZXJ9
IGNvbHVtbk51bWJlcgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SYXdMb2NhdGlvbn0K
LSAgICAgKi8KLSAgICB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3
IFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbih1aVNvdXJjZUNvZGUuY29udGVudFVSTCgpIHx8ICIi
LCBsaW5lTnVtYmVyKTsKLSAgICB9LAotCi0gICAgX3BvcHVsYXRlOiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUZyYW1lKGZyYW1lKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lLmNoaWxkRnJhbWVzLmxlbmd0aDsgKytp
KQotICAgICAgICAgICAgICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBmcmFtZS5jaGlsZEZy
YW1lc1tpXSk7Ci0KLSAgICAgICAgICAgIHZhciByZXNvdXJjZXMgPSBmcmFtZS5yZXNvdXJjZXMo
KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VzLmxlbmd0aDsgKytp
KQotICAgICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlQWRkZWQoe2RhdGE6cmVzb3VyY2VzW2ld
fSk7Ci0gICAgICAgIH0KLQotICAgICAgICBwb3B1bGF0ZUZyYW1lLmNhbGwodGhpcywgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSk7Ci0gICAgfSwKLQotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAotICAgICAqLwotICAgIF9y
ZXNvdXJjZUFkZGVkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZXNvdXJj
ZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSAqLyBldmVudC5kYXRhOwotICAg
ICAgICBpZiAocmVzb3VyY2UudHlwZSAhPT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5
bGVzaGVldCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UocmVzb3VyY2UpOwotICAgICAgICB0aGlzLl91
aVNvdXJjZUNvZGVzLnB1c2godWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VD
b2RlRm9yVVJMW3Jlc291cmNlLnVybF0gPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbC5zZXRTb3VyY2VNYXBwaW5nKHJlc291cmNlLnVybCwgdGhpcyk7Ci0gICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZSk7Ci0gICAg
fSwKLQotICAgIHJlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVzID0gW107Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OwotICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVzZXRTb3VyY2VNYXBwaW5ncygpOwotICAgICAg
ICB0aGlzLl9wb3B1bGF0ZSgpOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291
cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0
LnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJl
c291cmNlCi0gKi8KLVdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNl
KQotewotICAgIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuY2FsbCh0aGlzLCByZXNvdXJjZS51
cmwsIHJlc291cmNlLCByZXNvdXJjZSk7Ci19Ci0KLVdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS51
cGRhdGVUaW1lb3V0ID0gMjAwOwotCi1XZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UucHJvdG90eXBl
ID0gewotICAgIC8qKgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAgaXNF
ZGl0YWJsZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCi0g
ICAgICovCi0gICAgd29ya2luZ0NvcHlDb21taXR0ZWQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAg
IHsgIAotICAgICAgICB0aGlzLl9jb21taXRJbmNyZW1lbnRhbEVkaXQodHJ1ZSwgY2FsbGJhY2sp
OwotICAgIH0sCi0KLSAgICB3b3JraW5nQ29weUNoYW5nZWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2NhbGxPclNldFRpbWVvdXQodGhpcy5fY29tbWl0SW5jcmVtZW50YWxFZGl0
LmJpbmQodGhpcywgZmFsc2UsIGZ1bmN0aW9uKCkge30pKTsKLSAgICB9LAotCi0gICAgLyoqCi0g
ICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKLSAgICAgKi8KLSAgICBf
Y2FsbE9yU2V0VGltZW91dDogZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgewotICAgICAgICAvLyBG
SVhNRTogRXh0ZW5zaW9ucyB0ZXN0cyBvdmVycmlkZSB1cGRhdGVUaW1lb3V0IGJlY2F1c2UgZXh0
ZW5zaW9ucyBkb24ndCBoYXZlIGFueSBjb250cm9sIG92ZXIgYXBwbHlpbmcgY2hhbmdlcyB0byBk
b21haW4gc3BlY2lmaWMgYmluZGluZ3MuICAgCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuU3R5
bGVTb3VyY2UudXBkYXRlVGltZW91dCA+PSAwKQotICAgICAgICAgICAgdGhpcy5faW5jcmVtZW50
YWxVcGRhdGVUaW1lciA9IHNldFRpbWVvdXQoY2FsbGJhY2ssIFdlYkluc3BlY3Rvci5TdHlsZVNv
dXJjZS51cGRhdGVUaW1lb3V0KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbGJhY2so
bnVsbCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbWFqb3JD
aGFuZ2UKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjawotICAgICAq
LwotICAgIF9jb21taXRJbmNyZW1lbnRhbEVkaXQ6IGZ1bmN0aW9uKG1ham9yQ2hhbmdlLCBjYWxs
YmFjaykKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NsZWFySW5jcmVtZW50YWxVcGRhdGVUaW1lcigp
OwotICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVzb3VyY2VCaW5kaW5nKCkuc2V0U3R5
bGVDb250ZW50KHRoaXMsIHRoaXMud29ya2luZ0NvcHkoKSwgbWFqb3JDaGFuZ2UsIGNhbGxiYWNr
KTsKLSAgICB9LAotCi0gICAgX2NsZWFySW5jcmVtZW50YWxVcGRhdGVUaW1lcjogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXIpCi0gICAg
ICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcik7Ci0gICAg
ICAgIGRlbGV0ZSB0aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRpbWVyOwotICAgIH0KLX0KLQotV2Vi
SW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRl
bmRzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQotICogQHBhcmFtIHtDU1NBZ2VudC5TdHls
ZVNoZWV0SWR9IHN0eWxlU2hlZXRJZAotICogQHBhcmFtIHtzdHJpbmd9IHVybAotICogQHBhcmFt
IHtzdHJpbmd9IGNvbnRlbnQKLSAqLwotV2ViSW5zcGVjdG9yLkluc3BlY3RvclN0eWxlU291cmNl
ID0gZnVuY3Rpb24oc3R5bGVTaGVldElkLCB1cmwsIGNvbnRlbnQpCi17Ci0gICAgV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZS5jYWxsKHRoaXMsICI8aW5zcGVjdG9yIHN0eWxlPiIsIG51bGwsIG5l
dyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVR5cGVzLlN0eWxlc2hlZXQsIGNvbnRlbnQpKTsKLX0KLQotV2ViSW5zcGVjdG9yLkluc3BlY3Rv
clN0eWxlU291cmNlLnByb3RvdHlwZSA9IHsKLX0KLQotV2ViSW5zcGVjdG9yLkluc3BlY3RvclN0
eWxlU291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
LnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBpbXBsZW1lbnRzIHtXZWJJ
bnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyfQotICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuVmlld30gdmlldwotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2V9
IHN0eWxlU291cmNlCi0gKi8KLVdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZyA9
IGZ1bmN0aW9uKHZpZXcsIHN0eWxlU291cmNlKQotewotICAgIFdlYkluc3BlY3Rvci5TZWxlY3Rp
b25EaWFsb2dDb250ZW50UHJvdmlkZXIuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMuX3J1bGVzID0g
W107Ci0gICAgdGhpcy5fdmlldyA9IHZpZXc7Ci0gICAgdGhpcy5fc3R5bGVTb3VyY2UgPSBzdHls
ZVNvdXJjZTsKLX0KLQotLyoqCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3Ci0g
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKLSAqLwotV2Vi
SW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnNob3cgPSBmdW5jdGlvbih2aWV3LCBz
dHlsZVNvdXJjZSkKLXsKLSAgICBpZiAoV2ViSW5zcGVjdG9yLkRpYWxvZy5jdXJyZW50SW5zdGFu
Y2UoKSkKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYklu
c3BlY3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZyh2aWV3LCBzdHlsZVNvdXJjZSk7Ci0gICAg
dmFyIGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nKGRlbGVnYXRlKTsKLSAgICBXZWJJbnNwZWN0b3IuRGlhbG9n
LnNob3codmlldy5lbGVtZW50LCBmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cpOwotfQotCi1X
ZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cucHJvdG90eXBlID0gewotICAgIC8q
KgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAgKiBAcmV0dXJuIHtzdHJp
bmd9Ci0gICAgICovCi0gICAgaXRlbVRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9ydWxlc1tpdGVtSW5kZXhdLnNlbGVjdG9yVGV4dDsKLSAg
ICB9LAotCi0gICAgLyoKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gaXRlbUluZGV4Ci0gICAgICog
QHJldHVybiB7c3RyaW5nfQotICAgICAqLwotICAgIGl0ZW1TdWJ0aXRsZUF0OiBmdW5jdGlvbihp
dGVtSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gIiI7Ci0gICAgfSwKLQotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9
Ci0gICAgICovCi0gICAgaXRlbUtleUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fcnVsZXNbaXRlbUluZGV4XS5zZWxlY3RvclRleHQ7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge251bWJlcn0KLSAgICAgKi8KLSAgICBpdGVtc0Nv
dW50OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcnVsZXMubGVuZ3Ro
OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgbnVt
YmVyLCBudW1iZXIsIG51bWJlcil9IGNhbGxiYWNrCi0gICAgICovCi0gICAgcmVxdWVzdEl0ZW1z
OiBmdW5jdGlvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZEdldEFsbFN0
eWxlU2hlZXRzKGVycm9yLCBpbmZvcykKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9y
KSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soMCwgMCwgMCwgMCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgaW5mb3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IGlu
Zm9zW2ldOwotICAgICAgICAgICAgICAgIGlmIChpbmZvLnNvdXJjZVVSTCA9PT0gdGhpcy5fc3R5
bGVTb3VyY2UuY29udGVudFVSTCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZVNoZWV0LmNyZWF0ZUZvcklkKGluZm8uc3R5bGVTaGVldElkLCBkaWRHZXRTdHls
ZVNoZWV0LmJpbmQodGhpcykpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FsbGJhY2soMCwgMCwgMCwg
MCk7Ci0gICAgICAgIH0KLQotICAgICAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyhkaWRH
ZXRBbGxTdHlsZVNoZWV0cy5iaW5kKHRoaXMpKTsKLQotICAgICAgICAvKioKLSAgICAgICAgICog
QHBhcmFtIHs/V2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXR9IHN0eWxlU2hlZXQKLSAgICAgICAg
ICovCi0gICAgICAgIGZ1bmN0aW9uIGRpZEdldFN0eWxlU2hlZXQoc3R5bGVTaGVldCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKCFzdHlsZVNoZWV0KSB7Ci0gICAgICAgICAgICAgICAgY2Fs
bGJhY2soMCwgMCwgMCwgMCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICB0aGlzLl9ydWxlcyA9IHN0eWxlU2hlZXQucnVsZXM7Ci0gICAgICAg
ICAgICBjYWxsYmFjaygwLCB0aGlzLl9ydWxlcy5sZW5ndGgsIDAsIDEpOwotICAgICAgICB9Ci0g
ICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5kZXgKLSAgICAg
KiBAcGFyYW0ge3N0cmluZ30gcHJvbXB0VmFsdWUKLSAgICAgKi8KLSAgICBzZWxlY3RJdGVtOiBm
dW5jdGlvbihpdGVtSW5kZXgsIHByb21wdFZhbHVlKQotICAgIHsKLSAgICAgICAgdmFyIGxpbmVO
dW1iZXIgPSB0aGlzLl9ydWxlc1tpdGVtSW5kZXhdLnNvdXJjZUxpbmU7Ci0gICAgICAgIGlmICgh
aXNOYU4obGluZU51bWJlcikgJiYgbGluZU51bWJlciA+PSAwKQotICAgICAgICAgICAgdGhpcy5f
dmlldy5oaWdobGlnaHRMaW5lKGxpbmVOdW1iZXIpOwotICAgICAgICB0aGlzLl92aWV3LmZvY3Vz
KCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAg
ICAqIEByZXR1cm4ge3N0cmluZ30KLSAgICAgKi8KLSAgICByZXdyaXRlUXVlcnk6IGZ1bmN0aW9u
KHF1ZXJ5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHF1ZXJ5OwotICAgIH0KLX0KLQotV2ViSW5z
cGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCA2ZTc0NWJl
NmZkY2VhNmI0MDI3MDBjNWQwMTgwNDYxNWEyOGQ3YzI0Li5kZGU0ZTEzYTBmODQxY2MyYjhjOGY1
ZWNjOWQ2YTkyOGExNTk3NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9XZWJLaXQucXJjCkBAIC0xMDIsNiArMTAyLDcgQEAKICAgICA8ZmlsZT5MaW5raWZpZXIu
anM8L2ZpbGU+CiAgICAgPGZpbGU+TWVtb3J5U3RhdGlzdGljcy5qczwvZmlsZT4KICAgICA8Zmls
ZT5NZXRyaWNzU2lkZWJhclBhbmUuanM8L2ZpbGU+CisgICAgPGZpbGU+TmF0aXZlQnJlYWtwb2lu
dHNTaWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5OYXRpdmVNZW1vcnlTbmFwc2hvdFZp
ZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmF2aWdhdG9yT3ZlcmxheUNvbnRyb2xsZXIuanM8L2Zp
bGU+CiAgICAgPGZpbGU+TmF2aWdhdG9yVmlldy5qczwvZmlsZT4KQEAgLTE2MSw2ICsxNjIsNyBA
QAogICAgIDxmaWxlPlNpZGViYXJPdmVybGF5LmpzPC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJQ
YW5lLmpzPC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJUcmVlRWxlbWVudC5qczwvZmlsZT4KKyAg
ICA8ZmlsZT5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzPC9maWxlPgogICAgIDxmaWxl
PlNuaXBwZXRTdG9yYWdlLmpzPC9maWxlPgogICAgIDxmaWxlPlNvZnRDb250ZXh0TWVudS5qczwv
ZmlsZT4KICAgICA8ZmlsZT5Tb3VyY2VDU1NUb2tlbml6ZXIuanM8L2ZpbGU+CkBAIC0xNzIsNyAr
MTc0LDggQEAKICAgICA8ZmlsZT5TcGVjdHJ1bS5qczwvZmlsZT4KICAgICA8ZmlsZT5TcGxpdFZp
ZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+U3RhdHVzQmFyQnV0dG9uLmpzPC9maWxlPgotICAgIDxm
aWxlPlN0eWxlc1BhbmVsLmpzPC9maWxlPgorICAgIDxmaWxlPlN0eWxlU2hlZXRPdXRsaW5lRGlh
bG9nLmpzPC9maWxlPgorICAgIDxmaWxlPlN0eWxlU291cmNlLmpzPC9maWxlPgogICAgIDxmaWxl
PlN0eWxlc1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxmaWxlPlRhYmJlZEVkaXRvckNvbnRh
aW5lci5qczwvZmlsZT4KICAgICA8ZmlsZT5UYWJiZWRQYW5lLmpzPC9maWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggOGM5
MDY0YWFlYTkyMjQ0N2Y5N2U0Mjc2NjMxNWYwNTVjN2QzODE3Ny4uNzc4NWY3ZDFmYzg1NjhhOGI2
YTY0ZGZjYTdiODY4MDcwYWUzYTAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC05NywxMiArOTcsOCBAQCBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlbW90ZU9iamVjdC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iT2JqZWN0
UHJvcGVydGllc1NlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ik9iamVjdFBvcG92ZXJIZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJyZWFrcG9pbnRzU2lkZWJhclBhbmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik5h
dGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNhbGxTdGFj
a1NpZGViYXJQYW5lLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJTY29wZUNoYWluU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFu
ZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
V29ya2Vyc1NpZGViYXJQYW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJDb2xvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ1NTQ29tcGxldGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNTU0tleXdvcmRDb21wbGV0aW9ucy5q
cyI+PC9zY3JpcHQ+CkBAIC0xMTEsMTMgKzEwNyw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGVmYXVsdFRleHRFZGl0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNvdXJj
ZUZyYW1lLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJVSVNvdXJjZUNvZGVGcmFtZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTcGxpdFZpZXcuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRhYmJlZEVk
aXRvckNvbnRhaW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iU2NyaXB0c1BhbmVsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXZpc2lvbkhpc3RvcnlWaWV3LmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHRzTmF2aWdhdG9y
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJD
b25zb2xlUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkV4dGVuc2lvbkFQSS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iRXh0ZW5zaW9uQXVkaXRDYXRlZ29yeS5qcyI+PC9zY3JpcHQ+
CkBAIC0xNTAsMTIgKzE0MCwxMCBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlJlc291cmNlU2NyaXB0TWFwcGluZy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29tcGlsZXJTY3JpcHRNYXBwaW5n
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJT
QVNTU291cmNlTWFwcGluZy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iU2NyaXB0c1NlYXJjaFNjb3BlLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJET01BZ2VudC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGVzdENvbnRyb2xsZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRpYWxv
Zy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
R29Ub0xpbmVEaWFsb2cuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2lkZWJhck92ZXJsYXkuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNldHRp
bmdzU2NyZWVuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJTaG9ydGN1dHNTY3JlZW4uanMiPjwvc2NyaXB0PgpAQCAtMTY5LDggKzE1Nyw4IEBA
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxl
clJlZ2lzdHJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJTbmlwcGV0U3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2NyaXB0U25pcHBldE1vZGVsLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTdHlsZXNQYW5lbC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUHJvZ3Jlc3NC
YXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IlN0eWxlU291cmNlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGNsYXNzPSJkZXRhY2hl
ZCIgaWQ9Ii13ZWJraXQtd2ViLWluc3BlY3RvciI+CiAgICAgPGRpdiBpZD0idG9vbGJhciI+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4
IGVmMDRhYThmOTE2ODkxNjRlMDY1NmU4NGYyNzliOWY4MmNhMDA3ZjguLmFkMDU0MDQ2ZDFhMDZi
OGE1NTBjZTNiMmQ1YTQ5M2QxNmFhNzBhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00MCw3ICs0MCw3IEBAIHZhciBXZWJJbnNw
ZWN0b3IgPSB7CiAgICAgICAgIHZhciBlbGVtZW50cyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxE
ZXNjcmlwdG9yKCJlbGVtZW50cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWxlbWVudHMiKSwg
IkVsZW1lbnRzUGFuZWwiLCAiRWxlbWVudHNQYW5lbC5qcyIpOwogICAgICAgICB2YXIgcmVzb3Vy
Y2VzID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoInJlc291cmNlcyIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiUmVzb3VyY2VzIiksICJSZXNvdXJjZXNQYW5lbCIsICJSZXNvdXJj
ZXNQYW5lbC5qcyIpOwogICAgICAgICB2YXIgbmV0d29yayA9IG5ldyBXZWJJbnNwZWN0b3IuUGFu
ZWxEZXNjcmlwdG9yKCJuZXR3b3JrIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXR3b3JrIiks
ICJOZXR3b3JrUGFuZWwiLCAiTmV0d29ya1BhbmVsLmpzIik7Ci0gICAgICAgIHZhciBzY3JpcHRz
ID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IoInNjcmlwdHMiLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNvdXJjZXMiKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG5ldyBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsKCkpOworICAgICAgICB2YXIgc2NyaXB0cyA9IG5ldyBXZWJJbnNw
ZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJzY3JpcHRzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJT
b3VyY2VzIiksICJTY3JpcHRzUGFuZWwiLCAiU2NyaXB0c1BhbmVsLmpzIik7CiAgICAgICAgIHZh
ciB0aW1lbGluZSA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJ0aW1lbGluZSIs
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZWxpbmUiKSwgIlRpbWVsaW5lUGFuZWwiLCAiVGlt
ZWxpbmVQYW5lbC5qcyIpOwogICAgICAgICB2YXIgcHJvZmlsZXMgPSBuZXcgV2ViSW5zcGVjdG9y
LlBhbmVsRGVzY3JpcHRvcigicHJvZmlsZXMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2Zp
bGVzIiksICJQcm9maWxlc1BhbmVsIiwgIlByb2ZpbGVzUGFuZWwuanMiKTsKICAgICAgICAgdmFy
IGF1ZGl0cyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJhdWRpdHMiLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkF1ZGl0cyIpLCAiQXVkaXRzUGFuZWwiLCAiQXVkaXRzUGFuZWwu
anMiKTsKQEAgLTU0OCw2ICs1NDgsNyBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhD
YXBhYmlsaXRpZXMgPSBmdW5jdGlvbigpCiAgICAgSW5zcGVjdG9yQWdlbnQuZW5hYmxlKHNob3dJ
bml0aWFsUGFuZWwpOwogICAgIERhdGFiYXNlQWdlbnQuZW5hYmxlKCk7CiAgICAgRE9NU3RvcmFn
ZUFnZW50LmVuYWJsZSgpOworCiAgICAgaWYgKCFDYXBhYmlsaXRpZXMucHJvZmlsZXJDYXVzZXNS
ZWNvbXBpbGF0aW9uIHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQuZ2V0
KCkpCiAgICAgICAgIFByb2ZpbGVyQWdlbnQuZW5hYmxlKCk7CiAKQEAgLTczOCw3ICs3MzksNyBA
QCBXZWJJbnNwZWN0b3IuX3JlZ2lzdGVyU2hvcnRjdXRzID0gZnVuY3Rpb24oKQogICAgIHZhciBh
ZHZhbmNlZFNlYXJjaFNob3J0Y3V0ID0gV2ViSW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJv
bGxlci5jcmVhdGVTaG9ydGN1dCgpOwogICAgIHNlY3Rpb24uYWRkS2V5KGFkdmFuY2VkU2VhcmNo
U2hvcnRjdXQubmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggYWNyb3NzIGFsbCBz
b3VyY2VzIikpOwogCi0gICAgdmFyIG9wZW5SZXNvdXJjZVNob3J0Y3V0ID0gV2ViSW5zcGVjdG9y
Lk9wZW5SZXNvdXJjZURpYWxvZy5jcmVhdGVTaG9ydGN1dCgpOworICAgIHZhciBvcGVuUmVzb3Vy
Y2VTaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9y
KCJvIiwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEp
OwogICAgIHNlY3Rpb24uYWRkS2V5KG9wZW5SZXNvdXJjZVNob3J0Y3V0Lm5hbWUsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiR28gdG8gc291cmNlIikpOwogCiAgICAgaWYgKFdlYkluc3BlY3Rvci5p
c01hYygpKSB7CkBAIC0xMDIzLDcgKzEwMjQsNyBAQCBXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JM
b2NhdGlvbiA9IGZ1bmN0aW9uKGFuY2hvcikKICAgICB2YXIgcHJlZmVycmVkUGFuZWwgPSB0aGlz
LnBhbmVsc1thbmNob3IucHJlZmVycmVkUGFuZWxdOwogICAgIGlmIChwcmVmZXJyZWRQYW5lbCAm
JiBXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbkluUGFuZWwoYW5jaG9yLCBwcmVmZXJy
ZWRQYW5lbCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChXZWJJbnNwZWN0b3IuX3No
b3dBbmNob3JMb2NhdGlvbkluUGFuZWwoYW5jaG9yLCB0aGlzLnBhbmVscy5zY3JpcHRzKSkKKyAg
ICBpZiAoV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVsKGFuY2hvciwgdGhp
cy5wYW5lbCgic2NyaXB0cyIpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKFdlYklu
c3BlY3Rvci5fc2hvd0FuY2hvckxvY2F0aW9uSW5QYW5lbChhbmNob3IsIHRoaXMucGFuZWwoInJl
c291cmNlcyIpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggNjFlY2QxMmVhZWE1MWEwYTE4MDgxMWRhYjA0Y2MwMmMwZGMxMTY5Yi4uNjAxY2I2
MDkzMzM2MTgwNGU4Yzc1MDVjYjNmZjQxNmE5Yzc2YTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtODc2LDYgKzg3Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19lbGVtZW50c19qcycsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19yZXNvdXJj
ZXNfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0
ZWRfZGV2dG9vbHNfbmV0d29ya19qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19zY3JpcHRzX2pzJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX3RpbWVsaW5lX2pz
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2Rl
dnRvb2xzX3Byb2ZpbGVzX2pzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX2F1ZGl0c19qcycsCkBAIC05NjMsNiArOTY0LDcgQEAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRv
b2xzX2VsZW1lbnRzX2pzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
Y29uY2F0ZW5hdGVkX2RldnRvb2xzX3Jlc291cmNlc19qcycsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19uZXR3b3JrX2pzJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xz
X3NjcmlwdHNfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25j
YXRlbmF0ZWRfZGV2dG9vbHNfdGltZWxpbmVfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfcHJvZmlsZXNfanMnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfYXVk
aXRzX2pzJywKQEAgLTk4Niw2ICs5ODgsNyBAQAogICAgICAgICAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9FbGVtZW50c1BhbmVsLmpzJywKICAgICAgICAg
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvUmVzb3VyY2Vz
UGFuZWwuanMnLAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2Vz
L2luc3BlY3Rvci9OZXR3b3JrUGFuZWwuanMnLAorICAgICAgICAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9TY3JpcHRzUGFuZWwuanMnLAogICAgICAgICAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9UaW1lbGluZVBh
bmVsLmpzJywKICAgICAgICAgICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9p
bnNwZWN0b3IvUHJvZmlsZXNQYW5lbC5qcycsCiAgICAgICAgICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9yL0F1ZGl0c1BhbmVsLmpzJywKQEAgLTExNTksNiAr
MTE2MiwyMiBAQAogICAgICAgICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3RhcmdldF9uYW1lJzogJ2Nv
bmNhdGVuYXRlZF9kZXZ0b29sc19zY3JpcHRzX2pzJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5
cGUnOiAnbm9uZScsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb25zJzogW3sKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdjb25jYXRlbmF0ZV9kZXZ0b29sc19zY3Jp
cHRzX2pzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY3JpcHRfbmFtZSc6ICdzY3JpcHRz
L2lubGluZV9qc19pbXBvcnRzLnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dF9m
aWxlJzogJy4uLy4uL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMn
LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnPEAoX3NjcmlwdF9uYW1lKScsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJzxAKHdlYmluc3BlY3Rvcl9zY3JpcHRzX2pzX2ZpbGVzKScsCisgICAgICAgICAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaF9wYXRoJzogJy4uLy4u
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAn
b3V0cHV0cyc6IFsnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9TY3JpcHRzUGFu
ZWwuanMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8
QChfc2NyaXB0X25hbWUpJywgJzxAKF9pbnB1dF9maWxlKScsICc8QChfc2VhcmNoX3BhdGgpJywg
JzxAKF9vdXRwdXRzKSddLAorICAgICAgICAgICAgICAgICAgICB9XSwKKyAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgJ3RhcmdldF9uYW1l
JzogJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc190aW1lbGluZV9qcycsCiAgICAgICAgICAgICAgICAg
ICAgICd0eXBlJzogJ25vbmUnLAogICAgICAgICAgICAgICAgICAgICAnYWN0aW9ucyc6IFt7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZjRjOTQzNTlkNmQ0YWIwYmFkODVkZTYwY2NjNTUwMWMzYWM0ZmRhYi4uNzIxYjExNTJi
ODI1ZmIwNTVjYWFlNDJhOGZkNmI1NDA4Yjc1Y2IwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTA4LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGxvYWQgc2NyaXB0cyBwYW5lbCBsYXppbHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyBh
Y2Nlc3MgdG8gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzIGFuZCBsb2FkcyBpdCBsYXppbHku
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdHMtc29ydGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNl
bGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9lZGl0LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Rh
YmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRtbDoKKwogMjAxMi0wOC0xOSAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcmVwYXJl
IHNjcmlwdHMgcGFuZWwgdG8gYmUgbGF6aWx5IGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKaW5kZXggZjlhOWU4ZGViZDE1YzZi
M2YzZTZkOTc4NTkzODEzYjA2NTgyZmU1NC4uNDIwZTFjMTgwNzliYTA3MzA3NTVjNGE4OTlhOGQ0
ODEzNDA3NWExMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci10ZXN0LmpzCkBAIC0xNjAsNyArMTYwLDcgQEAgSW5zcGVjdG9yVGVzdC5fcmVzdW1l
ZFNjcmlwdCA9IGZ1bmN0aW9uKCkKIAogSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlID0g
ZnVuY3Rpb24oc2NyaXB0TmFtZSwgY2FsbGJhY2spCiB7Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5zY3JpcHRzOworICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5l
bCgic2NyaXB0cyIpOwogICAgIHZhciB1aVNvdXJjZUNvZGVzID0gcGFuZWwuX3dvcmtzcGFjZS51
aVNvdXJjZUNvZGVzKCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxl
bmd0aDsgKytpKSB7CiAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVzW2ldLnBhcnNlZFVSTC5sYXN0
UGF0aENvbXBvbmVudCA9PT0gc2NyaXB0TmFtZSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5kZXggOTRhNGUyY2RjNmYwZDlhNjg3
YmFhNWE1Njg3NTM3MWZhZjYyZGM3MS4uMGIzNThhYzQ5NGMzZTljZDMwYzRiNzRhMmI0MmNjZWJh
MGM1ODUwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
cy1wYW5lbC5odG1sCkBAIC05LDYgKzksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICAvLyBB
bHdheXMgdXNlIGluZGVudGF0aW9uIGluIHNjcmlwdHMgZHJvcCBib3gKICAgICBXZWJJbnNwZWN0
b3IuX2lzTWFjID0gZmFsc2U7CisgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIp
OwogCiAgICAgdmFyIHVpU291cmNlQ29kZXM7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbAppbmRleCA3ZmY0YmViMzQ4YTU1OTcz
OWU4NDJjM2I0YjFjMjNjMWM0N2U4MDFjLi4zMzdiNzBhOTZlYTc3ZmY1MTlkYTM5Y2QzMWExMmMz
M2ZhYzFkZDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0cy1zb3J0aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdHMtc29ydGluZy5odG1sCkBAIC04LDYgKzgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAg
ICAvLyBBbHdheXMgdXNlIGluZGVudGF0aW9uIGluIHNjcmlwdHMgZHJvcCBib3gKICAgICBXZWJJ
bnNwZWN0b3IuX2lzTWFjID0gZmFsc2U7CisgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2Ny
aXB0cyIpOwogCiAgICAgdmFyIG5hdmlnYXRvckZpbGVTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0
b3IuU2NyaXB0c05hdmlnYXRvcigpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcu
aHRtbAppbmRleCBiNzhlYjM2ZWQ1YjE0Yzc4ZTNkMmQ5YWMxMDkyN2NjNGE0MDg2NTMxLi5lNDJj
OTJiMmVjNTUwZmJhYjNhYjY0MDQ1ODc5Yzc1Y2IyNThmOTYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1k
aWFsb2ctZmlsdGVyaW5nLmh0bWwKQEAgLTUsNiArNSw4IEBACiAKIGZ1bmN0aW9uIHRlc3QoKQog
eworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKKwogICAgIGZ1bmN0aW9u
IGNoZWNrUXVlcnkodGl0bGUsIHF1ZXJ5LCBpbnB1dCkKICAgICB7CiAgICAgICAgIHZhciBvdXRw
dXQgPSBbXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZWRpdC1p
bnNwZWN0b3Itc3R5bGVzaGVldC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9l
ZGl0LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggOWIyOTQyMTMyMmFkN2MwZDk5MDcz
MmZkNWMxNmEyMDA5MjEyM2JmMy4uMjEyZWEwYTgyNzJkYTQ2YjU3YjFhZWMxZjI0ZjE4NzU2ZTY0
MzdkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LWluc3Bl
Y3Rvci1zdHlsZXNoZWV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9l
ZGl0LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMShub2RlKQogICAgIHsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5zY3JpcHRzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCBzb3Vy
Y2VDb2RlQWRkZWQpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWwoInNjcmlwdHMiKS5fd29y
a3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVy
LkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgc291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLmFkZFJ1bGUobm9kZS5pZCwgIiNpbnNwZWN0ZWQiLCBzdWNjZXNz
Q2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjayk7CiAKICAgICAgICAgZnVuY3Rpb24gc3VjY2Vzc0Nh
bGxiYWNrKCkgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVk
aXRvcnMtaGlzdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3Jz
LWhpc3RvcnkuaHRtbAppbmRleCAzYzRlZTE3NGMyMzk0NzI0OTZlMDBmZTMwYzdiNzdmZTM3YTQ4
NjAxLi5kMjE2ODdlMjFkYzdjNjIxY2EzYTc3NGY0ZWVlYjllNmMyMGY3MzkyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWwKQEAgLTQs
NiArNCw4IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiB2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKIHsKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CisKICAg
ICBmdW5jdGlvbiBkdW1wSGlzdG9yeShoaXN0b3J5KQogICAgIHsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgaGlzdG9yeSA9ICIgKyBKU09OLnN0cmluZ2lmeShoaXN0b3J5Ll9z
ZXJpYWxpemVUb09iamVjdCgpKSArICIiKTsK
</data>
<flag name="review"
          id="169573"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>