<?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>31513</bug_id>
          
          <creation_ts>2009-11-14 18:07:34 -0800</creation_ts>
          <short_desc>Refactor bugzilla-tool to allow for multiple queues</short_desc>
          <delta_ts>2009-11-16 00:08:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>
          
          <blocked>31422</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>163692</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-14 18:07:34 -0800</bug_when>
    <thetext>We should implement some infrastructure changes before settling on exactly what the other bots will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163693</commentid>
    <comment_count>1</comment_count>
      <attachid>43236</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-14 18:09:07 -0800</bug_when>
    <thetext>Created attachment 43236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163813</commentid>
    <comment_count>2</comment_count>
      <attachid>43236</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-15 17:05:20 -0800</bug_when>
    <thetext>Comment on attachment 43236
Patch

r=me

While I&apos;m not enough of a Python expert to spot every last thing, this all looks right to me. Please let me know if you&apos;d prefer that someone more engaged with the process of making the new tools review patches like this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163830</commentid>
    <comment_count>3</comment_count>
      <attachid>43236</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-15 18:35:59 -0800</bug_when>
    <thetext>Comment on attachment 43236
Patch

I&apos;m confused by this:
 350                 if options.try_queue:
 351                     pass # FIXME: Implement me!
 352                 else:
 353                     comment_text = WebKitLandingScripts.build_test_and_commit(tool.scm(), options)

It seems that that should just be factored out into its own method which is not call for hte try-queue.

LIkewise:
 365                 tool.bugs.reject_patch_from_commit_queue(patch[&apos;id&apos;], e.message_with_output())
 366             elif options.try_queue:
 367                 pass # FIXME: Implement me!

Why do you have:
809     def reject_patch(self, patch_id, message):
 810         return tool.bugs.reject_patch_from_commit_queue(patch_id, message)

If you&apos;re not using it?

Again here?
364376             if options.commit_queue:
365377                 patches = tool.bugs.fetch_commit_queue_patches_from_bug(bug_id, reject_invalid_patches=True)
 378             elif options.try_queue:
 379                 patches = [] # FIXME: Implement me!
366380             else:
367381                 patches = tool.bugs.fetch_reviewed_patches_from_bug(bug_id)
368382 

Seems like you had one design idea, then you changed your mind, and then never went back to clean up the first idea...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163837</commentid>
    <comment_count>4</comment_count>
      <attachid>43236</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-15 20:49:32 -0800</bug_when>
    <thetext>Comment on attachment 43236
Patch

Ok.  Let me try this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163857</commentid>
    <comment_count>5</comment_count>
      <attachid>43270</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-15 23:42:01 -0800</bug_when>
    <thetext>Created attachment 43270
Arise WorkQueue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163862</commentid>
    <comment_count>6</comment_count>
      <attachid>43270</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-15 23:56:37 -0800</bug_when>
    <thetext>Comment on attachment 43270
Arise WorkQueue

safe_to_proceed_with_work_item
maybe &quot;should_proceed_with_work_item&quot; would be better.

 862         # We don&apos;t have a patch id at this point, so try to grab the first patch off of the bug in question.

Would be better to update that comment to indicate that we plan to update the commit-queue to opearate off of patch ids in the near future.

819             make_option(&quot;--status-host&quot;, action=&quot;store&quot;, type=&quot;string&quot;, dest=&quot;status_host&quot;, default=StatusBot.default_host, help=&quot;Do not ask the user for confirmation before running the queue.  Dangerous!&quot;),
should probably move up into WorkQueue since it&apos;s used there.

_ensure_bug_log_closed

Seems like the wrong name for a generic queue.

_ensure_work_item_log_closed ?

This should eventually move to a new file.  It also eventually needs unit tests.

I trust you to make those edits before commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163864</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-16 00:08:29 -0800</bug_when>
    <thetext>	M	WebKitTools/ChangeLog
	M	WebKitTools/Scripts/bugzilla-tool
Committed r51012</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43236</attachid>
            <date>2009-11-14 18:09:07 -0800</date>
            <delta_ts>2009-11-15 23:41:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-31513-20091114180905.patch</filename>
            <type>text/plain</type>
            <size>15004</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlMTZhNTFmLi5jODA3ZGVjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTEt
MTQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBidWd6aWxsYS10b29sIHRvIGFs
bG93IGZvciBtdWx0aXBsZSBxdWV1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNTEzCisKKyAgICAgICAgQWJzdHJhY3RzIHRoZSBxdWV1ZSBtYWNo
aW5lIGZyb20gd2hhdCB0aGUgcXVldWUgaXMgZG9pbmcsIHRvIHNvbWUKKyAgICAgICAgZXh0ZW50
LiAgVGhpcyB3aWxsIGxldCB1cyBpbXBsZW1lbnQgbW9yZSB0aGFuIG9uZSBraW5kIG9mIHF1ZXVl
IGluIHRoZQorICAgICAgICBmdXR1cmUuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1Z3ppbGxhLXRv
b2w6CisKIDIwMDktMTEtMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9idWd6aWxsYS10b29sCmluZGV4IDZhZDI5ZTguLmFjMjU5OWIgMTAwNzU1Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L2J1Z3ppbGxhLXRvb2wKQEAgLTE4Myw3ICsxODMsOSBAQCBjbGFzcyBXZWJLaXRMYW5kaW5nU2Ny
aXB0czoKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLW5vLWJ1aWxkIiwgYWN0aW9uPSJzdG9y
ZV9mYWxzZSIsIGRlc3Q9ImJ1aWxkIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJDb21taXQgd2l0aG91
dCBidWlsZGluZyBmaXJzdCwgaW1wbGllcyAtLW5vLXRlc3QuIiksCiAgICAgICAgICAgICBtYWtl
X29wdGlvbigiLS1uby10ZXN0IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InRlc3QiLCBk
ZWZhdWx0PVRydWUsIGhlbHA9IkNvbW1pdCB3aXRob3V0IHJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0
cy4iKSwKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLXF1aWV0IiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwgZGVzdD0icXVpZXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJQcm9kdWNlIGxlc3MgY29u
c29sZSBvdXRwdXQuIiksCisgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1ub24taW50ZXJhY3Rp
dmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZhdWx0
PUZhbHNlLCBoZWxwPSJSdW4gd2l0aCBubyB1c2VyIGludGVyYWN0aW9uIChmb3IgdGhlIHRyeSBh
bmQgY29tbWl0IGJvdHMpLiIpLAogICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tY29tbWl0LXF1
ZXVlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iY29tbWl0X3F1ZXVlIiwgZGVmYXVsdD1G
YWxzZSwgaGVscD0iUnVuIGluIGNvbW1pdCBxdWV1ZSBtb2RlIChubyB1c2VyIGludGVyYWN0aW9u
KS4iKSwKKyAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLXRyeS1xdWV1ZSIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlc3Q9InRyeV9xdWV1ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlJ1biBpbiB0
cnkgcXVldWUgbW9kZSAobm8gdXNlciBpbnRlcmFjdGlvbikuIiksCiAgICAgICAgIF0KIAogICAg
IEBzdGF0aWNtZXRob2QKQEAgLTI1NCwxMiArMjU2LDE2IEBAIGNsYXNzIFdlYktpdExhbmRpbmdT
Y3JpcHRzOgogICAgICAgICAgICAgc2NtLmVuc3VyZV9jbGVhbl93b3JraW5nX2RpcmVjdG9yeShv
cHRpb25zLmZvcmNlX2NsZWFuKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGJ1aWxkX2Fu
ZF9jb21taXQoY2xzLCBzY20sIG9wdGlvbnMpOgorICAgIGRlZiBidWlsZF9hbmRfdGVzdChjbHMs
IHNjbSwgb3B0aW9ucyk6CiAgICAgICAgIGlmIG9wdGlvbnMuYnVpbGQ6CiAgICAgICAgICAgICBj
bHMuYnVpbGRfd2Via2l0KHF1aWV0PW9wdGlvbnMucXVpZXQpCiAgICAgICAgICAgICBpZiBvcHRp
b25zLnRlc3Q6CiAgICAgICAgICAgICAgICAgIyBXaGVuIHJ1bm5pbmcgdGhlIGNvbW1pdC1xdWV1
ZSB3ZSBkb24ndCB3YW50IHRvIGxhdW5jaCBTYWZhcmkgYW5kIHdlIHdhbnQgdG8gZXhpdCBhZnRl
ciB0aGUgZmlyc3QgZmFpbHVyZS4KLSAgICAgICAgICAgICAgICBjbHMucnVuX3dlYmtpdF90ZXN0
cyhsYXVuY2hfc2FmYXJpPW5vdCBvcHRpb25zLmNvbW1pdF9xdWV1ZSwgZmFpbF9mYXN0PW9wdGlv
bnMuY29tbWl0X3F1ZXVlLCBxdWlldD1vcHRpb25zLnF1aWV0KQorICAgICAgICAgICAgICAgIGNs
cy5ydW5fd2Via2l0X3Rlc3RzKGxhdW5jaF9zYWZhcmk9bm90IG9wdGlvbnMubm9uX2ludGVyYWN0
aXZlLCBmYWlsX2Zhc3Q9b3B0aW9ucy5ub25faW50ZXJhY3RpdmUsIHF1aWV0PW9wdGlvbnMucXVp
ZXQpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgYnVpbGRfdGVzdF9hbmRfY29tbWl0KGNs
cywgc2NtLCBvcHRpb25zKToKKyAgICAgICAgY2xzLmJ1aWxkX2FuZF90ZXN0KGNscywgc2NtLCBv
cHRpb25zKQogICAgICAgICBjb21taXRfbWVzc2FnZSA9IGNvbW1pdF9tZXNzYWdlX2Zvcl90aGlz
X2NvbW1pdChzY20pCiAgICAgICAgIGNvbW1pdF9sb2cgPSBzY20uY29tbWl0X3dpdGhfbWVzc2Fn
ZShjb21taXRfbWVzc2FnZS5tZXNzYWdlKCkpCiAgICAgICAgIHJldHVybiBidWdfY29tbWVudF9m
cm9tX2NvbW1pdF90ZXh0KHNjbSwgY29tbWl0X2xvZykKQEAgLTMwNSw3ICszMTEsNyBAQCBjbGFz
cyBMYW5kQW5kVXBkYXRlQnVnKENvbW1hbmQpOgogCiAgICAgICAgIHNlbGYudXBkYXRlX2NoYW5n
ZWxvZ3Nfd2l0aF9yZXZpZXdlcihvcHRpb25zLnJldmlld2VyLCBidWdfaWQsIHRvb2wpCiAKLSAg
ICAgICAgY29tbWVudF90ZXh0ID0gV2ViS2l0TGFuZGluZ1NjcmlwdHMuYnVpbGRfYW5kX2NvbW1p
dCh0b29sLnNjbSgpLCBvcHRpb25zKQorICAgICAgICBjb21tZW50X3RleHQgPSBXZWJLaXRMYW5k
aW5nU2NyaXB0cy5idWlsZF90ZXN0X2FuZF9jb21taXQodG9vbC5zY20oKSwgb3B0aW9ucykKICAg
ICAgICAgaWYgYnVnX2lkOgogICAgICAgICAgICAgbG9nKCJVcGRhdGluZyBidWcgJXMiICUgYnVn
X2lkKQogICAgICAgICAgICAgaWYgb3B0aW9ucy5jbG9zZV9idWc6CkBAIC0zMzcsMTIgKzM0Mywx
NSBAQCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWdzKENvbW1hbmQpOgogICAgICAgICAgICAgZm9y
IHBhdGNoIGluIHBhdGNoZXM6CiAgICAgICAgICAgICAgICAgdG9vbC5zY20oKS51cGRhdGVfd2Vi
a2l0KCkgIyBVcGRhdGUgYmVmb3JlIGV2ZXJ5IHBhdGNoIGluIGNhc2UgdGhlIHRyZWUgaGFzIGNo
YW5nZWQKICAgICAgICAgICAgICAgICBsb2coIkFwcGx5aW5nICVzIGZyb20gYnVnICVzLiIgJSAo
cGF0Y2hbJ2lkJ10sIGJ1Z19pZCkpCi0gICAgICAgICAgICAgICAgdG9vbC5zY20oKS5hcHBseV9w
YXRjaChwYXRjaCwgZm9yY2U9b3B0aW9ucy5jb21taXRfcXVldWUpCisgICAgICAgICAgICAgICAg
dG9vbC5zY20oKS5hcHBseV9wYXRjaChwYXRjaCwgZm9yY2U9b3B0aW9ucy5ub25faW50ZXJhY3Rp
dmUpCiAgICAgICAgICAgICAgICAgIyBNYWtlIHN1cmUgdGhlIHRyZWUgaXMgc3RpbGwgZ3JlZW4g
YWZ0ZXIgdXBkYXRpbmcsIGJlZm9yZSBidWlsZGluZyB0aGlzIHBhdGNoLgogICAgICAgICAgICAg
ICAgICMgVGhlIGZpcnN0IHBhdGNoIGVuZHMgdXAgY2hlY2tpbmcgdHJlZSBzdGF0dXMgdHdpY2Us
IGJ1dCB0aGF0J3MgT0suCiAgICAgICAgICAgICAgICAgV2ViS2l0TGFuZGluZ1NjcmlwdHMuZW5z
dXJlX2J1aWxkZXJzX2FyZV9ncmVlbih0b29sLmJ1aWxkYm90LCBvcHRpb25zKQotICAgICAgICAg
ICAgICAgIGNvbW1lbnRfdGV4dCA9IFdlYktpdExhbmRpbmdTY3JpcHRzLmJ1aWxkX2FuZF9jb21t
aXQodG9vbC5zY20oKSwgb3B0aW9ucykKLSAgICAgICAgICAgICAgICB0b29sLmJ1Z3MuY2xlYXJf
YXR0YWNobWVudF9mbGFncyhwYXRjaFsnaWQnXSwgY29tbWVudF90ZXh0KQorICAgICAgICAgICAg
ICAgIGlmIG9wdGlvbnMudHJ5X3F1ZXVlOgorICAgICAgICAgICAgICAgICAgICBwYXNzICMgRklY
TUU6IEltcGxlbWVudCBtZSEKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICBjb21tZW50X3RleHQgPSBXZWJLaXRMYW5kaW5nU2NyaXB0cy5idWlsZF90ZXN0X2FuZF9j
b21taXQodG9vbC5zY20oKSwgb3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgdG9vbC5idWdz
LmNsZWFyX2F0dGFjaG1lbnRfZmxhZ3MocGF0Y2hbJ2lkJ10sIGNvbW1lbnRfdGV4dCkKIAogICAg
ICAgICAgICAgaWYgb3B0aW9ucy5jbG9zZV9idWc6CiAgICAgICAgICAgICAgICAgdG9vbC5idWdz
LmNsb3NlX2J1Z19hc19maXhlZChidWdfaWQsICJBbGwgcmV2aWV3ZWQgcGF0Y2hlcyBoYXZlIGJl
ZW4gbGFuZGVkLiAgQ2xvc2luZyBidWcuIikKQEAgLTM1MSw4ICszNjAsMTEgQEAgY2xhc3MgTGFu
ZFBhdGNoZXNGcm9tQnVncyhDb21tYW5kKToKICAgICAgICAgICAgIGxvZygiWW91IGNhbiBwYXNz
IC0tbm8tYnVpbGQgdG8gc2tpcCBidWlsZGluZy90ZXN0aW5nIGFmdGVyIHVwZGF0ZSBpZiB5b3Ug
YmVsaWV2ZSB0aGUgbmV3IGNvbW1pdHMgZGlkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdHMuIikKICAg
ICAgICAgICAgIGNscy5oYW5kbGVkX2Vycm9yKGUpCiAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJv
ciwgZToKLSAgICAgICAgICAgICMgTWFyayB0aGUgcGF0Y2ggYXMgY29tbWl0LXF1ZXVlLSBhbmQg
Y29tbWVudCBpbiB0aGUgYnVnLgotICAgICAgICAgICAgdG9vbC5idWdzLnJlamVjdF9wYXRjaF9m
cm9tX2NvbW1pdF9xdWV1ZShwYXRjaFsnaWQnXSwgZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkpCisg
ICAgICAgICAgICAjIFJlamVjdCBwYXRjaCBmcm9tIHRoZSBxdWV1ZSBhbmQgY29tbWVudCBpbiB0
aGUgYnVnLgorICAgICAgICAgICAgaWYgb3B0aW9ucy5jb21taXRfcXVldWU6CisgICAgICAgICAg
ICAgICAgdG9vbC5idWdzLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShwYXRjaFsnaWQn
XSwgZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkpCisgICAgICAgICAgICBlbGlmIG9wdGlvbnMudHJ5
X3F1ZXVlOgorICAgICAgICAgICAgICAgIHBhc3MgIyBGSVhNRTogSW1wbGVtZW50IG1lIQogICAg
ICAgICAgICAgY2xzLmhhbmRsZWRfZXJyb3IoZSkKIAogICAgIEBzdGF0aWNtZXRob2QKQEAgLTM2
Myw2ICszNzUsOCBAQCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWdzKENvbW1hbmQpOgogICAgICAg
ICAgICAgcGF0Y2hlcyA9IFtdCiAgICAgICAgICAgICBpZiBvcHRpb25zLmNvbW1pdF9xdWV1ZToK
ICAgICAgICAgICAgICAgICBwYXRjaGVzID0gdG9vbC5idWdzLmZldGNoX2NvbW1pdF9xdWV1ZV9w
YXRjaGVzX2Zyb21fYnVnKGJ1Z19pZCwgcmVqZWN0X2ludmFsaWRfcGF0Y2hlcz1UcnVlKQorICAg
ICAgICAgICAgZWxpZiBvcHRpb25zLnRyeV9xdWV1ZToKKyAgICAgICAgICAgICAgICBwYXRjaGVz
ID0gW10gIyBGSVhNRTogSW1wbGVtZW50IG1lIQogICAgICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgICAgICBwYXRjaGVzID0gdG9vbC5idWdzLmZldGNoX3Jldmlld2VkX3BhdGNoZXNfZnJvbV9i
dWcoYnVnX2lkKQogCkBAIC01NTUsNyArNTY5LDcgQEAgY2xhc3MgUm9sbG91dENvbW1pdChDb21t
YW5kKToKICAgICAgICAgaWYgbm90IG9wdGlvbnMuY29tcGxldGVfcm9sbG91dDoKICAgICAgICAg
ICAgIGxvZygiXG5OT1RFOiBSb2xsb3V0IHN1cHBvcnQgaXMgZXhwZXJpbWVudGFsLlxuUGxlYXNl
IHZlcmlmeSB0aGUgcm9sbG91dCBkaWZmIGFuZCB1c2UgJ2J1Z3ppbGxhLXRvb2wgbGFuZC1kaWZm
ICVzJyB0byBjb21taXQgdGhlIHJvbGxvdXQuIiAlIGJ1Z19pZCkKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGNvbW1lbnRfdGV4dCA9IFdlYktpdExhbmRpbmdTY3JpcHRzLmJ1aWxkX2FuZF9j
b21taXQodG9vbC5zY20oKSwgb3B0aW9ucykKKyAgICAgICAgICAgIGNvbW1lbnRfdGV4dCA9IFdl
YktpdExhbmRpbmdTY3JpcHRzLmJ1aWxkX3Rlc3RfYW5kX2NvbW1pdCh0b29sLnNjbSgpLCBvcHRp
b25zKQogICAgICAgICAgICAgc2VsZi5fcmVvcGVuX2J1Z19hZnRlcl9yb2xsb3V0KHRvb2wsIGJ1
Z19pZCwgY29tbWVudF90ZXh0KQogCiAKQEAgLTY0NiwyMCArNjYwLDE3IEBAIGNsYXNzIENoZWNr
VHJlZVN0YXR1cyhDb21tYW5kKToKICAgICAgICAgICAgIHByaW50ICIlcyA6ICVzIiAlIChzdGF0
dXNfc3RyaW5nLmxqdXN0KDQpLCBidWlsZGVyWyduYW1lJ10pCiAKIAotY2xhc3MgTGFuZFBhdGNo
ZXNGcm9tQ29tbWl0UXVldWUoQ29tbWFuZCk6CitjbGFzcyBQcm9jZXNzUGF0Y2hlc0Zyb21RdWV1
ZShDb21tYW5kKToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBb
CiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1uby1jb25maXJtIiwgYWN0aW9uPSJzdG9yZV9m
YWxzZSIsIGRlc3Q9ImNvbmZpcm0iLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBhc2sgdGhl
IHVzZXIgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgcnVubmluZyB0aGUgcXVldWUuICBEYW5nZXJv
dXMhIiksCiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1zdGF0dXMtaG9zdCIsIGFjdGlvbj0i
c3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJzdGF0dXNfaG9zdCIsIGRlZmF1bHQ9U3RhdHVz
Qm90LmRlZmF1bHRfaG9zdCwgaGVscD0iRG8gbm90IGFzayB0aGUgdXNlciBmb3IgY29uZmlybWF0
aW9uIGJlZm9yZSBydW5uaW5nIHRoZSBxdWV1ZS4gIERhbmdlcm91cyEiKSwKICAgICAgICAgXQot
ICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdSdW4gdGhlIGNvbW1pdCBxdWV1ZS4nLCBv
cHRpb25zPW9wdGlvbnMpCisgICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ1J1biB0aGUg
JXMuJyAlIHNlbGYucXVldWVfbmFtZSwgb3B0aW9ucz1vcHRpb25zKQogICAgICAgICBzZWxmLl9v
cmlnaW5hbF9zdGRvdXQgPSBOb25lCiAgICAgICAgIHNlbGYuX29yaWdpbmFsX3N0ZGVyciA9IE5v
bmUKICAgICAgICAgc2VsZi5fZmlsZXNfZm9yX291dHB1dCA9IFtdCiAKLSAgICBxdWV1ZV9sb2df
cGF0aCA9ICdjb21taXRfcXVldWUubG9nJwotICAgIGJ1Z19sb2dzX2RpcmVjdG9yeSA9ICdjb21t
aXRfcXVldWVfbG9ncycKLQogICAgIGxvZ19kYXRlX2Zvcm1hdCA9ICIlWS0lbS0lZCAlSDolTTol
UyIKICAgICBzbGVlcF9kdXJhdGlvbl90ZXh0ID0gIjUgbWlucyIKICAgICBzZWNvbmRzX3RvX3Ns
ZWVwID0gMzAwCkBAIC02NzgsNyArNjg5LDcgQEAgY2xhc3MgTGFuZFBhdGNoZXNGcm9tQ29tbWl0
UXVldWUoQ29tbWFuZCk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9zbGVlcF9tZXNzYWdl
KGNscywgbWVzc2FnZSk6CiAgICAgICAgIHdha2VfdGltZSA9IGRhdGV0aW1lLm5vdygpICsgdGlt
ZWRlbHRhKHNlY29uZHM9Y2xzLnNlY29uZHNfdG9fc2xlZXApCi0gICAgICAgIHJldHVybiAiJXMg
U2xlZXBpbmcgdW50aWwgJXMgKCVzKS4iICUgKG1lc3NhZ2UsIHdha2VfdGltZS5zdHJmdGltZShj
bHMubG9nX2RhdGVfZm9ybWF0KSwgY2xzLnNsZWVwX2R1cmF0aW9uX3RleHQpCisgICAgICAgIHJl
dHVybiAiJXM6ICVzIFNsZWVwaW5nIHVudGlsICVzICglcykuIiAlIChzZWxmLnF1ZXVlX25hbWUs
IG1lc3NhZ2UsIHdha2VfdGltZS5zdHJmdGltZShjbHMubG9nX2RhdGVfZm9ybWF0KSwgY2xzLnNs
ZWVwX2R1cmF0aW9uX3RleHQpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgX3NsZWVwKGNs
cywgbWVzc2FnZSk6CkBAIC03MTAsMTQgKzcyMSwxNCBAQCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21D
b21taXRRdWV1ZShDb21tYW5kKToKICAgICAgICAgbG9nX2ZpbGUuY2xvc2UoKQogCiAgICAgZGVm
IGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIGxvZygiQ0FVVElP
TjogY29tbWl0LXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBpbiAlcyIgJSB0
b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgIGxvZygiQ0FVVElPTjogJXMgd2lsbCBk
aXNjYXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluICVzIiAlIChzZWxmLnF1ZXVlX25hbWUsIHRvb2wu
c2NtKCkuY2hlY2tvdXRfcm9vdCkpCiAgICAgICAgIGlmIG9wdGlvbnMuY29uZmlybToKICAgICAg
ICAgICAgIHJlc3BvbnNlID0gcmF3X2lucHV0KCJBcmUgeW91IHN1cmU/ICBUeXBlICd5ZXMnIHRv
IGNvbnRpbnVlOiAiKQogICAgICAgICAgICAgaWYgKHJlc3BvbnNlICE9ICd5ZXMnKToKICAgICAg
ICAgICAgICAgICBlcnJvcigiVXNlciBkZWNsaW5lZC4iKQogCiAgICAgICAgIHF1ZXVlX2xvZyA9
IHNlbGYuX2FkZF9sb2dfdG9fb3V0cHV0X3RlZShzZWxmLnF1ZXVlX2xvZ19wYXRoKQotICAgICAg
ICBsb2coIlJ1bm5pbmcgV2ViS2l0IENvbW1pdCBRdWV1ZS4gJXMiICUgZGF0ZXRpbWUubm93KCku
c3RyZnRpbWUoc2VsZi5sb2dfZGF0ZV9mb3JtYXQpKQorICAgICAgICBsb2coIlJ1bm5pbmcgV2Vi
S2l0ICVzLiAlcyIgJSAoc2VsZi5xdWV1ZV9uYW1lLCBkYXRldGltZS5ub3coKS5zdHJmdGltZShz
ZWxmLmxvZ19kYXRlX2Zvcm1hdCkpKQogCiAgICAgICAgIHNlbGYuc3RhdHVzX2JvdCA9IFN0YXR1
c0JvdChob3N0PW9wdGlvbnMuc3RhdHVzX2hvc3QpCiAKQEAgLTczMSwzMSArNzQyLDMxIEBAIGNs
YXNzIExhbmRQYXRjaGVzRnJvbUNvbW1pdFF1ZXVlKENvbW1hbmQpOgogICAgICAgICAgICAgIyBX
ZSBjYXRjaCBhbGwgZXhjZXB0aW9ucyBqdXN0IGluIGNhc2UuCiAgICAgICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAgICAgIyBGZXRjaCBwYXRjaGVzIGluc3RlYWQgb2YganVzdCBidWcgaWRzIHRv
IHRoYXQgd2UgdmFsaWRhdGUgcmV2aWV3ZXIvY29tbWl0dGVyIGZsYWdzIG9uIGV2ZXJ5IHBhdGNo
LgotICAgICAgICAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfcGF0Y2hlc19mcm9t
X2NvbW1pdF9xdWV1ZShyZWplY3RfaW52YWxpZF9wYXRjaGVzPVRydWUpCisgICAgICAgICAgICAg
ICAgcGF0Y2hlcyA9IHNlbGYuZmV0Y2hfcGF0Y2hlcygpCiAgICAgICAgICAgICAgICAgaWYgbm90
IGxlbihwYXRjaGVzKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1c19h
bmRfc2xlZXAoIkVtcHR5IHF1ZXVlLiIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0
ZV9zdGF0dXNfYW5kX3NsZWVwKCIlczogRW1wdHkgcXVldWUuIiAlIHNlbGYucXVldWVfbmFtZSkK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBwYXRjaF9pZHMg
PSBtYXAobGFtYmRhIHBhdGNoOiBwYXRjaFsnaWQnXSwgcGF0Y2hlcykKICAgICAgICAgICAgICAg
ICBmaXJzdF9idWdfaWQgPSBwYXRjaGVzWzBdWydidWdfaWQnXQotICAgICAgICAgICAgICAgIGxv
ZygiJXMgaW4gY29tbWl0IHF1ZXVlIFslc10iICUgKHBsdXJhbGl6ZSgncGF0Y2gnLCBsZW4ocGF0
Y2hlcykpLCAiLCAiLmpvaW4ocGF0Y2hfaWRzKSkpCisgICAgICAgICAgICAgICAgbG9nKCIlczog
JXMgaW4gcXVldWUgWyVzXSIgJSAoc2VsZi5xdWV1ZV9uYW1lLCBwbHVyYWxpemUoJ3BhdGNoJywg
bGVuKHBhdGNoZXMpKSwgIiwgIi5qb2luKHBhdGNoX2lkcykpKQogCiAgICAgICAgICAgICAgICAg
cmVkX2J1aWxkZXJzX25hbWVzID0gdG9vbC5idWlsZGJvdC5yZWRfY29yZV9idWlsZGVyc19uYW1l
cygpCiAgICAgICAgICAgICAgICAgaWYgcmVkX2J1aWxkZXJzX25hbWVzOgogICAgICAgICAgICAg
ICAgICAgICByZWRfYnVpbGRlcnNfbmFtZXMgPSBtYXAobGFtYmRhIG5hbWU6ICciJXMiJyAlIG5h
bWUsIHJlZF9idWlsZGVyc19uYW1lcykgIyBBZGQgcXVvdGVzIGFyb3VuZCB0aGUgbmFtZXMuCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXNfYW5kX3NsZWVwKCJCdWlsZGVy
cyBbJXNdIGFyZSByZWQuIFNlZSBodHRwOi8vYnVpbGQud2Via2l0Lm9yZy4iICUgIiwgIi5qb2lu
KHJlZF9idWlsZGVyc19uYW1lcykpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9z
dGF0dXNfYW5kX3NsZWVwKCIlczogQnVpbGRlcnMgWyVzXSBhcmUgcmVkLiBTZWUgaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcuIiAlIChzZWxmLnF1ZXVlX25hbWUsICIsICIuam9pbihyZWRfYnVpbGRl
cnNfbmFtZXMpKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAg
ICAgIHNlbGYuc3RhdHVzX2JvdC51cGRhdGVfc3RhdHVzKCJMYW5kaW5nIHBhdGNoZXMgZnJvbSBi
dWcgJXMuIiAlIGZpcnN0X2J1Z19pZCwgYnVnX2lkPWZpcnN0X2J1Z19pZCkKKyAgICAgICAgICAg
ICAgICBzZWxmLnN0YXR1c19ib3QudXBkYXRlX3N0YXR1cygiJXM6IFByb2Nlc3NpbmcgcGF0Y2hl
cyBmcm9tIGJ1ZyAlcy4iICUgKHNlbGYucXVldWVfbmFtZSwgZmlyc3RfYnVnX2lkKSwgYnVnX2lk
PWZpcnN0X2J1Z19pZCkKICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CiAgICAgICAg
ICAgICAgICAgIyBEb24ndCB0cnkgdGVsbCB0aGUgc3RhdHVzIGJvdCwgaW4gY2FzZSB0ZWxsaW5n
IGl0IGNhdXNlcyBhbiBleGNlcHRpb24uCi0gICAgICAgICAgICAgICAgc2VsZi5fc2xlZXAoIkV4
Y2VwdGlvbiB3aGlsZSBjaGVja2luZyBxdWV1ZSBhbmQgYm90czogJXMuIiAlIGUpCisgICAgICAg
ICAgICAgICAgc2VsZi5fc2xlZXAoIiVzOiBFeGNlcHRpb24gd2hpbGUgY2hlY2tpbmcgcXVldWUg
YW5kIGJvdHM6ICVzLiIgJSAoc2VsZi5xdWV1ZV9uYW1lLCBlKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZQogCiAgICAgICAgICAgICAjIFRyeSB0byBsYW5kIHBhdGNoZXMgb24gdGhlIGZpcnN0
IGJ1ZyBpbiB0aGUgcXVldWUgYmVmb3JlIGxvb3BpbmcKICAgICAgICAgICAgIGJ1Z19sb2dfcGF0
aCA9IG9zLnBhdGguam9pbihzZWxmLmJ1Z19sb2dzX2RpcmVjdG9yeSwgIiVzLmxvZyIgJSBmaXJz
dF9idWdfaWQpCiAgICAgICAgICAgICBidWdfbG9nID0gc2VsZi5fYWRkX2xvZ190b19vdXRwdXRf
dGVlKGJ1Z19sb2dfcGF0aCkKICAgICAgICAgICAgIGJ1Z3ppbGxhX3Rvb2xfcGF0aCA9IF9fZmls
ZV9fICMgcmUtZXhlY3V0ZSB0aGlzIHNjcmlwdAotICAgICAgICAgICAgYnVnemlsbGFfdG9vbF9h
cmdzID0gW2J1Z3ppbGxhX3Rvb2xfcGF0aCwgJ2xhbmQtcGF0Y2hlcycsICctLWZvcmNlLWNsZWFu
JywgJy0tY29tbWl0LXF1ZXVlJywgJy0tcXVpZXQnLCBmaXJzdF9idWdfaWRdCisgICAgICAgICAg
ICBidWd6aWxsYV90b29sX2FyZ3MgPSBbYnVnemlsbGFfdG9vbF9wYXRoLCAnbGFuZC1wYXRjaGVz
JywgJy0tZm9yY2UtY2xlYW4nLCAnLS1ub24taW50ZXJhY3RpdmUnLCBzZWxmLnF1ZXVlX29wdGlv
biwgJy0tcXVpZXQnLCBmaXJzdF9idWdfaWRdCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAg
ICAgICAgV2ViS2l0TGFuZGluZ1NjcmlwdHMucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1Z3ppbGxh
X3Rvb2xfYXJncykKICAgICAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKQEAgLTc2Mywx
NiArNzc0LDE2IEBAIGNsYXNzIExhbmRQYXRjaGVzRnJvbUNvbW1pdFF1ZXVlKENvbW1hbmQpOgog
ICAgICAgICAgICAgICAgICMgZXhpdCgyKSBpcyBhIHNwZWNpYWwgZXhpdCBjb2RlIHdlIHVzZSB0
byBpbmRpY2F0ZSB0aGF0IHRoZSBlcnJvciB3YXMgYWxyZWFkeSBoYW5kbGVkIGJ5IGxhbmQtcGF0
Y2hlcyBhbmQgd2Ugc2hvdWxkIGtlZXAgbG9vcGluZyBhbnl3YXkuCiAgICAgICAgICAgICAgICAg
aWYgZS5leGl0X2NvZGUgPT0gMjoKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAg
ICAgICAgICAgICBtZXNzYWdlID0gIlVuZXhwZWN0ZWQgZmFpbHVyZSB3aGVuIGxhbmRpbmcgcGF0
Y2ghICBQbGVhc2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0IGJ1Z3ppbGxhLXRvb2wuXG4lcyIgJSBlLm1l
c3NhZ2Vfd2l0aF9vdXRwdXQoKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiVW5leHBlY3Rl
ZCBmYWlsdXJlIHdoZW4gcHJvY2Vzc2luZyBwYXRjaCEgIFBsZWFzZSBmaWxlIGEgYnVnIGFnYWlu
c3QgYnVnemlsbGEtdG9vbC5cbiVzIiAlIGUubWVzc2FnZV93aXRoX291dHB1dCgpCiAgICAgICAg
ICAgICAgICAgIyBXZSBkb24ndCBoYXZlIGEgcGF0Y2ggaWQgYXQgdGhpcyBwb2ludCwgc28gdHJ5
IHRvIGdyYWIgdGhlIGZpcnN0IHBhdGNoIG9mZiBvZiB0aGUgYnVnIGluIHF1ZXN0aW9uLgotICAg
ICAgICAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfY29tbWl0X3F1ZXVlX3BhdGNo
ZXNfZnJvbV9idWcoZmlyc3RfYnVnX2lkKQorICAgICAgICAgICAgICAgIHBhdGNoZXMgPSBzZWxm
LmZldGNoX3BhdGNoZXNfZnJvbV9idWcoZmlyc3RfYnVnX2lkKQogICAgICAgICAgICAgICAgIG5v
bl9vYnNvbGV0ZV9wYXRjaGVzID0gZmlsdGVyKGxhbWJkYSBwYXRjaDogbm90IHBhdGNoWydpc19v
YnNvbGV0ZSddLCBwYXRjaGVzKQogICAgICAgICAgICAgICAgIGlmIG5vdCBsZW4obm9uX29ic29s
ZXRlX3BhdGNoZXMpOgogICAgICAgICAgICAgICAgICAgICAjIElmIHRoZXJlIGFyZSBubyBwYXRj
aGVzIGxlZnQgb24gdGhlIGJ1ZywgYXNzdW1lIGxhbmQtcGF0Y2hlcyBhbHJlYWR5IGNsb3NlZCBp
dCBiZWZvcmUgZHlpbmcsIGFuZCBqdXN0IGNvbnRpbnVlLgogICAgICAgICAgICAgICAgICAgICBs
b2cobWVzc2FnZSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAg
ICBmaXJzdF9wYXRjaF9pZCA9IG5vbl9vYnNvbGV0ZV9wYXRjaGVzWzBdWydpZCddCi0gICAgICAg
ICAgICAgICAgdG9vbC5idWdzLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShmaXJzdF9w
YXRjaF9pZCwgbWVzc2FnZSkKKyAgICAgICAgICAgICAgICBzZWxmLnJlamVjdF9wYXRjaChmaXJz
dF9wYXRjaF9pZCwgbWVzc2FnZSkKIAogICAgICAgICAjIE5ldmVyIHJlYWNoZWQuCiAgICAgICAg
IGlmIGJ1Z19sb2c6CkBAIC03ODAsNiArNzkxLDQ0IEBAIGNsYXNzIExhbmRQYXRjaGVzRnJvbUNv
bW1pdFF1ZXVlKENvbW1hbmQpOgogICAgICAgICBzZWxmLl9yZW1vdmVfbG9nX2Zyb21fb3V0cHV0
X3RlZShxdWV1ZV9sb2cpCiAKIAorY2xhc3MgTGFuZFBhdGNoZXNGcm9tQ29tbWl0UXVldWUoUHJv
Y2Vzc1BhdGNoZXNGcm9tUXVldWUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAg
UHJvY2Vzc1BhdGNoZXNGcm9tUXVldWUuX19pbml0X18oc2VsZikKKworICAgIHF1ZXVlX25hbWUg
PSAiQ29tbWl0IFF1ZXVlIgorICAgIHF1ZXVlX29wdGlvbiA9ICItLWNvbW1pdC1xdWV1ZSIKKyAg
ICBxdWV1ZV9sb2dfcGF0aCA9ICdjb21taXRfcXVldWUubG9nJworICAgIGJ1Z19sb2dzX2RpcmVj
dG9yeSA9ICdjb21taXRfcXVldWVfbG9ncycKKworICAgIGRlZiBmZXRjaF9wYXRjaGVzKHNlbGYp
OgorICAgICAgICByZXR1cm4gdG9vbC5idWdzLmZldGNoX3BhdGNoZXNfZnJvbV9jb21taXRfcXVl
dWUocmVqZWN0X2ludmFsaWRfcGF0Y2hlcz1UcnVlKQorCisgICAgZGVmIGZldGNoX3BhdGNoZXNf
ZnJvbV9idWcoc2VsZiwgYnVnX2lkKToKKyAgICAgICAgcmV0dXJuIHRvb2wuYnVncy5mZXRjaF9j
b21taXRfcXVldWVfcGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQpCisKKyAgICBkZWYgcmVqZWN0X3Bh
dGNoKHNlbGYsIHBhdGNoX2lkLCBtZXNzYWdlKToKKyAgICAgICAgcmV0dXJuIHRvb2wuYnVncy5y
ZWplY3RfcGF0Y2hfZnJvbV9jb21taXRfcXVldWUocGF0Y2hfaWQsIG1lc3NhZ2UpCisKKworY2xh
c3MgVHJ5UGF0Y2hlc0Zyb21UcnlRdWV1ZShQcm9jZXNzUGF0Y2hlc0Zyb21RdWV1ZSk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBQcm9jZXNzUGF0Y2hlc0Zyb21RdWV1ZS5fX2lu
aXRfXyhzZWxmKQorCisgICAgcXVldWVfbmFtZSA9ICJUcnkgUXVldWUiCisgICAgcXVldWVfb3B0
aW9uID0gIi0tdHJ5LXF1ZXVlIgorICAgIHF1ZXVlX2xvZ19wYXRoID0gJ3RyeV9xdWV1ZS5sb2cn
CisgICAgYnVnX2xvZ3NfZGlyZWN0b3J5ID0gJ3RyeV9xdWV1ZV9sb2dzJworCisgICAgZGVmIGZl
dGNoX3BhdGNoZXMoc2VsZik6CisgICAgICAgIHJldHVybiBbXSAjIEZJWE1FOiBJbXBsZW1lbnQg
bWUhCisKKyAgICBkZWYgZmV0Y2hfcGF0Y2hlc19mcm9tX2J1ZyhzZWxmLCBidWdfaWQpOgorICAg
ICAgICByZXR1cm4gW10gIyBGSVhNRTogSW1wbGVtZW50IG1lIQorCisgICAgZGVmIHJlamVjdF9w
YXRjaChzZWxmLCBwYXRjaF9pZCwgbWVzc2FnZSk6CisgICAgICAgIHBhc3MgIyBGSVhNRTogSW1w
bGVtZW50IG1lIQorCisKIGNsYXNzIE5vbldyYXBwaW5nRXBpbG9nSW5kZW50ZWRIZWxwRm9ybWF0
dGVyKEluZGVudGVkSGVscEZvcm1hdHRlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAg
ICAgICBJbmRlbnRlZEhlbHBGb3JtYXR0ZXIuX19pbml0X18oc2VsZikKQEAgLTgxOCw2ICs4Njcs
NyBAQCBjbGFzcyBCdWd6aWxsYVRvb2w6CiAgICAgICAgICAgICB7ICduYW1lJyA6ICdwb3N0LWNv
bW1pdHMnLCAnb2JqZWN0JyA6IFBvc3RDb21taXRzQXNQYXRjaGVzVG9CdWcoKSB9LAogICAgICAg
ICAgICAgeyAnbmFtZScgOiAndHJlZS1zdGF0dXMnLCAnb2JqZWN0JyA6IENoZWNrVHJlZVN0YXR1
cygpIH0sCiAgICAgICAgICAgICB7ICduYW1lJyA6ICdjb21taXQtcXVldWUnLCAnb2JqZWN0JyA6
IExhbmRQYXRjaGVzRnJvbUNvbW1pdFF1ZXVlKCkgfSwKKyAgICAgICAgICAgIHsgJ25hbWUnIDog
J3RyeS1xdWV1ZScsICdvYmplY3QnIDogVHJ5UGF0Y2hlc0Zyb21UcnlRdWV1ZSgpIH0sCiAgICAg
ICAgICAgICB7ICduYW1lJyA6ICdyb2xsb3V0JywgJ29iamVjdCcgOiBSb2xsb3V0Q29tbWl0KCkg
fSwKICAgICAgICAgXQ==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43270</attachid>
            <date>2009-11-15 23:42:01 -0800</date>
            <delta_ts>2009-11-15 23:56:37 -0800</delta_ts>
            <desc>Arise WorkQueue</desc>
            <filename>bug-31513-20091115234200.patch</filename>
            <type>text/plain</type>
            <size>15044</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxNDNmZmM0Li5mZjVlYzI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTEt
MTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBidWd6aWxsYS10b29sIHRvIGFs
bG93IGZvciBtdWx0aXBsZSBxdWV1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNTEzCisKKyAgICAgICAgRGl2aWRlIHRoZSBjb21taXQgcXVldWUg
Y2xhc3MgaW50byB0aHJlZSBjbGFzcyB0byBtYWtlIGNyZWF0aW5nCisgICAgICAgIGFkZGl0aW9u
YWwgcXVldWVzIGVhc2llci4KKworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKwog
MjAwOS0xMS0xNSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy9idWd6aWxsYS10b29sIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29s
CmluZGV4IGVhNGE5ODEuLjJkMzU2N2UgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
YnVnemlsbGEtdG9vbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKQEAg
LTY3NCwyMyArNjc0LDI5IEBAIGNsYXNzIENoZWNrVHJlZVN0YXR1cyhDb21tYW5kKToKICAgICAg
ICAgICAgIHByaW50ICIlcyA6ICVzIiAlIChzdGF0dXNfc3RyaW5nLmxqdXN0KDQpLCBidWlsZGVy
WyduYW1lJ10pCiAKIAotY2xhc3MgTGFuZFBhdGNoZXNGcm9tQ29tbWl0UXVldWUoQ29tbWFuZCk6
CitjbGFzcyBPdXRwdXRUZWU6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBvcHRp
b25zID0gWwotICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tbm8tY29uZmlybSIsIGFjdGlvbj0i
c3RvcmVfZmFsc2UiLCBkZXN0PSJjb25maXJtIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qg
YXNrIHRoZSB1c2VyIGZvciBjb25maXJtYXRpb24gYmVmb3JlIHJ1bm5pbmcgdGhlIHF1ZXVlLiAg
RGFuZ2Vyb3VzISIpLAotICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tc3RhdHVzLWhvc3QiLCBh
Y3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0ic3RhdHVzX2hvc3QiLCBkZWZhdWx0
PVN0YXR1c0JvdC5kZWZhdWx0X2hvc3QsIGhlbHA9IkRvIG5vdCBhc2sgdGhlIHVzZXIgZm9yIGNv
bmZpcm1hdGlvbiBiZWZvcmUgcnVubmluZyB0aGUgcXVldWUuICBEYW5nZXJvdXMhIiksCi0gICAg
ICAgIF0KLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAnUnVuIHRoZSBjb21taXQgcXVl
dWUuJywgb3B0aW9ucz1vcHRpb25zKQogICAgICAgICBzZWxmLl9vcmlnaW5hbF9zdGRvdXQgPSBO
b25lCiAgICAgICAgIHNlbGYuX29yaWdpbmFsX3N0ZGVyciA9IE5vbmUKICAgICAgICAgc2VsZi5f
ZmlsZXNfZm9yX291dHB1dCA9IFtdCiAKLSAgICBxdWV1ZV9sb2dfcGF0aCA9ICdjb21taXRfcXVl
dWUubG9nJwotICAgIGJ1Z19sb2dzX2RpcmVjdG9yeSA9ICdjb21taXRfcXVldWVfbG9ncycKKyAg
ICBkZWYgYWRkX2xvZyhzZWxmLCBwYXRoKToKKyAgICAgICAgbG9nX2ZpbGUgPSBzZWxmLl9vcGVu
X2xvZ19maWxlKHBhdGgpCisgICAgICAgIHNlbGYuX2ZpbGVzX2Zvcl9vdXRwdXQuYXBwZW5kKGxv
Z19maWxlKQorICAgICAgICBzZWxmLl90ZWVfb3V0cHV0c190b19maWxlcyhzZWxmLl9maWxlc19m
b3Jfb3V0cHV0KQorICAgICAgICByZXR1cm4gbG9nX2ZpbGUKIAotICAgIGxvZ19kYXRlX2Zvcm1h
dCA9ICIlWS0lbS0lZCAlSDolTTolUyIKLSAgICBzbGVlcF9kdXJhdGlvbl90ZXh0ID0gIjUgbWlu
cyIKLSAgICBzZWNvbmRzX3RvX3NsZWVwID0gMzAwCisgICAgZGVmIHJlbW92ZV9sb2coc2VsZiwg
bG9nX2ZpbGUpOgorICAgICAgICBzZWxmLl9maWxlc19mb3Jfb3V0cHV0LnJlbW92ZShsb2dfZmls
ZSkKKyAgICAgICAgc2VsZi5fdGVlX291dHB1dHNfdG9fZmlsZXMoc2VsZi5fZmlsZXNfZm9yX291
dHB1dCkKKyAgICAgICAgbG9nX2ZpbGUuY2xvc2UoKQorCisgICAgQHN0YXRpY21ldGhvZAorICAg
IGRlZiBfb3Blbl9sb2dfZmlsZShsb2dfcGF0aCk6CisgICAgICAgIChsb2dfZGlyZWN0b3J5LCBs
b2dfbmFtZSkgPSBvcy5wYXRoLnNwbGl0KGxvZ19wYXRoKQorICAgICAgICBpZiBsb2dfZGlyZWN0
b3J5IGFuZCBub3Qgb3MucGF0aC5leGlzdHMobG9nX2RpcmVjdG9yeSk6CisgICAgICAgICAgICBv
cy5tYWtlZGlycyhsb2dfZGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gb3Blbihsb2dfcGF0aCwg
J2ErJykKIAogICAgIGRlZiBfdGVlX291dHB1dHNfdG9fZmlsZXMoc2VsZiwgZmlsZXMpOgogICAg
ICAgICBpZiBub3Qgc2VsZi5fb3JpZ2luYWxfc3Rkb3V0OgpAQCAtNzAzLDExMCArNzA5LDE3MSBA
QCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21Db21taXRRdWV1ZShDb21tYW5kKToKICAgICAgICAgICAg
IHN5cy5zdGRvdXQgPSBzZWxmLl9vcmlnaW5hbF9zdGRvdXQKICAgICAgICAgICAgIHN5cy5zdGRl
cnIgPSBzZWxmLl9vcmlnaW5hbF9zdGRlcnIKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBf
c2xlZXBfbWVzc2FnZShjbHMsIG1lc3NhZ2UpOgotICAgICAgICB3YWtlX3RpbWUgPSBkYXRldGlt
ZS5ub3coKSArIHRpbWVkZWx0YShzZWNvbmRzPWNscy5zZWNvbmRzX3RvX3NsZWVwKQotICAgICAg
ICByZXR1cm4gIiVzIFNsZWVwaW5nIHVudGlsICVzICglcykuIiAlIChtZXNzYWdlLCB3YWtlX3Rp
bWUuc3RyZnRpbWUoY2xzLmxvZ19kYXRlX2Zvcm1hdCksIGNscy5zbGVlcF9kdXJhdGlvbl90ZXh0
KQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9zbGVlcChjbHMsIG1lc3NhZ2UpOgotICAg
ICAgICBsb2coY2xzLl9zbGVlcF9tZXNzYWdlKG1lc3NhZ2UpKQotICAgICAgICB0aW1lLnNsZWVw
KGNscy5zZWNvbmRzX3RvX3NsZWVwKQorY2xhc3MgV29ya1F1ZXVlRGVsZWdhdGU6CisgICAgZGVm
IHF1ZXVlX2xvZ19wYXRoKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
LCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAotICAgIGRlZiBfdXBkYXRlX3N0YXR1c19h
bmRfc2xlZXAoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIHN0YXR1c19tZXNzYWdlID0gc2VsZi5f
c2xlZXBfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICBzZWxmLnN0YXR1c19ib3QudXBkYXRlX3N0
YXR1cyhzdGF0dXNfbWVzc2FnZSkKLSAgICAgICAgbG9nKHN0YXR1c19tZXNzYWdlKQotICAgICAg
ICB0aW1lLnNsZWVwKHNlbGYuc2Vjb25kc190b19zbGVlcCkKKyAgICBkZWYgYnVnX2xvZ3NfZGly
ZWN0b3J5KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xh
c3NlcyBtdXN0IGltcGxlbWVudCIKIAotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX29wZW5f
bG9nX2ZpbGUobG9nX3BhdGgpOgotICAgICAgICAobG9nX2RpcmVjdG9yeSwgbG9nX25hbWUpID0g
b3MucGF0aC5zcGxpdChsb2dfcGF0aCkKLSAgICAgICAgaWYgbG9nX2RpcmVjdG9yeSBhbmQgbm90
IG9zLnBhdGguZXhpc3RzKGxvZ19kaXJlY3RvcnkpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMo
bG9nX2RpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIG9wZW4obG9nX3BhdGgsICdhKycpCisgICAg
ZGVmIHN0YXR1c19ob3N0KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
LCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAotICAgIGRlZiBfYWRkX2xvZ190b19vdXRw
dXRfdGVlKHNlbGYsIHBhdGgpOgotICAgICAgICBsb2dfZmlsZSA9IHNlbGYuX29wZW5fbG9nX2Zp
bGUocGF0aCkKLSAgICAgICAgc2VsZi5fZmlsZXNfZm9yX291dHB1dC5hcHBlbmQobG9nX2ZpbGUp
Ci0gICAgICAgIHNlbGYuX3RlZV9vdXRwdXRzX3RvX2ZpbGVzKHNlbGYuX2ZpbGVzX2Zvcl9vdXRw
dXQpCi0gICAgICAgIHJldHVybiBsb2dfZmlsZQorICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNl
bGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0
IGltcGxlbWVudCIKIAotICAgIGRlZiBfcmVtb3ZlX2xvZ19mcm9tX291dHB1dF90ZWUoc2VsZiwg
bG9nX2ZpbGUpOgotICAgICAgICBzZWxmLl9maWxlc19mb3Jfb3V0cHV0LnJlbW92ZShsb2dfZmls
ZSkKLSAgICAgICAgc2VsZi5fdGVlX291dHB1dHNfdG9fZmlsZXMoc2VsZi5fZmlsZXNfZm9yX291
dHB1dCkKLSAgICAgICAgbG9nX2ZpbGUuY2xvc2UoKQorICAgIGRlZiBuZXh0X3dvcmtfaXRlbShz
ZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVz
dCBpbXBsZW1lbnQiCiAKLSAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29s
KToKLSAgICAgICAgbG9nKCJDQVVUSU9OOiBjb21taXQtcXVldWUgd2lsbCBkaXNjYXJkIGFsbCBs
b2NhbCBjaGFuZ2VzIGluICVzIiAlIHRvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKLSAgICAgICAg
aWYgb3B0aW9ucy5jb25maXJtOgotICAgICAgICAgICAgcmVzcG9uc2UgPSByYXdfaW5wdXQoIkFy
ZSB5b3Ugc3VyZT8gIFR5cGUgJ3llcycgdG8gY29udGludWU6ICIpCi0gICAgICAgICAgICBpZiAo
cmVzcG9uc2UgIT0gJ3llcycpOgotICAgICAgICAgICAgICAgIGVycm9yKCJVc2VyIGRlY2xpbmVk
LiIpCisgICAgZGVmIHNhZmVfdG9fcHJvY2VlZF93aXRoX3dvcmtfaXRlbShzZWxmLCB3b3JrX2l0
ZW0pOgorICAgICAgICAjIHJldHVybnMgKHNhZmVfdG9fcHJvY2VlZCwgd2FpdGluZ19tZXNzYWdl
LCBidWdfaWQpCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2Vz
IG11c3QgaW1wbGVtZW50IgorCisgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHdvcmtf
aXRlbSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11
c3QgaW1wbGVtZW50IgorCisgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYsIHdv
cmtfaXRlbSwgbWVzc2FnZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJz
dWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCi0gICAgICAgIHF1ZXVlX2xvZyA9IHNlbGYuX2Fk
ZF9sb2dfdG9fb3V0cHV0X3RlZShzZWxmLnF1ZXVlX2xvZ19wYXRoKQotICAgICAgICBsb2coIlJ1
bm5pbmcgV2ViS2l0IENvbW1pdCBRdWV1ZS4gJXMiICUgZGF0ZXRpbWUubm93KCkuc3RyZnRpbWUo
c2VsZi5sb2dfZGF0ZV9mb3JtYXQpKQogCi0gICAgICAgIHNlbGYuc3RhdHVzX2JvdCA9IFN0YXR1
c0JvdChob3N0PW9wdGlvbnMuc3RhdHVzX2hvc3QpCitjbGFzcyBXb3JrUXVldWU6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlKToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxl
Z2F0ZQorICAgICAgICBzZWxmLl9vdXRwdXRfdGVlID0gT3V0cHV0VGVlKCkKIAotICAgICAgICBi
dWdfbG9nID0gTm9uZQorICAgIGxvZ19kYXRlX2Zvcm1hdCA9ICIlWS0lbS0lZCAlSDolTTolUyIK
KyAgICBzbGVlcF9kdXJhdGlvbl90ZXh0ID0gIjUgbWlucyIKKyAgICBzZWNvbmRzX3RvX3NsZWVw
ID0gMzAwCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLl9iZWdpbl9sb2dnaW5n
KCkKKyAgICAgICAgc2VsZi5zdGF0dXNfYm90ID0gU3RhdHVzQm90KGhvc3Q9c2VsZi5fZGVsZWdh
dGUuc3RhdHVzX2hvc3QoKSkKKworICAgICAgICBzZWxmLl9kZWxlZ2F0ZS5iZWdpbl93b3JrX3F1
ZXVlKCkKICAgICAgICAgd2hpbGUgKFRydWUpOgotICAgICAgICAgICAgIyBJZiB3ZSBzdGlsbCBo
YXZlIGEgYnVnIGxvZyBvcGVuIGZyb20gdGhlIGxhc3QgbG9vcCwgY2xvc2UgaXQuCi0gICAgICAg
ICAgICBpZiBidWdfbG9nOgotICAgICAgICAgICAgICAgIHNlbGYuX3JlbW92ZV9sb2dfZnJvbV9v
dXRwdXRfdGVlKGJ1Z19sb2cpCi0gICAgICAgICAgICAgICAgYnVnX2xvZyA9IE5vbmUKLSAgICAg
ICAgICAgICMgRWl0aGVyIG9mIHRoZXNlIGNhbGxzIGNvdWxkIHRocm93IFVSTEVycm9yIHdoaWNo
IHNob3VsZG4ndCBzdG9wIHRoZSBxdWV1ZS4KLSAgICAgICAgICAgICMgV2UgY2F0Y2ggYWxsIGV4
Y2VwdGlvbnMganVzdCBpbiBjYXNlLgorICAgICAgICAgICAgc2VsZi5fZW5zdXJlX2J1Z19sb2df
Y2xvc2VkKCkKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAjIEZldGNoIHBhdGNo
ZXMgaW5zdGVhZCBvZiBqdXN0IGJ1ZyBpZHMgdG8gdGhhdCB3ZSB2YWxpZGF0ZSByZXZpZXdlci9j
b21taXR0ZXIgZmxhZ3Mgb24gZXZlcnkgcGF0Y2guCi0gICAgICAgICAgICAgICAgcGF0Y2hlcyA9
IHRvb2wuYnVncy5mZXRjaF9wYXRjaGVzX2Zyb21fY29tbWl0X3F1ZXVlKHJlamVjdF9pbnZhbGlk
X3BhdGNoZXM9VHJ1ZSkKLSAgICAgICAgICAgICAgICBpZiBub3QgbGVuKHBhdGNoZXMpOgorICAg
ICAgICAgICAgICAgIHdvcmtfaXRlbSA9IHNlbGYuX2RlbGVnYXRlLm5leHRfd29ya19pdGVtKCkK
KyAgICAgICAgICAgICAgICBpZiBub3Qgd29ya19pdGVtOgogICAgICAgICAgICAgICAgICAgICBz
ZWxmLl91cGRhdGVfc3RhdHVzX2FuZF9zbGVlcCgiRW1wdHkgcXVldWUuIikKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBwYXRjaF9pZHMgPSBtYXAobGFtYmRh
IHBhdGNoOiBwYXRjaFsnaWQnXSwgcGF0Y2hlcykKLSAgICAgICAgICAgICAgICBmaXJzdF9idWdf
aWQgPSBwYXRjaGVzWzBdWydidWdfaWQnXQotICAgICAgICAgICAgICAgIGxvZygiJXMgaW4gY29t
bWl0IHF1ZXVlIFslc10iICUgKHBsdXJhbGl6ZSgncGF0Y2gnLCBsZW4ocGF0Y2hlcykpLCAiLCAi
LmpvaW4ocGF0Y2hfaWRzKSkpCi0KLSAgICAgICAgICAgICAgICByZWRfYnVpbGRlcnNfbmFtZXMg
PSB0b29sLmJ1aWxkYm90LnJlZF9jb3JlX2J1aWxkZXJzX25hbWVzKCkKLSAgICAgICAgICAgICAg
ICBpZiByZWRfYnVpbGRlcnNfbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIHJlZF9idWlsZGVy
c19uYW1lcyA9IG1hcChsYW1iZGEgbmFtZTogJyIlcyInICUgbmFtZSwgcmVkX2J1aWxkZXJzX25h
bWVzKSAjIEFkZCBxdW90ZXMgYXJvdW5kIHRoZSBuYW1lcy4KLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fdXBkYXRlX3N0YXR1c19hbmRfc2xlZXAoIkJ1aWxkZXJzIFslc10gYXJlIHJlZC4gU2Vl
IGh0dHA6Ly9idWlsZC53ZWJraXQub3JnLiIgJSAiLCAiLmpvaW4ocmVkX2J1aWxkZXJzX25hbWVz
KSkKKyAgICAgICAgICAgICAgICAoc2FmZV90b19wcm9jZWVkLCB3YWl0aW5nX21lc3NhZ2UsIGJ1
Z19pZCkgPSBzZWxmLl9kZWxlZ2F0ZS5zYWZlX3RvX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0od29y
a19pdGVtKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzYWZlX3RvX3Byb2NlZWQ6CisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXNfYW5kX3NsZWVwKHdhaXRpbmdfbWVzc2Fn
ZSwgYnVnX2lnPWJ1Z19pZCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAg
ICAgICAgICAgIHNlbGYuc3RhdHVzX2JvdC51cGRhdGVfc3RhdHVzKCJMYW5kaW5nIHBhdGNoZXMg
ZnJvbSBidWcgJXMuIiAlIGZpcnN0X2J1Z19pZCwgYnVnX2lkPWZpcnN0X2J1Z19pZCkKKyAgICAg
ICAgICAgICAgICBzZWxmLnN0YXR1c19ib3QudXBkYXRlX3N0YXR1cyh3YWl0aW5nX21lc3NhZ2Us
IGJ1Z19pZD1idWdfaWQpCiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgogICAgICAg
ICAgICAgICAgICMgRG9uJ3QgdHJ5IHRlbGwgdGhlIHN0YXR1cyBib3QsIGluIGNhc2UgdGVsbGlu
ZyBpdCBjYXVzZXMgYW4gZXhjZXB0aW9uLgotICAgICAgICAgICAgICAgIHNlbGYuX3NsZWVwKCJF
eGNlcHRpb24gd2hpbGUgY2hlY2tpbmcgcXVldWUgYW5kIGJvdHM6ICVzLiIgJSBlKQorICAgICAg
ICAgICAgICAgIHNlbGYuX3NsZWVwKCJFeGNlcHRpb24gd2hpbGUgcHJlcGFyaW5nIHF1ZXVlOiAl
cy4iICUgZSkKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICAjIFRyeSB0
byBsYW5kIHBhdGNoZXMgb24gdGhlIGZpcnN0IGJ1ZyBpbiB0aGUgcXVldWUgYmVmb3JlIGxvb3Bp
bmcKLSAgICAgICAgICAgIGJ1Z19sb2dfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLmJ1Z19sb2dz
X2RpcmVjdG9yeSwgIiVzLmxvZyIgJSBmaXJzdF9idWdfaWQpCi0gICAgICAgICAgICBidWdfbG9n
ID0gc2VsZi5fYWRkX2xvZ190b19vdXRwdXRfdGVlKGJ1Z19sb2dfcGF0aCkKLSAgICAgICAgICAg
IGJ1Z3ppbGxhX3Rvb2xfcGF0aCA9IF9fZmlsZV9fICMgcmUtZXhlY3V0ZSB0aGlzIHNjcmlwdAot
ICAgICAgICAgICAgYnVnemlsbGFfdG9vbF9hcmdzID0gW2J1Z3ppbGxhX3Rvb2xfcGF0aCwgJ2xh
bmQtcGF0Y2hlcycsICctLWZvcmNlLWNsZWFuJywgJy0tY29tbWl0LXF1ZXVlJywgJy0tcXVpZXQn
LCBmaXJzdF9idWdfaWRdCisgICAgICAgICAgICBzZWxmLl9vcGVuX2J1Z19sb2coYnVnX2lkKQog
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIFdlYktpdExhbmRpbmdTY3JpcHRzLnJ1
bl9hbmRfdGhyb3dfaWZfZmFpbChidWd6aWxsYV90b29sX2FyZ3MpCisgICAgICAgICAgICAgICAg
c2VsZi5fZGVsZWdhdGUucHJvY2Vzc193b3JrX2l0ZW0od29ya19pdGVtKQogICAgICAgICAgICAg
ZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAgICAgICMgVW5leHBlY3RlZCBmYWls
dXJlISAgTWFyayB0aGUgcGF0Y2ggYXMgY29tbWl0LXF1ZXVlLSBhbmQgY29tbWVudCBpbiB0aGUg
YnVnLgotICAgICAgICAgICAgICAgICMgZXhpdCgyKSBpcyBhIHNwZWNpYWwgZXhpdCBjb2RlIHdl
IHVzZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBlcnJvciB3YXMgYWxyZWFkeSBoYW5kbGVkIGJ5IGxh
bmQtcGF0Y2hlcyBhbmQgd2Ugc2hvdWxkIGtlZXAgbG9vcGluZyBhbnl3YXkuCisgICAgICAgICAg
ICAgICAgIyBleGl0KDIpIGlzIGEgc3BlY2lhbCBleGl0IGNvZGUgd2UgdXNlIHRvIGluZGljYXRl
IHRoYXQgdGhlIGVycm9yIHdhcyBhbHJlYWR5CisgICAgICAgICAgICAgICAgIyBoYW5kbGVkIGJ5
IGFuZCB3ZSBzaG91bGQga2VlcCBsb29waW5nIGFueXdheS4KICAgICAgICAgICAgICAgICBpZiBl
LmV4aXRfY29kZSA9PSAyOgogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSAiVW5leHBlY3RlZCBmYWlsdXJlIHdoZW4gbGFuZGluZyBwYXRjaCEg
IFBsZWFzZSBmaWxlIGEgYnVnIGFnYWluc3QgYnVnemlsbGEtdG9vbC5cbiVzIiAlIGUubWVzc2Fn
ZV93aXRoX291dHB1dCgpCi0gICAgICAgICAgICAgICAgIyBXZSBkb24ndCBoYXZlIGEgcGF0Y2gg
aWQgYXQgdGhpcyBwb2ludCwgc28gdHJ5IHRvIGdyYWIgdGhlIGZpcnN0IHBhdGNoIG9mZiBvZiB0
aGUgYnVnIGluIHF1ZXN0aW9uLgotICAgICAgICAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3Mu
ZmV0Y2hfY29tbWl0X3F1ZXVlX3BhdGNoZXNfZnJvbV9idWcoZmlyc3RfYnVnX2lkKQotICAgICAg
ICAgICAgICAgIG5vbl9vYnNvbGV0ZV9wYXRjaGVzID0gZmlsdGVyKGxhbWJkYSBwYXRjaDogbm90
IHBhdGNoWydpc19vYnNvbGV0ZSddLCBwYXRjaGVzKQotICAgICAgICAgICAgICAgIGlmIG5vdCBs
ZW4obm9uX29ic29sZXRlX3BhdGNoZXMpOgotICAgICAgICAgICAgICAgICAgICAjIElmIHRoZXJl
IGFyZSBubyBwYXRjaGVzIGxlZnQgb24gdGhlIGJ1ZywgYXNzdW1lIGxhbmQtcGF0Y2hlcyBhbHJl
YWR5IGNsb3NlZCBpdCBiZWZvcmUgZHlpbmcsIGFuZCBqdXN0IGNvbnRpbnVlLgotICAgICAgICAg
ICAgICAgICAgICBsb2cobWVzc2FnZSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgICAgICBmaXJzdF9wYXRjaF9pZCA9IG5vbl9vYnNvbGV0ZV9wYXRjaGVzWzBdWydp
ZCddCi0gICAgICAgICAgICAgICAgdG9vbC5idWdzLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9x
dWV1ZShmaXJzdF9wYXRjaF9pZCwgbWVzc2FnZSkKLQorICAgICAgICAgICAgICAgIHNlbGYuX2Rl
bGVnYXRlLmhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHdvcmtfaXRlbSwgbWVzc2FnZSkKICAgICAg
ICAgIyBOZXZlciByZWFjaGVkLgotICAgICAgICBpZiBidWdfbG9nOgotICAgICAgICAgICAgc2Vs
Zi5fcmVtb3ZlX2xvZ19mcm9tX291dHB1dF90ZWUoYnVnX2xvZykKLSAgICAgICAgc2VsZi5fcmVt
b3ZlX2xvZ19mcm9tX291dHB1dF90ZWUocXVldWVfbG9nKQorICAgICAgICBzZWxmLl9lbnN1cmVf
YnVnX2xvZ19jbG9zZWQoKQorCisgICAgZGVmIF9iZWdpbl9sb2dnaW5nKHNlbGYpOgorICAgICAg
ICBzZWxmLl9xdWV1ZV9sb2cgPSBzZWxmLl9vdXRwdXRfdGVlLmFkZF9sb2coc2VsZi5fZGVsZWdh
dGUucXVldWVfbG9nX3BhdGgoKSkKKyAgICAgICAgc2VsZi5fYnVnX2xvZyA9IE5vbmUKKworICAg
IGRlZiBfb3Blbl9idWdfbG9nKHNlbGYsIGJ1Z19pZCk6CisgICAgICAgIGJ1Z19sb2dfcGF0aCA9
IG9zLnBhdGguam9pbihzZWxmLl9kZWxlZ2F0ZS5idWdfbG9nc19kaXJlY3RvcnkoKSwgIiVzLmxv
ZyIgJSBidWdfaWQpCisgICAgICAgIHNlbGYuX2J1Z19sb2cgPSBzZWxmLl9vdXRwdXRfdGVlLmFk
ZF9sb2coYnVnX2xvZ19wYXRoKQorCisgICAgZGVmIF9lbnN1cmVfYnVnX2xvZ19jbG9zZWQoc2Vs
Zik6CisgICAgICAgICMgSWYgd2Ugc3RpbGwgaGF2ZSBhIGJ1ZyBsb2cgb3BlbiwgY2xvc2UgaXQu
CisgICAgICAgIGlmIHNlbGYuX2J1Z19sb2c6CisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfdGVl
LnJlbW92ZV9sb2coc2VsZi5fYnVnX2xvZykKKyAgICAgICAgICAgIHNlbGYuX2J1Z19sb2cgPSBO
b25lCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3NsZWVwX21lc3NhZ2UoY2xzLCBtZXNz
YWdlKToKKyAgICAgICAgd2FrZV90aW1lID0gZGF0ZXRpbWUubm93KCkgKyB0aW1lZGVsdGEoc2Vj
b25kcz1jbHMuc2Vjb25kc190b19zbGVlcCkKKyAgICAgICAgcmV0dXJuICIlcyBTbGVlcGluZyB1
bnRpbCAlcyAoJXMpLiIgJSAobWVzc2FnZSwgd2FrZV90aW1lLnN0cmZ0aW1lKGNscy5sb2dfZGF0
ZV9mb3JtYXQpLCBjbHMuc2xlZXBfZHVyYXRpb25fdGV4dCkKKworICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBfc2xlZXAoY2xzLCBtZXNzYWdlKToKKyAgICAgICAgbG9nKGNscy5fc2xlZXBfbWVz
c2FnZShtZXNzYWdlKSkKKyAgICAgICAgdGltZS5zbGVlcChjbHMuc2Vjb25kc190b19zbGVlcCkK
IAorICAgIGRlZiBfdXBkYXRlX3N0YXR1c19hbmRfc2xlZXAoc2VsZiwgbWVzc2FnZSk6CisgICAg
ICAgIHN0YXR1c19tZXNzYWdlID0gc2VsZi5fc2xlZXBfbWVzc2FnZShtZXNzYWdlKQorICAgICAg
ICBzZWxmLnN0YXR1c19ib3QudXBkYXRlX3N0YXR1cyhzdGF0dXNfbWVzc2FnZSkKKyAgICAgICAg
bG9nKHN0YXR1c19tZXNzYWdlKQorICAgICAgICB0aW1lLnNsZWVwKHNlbGYuc2Vjb25kc190b19z
bGVlcCkKKworCitjbGFzcyBMYW5kUGF0Y2hlc0Zyb21Db21taXRRdWV1ZShDb21tYW5kKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIG9wdGlvbnMgPSBbCisgICAgICAgICAgICBt
YWtlX29wdGlvbigiLS1uby1jb25maXJtIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9ImNv
bmZpcm0iLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBhc2sgdGhlIHVzZXIgZm9yIGNvbmZp
cm1hdGlvbiBiZWZvcmUgcnVubmluZyB0aGUgcXVldWUuICBEYW5nZXJvdXMhIiksCisgICAgICAg
ICAgICBtYWtlX29wdGlvbigiLS1zdGF0dXMtaG9zdCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJz
dHJpbmciLCBkZXN0PSJzdGF0dXNfaG9zdCIsIGRlZmF1bHQ9U3RhdHVzQm90LmRlZmF1bHRfaG9z
dCwgaGVscD0iRG8gbm90IGFzayB0aGUgdXNlciBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBydW5u
aW5nIHRoZSBxdWV1ZS4gIERhbmdlcm91cyEiKSwKKyAgICAgICAgXQorICAgICAgICBDb21tYW5k
Ll9faW5pdF9fKHNlbGYsICdSdW4gdGhlIGNvbW1pdCBxdWV1ZS4nLCBvcHRpb25zPW9wdGlvbnMp
CisKKyAgICBkZWYgcXVldWVfbG9nX3BhdGgoc2VsZik6CisgICAgICAgIHJldHVybiAnY29tbWl0
X3F1ZXVlLmxvZycKKworICAgIGRlZiBidWdfbG9nc19kaXJlY3Rvcnkoc2VsZik6CisgICAgICAg
IHJldHVybiAnY29tbWl0X3F1ZXVlX2xvZ3MnCisKKyAgICBkZWYgc3RhdHVzX2hvc3Qoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLm9wdGlvbnMuc3RhdHVzX2hvc3QKKworICAgIGRlZiBiZWdp
bl93b3JrX3F1ZXVlKHNlbGYpOgorICAgICAgICBsb2coIkNBVVRJT046IGNvbW1pdC1xdWV1ZSB3
aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gJXMiICUgc2VsZi50b29sLnNjbSgpLmNo
ZWNrb3V0X3Jvb3QpCisgICAgICAgIGlmIHNlbGYub3B0aW9ucy5jb25maXJtOgorICAgICAgICAg
ICAgcmVzcG9uc2UgPSByYXdfaW5wdXQoIkFyZSB5b3Ugc3VyZT8gIFR5cGUgJ3llcycgdG8gY29u
dGludWU6ICIpCisgICAgICAgICAgICBpZiAocmVzcG9uc2UgIT0gJ3llcycpOgorICAgICAgICAg
ICAgICAgIGVycm9yKCJVc2VyIGRlY2xpbmVkLiIpCisgICAgICAgIGxvZygiUnVubmluZyBXZWJL
aXQgQ29tbWl0IFF1ZXVlLiAlcyIgJSBkYXRldGltZS5ub3coKS5zdHJmdGltZShXb3JrUXVldWUu
bG9nX2RhdGVfZm9ybWF0KSkKKworICAgIGRlZiBuZXh0X3dvcmtfaXRlbShzZWxmKToKKyAgICAg
ICAgIyBGZXRjaCBwYXRjaGVzIGluc3RlYWQgb2YganVzdCBidWcgaWRzIHRvIHRoYXQgd2UgdmFs
aWRhdGUgcmV2aWV3ZXIvY29tbWl0dGVyIGZsYWdzIG9uIGV2ZXJ5IHBhdGNoLgorICAgICAgICBw
YXRjaGVzID0gc2VsZi50b29sLmJ1Z3MuZmV0Y2hfcGF0Y2hlc19mcm9tX2NvbW1pdF9xdWV1ZShy
ZWplY3RfaW52YWxpZF9wYXRjaGVzPVRydWUpCisgICAgICAgIGlmIG5vdCBsZW4ocGF0Y2hlcyk6
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBwYXRjaF9pZHMgPSBtYXAobGFtYmRh
IHBhdGNoOiBwYXRjaFsnaWQnXSwgcGF0Y2hlcykKKyAgICAgICAgbG9nKCIlcyBpbiBjb21taXQg
cXVldWUgWyVzXSIgJSAocGx1cmFsaXplKCdwYXRjaCcsIGxlbihwYXRjaGVzKSksICIsICIuam9p
bihwYXRjaF9pZHMpKSkKKyAgICAgICAgcmV0dXJuIHBhdGNoZXNbMF1bJ2J1Z19pZCddCisKKyAg
ICBkZWYgc2FmZV90b19wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIGJ1Z19pZCk6CisgICAg
ICAgIHJlZF9idWlsZGVyc19uYW1lcyA9IHNlbGYudG9vbC5idWlsZGJvdC5yZWRfY29yZV9idWls
ZGVyc19uYW1lcygpCisgICAgICAgIGlmIHJlZF9idWlsZGVyc19uYW1lczoKKyAgICAgICAgICAg
IHJlZF9idWlsZGVyc19uYW1lcyA9IG1hcChsYW1iZGEgbmFtZTogJyIlcyInICUgbmFtZSwgcmVk
X2J1aWxkZXJzX25hbWVzKSAjIEFkZCBxdW90ZXMgYXJvdW5kIHRoZSBuYW1lcy4KKyAgICAgICAg
ICAgIHJldHVybiAoRmFsc2UsICJCdWlsZGVycyBbJXNdIGFyZSByZWQuIFNlZSBodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy4iICUgIiwgIi5qb2luKHJlZF9idWlsZGVyc19uYW1lcyksIE5vbmUpCisg
ICAgICAgIHJldHVybiAoVHJ1ZSwgIkxhbmRpbmcgcGF0Y2hlcyBmcm9tIGJ1ZyAlcy4iICUgYnVn
X2lkLCBidWdfaWQpCisKKyAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0oc2VsZiwgYnVnX2lkKToK
KyAgICAgICAgYnVnemlsbGFfdG9vbF9wYXRoID0gX19maWxlX18gIyByZS1leGVjdXRlIHRoaXMg
c2NyaXB0CisgICAgICAgIGJ1Z3ppbGxhX3Rvb2xfYXJncyA9IFtidWd6aWxsYV90b29sX3BhdGgs
ICdsYW5kLXBhdGNoZXMnLCAnLS1mb3JjZS1jbGVhbicsICctLWNvbW1pdC1xdWV1ZScsICctLXF1
aWV0JywgYnVnX2lkXQorICAgICAgICBXZWJLaXRMYW5kaW5nU2NyaXB0cy5ydW5fYW5kX3Rocm93
X2lmX2ZhaWwoYnVnemlsbGFfdG9vbF9hcmdzKQorCisgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVk
X2Vycm9yKHNlbGYsIGJ1Z19pZCwgbWVzc2FnZSk6CisgICAgICAgICMgV2UgZG9uJ3QgaGF2ZSBh
IHBhdGNoIGlkIGF0IHRoaXMgcG9pbnQsIHNvIHRyeSB0byBncmFiIHRoZSBmaXJzdCBwYXRjaCBv
ZmYgb2YgdGhlIGJ1ZyBpbiBxdWVzdGlvbi4KKyAgICAgICAgcGF0Y2hlcyA9IHNlbGYudG9vbC5i
dWdzLmZldGNoX2NvbW1pdF9xdWV1ZV9wYXRjaGVzX2Zyb21fYnVnKGJ1Z19pZCkKKyAgICAgICAg
bm9uX29ic29sZXRlX3BhdGNoZXMgPSBmaWx0ZXIobGFtYmRhIHBhdGNoOiBub3QgcGF0Y2hbJ2lz
X29ic29sZXRlJ10sIHBhdGNoZXMpCisgICAgICAgIGlmIG5vdCBsZW4obm9uX29ic29sZXRlX3Bh
dGNoZXMpOgorICAgICAgICAgICAgIyBJZiB0aGVyZSBhcmUgbm8gcGF0Y2hlcyBsZWZ0IG9uIHRo
ZSBidWcsIGFzc3VtZSBsYW5kLXBhdGNoZXMgYWxyZWFkeSBjbG9zZWQgaXQgYmVmb3JlIGR5aW5n
LCBhbmQganVzdCBjb250aW51ZS4KKyAgICAgICAgICAgIGxvZyhtZXNzYWdlKQorICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgIGJ1Z19pZCA9IG5vbl9vYnNvbGV0ZV9wYXRjaGVzWzBdWydpZCdd
CisgICAgICAgIHNlbGYudG9vbC5idWdzLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShi
dWdfaWQsIG1lc3NhZ2UpCisKKyAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0
b29sKToKKyAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxmLnRvb2wg
PSB0b29sCisgICAgICAgIHdvcmtfcXVldWUgPSBXb3JrUXVldWUoc2VsZikKKyAgICAgICAgd29y
a19xdWV1ZS5ydW4oKQogCiBjbGFzcyBOb25XcmFwcGluZ0VwaWxvZ0luZGVudGVkSGVscEZvcm1h
dHRlcihJbmRlbnRlZEhlbHBGb3JtYXR0ZXIpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKTo=
</data>
<flag name="review"
          id="24973"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>