<?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>128418</bug_id>
          
          <creation_ts>2014-02-07 16:59:56 -0800</creation_ts>
          <short_desc>[GTK] generate-gtkdoc should use argparse</short_desc>
          <delta_ts>2014-02-23 13:35:46 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128417</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>rego</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978165</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-07 16:59:56 -0800</bug_when>
    <thetext>It&apos;s 2014.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981753</commentid>
    <comment_count>1</comment_count>
      <attachid>224457</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-17 19:05:46 -0800</bug_when>
    <thetext>Created attachment 224457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981754</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-17 19:06:29 -0800</bug_when>
    <thetext>This patch also disposes of the common options method. The option methods will disappear completely in 128417.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981816</commentid>
    <comment_count>3</comment_count>
      <attachid>224457</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-02-18 00:16:32 -0800</bug_when>
    <thetext>Comment on attachment 224457
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=224457&amp;action=review

&gt; Tools/gtk/generate-gtkdoc:170
&gt; -    options = get_common_options().copy()
&gt; -    options.update({
&gt; +    options = {
&gt; +        &apos;decorator&apos;: &apos;WEBKIT_API|WEBKIT_DEPRECATED|WEBKIT_DEPRECATED_FOR\(.+\)&apos;,
&gt; +        &apos;deprecation_guard&apos;: &apos;WEBKIT_DISABLE_DEPRECATED&apos;,
&gt; +        &apos;library_path&apos; : common.library_build_path(),
&gt; +        &apos;virtual_root&apos; : virtual_root,

Why are we now duplicating this code in every get_*_options method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981922</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-18 07:31:51 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 224457 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224457&amp;action=review
&gt; 
&gt; &gt; Tools/gtk/generate-gtkdoc:170
&gt; &gt; -    options = get_common_options().copy()
&gt; &gt; -    options.update({
&gt; &gt; +    options = {
&gt; &gt; +        &apos;decorator&apos;: &apos;WEBKIT_API|WEBKIT_DEPRECATED|WEBKIT_DEPRECATED_FOR\(.+\)&apos;,
&gt; &gt; +        &apos;deprecation_guard&apos;: &apos;WEBKIT_DISABLE_DEPRECATED&apos;,
&gt; &gt; +        &apos;library_path&apos; : common.library_build_path(),
&gt; &gt; +        &apos;virtual_root&apos; : virtual_root,
&gt; 
&gt; Why are we now duplicating this code in every get_*_options method?

It&apos;s a bit awkward like this, but it makes sense because in the next patch in the series these are no longer duplicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983742</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-23 13:35:46 -0800</bug_when>
    <thetext>Committed r164560: &lt;http://trac.webkit.org/changeset/164560&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224457</attachid>
            <date>2014-02-17 19:05:46 -0800</date>
            <delta_ts>2014-02-18 00:16:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128418-20140217190544.patch</filename>
            <type>text/plain</type>
            <size>15201</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MTAxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTVhMGVlMTMxODE4OWUyNGM2MWY0ZThhMTNjMTAxZWZh
NjJkZTg2Yi4uNGNjYTAzMjc5MzBiMzY2N2Y0ODRhYTE5NzBlM2I0OGExZGM1MzU5MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTAyLTE0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBnZW5lYXRlLWd0a2RvYyBzaG91bGQgdXNlIGFyZ3BhcnNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg0MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ay9nZW5lcmF0
ZS1ndGtkb2M6IEdldCBhbGwgYXJndW1lbnRzIGZyb20gYXJncGFyc2UsIHBhc3MgdGhlbiBhcyBw
YXJhbWV0ZXJzCisgICAgICAgIHRvIGFsbCBmdW5jdGlvbnMsIGFuZCBndWFyZCB0aGUgbWFpbiBy
b3V0aW5lIHdpdGggYSBfX25hbWVfXyA9PSBfX21haW5fXyBjaGVjay4KKwogMjAxNC0wMi0xMyAg
RGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRy
ZWUgZmFpbHMgdG8gYnVpbGQ6IFBlcmwgc3VwcG9ydCBtb2R1bGUgYnVpbGRpbmcgZm9yIE9TIFgg
YnV0IGxpbmtpbmcgZm9yIHRoZSBzaW11bGF0b3IKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCAxNjFhMWRj
NGY2MThmYWZlOGIyMWY1Yjk2OTdlZGI1NjIwYTQyODAxLi4xZjgwNmRhOGIyMDU3YjEyNDQ2Yzc1
MWZmNzBmN2FiNjcxNWNmZDc1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMu
cG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xODg2LDggKzE4ODYsNiBA
QCBzdWIgYnVpbGRBdXRvdG9vbHNQcm9qZWN0KCRAKQogICAgIGlmICghY2hlY2tGb3JBcmd1bWVu
dEFuZFJlbW92ZUZyb21BUkdWKCItLWRpc2FibGUtZ3RrLWRvYyIpKSB7CiAgICAgICAgIGlmICgk
cHJvamVjdCBlcSAnV2ViS2l0JyAmJiAhaXNDcm9zc0NvbXBpbGF0aW9uKCkgJiYgISgkbm9XZWJL
aXQxICYmICRub1dlYktpdDIpKSB7CiAgICAgICAgICAgICBteSBAZG9jR2VuZXJhdGlvbk9wdGlv
bnMgPSAoIiRzb3VyY2VEaXIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYyIsICItLXNraXAtaHRt
bCIpOwotICAgICAgICAgICAgcHVzaChAZG9jR2VuZXJhdGlvbk9wdGlvbnMsIHByb2R1Y3REaXIo
KSk7Ci0KICAgICAgICAgICAgIHVuc2hpZnQoQGRvY0dlbmVyYXRpb25PcHRpb25zLCBqaGJ1aWxk
V3JhcHBlclByZWZpeElmTmVlZGVkKCkpOwogCiAgICAgICAgICAgICBpZiAoc3lzdGVtKEBkb2NH
ZW5lcmF0aW9uT3B0aW9ucykpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtk
b2MgYi9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCmluZGV4IGNlMjIwYTZjMTE2MWZkZjcwMWI2
NGU5OTU5OWM4ODkxODk0MDc2MGQuLjFhM2JlOGJmNTNlMGJlZDZhY2IzYzNjZGQ2ZjI2ZDFmN2U2
NzgzYWEgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKKysrIGIvVG9vbHMv
Z3RrL2dlbmVyYXRlLWd0a2RvYwpAQCAtMTUsNiArMTUsNyBAQAogIyBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAjIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQogCitpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBjb21tb24KIGlt
cG9ydCBnbG9iCiBpbXBvcnQgZ3RrZG9jCkBAIC0yMiw4ICsyMyw4IEBAIGltcG9ydCBsb2dnaW5n
CiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IHN5cwogCi1kZWYgY29uZmlndXJlX2xvZ2dpbmcoKToK
LSAgICBsZXZlbCA9IGxvZ2dpbmcuREVCVUcgaWYgJy12JyBpbiBzeXMuYXJndiBlbHNlIGxvZ2dp
bmcuSU5GTworZGVmIGNvbmZpZ3VyZV9sb2dnaW5nKHZlcmJvc2UpOgorICAgIGxldmVsID0gbG9n
Z2luZy5ERUJVRyBpZiB2ZXJib3NlIGVsc2UgbG9nZ2luZy5JTkZPCiAgICAgbG9nZ2VyID0gbG9n
Z2luZy5nZXRMb2dnZXIoJ2d0a2RvYycpCiAgICAgbG9nZ2VyLnNldExldmVsKGxldmVsKQogICAg
IGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQpAQCAtNDksMjIgKzUwLDYgQEAgZGVm
IGdldF9ndGtkb2NfbW9kdWxlX3BhdGhzKHhyZWZfZGVwX3BhY2thZ2VzKToKICAgICByZXR1cm4g
ZGVwcwogCiAKLWRlZiBnZXRfY29tbW9uX29wdGlvbnMoKToKLSAgICAjIFRPRE86IFdlIHNob3Vs
ZCBjb25zaWRlciB1c2luZyBhbiBhcmd1bWVudHMgcGFyc2luZyBsaWJyYXJ5IGlmCi0gICAgIyB3
ZSBuZWVkIG1vcmUgb2YgdGhlc2UgY29tcGxleCBvbmVzLgotICAgIHZpcnR1YWxfcm9vdCA9ICcn
Ci0gICAgZm9yIGFyZ3VtZW50IGluIHN5cy5hcmd2OgotICAgICAgICBpZiBhcmd1bWVudC5zdGFy
dHN3aXRoKCctLXZpcnR1YWwtcm9vdD0nKToKLSAgICAgICAgICAgIHZpcnR1YWxfcm9vdCA9IGFy
Z3VtZW50LnNwbGl0KCc9JylbMV0KLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICByZXR1cm4gewot
ICAgICAgICAnZGVjb3JhdG9yJzogJ1dFQktJVF9BUEl8V0VCS0lUX0RFUFJFQ0FURUR8V0VCS0lU
X0RFUFJFQ0FURURfRk9SXCguK1wpJywKLSAgICAgICAgJ2RlcHJlY2F0aW9uX2d1YXJkJzogJ1dF
QktJVF9ESVNBQkxFX0RFUFJFQ0FURUQnLAotICAgICAgICAnbGlicmFyeV9wYXRoJyA6IGNvbW1v
bi5saWJyYXJ5X2J1aWxkX3BhdGgoKSwKLSAgICAgICAgJ3ZpcnR1YWxfcm9vdCcgOiB2aXJ0dWFs
X3Jvb3QsCi0gICAgfQotCiBkZWYgZ2V0X2NvbW1vbl94cmVmX2RlcHMoKToKICAgICByZXR1cm4g
ewogICAgICAgICAnZ2xpYi0yLjAnIDogWydnbGliJywgJ2dvYmplY3QnLCAnZ2lvJ10sCkBAIC03
NSw3ICs2MCw3IEBAIGRlZiBnZXRfY29tbW9uX3hyZWZfZGVwcygpOgogZGVmIHdlYmtpdGRvbV9k
b2NzX2h0bWxfcGF0aCgpOgogICAgIHJldHVybiBjb21tb24uYnVpbGRfcGF0aCgnRG9jdW1lbnRh
dGlvbicsICd3ZWJraXRkb21ndGsnLCAnaHRtbCcpCiAKLWRlZiBnZXRfd2Via2l0Ml9vcHRpb25z
KCk6CitkZWYgZ2V0X3dlYmtpdDJfb3B0aW9ucyh2aXJ0dWFsX3Jvb3QpOgogICAgIGFwaV9wYXRo
ID0gY29tbW9uLnRvcF9sZXZlbF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0MicsICdVSVByb2Nlc3Mn
LCAnQVBJJywgJ2d0aycpCiAgICAgaW5qZWN0ZWRfYnVuZGxlX2FwaV9wYXRoID0gY29tbW9uLnRv
cF9sZXZlbF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0MicsICdXZWJQcm9jZXNzJywgJ0luamVjdGVk
QnVuZGxlJywgJ0FQSScsICdndGsnKQogCkBAIC05Miw4ICs3NywxMSBAQCBkZWYgZ2V0X3dlYmtp
dDJfb3B0aW9ucygpOgogICAgIGRlZiBzcmNfcGF0aCgqYXJncyk6CiAgICAgICAgIHJldHVybiBv
cy5wYXRoLmpvaW4oYXBpX3BhdGgsICphcmdzKQogCi0gICAgb3B0aW9ucyA9IGdldF9jb21tb25f
b3B0aW9ucygpLmNvcHkoKQotICAgIG9wdGlvbnMudXBkYXRlKHsKKyAgICBvcHRpb25zID0gewor
ICAgICAgICAnZGVjb3JhdG9yJzogJ1dFQktJVF9BUEl8V0VCS0lUX0RFUFJFQ0FURUR8V0VCS0lU
X0RFUFJFQ0FURURfRk9SXCguK1wpJywKKyAgICAgICAgJ2RlcHJlY2F0aW9uX2d1YXJkJzogJ1dF
QktJVF9ESVNBQkxFX0RFUFJFQ0FURUQnLAorICAgICAgICAnbGlicmFyeV9wYXRoJyA6IGNvbW1v
bi5saWJyYXJ5X2J1aWxkX3BhdGgoKSwKKyAgICAgICAgJ3ZpcnR1YWxfcm9vdCcgOiB2aXJ0dWFs
X3Jvb3QsCiAgICAgICAgICdtb2R1bGVfbmFtZScgOiAnd2Via2l0Mmd0aycsCiAgICAgICAgICdu
YW1lc3BhY2UnIDogJ3dlYmtpdCcsCiAgICAgICAgICdkb2NfZGlyJyA6IHNyY19wYXRoKCdkb2Nz
JyksCkBAIC0xMjIsMTAgKzExMCwxMCBAQCBkZWYgZ2V0X3dlYmtpdDJfb3B0aW9ucygpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgIGdsb2IuZ2xvYihvcy5wYXRoLmpvaW4oZ2VuZXJhdGVkX2Fw
aV9wYXRoLCAnV2ViS2l0TWFyc2hhbC4qJykpICsgXAogICAgICAgICAgICAgICAgICAgICAgICAg
IGdsb2IuZ2xvYihvcy5wYXRoLmpvaW4oZ2VuZXJhdGVkX2FwaV9wYXRoLCAnV2ViS2l0RW51bVR5
cGVzLionKSkgKyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYi5nbG9iKHNyY19wYXRo
KCd0ZXN0cy8qLmgnKSkKLSAgICB9KQorICAgIH0KICAgICByZXR1cm4gb3B0aW9ucwogCi1kZWYg
Z2V0X3dlYmtpdDFfb3B0aW9ucyhndGtfdmVyc2lvbik6CitkZWYgZ2V0X3dlYmtpdDFfb3B0aW9u
cyhndGtfdmVyc2lvbiwgdmlydHVhbF9yb290KToKICAgICBkZWYgc3JjX3BhdGgoKmFyZ3MpOgog
ICAgICAgICByZXR1cm4gY29tbW9uLnRvcF9sZXZlbF9wYXRoKCooKCdTb3VyY2UnLCAnV2ViS2l0
JywgJ2d0aycpICsgYXJncykpCiAKQEAgLTE0NSw4ICsxMzMsMTEgQEAgZGVmIGdldF93ZWJraXQx
X29wdGlvbnMoZ3RrX3ZlcnNpb24pOgogICAgICAgICAgICAgICAgICdndGsrLTIuMCcgOiBbJ2d0
aycsICdnZGsnXQogICAgICAgICB9KQogCi0gICAgb3B0aW9ucyA9IGdldF9jb21tb25fb3B0aW9u
cygpLmNvcHkoKQotICAgIG9wdGlvbnMudXBkYXRlKHsKKyAgICBvcHRpb25zID0geworICAgICAg
ICAnZGVjb3JhdG9yJzogJ1dFQktJVF9BUEl8V0VCS0lUX0RFUFJFQ0FURUR8V0VCS0lUX0RFUFJF
Q0FURURfRk9SXCguK1wpJywKKyAgICAgICAgJ2RlcHJlY2F0aW9uX2d1YXJkJzogJ1dFQktJVF9E
SVNBQkxFX0RFUFJFQ0FURUQnLAorICAgICAgICAnbGlicmFyeV9wYXRoJyA6IGNvbW1vbi5saWJy
YXJ5X2J1aWxkX3BhdGgoKSwKKyAgICAgICAgJ3ZpcnR1YWxfcm9vdCcgOiB2aXJ0dWFsX3Jvb3Qs
CiAgICAgICAgICdtb2R1bGVfbmFtZScgOiAnd2Via2l0Z3RrJywKICAgICAgICAgJ25hbWVzcGFj
ZScgOiAnd2Via2l0JywKICAgICAgICAgJ2RvY19kaXInIDogc3JjX3BhdGgoJ2RvY3MnKSwKQEAg
LTE2MSwxMCArMTUyLDEwIEBAIGRlZiBnZXRfd2Via2l0MV9vcHRpb25zKGd0a192ZXJzaW9uKToK
ICAgICAgICAgJ2lnbm9yZWRfZmlsZXMnOiBnbG9iLmdsb2Ioc3JjX3BhdGgoJ3dlYmtpdCcsICcq
cHJpdmF0ZS4qJykpICsgXAogICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2IuZ2xvYihzcmNf
cGF0aCgnd2Via2l0JywgJ3dlYmtpdGF1dGhlbnRpY2F0aW9uZGlhbG9nLionKSkgKyBcCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2xvYi5nbG9iKHNyY19wYXRoKCd3ZWJraXQnLCAnd2Via2l0
c3BlbGxjaGVja2VyZW5jaGFudC4qJykpCi0gICAgfSkKKyAgICB9CiAgICAgcmV0dXJuIG9wdGlv
bnMKIAotZGVmIGdldF93ZWJraXRkb21fb3B0aW9ucygpOgorZGVmIGdldF93ZWJraXRkb21fb3B0
aW9ucyh2aXJ0dWFsX3Jvb3QpOgogICAgIGRlZiBkZXJpdmVkX3NvdXJjZXNfcGF0aCgqYXJncyk6
CiAgICAgICAgIHJldHVybiBjb21tb24uYnVpbGRfcGF0aCgqKCgnRGVyaXZlZFNvdXJjZXMnLCAn
d2Via2l0ZG9tJykgKyBhcmdzKSkKICAgICBkZWYgc3JjX3BhdGgoKmFyZ3MpOgpAQCAtMTcyLDgg
KzE2MywxMSBAQCBkZWYgZ2V0X3dlYmtpdGRvbV9vcHRpb25zKCk6CiAKICAgICB4cmVmX2RlcHMg
PSB7ICdnbGliLTIuMCcgOiBbJ2dsaWInLCAnZ29iamVjdCcsICdnaW8nXSB9CiAKLSAgICBvcHRp
b25zID0gZ2V0X2NvbW1vbl9vcHRpb25zKCkuY29weSgpCi0gICAgb3B0aW9ucy51cGRhdGUoewor
ICAgIG9wdGlvbnMgPSB7CisgICAgICAgICdkZWNvcmF0b3InOiAnV0VCS0lUX0FQSXxXRUJLSVRf
REVQUkVDQVRFRHxXRUJLSVRfREVQUkVDQVRFRF9GT1JcKC4rXCknLAorICAgICAgICAnZGVwcmVj
YXRpb25fZ3VhcmQnOiAnV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCcsCisgICAgICAgICdsaWJy
YXJ5X3BhdGgnIDogY29tbW9uLmxpYnJhcnlfYnVpbGRfcGF0aCgpLAorICAgICAgICAndmlydHVh
bF9yb290JyA6IHZpcnR1YWxfcm9vdCwKICAgICAgICAgJ21vZHVsZV9uYW1lJyA6ICd3ZWJraXRk
b21ndGsnLAogICAgICAgICAnbmFtZXNwYWNlJyA6ICd3ZWJraXRfZG9tJywKICAgICAgICAgJ2Rv
Y19kaXInIDogZGVyaXZlZF9zb3VyY2VzX3BhdGgoJ2RvY3MnKSwKQEAgLTE4NCw3ICsxNzgsNyBA
QCBkZWYgZ2V0X3dlYmtpdGRvbV9vcHRpb25zKCk6CiAgICAgICAgICAgICAgICAgICAgJyAtSScg
KyBjb21tb24udG9wX2xldmVsX3BhdGgoJ1NvdXJjZScpLAogICAgICAgICAnY3Jvc3NfcmVmZXJl
bmNlX2RlcHMnIDogZ2V0X2d0a2RvY19tb2R1bGVfcGF0aHMoeHJlZl9kZXBzKSwKICAgICAgICAg
J2lnbm9yZWRfZmlsZXMnOiBnbG9iLmdsb2IoZGVyaXZlZF9zb3VyY2VzX3BhdGgoJypQcml2YXRl
LmgnKSkKLSAgICB9KQorICAgIH0KICAgICByZXR1cm4gb3B0aW9ucwogCiBkZWYgcHJpbnRfbWlz
c2luZ19hcGkoZ2VuZXJhdG9yKToKQEAgLTE5NSw4NSArMTg5LDEwMCBAQCBkZWYgcHJpbnRfbWlz
c2luZ19hcGkoZ2VuZXJhdG9yKToKICAgICBmb3IgYXBpIGluIG1pc3NpbmdfYXBpOgogICAgICAg
ICBwcmludCgiXHQlcyIgJSBhcGkpCiAKLWRlZiBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yKToKLSAg
ICBnZW5lcmF0b3IuZ2VuZXJhdGUoaHRtbD0nLS1za2lwLWh0bWwnIG5vdCBpbiBzeXMuYXJndikK
K2RlZiBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yLCBza2lwX2h0bWwpOgorICAgIGdlbmVyYXRvci5n
ZW5lcmF0ZShub3Qgc2tpcF9odG1sKQogICAgIGlmIGdlbmVyYXRvci5zYXdfd2FybmluZ3M6CiAg
ICAgICAgIHByaW50X21pc3NpbmdfYXBpKGdlbmVyYXRvcikKICAgICByZXR1cm4gZ2VuZXJhdG9y
LnNhd193YXJuaW5ncwogCi1jb25maWd1cmVfbG9nZ2luZygpCi0KLSMgV2UgbmVlZCB0byBhZGQg
dGhlIEphdmFTY3JpcHRDb3JlIGJ1aWxkIGRpcmVjdG9yeSB0byB0aGUgUEtHX0NPTkZJR19QQVRI
Ci0jIHNvIHRoYXQgcGtnY29uZmlnIGNhbiBwcm9wZXJseSByZXNvbHZlIHRoZSBsaWJqYXZhc2Ny
aXB0Y29yZSBkZXBlbmRlbmN5LgotcGtnX2NvbmZpZ19wYXRoID0gb3MuZW52aXJvbi5nZXQoIlBL
R19DT05GSUdfUEFUSCIpCi1vcy5lbnZpcm9uWydQS0dfQ09ORklHX1BBVEgnXSA9IGNvbW1vbi5i
dWlsZF9wYXRoKCdTb3VyY2UnLCAnSmF2YVNjcmlwdENvcmUnKQotaWYgcGtnX2NvbmZpZ19wYXRo
OgotICAgIG9zLmVudmlyb25bJ1BLR19DT05GSUdfUEFUSCddICs9ICc6JyArIHBrZ19jb25maWdf
cGF0aAotCi0jIE5ld2VyIHZlcnNpb25zIG9mIGdsaWIgaGF2ZSBkZXByZWNhdGVkIGdfdHlwZV9p
bml0LCBzbyB3ZSBuZWVkIHRvIGRpc2FibGUKLSMgdGhhdCB3YXJuaW5nIHdoZW4gcnVubmluZyBn
dGtkb2Mtc2Nhbm9iaiBieSBvdmVycmlkaW5nIHRoZSBDRkxBR1Mgd2UgdXNlCi0jIHRvIGNvbXBp
bGUgaXQuCi1jZmxhZ3MgPSBvcy5lbnZpcm9uLmdldCgnQ0ZMQUdTJywgJycpCi1jZmxhZ3MgKz0g
JyAtREdMSUJfVkVSU0lPTl9NSU5fUkVRVUlSRUQ9R0xJQl9WRVJTSU9OXzJfMzInCi1vcy5lbnZp
cm9uWydDRkxBR1MnXSA9IGNmbGFncwotCi0jIENsYW5nIGNhbiBiZSBub2lzeSwgdGhyb3dpbmcg
dW5uZWNlc3Nhcnkgd2FybmluZ3MgZm9yIHVudXNlZCBhcmd1bWVudHMuCi1pZiBvcy5lbnZpcm9u
LmdldCgnQ0MnKSA9PSAiY2xhbmciOgotICAgIG9zLmVudmlyb25bJ0NGTEFHUyddICs9ICcgLVF1
bnVzZWQtYXJndW1lbnRzJwotCi1zYXdfd2Via2l0MV93YXJuaW5ncyA9IHNhd193ZWJraXQyX3dh
cm5pbmdzID0gRmFsc2UKLXdrMl9wa2dfY29uZmlnX3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgn
U291cmNlJywgJ1dlYktpdDInLCAnd2Via2l0Mmd0ay0zLjAucGMnKQotd2sxX3BrZ19jb25maWdf
cGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0JywgJ2d0aycsICd3ZWJr
aXRndGstMy4wLnBjJykKLWlmIG5vdCBvcy5wYXRoLmV4aXN0cyh3azFfcGtnX2NvbmZpZ19wYXRo
KToKLSAgICB3azFfcGtnX2NvbmZpZ19wYXRoID0gY29tbW9uLmJ1aWxkX3BhdGgoJ1NvdXJjZScs
ICdXZWJLaXQnLCAnZ3RrJywgJ3dlYmtpdC0xLjAucGMnKQotCi1pZiBvcy5wYXRoLmV4aXN0cyh3
azJfcGtnX2NvbmZpZ19wYXRoKToKLSAgICBwa2dfY29uZmlnX3BhdGggPSB3azJfcGtnX2NvbmZp
Z19wYXRoCi1lbGlmIG9zLnBhdGguZXhpc3RzKHdrMV9wa2dfY29uZmlnX3BhdGgpOgoraWYgX19u
YW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNl
cihkZXNjcmlwdGlvbj0nR2VuZXJhdGUgZ3RrZG9jIGZvciBXZWJLaXQuJykKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nV2hldGhlciBvciBub3QgdG8gcnVuIGluIHZlcmJv
c2UgbW9kZS4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcmViYXNlJywgYWN0aW9uPSdz
dG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1doZW4gc3BlY2lmaWVk
LCBydW4gdGhlIHRvb2wgaW4gcmViYXNlIG1vZGUuJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLXNraXAtaHRtbCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdXaGV0aGVyIG9yIG5vdCB0byBza2lwIEhUTUwgZ2VuZXJhdGlvbiwgd2hpY2gg
Y2FuIGJlIHNsb3cuJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXZpcnR1YWwtcm9vdCcs
IHR5cGU9c3RyLCBkZWZhdWx0PScnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nQSB0
ZW1wb3JhcnkgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSB3aGljaCBpcyB1c2VkIGFzIHRoZSByb290
ICcgKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aGVyZSB0aGUgYWN0dWFsIGlu
c3RhbGxhdGlvbiBwcmVmaXggbGl2ZXM7IHRoaXMgaXMgbW9zdGx5ICcgKyBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd1c2VmdWwgZm9yIHBhY2thZ2VycywgYW5kIHNob3VsZCBiZSBz
ZXQgdG8gd2hhdCBpcyBnaXZlbiB0byAnICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFrZSBpbnN0YWxsIGFzIERFU1RESVIuJykKKworICAgIGFyZ3VtZW50cyA9IHBhcnNlci5w
YXJzZV9hcmdzKCkKKyAgICBjb25maWd1cmVfbG9nZ2luZyhhcmd1bWVudHMudmVyYm9zZSkKKwor
ICAgICMgV2UgbmVlZCB0byBhZGQgdGhlIEphdmFTY3JpcHRDb3JlIGJ1aWxkIGRpcmVjdG9yeSB0
byB0aGUgUEtHX0NPTkZJR19QQVRICisgICAgIyBzbyB0aGF0IHBrZ2NvbmZpZyBjYW4gcHJvcGVy
bHkgcmVzb2x2ZSB0aGUgbGliamF2YXNjcmlwdGNvcmUgZGVwZW5kZW5jeS4KKyAgICBwa2dfY29u
ZmlnX3BhdGggPSBvcy5lbnZpcm9uLmdldCgiUEtHX0NPTkZJR19QQVRIIikKKyAgICBvcy5lbnZp
cm9uWydQS0dfQ09ORklHX1BBVEgnXSA9IGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAnSmF2
YVNjcmlwdENvcmUnKQorICAgIGlmIHBrZ19jb25maWdfcGF0aDoKKyAgICAgICAgb3MuZW52aXJv
blsnUEtHX0NPTkZJR19QQVRIJ10gKz0gJzonICsgcGtnX2NvbmZpZ19wYXRoCisKKyAgICAjIE5l
d2VyIHZlcnNpb25zIG9mIGdsaWIgaGF2ZSBkZXByZWNhdGVkIGdfdHlwZV9pbml0LCBzbyB3ZSBu
ZWVkIHRvIGRpc2FibGUKKyAgICAjIHRoYXQgd2FybmluZyB3aGVuIHJ1bm5pbmcgZ3RrZG9jLXNj
YW5vYmogYnkgb3ZlcnJpZGluZyB0aGUgQ0ZMQUdTIHdlIHVzZQorICAgICMgdG8gY29tcGlsZSBp
dC4KKyAgICBjZmxhZ3MgPSBvcy5lbnZpcm9uLmdldCgnQ0ZMQUdTJywgJycpCisgICAgY2ZsYWdz
ICs9ICcgLURHTElCX1ZFUlNJT05fTUlOX1JFUVVJUkVEPUdMSUJfVkVSU0lPTl8yXzMyJworICAg
IG9zLmVudmlyb25bJ0NGTEFHUyddID0gY2ZsYWdzCisKKyAgICAjIENsYW5nIGNhbiBiZSBub2lz
eSwgdGhyb3dpbmcgdW5uZWNlc3Nhcnkgd2FybmluZ3MgZm9yIHVudXNlZCBhcmd1bWVudHMuCisg
ICAgaWYgb3MuZW52aXJvbi5nZXQoJ0NDJykgPT0gImNsYW5nIjoKKyAgICAgICAgb3MuZW52aXJv
blsnQ0ZMQUdTJ10gKz0gJyAtUXVudXNlZC1hcmd1bWVudHMnCisKKyAgICBzYXdfd2Via2l0MV93
YXJuaW5ncyA9IHNhd193ZWJraXQyX3dhcm5pbmdzID0gRmFsc2UKKyAgICB3azJfcGtnX2NvbmZp
Z19wYXRoID0gY29tbW9uLmJ1aWxkX3BhdGgoJ1NvdXJjZScsICdXZWJLaXQyJywgJ3dlYmtpdDJn
dGstMy4wLnBjJykKKyAgICB3azFfcGtnX2NvbmZpZ19wYXRoID0gY29tbW9uLmJ1aWxkX3BhdGgo
J1NvdXJjZScsICdXZWJLaXQnLCAnZ3RrJywgJ3dlYmtpdGd0ay0zLjAucGMnKQorICAgIGlmIG5v
dCBvcy5wYXRoLmV4aXN0cyh3azFfcGtnX2NvbmZpZ19wYXRoKToKKyAgICAgICAgd2sxX3BrZ19j
b25maWdfcGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0JywgJ2d0aycs
ICd3ZWJraXQtMS4wLnBjJykKKworICAgIGlmIG9zLnBhdGguZXhpc3RzKHdrMl9wa2dfY29uZmln
X3BhdGgpOgorICAgICAgICBwa2dfY29uZmlnX3BhdGggPSB3azJfcGtnX2NvbmZpZ19wYXRoCisg
ICAgZWxpZiBvcy5wYXRoLmV4aXN0cyh3azFfcGtnX2NvbmZpZ19wYXRoKToKKyAgICAgICAgcGtn
X2NvbmZpZ19wYXRoID0gd2sxX3BrZ19jb25maWdfcGF0aAorCisgICAgd2Via2l0ZG9tX2RvY3Nf
cGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdEZXJpdmVkU291cmNlcycsICd3ZWJraXRkb20nLCAn
ZG9jcycpCisgICAgaWYgbm90IGNvbW1vbi5pc19jbWFrZV9idWlsZCgpOgorICAgICAgICBnZW5l
cmF0b3IgPSBndGtkb2MuUGtnQ29uZmlnR1RLRG9jKHBrZ19jb25maWdfcGF0aCwgZ2V0X3dlYmtp
dGRvbV9vcHRpb25zKGFyZ3VtZW50cy52aXJ0dWFsX3Jvb3QpKQorICAgICAgICBpZiBub3QgYXJn
dW1lbnRzLnJlYmFzZToKKyAgICAgICAgICAgIHByaW50KCJcbkdlbmVyYXRpbmcgV2ViS2l0RE9N
IGRvY3VtZW50YXRpb24uLi4iKQorICAgICAgICAgICAgc2F3X3dlYmtpdGRvbV93YXJuaW5ncyA9
IGdlbmVyYXRlX2RvYyhnZW5lcmF0b3IsIGFyZ3VtZW50cy5za2lwX2h0bWwpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBwcmludCgiXG5SZWJhc2luZyBXZWJLaXRET00gZG9jdW1lbnRhdGlv
bi4uLiIpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLnJlYmFz
ZV9pbnN0YWxsZWRfZG9jcygpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAg
ICAgICAgICAgIHByaW50KCJSZWJhc2UgZGlkIG5vdCBoYXBwZW4sIGxpa2VseSBubyBkb2N1bWVu
dGF0aW9uIGlzIHByZXNlbnQuIikKKwogICAgIHBrZ19jb25maWdfcGF0aCA9IHdrMV9wa2dfY29u
ZmlnX3BhdGgKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhwa2dfY29uZmlnX3BhdGgpOgorICAgICAg
ICBvcHRpb25zID0gZ2V0X3dlYmtpdDFfb3B0aW9ucyhjb21tb24uZ3RrX3ZlcnNpb25fb2ZfcGtn
X2NvbmZpZ19maWxlKHBrZ19jb25maWdfcGF0aCksIGFyZ3VtZW50cy52aXJ0dWFsX3Jvb3QpCisg
ICAgICAgIGdlbmVyYXRvciA9IGd0a2RvYy5Qa2dDb25maWdHVEtEb2MocGtnX2NvbmZpZ19wYXRo
LCBvcHRpb25zKQorICAgICAgICBpZiBub3QgYXJndW1lbnRzLnJlYmFzZToKKyAgICAgICAgICAg
IHByaW50KCJHZW5lcmF0aW5nIFdlYktpdDEgZG9jdW1lbnRhdGlvbi4uLiIpCisgICAgICAgICAg
ICBzYXdfd2Via2l0MV93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhnZW5lcmF0b3IsIGFyZ3VtZW50
cy5za2lwX2h0bWwpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgiUmViYXNpbmcg
V2ViS2l0MSBkb2N1bWVudGF0aW9uLi4uIikKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICBnZW5lcmF0b3IucmViYXNlX2luc3RhbGxlZF9kb2NzKCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcHJpbnQoIlJlYmFzZSBkaWQgbm90IGhhcHBl
biwgbGlrZWx5IG5vIGRvY3VtZW50YXRpb24gaXMgcHJlc2VudC4iKQogCi13ZWJraXRkb21fZG9j
c19wYXRoID0gY29tbW9uLmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJywgJ3dlYmtpdGRvbScs
ICdkb2NzJykKLWlmIG5vdCBjb21tb24uaXNfY21ha2VfYnVpbGQoKToKLSAgICBnZW5lcmF0b3Ig
PSBndGtkb2MuUGtnQ29uZmlnR1RLRG9jKHBrZ19jb25maWdfcGF0aCwgZ2V0X3dlYmtpdGRvbV9v
cHRpb25zKCkpCi0gICAgaWYgJy0tcmViYXNlJyBub3QgaW4gc3lzLmFyZ3Y6Ci0gICAgICAgIHBy
aW50KCJcbkdlbmVyYXRpbmcgV2ViS2l0RE9NIGRvY3VtZW50YXRpb24uLi4iKQotICAgICAgICBz
YXdfd2Via2l0ZG9tX3dhcm5pbmdzID0gZ2VuZXJhdGVfZG9jKGdlbmVyYXRvcikKLSAgICBlbHNl
OgotICAgICAgICBwcmludCgiXG5SZWJhc2luZyBXZWJLaXRET00gZG9jdW1lbnRhdGlvbi4uLiIp
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGdlbmVyYXRvci5yZWJhc2VfaW5zdGFsbGVkX2Rv
Y3MoKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgcHJpbnQoIlJlYmFz
ZSBkaWQgbm90IGhhcHBlbiwgbGlrZWx5IG5vIGRvY3VtZW50YXRpb24gaXMgcHJlc2VudC4iKQot
Ci1wa2dfY29uZmlnX3BhdGggPSB3azFfcGtnX2NvbmZpZ19wYXRoCi1pZiBvcy5wYXRoLmV4aXN0
cyhwa2dfY29uZmlnX3BhdGgpOgotICAgIG9wdGlvbnMgPSBnZXRfd2Via2l0MV9vcHRpb25zKGNv
bW1vbi5ndGtfdmVyc2lvbl9vZl9wa2dfY29uZmlnX2ZpbGUocGtnX2NvbmZpZ19wYXRoKSkKLSAg
ICBnZW5lcmF0b3IgPSBndGtkb2MuUGtnQ29uZmlnR1RLRG9jKHBrZ19jb25maWdfcGF0aCwgb3B0
aW9ucykKLSAgICBpZiAnLS1yZWJhc2UnIG5vdCBpbiBzeXMuYXJndjoKLSAgICAgICAgcHJpbnQo
IkdlbmVyYXRpbmcgV2ViS2l0MSBkb2N1bWVudGF0aW9uLi4uIikKLSAgICAgICAgc2F3X3dlYmtp
dDFfd2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yKQotICAgIGVsc2U6Ci0gICAgICAg
IHByaW50KCJSZWJhc2luZyBXZWJLaXQxIGRvY3VtZW50YXRpb24uLi4iKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBnZW5lcmF0b3IucmViYXNlX2luc3RhbGxlZF9kb2NzKCkKLSAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHByaW50KCJSZWJhc2UgZGlkIG5vdCBoYXBw
ZW4sIGxpa2VseSBubyBkb2N1bWVudGF0aW9uIGlzIHByZXNlbnQuIikKLQotIyBXZWJLaXQyIG1p
Z2h0IG5vdCBiZSBlbmFibGVkLCBzbyBjaGVjayBmb3IgdGhlIHBrZy1jb25maWcgZmlsZSBiZWZv
cmUgYnVpbGRpbmcgZG9jdW1lbnRhdGlvbi4KLXBrZ19jb25maWdfcGF0aCA9IHdrMl9wa2dfY29u
ZmlnX3BhdGgKLWlmIG9zLnBhdGguZXhpc3RzKHBrZ19jb25maWdfcGF0aCk6Ci0gICAgZ2VuZXJh
dG9yID0gZ3RrZG9jLlBrZ0NvbmZpZ0dUS0RvYyhwa2dfY29uZmlnX3BhdGgsIGdldF93ZWJraXQy
X29wdGlvbnMoKSkKLSAgICBpZiAnLS1yZWJhc2UnIG5vdCBpbiBzeXMuYXJndjoKLSAgICAgICAg
cHJpbnQoIlxuR2VuZXJhdGluZyBXZWJLaXQyIGRvY3VtZW50YXRpb24uLi4iKQotICAgICAgICBz
YXdfd2Via2l0Ml93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhnZW5lcmF0b3IpCi0gICAgZWxzZToK
LSAgICAgICAgcHJpbnQoIlxuUmViYXNpbmcgV2ViS2l0MiBkb2N1bWVudGF0aW9uLi4uIikKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgZ2VuZXJhdG9yLnJlYmFzZV9pbnN0YWxsZWRfZG9jcygp
Ci0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICBwcmludCgiUmViYXNlIGRp
ZCBub3QgaGFwcGVuLCBsaWtlbHkgbm8gZG9jdW1lbnRhdGlvbiBpcyBwcmVzZW50LiIpCi0KLSMg
Rm9yIENNYWtlIHdlIGFyZSBzdGlsbCBnZW5lcmF0aW5nIHdhcm5pbmdzIGJlY2F1c2Ugd2UgbGFj
ayBET00gYmluZGluZ3MgZG9jcywKLSMgc28gZG8gbm90IGNhdXNlIHRoZSBidWlsZCB0byBmYWls
IGZvciBub3cuCi1pZiBub3QgY29tbW9uLmlzX2NtYWtlX2J1aWxkKCk6Ci0gICAgc3lzLmV4aXQo
c2F3X3dlYmtpdDFfd2FybmluZ3Mgb3Igc2F3X3dlYmtpdDJfd2FybmluZ3MpCisgICAgIyBXZWJL
aXQyIG1pZ2h0IG5vdCBiZSBlbmFibGVkLCBzbyBjaGVjayBmb3IgdGhlIHBrZy1jb25maWcgZmls
ZSBiZWZvcmUgYnVpbGRpbmcgZG9jdW1lbnRhdGlvbi4KKyAgICBwa2dfY29uZmlnX3BhdGggPSB3
azJfcGtnX2NvbmZpZ19wYXRoCisgICAgaWYgb3MucGF0aC5leGlzdHMocGtnX2NvbmZpZ19wYXRo
KToKKyAgICAgICAgZ2VuZXJhdG9yID0gZ3RrZG9jLlBrZ0NvbmZpZ0dUS0RvYyhwa2dfY29uZmln
X3BhdGgsIGdldF93ZWJraXQyX29wdGlvbnMoYXJndW1lbnRzLnZpcnR1YWxfcm9vdCkpCisgICAg
ICAgIGlmIG5vdCBhcmd1bWVudHMucmViYXNlOgorICAgICAgICAgICAgcHJpbnQoIlxuR2VuZXJh
dGluZyBXZWJLaXQyIGRvY3VtZW50YXRpb24uLi4iKQorICAgICAgICAgICAgc2F3X3dlYmtpdDJf
d2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yLCBhcmd1bWVudHMuc2tpcF9odG1sKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQoIlxuUmViYXNpbmcgV2ViS2l0MiBkb2N1
bWVudGF0aW9uLi4uIikKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBnZW5lcmF0
b3IucmViYXNlX2luc3RhbGxlZF9kb2NzKCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
CisgICAgICAgICAgICAgICAgcHJpbnQoIlJlYmFzZSBkaWQgbm90IGhhcHBlbiwgbGlrZWx5IG5v
IGRvY3VtZW50YXRpb24gaXMgcHJlc2VudC4iKQorCisgICAgIyBGb3IgQ01ha2Ugd2UgYXJlIHN0
aWxsIGdlbmVyYXRpbmcgd2FybmluZ3MgYmVjYXVzZSB3ZSBsYWNrIERPTSBiaW5kaW5ncyBkb2Nz
LAorICAgICMgc28gZG8gbm90IGNhdXNlIHRoZSBidWlsZCB0byBmYWlsIGZvciBub3cuCisgICAg
aWYgbm90IGNvbW1vbi5pc19jbWFrZV9idWlsZCgpOgorICAgICAgICBzeXMuZXhpdChzYXdfd2Vi
a2l0MV93YXJuaW5ncyBvciBzYXdfd2Via2l0Ml93YXJuaW5ncykK
</data>
<flag name="review"
          id="248541"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>