<?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>4156</bug_id>
          
          <creation_ts>2005-07-26 23:49:22 -0700</creation_ts>
          <short_desc>svg2png testing tool for SVG</short_desc>
          <delta_ts>2005-07-28 23:21:54 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>4155</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>15236</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-26 23:49:22 -0700</bug_when>
    <thetext>Attached is an simple svg2png testing tool for use with WebCore+SVG.  This currently depends on the 
temporary WebCore+SVG SPIs added through bug 4155.  Once SVG is better integrated into WebCore/
WebKit, this tool can be generalized into a simple web2png WebView png dump tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15293</commentid>
    <comment_count>1</comment_count>
      <attachid>3127</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-27 17:36:13 -0700</bug_when>
    <thetext>Created attachment 3127
svg2png test tool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15310</commentid>
    <comment_count>2</comment_count>
      <attachid>3131</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-27 22:31:29 -0700</bug_when>
    <thetext>Created attachment 3131
Improved svg2png, better conforms to webkit coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15322</commentid>
    <comment_count>3</comment_count>
      <attachid>3131</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-07-28 00:06:36 -0700</bug_when>
    <thetext>Comment on attachment 3131
Improved svg2png, better conforms to webkit coding style.

+APPLE PUBLIC SOURCE LICENSE

Should use BSD, not APSL.

+	     } else if ([argString hasPrefix:@&quot;--parser&quot;]) {
+		 // ignored.
+	     } else if ([argString hasPrefix:@&quot;--device&quot;]) {
+		 // ignored.

May as well remove these unless KDE compat is really important.

+	     } else if ([argString isEqualToString:@&quot;--dump&quot;]) {

Perhaps it would be  better to require both input and output file as arguments,
the case of omitting --dump seems like it won&apos;t be handled well.

+			 NSLog(@&quot;WARNING: did you mean to dump to: @  Or did
you just forget the --dump argument?&quot;, outputPath);

I think you meant %@ not just @

The mixing of char * and NSString * in the argument processing seems a little
weird.

r=me assuming you fix the license, do whatever you want on the other stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15323</commentid>
    <comment_count>4</comment_count>
      <attachid>3134</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-28 01:23:07 -0700</bug_when>
    <thetext>Created attachment 3134
Further improved svg2png w/ BSD licencse</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3127</attachid>
            <date>2005-07-27 17:36:13 -0700</date>
            <delta_ts>2005-07-27 22:42:36 -0700</delta_ts>
            <desc>svg2png test tool</desc>
            <filename>svg2png.patch</filename>
            <type>text/plain</type>
            <size>14842</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IC4vc3ZnMnBuZy9zdmcycG5nLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogc3ZnMnBuZy5t
CmRpZmYgLU4gLi9zdmcycG5nL3N2ZzJwbmcubQotLS0gLi9zdmcycG5nL3N2ZzJwbmcubQkxIEph
biAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyAuL3N2ZzJwbmcvc3ZnMnBuZy5tCTI4IEp1bCAyMDA1
IDAwOjE3OjEyIC0wMDAwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQEFQ
UExFX0xJQ0VOU0VfSEVBREVSX1NUQVJUQAorICogCisgKiBUaGlzIGZpbGUgY29udGFpbnMgT3Jp
Z2luYWwgQ29kZSBhbmQvb3IgTW9kaWZpY2F0aW9ucyBvZiBPcmlnaW5hbCBDb2RlCisgKiBhcyBk
ZWZpbmVkIGluIGFuZCB0aGF0IGFyZSBzdWJqZWN0IHRvIHRoZSBBcHBsZSBQdWJsaWMgU291cmNl
IExpY2Vuc2UKKyAqIFZlcnNpb24gMi4wICh0aGUgJ0xpY2Vuc2UnKS4gWW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4KKyAqIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gUGxl
YXNlIG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIGh0dHA6Ly93d3cub3BlbnNv
dXJjZS5hcHBsZS5jb20vYXBzbC8gYW5kIHJlYWQgaXQgYmVmb3JlIHVzaW5nIHRoaXMKKyAqIGZp
bGUuCisgKiAKKyAqIFRoZSBPcmlnaW5hbCBDb2RlIGFuZCBhbGwgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgYXJlCisgKiBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIGJh
c2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgQU5EIEFQUExFIEhFUkVCWSBESVNDTEFJTVMgQUxMIFNVQ0ggV0FSUkFOVElFUywK
KyAqIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBRVUlFVCBF
TkpPWU1FTlQgT1IgTk9OLUlORlJJTkdFTUVOVC4KKyAqIFBsZWFzZSBzZWUgdGhlIExpY2Vuc2Ug
Zm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcmlnaHRzIGFuZAorICogbGltaXRh
dGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKiAKKyAqIEBBUFBMRV9MSUNFTlNFX0hFQURFUl9F
TkRACisgKi8KKworI2ltcG9ydCA8V2ViQ29yZStTVkcvRHJhd0RvY3VtZW50UHJpdmF0ZS5oPgor
I2ltcG9ydCA8V2ViQ29yZStTVkcvRHJhd1ZpZXcuaD4KKworLy8gdXNhZ2UgaW4ga2RlIHJlZ3Jl
c3Npb24gc2NyaXB0czoKKy8vIHN2Z2Rpc3BsYXkgLS1pbmNyZW1lbnRhbCAtLWRldmljZT1hZ2cg
LS1wYXJzZXI9bGlieG1sIC0tZHVtcCB0ZXN0LnBuZyAje3N2Z19uYW1lfQorCitleHRlcm4gY29u
c3QgZG91YmxlIHN2ZzJwbmdWZXJzaW9uTnVtYmVyOworZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNo
YXIgc3ZnMnBuZ1ZlcnNpb25TdHJpbmdbXTsKKwordm9pZCB1c2FnZShjb25zdCBjaGFyICpuYW1l
KSB7CisJcHJpbnRmKCJVc2FnZTogJXMgW29wdGlvbnNdIGZpbGVcbiIsIG5hbWUpOworCXByaW50
ZigiT3B0aW9uczpcbiIpOworCXByaW50ZigiICAtLXZlcnNpb25cdFx0XHRQcmludHMgZnVsbCB2
ZXJzaW9uICglLjFmKSBpbmZvcm1hdGlvbiBhbmQgZXhpdHMuXG4iLCBzdmcycG5nVmVyc2lvbk51
bWJlcik7CisJcHJpbnRmKCIgIC0taW5jcmVtZW50YWxcdFx0VXNlIGluY3JlbWVudGFsIHBhcnNp
bmcvZGlzcGxheSAoaWdub3JlZCkuXG4iKTsKKwlwcmludGYoIiAgLS1wYXJzZXIgKGlnbm9yZWQs
IGtkZSBjb21wYXRpYmlsaXR5KVxuIik7CisJcHJpbnRmKCIgIC0tZGV2aWNlIChpZ25vcmVkLCBr
ZGUgY29tcGF0aWJpbGl0eSlcbiIpOworCXByaW50ZigiICAtLWR1bXAgPG91dHB1dGZpbGU+IGR1
bXAgYSBwbmcgY29weSBvZiB0aGUgc3ZnIHRvIHRoZSBuYW1lZCBwYXRoXG4iKTsKKwlleGl0KDEp
OworfTsKKworaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisJTlNB
dXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsK
KwkvLyBkZWFsIHdpdGggYXJncworCU5TTXV0YWJsZUFycmF5ICpzdmdzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5XTsKKwljb25zdCBjaGFyICpuYW1lID0gW1tbTlNTdHJpbmcgc3RyaW5nV2l0aFVU
RjhTdHJpbmc6YXJndlswXV0gbGFzdFBhdGhDb21wb25lbnRdIFVURjhTdHJpbmddOworCU5TU3Ry
aW5nICpvdXRwdXRQYXRoID0gbmlsOworCUJPT0wgdXNlSW5jcmVtZW50YWxQYXJzaW5nID0gTk87
CisJCisJaW50IHggPSAwOworCWZvcih4PTE7eDxhcmdjO3grKykgeworCQljb25zdCBjaGFyICph
cmcgPSBhcmd2W3hdOworCQlOU1N0cmluZyAqYXJnU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhVVEY4U3RyaW5nOmFyZ107CisJCQorCQlpZiAoW2FyZ1N0cmluZyBoYXNQcmVmaXg6QCItLSJd
KSB7IC8vIHRoaXMgaXMgYW4gb3B0aW9uCisJCQlpZiAoW2FyZ1N0cmluZyBpc0VxdWFsVG9TdHJp
bmc6QCItLWhlbHAiXSkKKwkJCQl1c2FnZShuYW1lKTsKKwkJCWVsc2UgaWYgKFthcmdTdHJpbmcg
aXNFcXVhbFRvU3RyaW5nOkAiLS12ZXJzaW9uIl0pIHsKKwkJCQlwcmludGYoKGNoYXIgKilzdmcy
cG5nVmVyc2lvblN0cmluZyk7CisJCQkJZXhpdCgwKTsKKwkJCX0gZWxzZSBpZiAoW2FyZ1N0cmlu
ZyBpc0VxdWFsVG9TdHJpbmc6QCItLWluY3JlbWVudGFsIl0pIHsKKwkJCQl1c2VJbmNyZW1lbnRh
bFBhcnNpbmcgPSBZRVM7CisJCQl9IGVsc2UgaWYgKFthcmdTdHJpbmcgaGFzUHJlZml4OkAiLS1w
YXJzZXIiXSkgeworCQkJCS8vIGlnbm9yZWQuCisJCQl9IGVsc2UgaWYgKFthcmdTdHJpbmcgaGFz
UHJlZml4OkAiLS1kZXZpY2UiXSkgeworCQkJCS8vIGlnbm9yZWQuCisJCQl9IGVsc2UgaWYgKFth
cmdTdHJpbmcgaXNFcXVhbFRvU3RyaW5nOkAiLS1kdW1wIl0pIHsKKwkJCQlpZiAoeCsxIDwgYXJn
YykgeworCQkJCQlvdXRwdXRQYXRoID0gW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmFy
Z3ZbeCsxXV07CisJCQkJCWlmIChbb3V0cHV0UGF0aCBoYXNQcmVmaXg6QCItLSJdKQorCQkJCQkJ
TlNMb2coQCJXQVJOSU5HOiBkaWQgeW91IG1lYW4gdG8gZHVtcCB0bzogQCAgT3IgZGlkIHlvdSBq
dXN0IGZvcmdldCB0aGUgLS1kdW1wIGFyZ3VtZW50PyIsIG91dHB1dFBhdGgpOworCQkJCQl4Kys7
IC8vIHRvIHNraXAgdGhlIG5leHQgYXJnCisJCQkJfSBlbHNlIHsKKwkJCQkJTlNMb2coQCItLWR1
bXAgcmVxdWlyZXMgYW4gYXJndW1lbnQuIik7CisJCQkJCXVzYWdlKG5hbWUpOworCQkJCX0KKwkJ
CX0gZWxzZSB7CisJCQkJcHJpbnRmKCJVbnJlY29nbml6ZWQgb3B0aW9uICVzXG4iLCBhcmd2W3hd
KTsKKwkJCQl1c2FnZShuYW1lKTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmICghW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOlthcmdTdHJpbmcgc3RyaW5n
QnlTdGFuZGFyZGl6aW5nUGF0aF1dKSB7CisJCQkJcHJpbnRmKCJTVkcgZG9lcyBub3QgZXhpc3Qg
YXQgcGF0aDogJXNcbiIsIGFyZ3ZbeF0pOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQlbc3ZncyBh
ZGRPYmplY3Q6YXJnU3RyaW5nXTsKKwkJfQorCX0KKwkKKwlpZiAoIVtzdmdzIGNvdW50XSkgewor
CQlwcmludGYoIk5vIHN2Z3Mgc3BlY2lmaWVkLlxuIik7CisJCXVzYWdlKG5hbWUpOworCX0KKwkK
KwkvLyBsb2FkIHRoZSBnaXZlbiBkb2N1bWVudAorCURyYXdEb2N1bWVudCAqZG9jdW1lbnQgPSBb
W0RyYXdEb2N1bWVudCBhbGxvY10gaW5pdFdpdGhDb250ZW50c09mRmlsZTpbc3ZncyBvYmplY3RB
dEluZGV4OjBdXTsKKwkvLyBjcmVhdGUgYSB2aWV3CisJRHJhd1ZpZXcgKnZpZXcgPSBbW0RyYXdW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3RdOworCVt2aWV3IHNldERvY3VtZW50
OmRvY3VtZW50XTsKKwlbdmlldyBzaXplVG9GaXRWaWV3Qm94XTsKKwlOU1NpemUgYm91bmRzU2l6
ZSA9IFt2aWV3IGJvdW5kc10uc2l6ZTsKKwlpZiAoYm91bmRzU2l6ZS53aWR0aCA+IDUwMCkKKwkJ
Ym91bmRzU2l6ZS53aWR0aCA9IDUwMDsKKwlpZiAoYm91bmRzU2l6ZS5oZWlnaHQgPiA1MDApCisJ
CWJvdW5kc1NpemUuaGVpZ2h0ID0gNTAwOworCVt2aWV3IHNldEZyYW1lU2l6ZTpib3VuZHNTaXpl
XTsKKwkvLyB0ZWxsIHRoYXQgdmlldyB0byByZW5kZXIKKwlOU0JpdG1hcEltYWdlUmVwICppbWFn
ZVJlcCA9IFt2aWV3IGJpdG1hcEltYWdlUmVwRm9yQ2FjaGluZ0Rpc3BsYXlJblJlY3Q6W3ZpZXcg
Ym91bmRzXV07CisJW3ZpZXcgY2FjaGVEaXNwbGF5SW5SZWN0Olt2aWV3IGJvdW5kc10gdG9CaXRt
YXBJbWFnZVJlcDppbWFnZVJlcF07CisJLy8gb3V0cHV0IHRoZSByZXN1bHRpbmcgaW1hZ2UKKwlO
U0RhdGEgKnBuZ0RhdGEgPSBbaW1hZ2VSZXAgcmVwcmVzZW50YXRpb25Vc2luZ1R5cGU6TlNQTkdG
aWxlVHlwZSBwcm9wZXJ0aWVzOm5pbF07CisJW3BuZ0RhdGEgd3JpdGVUb0ZpbGU6b3V0cHV0UGF0
aCBhdG9taWNhbGx5OllFU107CisJCisJW3Bvb2wgZHJhaW5dOworCQorCXJldHVybiAwOworfQor
CisKSW5kZXg6IC4vc3ZnMnBuZy9zdmcycG5nX1ByZWZpeC5wY2gKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogc3ZnMnBuZ19QcmVmaXgucGNoCmRpZmYgLU4gLi9zdmcycG5nL3N2ZzJwbmdfUHJlZml4LnBj
aAotLS0gLi9zdmcycG5nL3N2ZzJwbmdfUHJlZml4LnBjaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0w
MDAwCisrKyAuL3N2ZzJwbmcvc3ZnMnBuZ19QcmVmaXgucGNoCTI4IEp1bCAyMDA1IDAwOjE3OjEy
IC0wMDAwCkBAIC0wLDAgKzEsNyBAQAorLy8KKy8vIFByZWZpeCBoZWFkZXIgZm9yIGFsbCBzb3Vy
Y2UgZmlsZXMgb2YgdGhlICdzdmcycG5nJyB0YXJnZXQgaW4gdGhlICdzdmcycG5nJyBwcm9qZWN0
LgorLy8KKworI2lmZGVmIF9fT0JKQ19fCisgICAgI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CisjZW5kaWYKSW5kZXg6IC4vc3ZnMnBuZy9zdmcycG5nLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogcHJvamVjdC5wYnhwcm9qCmRpZmYgLU4gLi9z
dmcycG5nL3N2ZzJwbmcueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagotLS0gLi9zdmcycG5nL3N2
ZzJwbmcueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAw
CisrKyAuL3N2ZzJwbmcvc3ZnMnBuZy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCTI4IEp1bCAy
MDA1IDAwOjE3OjEzIC0wMDAwCkBAIC0wLDAgKzEsMjc0IEBACisvLyAhJCpVVEY4KiQhCit7CisJ
YXJjaGl2ZVZlcnNpb24gPSAxOworCWNsYXNzZXMgPSB7CisJfTsKKwlvYmplY3RWZXJzaW9uID0g
NDI7CisJb2JqZWN0cyA9IHsKKworLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKwkJ
OERENzZGOUEwNDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJwbmcubSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RkI3Nzk2RkU4NDE1NURDMDJBQUMwNyAvKiBz
dmcycG5nLm0gKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKKwkJOERENzZG
OUMwNDg2QUE3NjAwRDk2QjVFIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhGQjc3OUVGRTg0MTU1REMwMkFB
QzA3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OworCQlBODk4Rjc5NTA4ODI0QjRBMDA3
NUVGQjIgLyogV2ViQ29yZStTVkcuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg5OEY3OTQwODgyNEI0QTAwNzVFRkIyIC8qIFdlYkNv
cmUrU1ZHLmZyYW1ld29yayAqLzsgfTsKKy8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwor
CisvKiBCZWdpbiBQQlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KKwkJMDE0Q0VBNEYwMDE4Q0U0ODEx
Q0EyOTIzIC8qIERldmVsb3BtZW50ICovID0geworCQkJaXNhID0gUEJYQnVpbGRTdHlsZTsKKwkJ
CWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCUdDQ19E
WU5BTUlDX05PX1BJQyA9IE5POworCQkJCUdDQ19FTkFCTEVfRklYX0FORF9DT05USU5VRSA9IFlF
UzsKKwkJCQlHQ0NfR0VORVJBVEVfREVCVUdHSU5HX1NZTUJPTFMgPSBZRVM7CisJCQkJR0NDX09Q
VElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJWkVST19MSU5LID0gWUVTOworCQkJfTsKKwkJCW5h
bWUgPSBEZXZlbG9wbWVudDsKKwkJfTsKKwkJMDE0Q0VBNTAwMDE4Q0U0ODExQ0EyOTIzIC8qIERl
cGxveW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhCdWlsZFN0eWxlOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOworCQkJCUdDQ19FTkFCTEVfRklYX0FO
RF9DT05USU5VRSA9IE5POworCQkJCVpFUk9fTElOSyA9IE5POworCQkJfTsKKwkJCW5hbWUgPSBE
ZXBsb3ltZW50OworCQl9OworLyogRW5kIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLworCisvKiBC
ZWdpbiBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJOERENzZGOUUwNDg2QUE3
NjAwRDk2QjVFIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxk
UGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSA4OworCQkJZHN0UGF0aCA9IC91c3Ivc2hhcmUv
bWFuL21hbjEvOworCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDA7CisJCQlmaWxlcyA9ICgKKwkJCSk7
CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMTsKKwkJfTsKKy8qIEVu
ZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYRmlsZVJl
ZmVyZW5jZSBzZWN0aW9uICovCisJCTA4RkI3Nzk2RkU4NDE1NURDMDJBQUMwNyAvKiBzdmcycG5n
Lm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IHN2ZzJwbmcubTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDhGQjc3OUVGRTg0MTU1REMwMkFBQzA3IC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3VuZGF0aW9uLmZyYW1ld29yazsg
cGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrOyBz
b3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzMkE3MEFBQjAzNzA1RTFGMDBDOTE3ODMg
Lyogc3ZnMnBuZ19QcmVmaXgucGNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBz
dmcycG5nX1ByZWZpeC5wY2g7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThERDc2RkEx
MDQ4NkFBNzYwMEQ5NkI1RSAvKiBzdmcycG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBzdmcycG5nOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQlBODk4Rjc5NDA4ODI0QjRBMDA3NUVGQjIgLyogV2ViQ29yZStTVkcuZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3Jh
cHBlci5mcmFtZXdvcms7IHBhdGggPSAiV2ViQ29yZStTVkcuZnJhbWV3b3JrIjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKy8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKworLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQk4
REQ3NkY5QjA0ODZBQTc2MDBEOTZCNUUgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
KwkJCWZpbGVzID0gKAorCQkJCThERDc2RjlDMDQ4NkFBNzYwMEQ5NkI1RSAvKiBGb3VuZGF0aW9u
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJCUE4OThGNzk1MDg4MjRCNEEwMDc1RUZC
MiAvKiBXZWJDb3JlK1NWRy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKy8qIEVuZCBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEdyb3VwIHNlY3Rp
b24gKi8KKwkJMDhGQjc3OTRGRTg0MTU1REMwMkFBQzA3IC8qIHN2ZzJwbmcgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTA4RkI3Nzk1RkU4NDE1NURDMDJB
QUMwNyAvKiBTb3VyY2UgKi8sCisJCQkJMDhGQjc3OURGRTg0MTU1REMwMkFBQzA3IC8qIEV4dGVy
bmFsIEZyYW1ld29ya3MgYW5kIExpYnJhcmllcyAqLywKKwkJCQkxQUI2NzRBREZFOUQ1NEI1MTFD
QTJDQkIgLyogUHJvZHVjdHMgKi8sCisJCQkpOworCQkJbmFtZSA9IHN2ZzJwbmc7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkwOEZCNzc5NUZFODQxNTVEQzAyQUFDMDcgLyog
U291cmNlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkz
MkE3MEFBQjAzNzA1RTFGMDBDOTE3ODMgLyogc3ZnMnBuZ19QcmVmaXgucGNoICovLAorCQkJCTA4
RkI3Nzk2RkU4NDE1NURDMDJBQUMwNyAvKiBzdmcycG5nLm0gKi8sCisJCQkpOworCQkJbmFtZSA9
IFNvdXJjZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTA4RkI3NzlERkU4
NDE1NURDMDJBQUMwNyAvKiBFeHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE4OThGNzk0MDg4MjRC
NEEwMDc1RUZCMiAvKiBXZWJDb3JlK1NWRy5mcmFtZXdvcmsgKi8sCisJCQkJMDhGQjc3OUVGRTg0
MTU1REMwMkFBQzA3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAorCQkJKTsKKwkJCW5hbWUg
PSAiRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzIjsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCTFBQjY3NEFERkU5RDU0QjUxMUNBMkNCQiAvKiBQcm9kdWN0cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOERENzZGQTEw
NDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJwbmcgKi8sCisJCQkpOworCQkJbmFtZSA9IFByb2R1Y3Rz
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKy8qIEVuZCBQQlhHcm91cCBzZWN0
aW9uICovCisKKy8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCThERDc2Rjk2
MDQ4NkFBNzYwMEQ5NkI1RSAvKiBzdmcycG5nICovID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFy
Z2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEE4QzAwNjI1MDg5NzU2OUEwMEJBNTEx
NCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAic3ZnMnBu
ZyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk4REQ3NkY5OTA0ODZBQTc2MDBEOTZCNUUg
LyogU291cmNlcyAqLywKKwkJCQk4REQ3NkY5QjA0ODZBQTc2MDBEOTZCNUUgLyogRnJhbWV3b3Jr
cyAqLywKKwkJCQk4REQ3NkY5RTA0ODZBQTc2MDBEOTZCNUUgLyogQ29weUZpbGVzICovLAorCQkJ
KTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlH
Q0NfR0VORVJBVEVfREVCVUdHSU5HX1NZTUJPTFMgPSBOTzsKKwkJCQlHQ0NfTU9ERUxfVFVOSU5H
ID0gRzU7CisJCQkJR0NDX1BSRUNPTVBJTEVfUFJFRklYX0hFQURFUiA9IFlFUzsKKwkJCQlHQ0Nf
UFJFRklYX0hFQURFUiA9IHN2ZzJwbmdfUHJlZml4LnBjaDsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9S
RVRVUk5fVFlQRSA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJ
CQkJSU5TVEFMTF9QQVRIID0gIiQoSE9NRSkvYmluIjsKKwkJCQlQUkVCSU5ESU5HID0gTk87CisJ
CQkJUFJPRFVDVF9OQU1FID0gc3ZnMnBuZzsKKwkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJhcHBs
ZS1nZW5lcmljIjsKKwkJCX07CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9
IHN2ZzJwbmc7CisJCQlwcm9kdWN0SW5zdGFsbFBhdGggPSAiJChIT01FKS9iaW4iOworCQkJcHJv
ZHVjdE5hbWUgPSBzdmcycG5nOworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDhERDc2RkExMDQ4NkFB
NzYwMEQ5NkI1RSAvKiBzdmcycG5nICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnBy
b2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKKy8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAq
LworCisvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKwkJMDhGQjc3OTNGRTg0MTU1REMw
MkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0geworCQkJaXNhID0gUEJYUHJvamVjdDsKKwkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBBOEMwMDYyOTA4OTc1NjlBMDBCQTUxMTQgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJzdmcycG5nIiAqLzsKKwkJCWJ1
aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJYnVpbGRTdHlsZXMgPSAoCisJCQkJMDE0Q0VBNEYw
MDE4Q0U0ODExQ0EyOTIzIC8qIERldmVsb3BtZW50ICovLAorCQkJCTAxNENFQTUwMDAxOENFNDgx
MUNBMjkyMyAvKiBEZXBsb3ltZW50ICovLAorCQkJKTsKKwkJCWhhc1NjYW5uZWRGb3JFbmNvZGlu
Z3MgPSAxOworCQkJbWFpbkdyb3VwID0gMDhGQjc3OTRGRTg0MTU1REMwMkFBQzA3IC8qIHN2ZzJw
bmcgKi87CisJCQlwcm9qZWN0RGlyUGF0aCA9ICIiOworCQkJdGFyZ2V0cyA9ICgKKwkJCQk4REQ3
NkY5NjA0ODZBQTc2MDBEOTZCNUUgLyogc3ZnMnBuZyAqLywKKwkJCSk7CisJCX07CisvKiBFbmQg
UEJYUHJvamVjdCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNl
Y3Rpb24gKi8KKwkJOERENzZGOTkwNDg2QUE3NjAwRDk2QjVFIC8qIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk4REQ3NkY5QTA0ODZBQTc2MDBEOTZCNUUgLyogc3Zn
MnBuZy5tIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CisJCX07CisvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlv
biAqLworCisvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCisJCUE4QzAw
NjI2MDg5NzU2OUEwMEJBNTExNCAvKiBEZXZlbG9wbWVudCAqLyA9IHsKKwkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlDT1BZX1BIQVNFX1NU
UklQID0gTk87CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX0VOQUJMRV9G
SVhfQU5EX0NPTlRJTlVFID0gWUVTOworCQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdfU1lNQk9M
UyA9IFlFUzsKKwkJCQlHQ0NfTU9ERUxfVFVOSU5HID0gRzU7CisJCQkJR0NDX09QVElNSVpBVElP
Tl9MRVZFTCA9IDA7CisJCQkJR0NDX1BSRUNPTVBJTEVfUFJFRklYX0hFQURFUiA9IFlFUzsKKwkJ
CQlHQ0NfUFJFRklYX0hFQURFUiA9IHN2ZzJwbmdfUHJlZml4LnBjaDsKKwkJCQlHQ0NfV0FSTl9B
Qk9VVF9SRVRVUk5fVFlQRSA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZ
RVM7CisJCQkJSU5TVEFMTF9QQVRIID0gIiQoSE9NRSkvYmluIjsKKwkJCQlQUkVCSU5ESU5HID0g
Tk87CisJCQkJUFJPRFVDVF9OQU1FID0gc3ZnMnBuZzsKKwkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9
ICJhcHBsZS1nZW5lcmljIjsKKwkJCQlaRVJPX0xJTksgPSBZRVM7CisJCQl9OworCQkJbmFtZSA9
IERldmVsb3BtZW50OworCQl9OworCQlBOEMwMDYyNzA4OTc1NjlBMDBCQTUxMTQgLyogRGVwbG95
bWVudCAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0
aW5ncyA9IHsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOworCQkJCUdDQ19FTkFCTEVfRklY
X0FORF9DT05USU5VRSA9IE5POworCQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdfU1lNQk9MUyA9
IE5POworCQkJCUdDQ19NT0RFTF9UVU5JTkcgPSBHNTsKKwkJCQlHQ0NfUFJFQ09NUElMRV9QUkVG
SVhfSEVBREVSID0gWUVTOworCQkJCUdDQ19QUkVGSVhfSEVBREVSID0gc3ZnMnBuZ19QcmVmaXgu
cGNoOworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTOworCQkJCUdDQ19XQVJO
X1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChIT01FKS9iaW4i
OworCQkJCVBSRUJJTkRJTkcgPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSBzdmcycG5nOworCQkJ
CVZFUlNJT05JTkdfU1lTVEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJCVpFUk9fTElOSyA9IE5P
OworCQkJfTsKKwkJCW5hbWUgPSBEZXBsb3ltZW50OworCQl9OworCQlBOEMwMDYyODA4OTc1NjlB
MDBCQTUxMTQgLyogRGVmYXVsdCAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9u
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlHQ0NfR0VORVJBVEVfREVCVUdHSU5HX1NZTUJP
TFMgPSBOTzsKKwkJCQlHQ0NfTU9ERUxfVFVOSU5HID0gRzU7CisJCQkJR0NDX1BSRUNPTVBJTEVf
UFJFRklYX0hFQURFUiA9IFlFUzsKKwkJCQlHQ0NfUFJFRklYX0hFQURFUiA9IHN2ZzJwbmdfUHJl
Zml4LnBjaDsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFUzsKKwkJCQlHQ0Nf
V0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJSU5TVEFMTF9QQVRIID0gIiQoSE9NRSkv
YmluIjsKKwkJCQlQUkVCSU5ESU5HID0gTk87CisJCQkJUFJPRFVDVF9OQU1FID0gc3ZnMnBuZzsK
KwkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJhcHBsZS1nZW5lcmljIjsKKwkJCX07CisJCQluYW1l
ID0gRGVmYXVsdDsKKwkJfTsKKwkJQThDMDA2MkEwODk3NTY5QTAwQkE1MTE0IC8qIERldmVsb3Bt
ZW50ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRp
bmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBEZXZlbG9wbWVudDsKKwkJfTsKKwkJQThDMDA2MkIw
ODk3NTY5QTAwQkE1MTE0IC8qIERlcGxveW1lbnQgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IERlcGxv
eW1lbnQ7CisJCX07CisJCUE4QzAwNjJDMDg5NzU2OUEwMEJBNTExNCAvKiBEZWZhdWx0ICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJfTsKKwkJCW5hbWUgPSBEZWZhdWx0OworCQl9OworLyogRW5kIFhDQnVpbGRDb25maWd1cmF0
aW9uIHNlY3Rpb24gKi8KKworLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICov
CisJCUE4QzAwNjI1MDg5NzU2OUEwMEJBNTExNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAic3ZnMnBuZyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQlBOEMwMDYyNjA4OTc1
NjlBMDBCQTUxMTQgLyogRGV2ZWxvcG1lbnQgKi8sCisJCQkJQThDMDA2MjcwODk3NTY5QTAwQkE1
MTE0IC8qIERlcGxveW1lbnQgKi8sCisJCQkJQThDMDA2MjgwODk3NTY5QTAwQkE1MTE0IC8qIERl
ZmF1bHQgKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gRGVmYXVsdDsKKwkJfTsKKwkJQThDMDA2Mjkw
ODk3NTY5QTAwQkE1MTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVj
dCAic3ZnMnBuZyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQlBOEMwMDYyQTA4OTc1NjlBMDBCQTUxMTQgLyogRGV2
ZWxvcG1lbnQgKi8sCisJCQkJQThDMDA2MkIwODk3NTY5QTAwQkE1MTE0IC8qIERlcGxveW1lbnQg
Ki8sCisJCQkJQThDMDA2MkMwODk3NTY5QTAwQkE1MTE0IC8qIERlZmF1bHQgKi8sCisJCQkpOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25OYW1lID0gRGVmYXVsdDsKKwkJfTsKKy8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNl
Y3Rpb24gKi8KKwl9OworCXJvb3RPYmplY3QgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi87Cit9Cg==
</data>
<flag name="review"
          id="285"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3131</attachid>
            <date>2005-07-27 22:31:29 -0700</date>
            <delta_ts>2005-07-28 01:23:07 -0700</delta_ts>
            <desc>Improved svg2png, better conforms to webkit coding style.</desc>
            <filename>svg2png.patch</filename>
            <type>text/plain</type>
            <size>35832</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IEFQUExFX0xJQ0VOU0UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogQVBQTEVfTElDRU5TRQpk
aWZmIC1OIEFQUExFX0xJQ0VOU0UKLS0tIEFQUExFX0xJQ0VOU0UJMSBKYW4gMTk3MCAwMDowMDow
MCAtMDAwMAorKysgQVBQTEVfTElDRU5TRQkyOCBKdWwgMjAwNSAwNToxMTo0MSAtMDAwMApAQCAt
MCwwICsxLDM2NyBAQAorQVBQTEUgUFVCTElDIFNPVVJDRSBMSUNFTlNFCitWZXJzaW9uIDIuMCAt
IEF1Z3VzdCA2LCAyMDAzCisKK1BsZWFzZSByZWFkIHRoaXMgTGljZW5zZSBjYXJlZnVsbHkgYmVm
b3JlIGRvd25sb2FkaW5nIHRoaXMgc29mdHdhcmUuCitCeSBkb3dubG9hZGluZyBvciB1c2luZyB0
aGlzIHNvZnR3YXJlLCB5b3UgYXJlIGFncmVlaW5nIHRvIGJlIGJvdW5kIGJ5Cit0aGUgdGVybXMg
b2YgdGhpcyBMaWNlbnNlLiBJZiB5b3UgZG8gbm90IG9yIGNhbm5vdCBhZ3JlZSB0byB0aGUgdGVy
bXMKK29mIHRoaXMgTGljZW5zZSwgcGxlYXNlIGRvIG5vdCBkb3dubG9hZCBvciB1c2UgdGhlIHNv
ZnR3YXJlLgorCisxLiBHZW5lcmFsOyBEZWZpbml0aW9ucy4gVGhpcyBMaWNlbnNlIGFwcGxpZXMg
dG8gYW55IHByb2dyYW0gb3Igb3RoZXIKK3dvcmsgd2hpY2ggQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG1ha2VzIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQKK3doaWNoIGNvbnRhaW5zIGEg
bm90aWNlIHBsYWNlZCBieSBBcHBsZSBpZGVudGlmeWluZyBzdWNoIHByb2dyYW0gb3IKK3dvcmsg
YXMgIk9yaWdpbmFsIENvZGUiIGFuZCBzdGF0aW5nIHRoYXQgaXQgaXMgc3ViamVjdCB0byB0aGUg
dGVybXMgb2YKK3RoaXMgQXBwbGUgUHVibGljIFNvdXJjZSBMaWNlbnNlIHZlcnNpb24gMi4wICgi
TGljZW5zZSIpLiBBcyB1c2VkIGluCit0aGlzIExpY2Vuc2U6CisKKzEuMSAiQXBwbGljYWJsZSBQ
YXRlbnQgUmlnaHRzIiBtZWFuOiAoYSkgaW4gdGhlIGNhc2Ugd2hlcmUgQXBwbGUgaXMKK3RoZSBn
cmFudG9yIG9mIHJpZ2h0cywgKGkpIGNsYWltcyBvZiBwYXRlbnRzIHRoYXQgYXJlIG5vdyBvciBo
ZXJlYWZ0ZXIKK2FjcXVpcmVkLCBvd25lZCBieSBvciBhc3NpZ25lZCB0byBBcHBsZSBhbmQgKGlp
KSB0aGF0IGNvdmVyIHN1YmplY3QKK21hdHRlciBjb250YWluZWQgaW4gdGhlIE9yaWdpbmFsIENv
ZGUsIGJ1dCBvbmx5IHRvIHRoZSBleHRlbnQKK25lY2Vzc2FyeSB0byB1c2UsIHJlcHJvZHVjZSBh
bmQvb3IgZGlzdHJpYnV0ZSB0aGUgT3JpZ2luYWwgQ29kZQord2l0aG91dCBpbmZyaW5nZW1lbnQ7
IGFuZCAoYikgaW4gdGhlIGNhc2Ugd2hlcmUgWW91IGFyZSB0aGUgZ3JhbnRvciBvZgorcmlnaHRz
LCAoaSkgY2xhaW1zIG9mIHBhdGVudHMgdGhhdCBhcmUgbm93IG9yIGhlcmVhZnRlciBhY3F1aXJl
ZCwKK293bmVkIGJ5IG9yIGFzc2lnbmVkIHRvIFlvdSBhbmQgKGlpKSB0aGF0IGNvdmVyIHN1Ympl
Y3QgbWF0dGVyIGluIFlvdXIKK01vZGlmaWNhdGlvbnMsIHRha2VuIGFsb25lIG9yIGluIGNvbWJp
bmF0aW9uIHdpdGggT3JpZ2luYWwgQ29kZS4KKworMS4yICJDb250cmlidXRvciIgbWVhbnMgYW55
IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBjcmVhdGVzIG9yCitjb250cmlidXRlcyB0byB0aGUgY3Jl
YXRpb24gb2YgTW9kaWZpY2F0aW9ucy4KKworMS4zICJDb3ZlcmVkIENvZGUiIG1lYW5zIHRoZSBP
cmlnaW5hbCBDb2RlLCBNb2RpZmljYXRpb25zLCB0aGUKK2NvbWJpbmF0aW9uIG9mIE9yaWdpbmFs
IENvZGUgYW5kIGFueSBNb2RpZmljYXRpb25zLCBhbmQvb3IgYW55CityZXNwZWN0aXZlIHBvcnRp
b25zIHRoZXJlb2YuCisKKzEuNCAiRXh0ZXJuYWxseSBEZXBsb3kiIG1lYW5zOiAoYSkgdG8gc3Vi
bGljZW5zZSwgZGlzdHJpYnV0ZSBvcgorb3RoZXJ3aXNlIG1ha2UgQ292ZXJlZCBDb2RlIGF2YWls
YWJsZSwgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgdG8KK2FueW9uZSBvdGhlciB0aGFuIFlvdTsg
YW5kL29yIChiKSB0byB1c2UgQ292ZXJlZCBDb2RlLCBhbG9uZSBvciBhcworcGFydCBvZiBhIExh
cmdlciBXb3JrLCBpbiBhbnkgd2F5IHRvIHByb3ZpZGUgYSBzZXJ2aWNlLCBpbmNsdWRpbmcgYnV0
Citub3QgbGltaXRlZCB0byBkZWxpdmVyeSBvZiBjb250ZW50LCB0aHJvdWdoIGVsZWN0cm9uaWMg
Y29tbXVuaWNhdGlvbgord2l0aCBhIGNsaWVudCBvdGhlciB0aGFuIFlvdS4KKworMS41ICJMYXJn
ZXIgV29yayIgbWVhbnMgYSB3b3JrIHdoaWNoIGNvbWJpbmVzIENvdmVyZWQgQ29kZSBvciBwb3J0
aW9ucwordGhlcmVvZiB3aXRoIGNvZGUgbm90IGdvdmVybmVkIGJ5IHRoZSB0ZXJtcyBvZiB0aGlz
IExpY2Vuc2UuCisKKzEuNiAiTW9kaWZpY2F0aW9ucyIgbWVhbiBhbnkgYWRkaXRpb24gdG8sIGRl
bGV0aW9uIGZyb20sIGFuZC9vciBjaGFuZ2UKK3RvLCB0aGUgc3Vic3RhbmNlIGFuZC9vciBzdHJ1
Y3R1cmUgb2YgdGhlIE9yaWdpbmFsIENvZGUsIGFueSBwcmV2aW91cworTW9kaWZpY2F0aW9ucywg
dGhlIGNvbWJpbmF0aW9uIG9mIE9yaWdpbmFsIENvZGUgYW5kIGFueSBwcmV2aW91cworTW9kaWZp
Y2F0aW9ucywgYW5kL29yIGFueSByZXNwZWN0aXZlIHBvcnRpb25zIHRoZXJlb2YuIFdoZW4gY29k
ZSBpcworcmVsZWFzZWQgYXMgYSBzZXJpZXMgb2YgZmlsZXMsIGEgTW9kaWZpY2F0aW9uIGlzOiAo
YSkgYW55IGFkZGl0aW9uIHRvCitvciBkZWxldGlvbiBmcm9tIHRoZSBjb250ZW50cyBvZiBhIGZp
bGUgY29udGFpbmluZyBDb3ZlcmVkIENvZGU7CithbmQvb3IgKGIpIGFueSBuZXcgZmlsZSBvciBv
dGhlciByZXByZXNlbnRhdGlvbiBvZiBjb21wdXRlciBwcm9ncmFtCitzdGF0ZW1lbnRzIHRoYXQg
Y29udGFpbnMgYW55IHBhcnQgb2YgQ292ZXJlZCBDb2RlLgorCisxLjcgIk9yaWdpbmFsIENvZGUi
IG1lYW5zIChhKSB0aGUgU291cmNlIENvZGUgb2YgYSBwcm9ncmFtIG9yIG90aGVyCit3b3JrIGFz
IG9yaWdpbmFsbHkgbWFkZSBhdmFpbGFibGUgYnkgQXBwbGUgdW5kZXIgdGhpcyBMaWNlbnNlLAor
aW5jbHVkaW5nIHRoZSBTb3VyY2UgQ29kZSBvZiBhbnkgdXBkYXRlcyBvciB1cGdyYWRlcyB0byBz
dWNoIHByb2dyYW1zCitvciB3b3JrcyBtYWRlIGF2YWlsYWJsZSBieSBBcHBsZSB1bmRlciB0aGlz
IExpY2Vuc2UsIGFuZCB0aGF0IGhhcyBiZWVuCitleHByZXNzbHkgaWRlbnRpZmllZCBieSBBcHBs
ZSBhcyBzdWNoIGluIHRoZSBoZWFkZXIgZmlsZShzKSBvZiBzdWNoCit3b3JrOyBhbmQgKGIpIHRo
ZSBvYmplY3QgY29kZSBjb21waWxlZCBmcm9tIHN1Y2ggU291cmNlIENvZGUgYW5kCitvcmlnaW5h
bGx5IG1hZGUgYXZhaWxhYmxlIGJ5IEFwcGxlIHVuZGVyIHRoaXMgTGljZW5zZS4KKworMS44ICJT
b3VyY2UgQ29kZSIgbWVhbnMgdGhlIGh1bWFuIHJlYWRhYmxlIGZvcm0gb2YgYSBwcm9ncmFtIG9y
IG90aGVyCit3b3JrIHRoYXQgaXMgc3VpdGFibGUgZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRv
IGl0LCBpbmNsdWRpbmcgYWxsCittb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueSBhc3NvY2lh
dGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLAorc2NyaXB0cyB1c2VkIHRvIGNvbnRyb2wg
Y29tcGlsYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiBhbiBleGVjdXRhYmxlCisob2JqZWN0IGNv
ZGUpLgorCisxLjkgIllvdSIgb3IgIllvdXIiIG1lYW5zIGFuIGluZGl2aWR1YWwgb3IgYSBsZWdh
bCBlbnRpdHkgZXhlcmNpc2luZworcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4gRm9yIGxlZ2Fs
IGVudGl0aWVzLCAiWW91IiBvciAiWW91ciIKK2luY2x1ZGVzIGFueSBlbnRpdHkgd2hpY2ggY29u
dHJvbHMsIGlzIGNvbnRyb2xsZWQgYnksIG9yIGlzIHVuZGVyCitjb21tb24gY29udHJvbCB3aXRo
LCBZb3UsIHdoZXJlICJjb250cm9sIiBtZWFucyAoYSkgdGhlIHBvd2VyLCBkaXJlY3QKK29yIGlu
ZGlyZWN0LCB0byBjYXVzZSB0aGUgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRp
dHksCit3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yIG90aGVyd2lzZSwgb3IgKGIpIG93bmVyc2hpcCBv
ZiBmaWZ0eSBwZXJjZW50CisoNTAlKSBvciBtb3JlIG9mIHRoZSBvdXRzdGFuZGluZyBzaGFyZXMg
b3IgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2YKK3N1Y2ggZW50aXR5LgorCisyLiBQZXJtaXR0ZWQg
VXNlczsgQ29uZGl0aW9ucyAmIFJlc3RyaWN0aW9ucy4gU3ViamVjdCB0byB0aGUgdGVybXMKK2Fu
ZCBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgQXBwbGUgaGVyZWJ5IGdyYW50cyBZb3UsIGVm
ZmVjdGl2ZSBvbgordGhlIGRhdGUgWW91IGFjY2VwdCB0aGlzIExpY2Vuc2UgYW5kIGRvd25sb2Fk
IHRoZSBPcmlnaW5hbCBDb2RlLCBhCit3b3JsZC13aWRlLCByb3lhbHR5LWZyZWUsIG5vbi1leGNs
dXNpdmUgbGljZW5zZSwgdG8gdGhlIGV4dGVudCBvZgorQXBwbGUncyBBcHBsaWNhYmxlIFBhdGVu
dCBSaWdodHMgYW5kIGNvcHlyaWdodHMgY292ZXJpbmcgdGhlIE9yaWdpbmFsCitDb2RlLCB0byBk
byB0aGUgZm9sbG93aW5nOgorCisyLjEgVW5tb2RpZmllZCBDb2RlLiBZb3UgbWF5IHVzZSwgcmVw
cm9kdWNlLCBkaXNwbGF5LCBwZXJmb3JtLAoraW50ZXJuYWxseSBkaXN0cmlidXRlIHdpdGhpbiBZ
b3VyIG9yZ2FuaXphdGlvbiwgYW5kIEV4dGVybmFsbHkgRGVwbG95Cit2ZXJiYXRpbSwgdW5tb2Rp
ZmllZCBjb3BpZXMgb2YgdGhlIE9yaWdpbmFsIENvZGUsIGZvciBjb21tZXJjaWFsIG9yCitub24t
Y29tbWVyY2lhbCBwdXJwb3NlcywgcHJvdmlkZWQgdGhhdCBpbiBlYWNoIGluc3RhbmNlOgorCiso
YSkgWW91IG11c3QgcmV0YWluIGFuZCByZXByb2R1Y2UgaW4gYWxsIGNvcGllcyBvZiBPcmlnaW5h
bCBDb2RlIHRoZQorY29weXJpZ2h0IGFuZCBvdGhlciBwcm9wcmlldGFyeSBub3RpY2VzIGFuZCBk
aXNjbGFpbWVycyBvZiBBcHBsZSBhcwordGhleSBhcHBlYXIgaW4gdGhlIE9yaWdpbmFsIENvZGUs
IGFuZCBrZWVwIGludGFjdCBhbGwgbm90aWNlcyBpbiB0aGUKK09yaWdpbmFsIENvZGUgdGhhdCBy
ZWZlciB0byB0aGlzIExpY2Vuc2U7IGFuZAorCisoYikgWW91IG11c3QgaW5jbHVkZSBhIGNvcHkg
b2YgdGhpcyBMaWNlbnNlIHdpdGggZXZlcnkgY29weSBvZiBTb3VyY2UKK0NvZGUgb2YgQ292ZXJl
ZCBDb2RlIGFuZCBkb2N1bWVudGF0aW9uIFlvdSBkaXN0cmlidXRlIG9yIEV4dGVybmFsbHkKK0Rl
cGxveSwgYW5kIFlvdSBtYXkgbm90IG9mZmVyIG9yIGltcG9zZSBhbnkgdGVybXMgb24gc3VjaCBT
b3VyY2UgQ29kZQordGhhdCBhbHRlciBvciByZXN0cmljdCB0aGlzIExpY2Vuc2Ugb3IgdGhlIHJl
Y2lwaWVudHMnIHJpZ2h0cworaGVyZXVuZGVyLCBleGNlcHQgYXMgcGVybWl0dGVkIHVuZGVyIFNl
Y3Rpb24gNi4KKworMi4yIE1vZGlmaWVkIENvZGUuIFlvdSBtYXkgbW9kaWZ5IENvdmVyZWQgQ29k
ZSBhbmQgdXNlLCByZXByb2R1Y2UsCitkaXNwbGF5LCBwZXJmb3JtLCBpbnRlcm5hbGx5IGRpc3Ry
aWJ1dGUgd2l0aGluIFlvdXIgb3JnYW5pemF0aW9uLCBhbmQKK0V4dGVybmFsbHkgRGVwbG95IFlv
dXIgTW9kaWZpY2F0aW9ucyBhbmQgQ292ZXJlZCBDb2RlLCBmb3IgY29tbWVyY2lhbAorb3Igbm9u
LWNvbW1lcmNpYWwgcHVycG9zZXMsIHByb3ZpZGVkIHRoYXQgaW4gZWFjaCBpbnN0YW5jZSBZb3Ug
YWxzbworbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKKworKGEpIFlvdSBtdXN0IHNhdGlz
ZnkgYWxsIHRoZSBjb25kaXRpb25zIG9mIFNlY3Rpb24gMi4xIHdpdGggcmVzcGVjdCB0bwordGhl
IFNvdXJjZSBDb2RlIG9mIHRoZSBDb3ZlcmVkIENvZGU7CisKKyhiKSBZb3UgbXVzdCBkdXBsaWNh
dGUsIHRvIHRoZSBleHRlbnQgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCwgdGhlCitub3RpY2Ug
aW4gRXhoaWJpdCBBIGluIGVhY2ggZmlsZSBvZiB0aGUgU291cmNlIENvZGUgb2YgYWxsIFlvdXIK
K01vZGlmaWNhdGlvbnMsIGFuZCBjYXVzZSB0aGUgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJv
bWluZW50IG5vdGljZXMKK3N0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRo
ZSBkYXRlIG9mIGFueSBjaGFuZ2U7IGFuZAorCisoYykgSWYgWW91IEV4dGVybmFsbHkgRGVwbG95
IFlvdXIgTW9kaWZpY2F0aW9ucywgWW91IG11c3QgbWFrZQorU291cmNlIENvZGUgb2YgYWxsIFlv
dXIgRXh0ZXJuYWxseSBEZXBsb3llZCBNb2RpZmljYXRpb25zIGVpdGhlcgorYXZhaWxhYmxlIHRv
IHRob3NlIHRvIHdob20gWW91IGhhdmUgRXh0ZXJuYWxseSBEZXBsb3llZCBZb3VyCitNb2RpZmlj
YXRpb25zLCBvciBwdWJsaWNseSBhdmFpbGFibGUuIFNvdXJjZSBDb2RlIG9mIFlvdXIgRXh0ZXJu
YWxseQorRGVwbG95ZWQgTW9kaWZpY2F0aW9ucyBtdXN0IGJlIHJlbGVhc2VkIHVuZGVyIHRoZSB0
ZXJtcyBzZXQgZm9ydGggaW4KK3RoaXMgTGljZW5zZSwgaW5jbHVkaW5nIHRoZSBsaWNlbnNlIGdy
YW50cyBzZXQgZm9ydGggaW4gU2VjdGlvbiAzCitiZWxvdywgZm9yIGFzIGxvbmcgYXMgeW91IEV4
dGVybmFsbHkgRGVwbG95IHRoZSBDb3ZlcmVkIENvZGUgb3IgdHdlbHZlCisoMTIpIG1vbnRocyBm
cm9tIHRoZSBkYXRlIG9mIGluaXRpYWwgRXh0ZXJuYWwgRGVwbG95bWVudCwgd2hpY2hldmVyIGlz
Citsb25nZXIuIFlvdSBzaG91bGQgcHJlZmVyYWJseSBkaXN0cmlidXRlIHRoZSBTb3VyY2UgQ29k
ZSBvZiBZb3VyCitFeHRlcm5hbGx5IERlcGxveWVkIE1vZGlmaWNhdGlvbnMgZWxlY3Ryb25pY2Fs
bHkgKGUuZy4gZG93bmxvYWQgZnJvbSBhCit3ZWIgc2l0ZSkuCisKKzIuMyBEaXN0cmlidXRpb24g
b2YgRXhlY3V0YWJsZSBWZXJzaW9ucy4gSW4gYWRkaXRpb24sIGlmIFlvdQorRXh0ZXJuYWxseSBE
ZXBsb3kgQ292ZXJlZCBDb2RlIChPcmlnaW5hbCBDb2RlIGFuZC9vciBNb2RpZmljYXRpb25zKSBp
bgorb2JqZWN0IGNvZGUsIGV4ZWN1dGFibGUgZm9ybSBvbmx5LCBZb3UgbXVzdCBpbmNsdWRlIGEg
cHJvbWluZW50Citub3RpY2UsIGluIHRoZSBjb2RlIGl0c2VsZiBhcyB3ZWxsIGFzIGluIHJlbGF0
ZWQgZG9jdW1lbnRhdGlvbiwKK3N0YXRpbmcgdGhhdCBTb3VyY2UgQ29kZSBvZiB0aGUgQ292ZXJl
ZCBDb2RlIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUKK3Rlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRo
IGluZm9ybWF0aW9uIG9uIGhvdyBhbmQgd2hlcmUgdG8gb2J0YWluIHN1Y2gKK1NvdXJjZSBDb2Rl
LgorCisyLjQgVGhpcmQgUGFydHkgUmlnaHRzLiBZb3UgZXhwcmVzc2x5IGFja25vd2xlZGdlIGFu
ZCBhZ3JlZSB0aGF0CithbHRob3VnaCBBcHBsZSBhbmQgZWFjaCBDb250cmlidXRvciBncmFudHMg
dGhlIGxpY2Vuc2VzIHRvIHRoZWlyCityZXNwZWN0aXZlIHBvcnRpb25zIG9mIHRoZSBDb3ZlcmVk
IENvZGUgc2V0IGZvcnRoIGhlcmVpbiwgbm8KK2Fzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IEFw
cGxlIG9yIGFueSBDb250cmlidXRvciB0aGF0IHRoZSBDb3ZlcmVkCitDb2RlIGRvZXMgbm90IGlu
ZnJpbmdlIHRoZSBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5CityaWdodHMg
b2YgYW55IG90aGVyIGVudGl0eS4gQXBwbGUgYW5kIGVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW0g
YW55CitsaWFiaWxpdHkgdG8gWW91IGZvciBjbGFpbXMgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50
aXR5IGJhc2VkIG9uCitpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0
cyBvciBvdGhlcndpc2UuIEFzIGEKK2NvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMg
YW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBZb3UKK2hlcmVieSBhc3N1bWUgc29sZSBy
ZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbAorcHJvcGVydHkg
cmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRl
bnQKK2xpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgWW91IHRvIGRpc3RyaWJ1dGUgdGhlIENv
dmVyZWQgQ29kZSwgaXQgaXMKK1lvdXIgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxp
Y2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUKK0NvdmVyZWQgQ29kZS4KKworMy4gWW91ciBH
cmFudHMuIEluIGNvbnNpZGVyYXRpb24gb2YsIGFuZCBhcyBhIGNvbmRpdGlvbiB0bywgdGhlCits
aWNlbnNlcyBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UsIFlvdSBoZXJlYnkgZ3Jh
bnQgdG8gYW55CitwZXJzb24gb3IgZW50aXR5IHJlY2VpdmluZyBvciBkaXN0cmlidXRpbmcgQ292
ZXJlZCBDb2RlIHVuZGVyIHRoaXMKK0xpY2Vuc2UgYSBub24tZXhjbHVzaXZlLCByb3lhbHR5LWZy
ZWUsIHBlcnBldHVhbCwgaXJyZXZvY2FibGUgbGljZW5zZSwKK3VuZGVyIFlvdXIgQXBwbGljYWJs
ZSBQYXRlbnQgUmlnaHRzIGFuZCBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkKK3JpZ2h0cyAo
b3RoZXIgdGhhbiBwYXRlbnQpIG93bmVkIG9yIGNvbnRyb2xsZWQgYnkgWW91LCB0byB1c2UsCity
ZXByb2R1Y2UsIGRpc3BsYXksIHBlcmZvcm0sIG1vZGlmeSwgc3VibGljZW5zZSwgZGlzdHJpYnV0
ZSBhbmQKK0V4dGVybmFsbHkgRGVwbG95IFlvdXIgTW9kaWZpY2F0aW9ucyBvZiB0aGUgc2FtZSBz
Y29wZSBhbmQgZXh0ZW50IGFzCitBcHBsZSdzIGxpY2Vuc2VzIHVuZGVyIFNlY3Rpb25zIDIuMSBh
bmQgMi4yIGFib3ZlLgorCis0LiBMYXJnZXIgV29ya3MuIFlvdSBtYXkgY3JlYXRlIGEgTGFyZ2Vy
IFdvcmsgYnkgY29tYmluaW5nIENvdmVyZWQKK0NvZGUgd2l0aCBvdGhlciBjb2RlIG5vdCBnb3Zl
cm5lZCBieSB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIGFuZAorZGlzdHJpYnV0ZSB0aGUgTGFy
Z2VyIFdvcmsgYXMgYSBzaW5nbGUgcHJvZHVjdC4gSW4gZWFjaCBzdWNoIGluc3RhbmNlLAorWW91
IG11c3QgbWFrZSBzdXJlIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlIGFyZSBmdWxm
aWxsZWQgZm9yCit0aGUgQ292ZXJlZCBDb2RlIG9yIGFueSBwb3J0aW9uIHRoZXJlb2YuCisKKzUu
IExpbWl0YXRpb25zIG9uIFBhdGVudCBMaWNlbnNlLiBFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRl
ZCBpbgorU2VjdGlvbiAyLCBubyBvdGhlciBwYXRlbnQgcmlnaHRzLCBleHByZXNzIG9yIGltcGxp
ZWQsIGFyZSBncmFudGVkIGJ5CitBcHBsZSBoZXJlaW4uIE1vZGlmaWNhdGlvbnMgYW5kL29yIExh
cmdlciBXb3JrcyBtYXkgcmVxdWlyZSBhZGRpdGlvbmFsCitwYXRlbnQgbGljZW5zZXMgZnJvbSBB
cHBsZSB3aGljaCBBcHBsZSBtYXkgZ3JhbnQgaW4gaXRzIHNvbGUKK2Rpc2NyZXRpb24uCisKKzYu
IEFkZGl0aW9uYWwgVGVybXMuIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLCBhbmQgdG8gY2hhcmdl
IGEgZmVlIGZvciwKK3dhcnJhbnR5LCBzdXBwb3J0LCBpbmRlbW5pdHkgb3IgbGlhYmlsaXR5IG9i
bGlnYXRpb25zIGFuZC9vciBvdGhlcgorcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGUgc2NvcGUg
b2YgdGhlIGxpY2Vuc2UgZ3JhbnRlZCBoZXJlaW4KKygiQWRkaXRpb25hbCBUZXJtcyIpIHRvIG9u
ZSBvciBtb3JlIHJlY2lwaWVudHMgb2YgQ292ZXJlZCBDb2RlLgorSG93ZXZlciwgWW91IG1heSBk
byBzbyBvbmx5IG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgYXMgWW91ciBzb2xlCityZXNwb25zaWJp
bGl0eSwgYW5kIG5vdCBvbiBiZWhhbGYgb2YgQXBwbGUgb3IgYW55IENvbnRyaWJ1dG9yLiBZb3UK
K211c3Qgb2J0YWluIHRoZSByZWNpcGllbnQncyBhZ3JlZW1lbnQgdGhhdCBhbnkgc3VjaCBBZGRp
dGlvbmFsIFRlcm1zCithcmUgb2ZmZXJlZCBieSBZb3UgYWxvbmUsIGFuZCBZb3UgaGVyZWJ5IGFn
cmVlIHRvIGluZGVtbmlmeSwgZGVmZW5kCithbmQgaG9sZCBBcHBsZSBhbmQgZXZlcnkgQ29udHJp
YnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKK2luY3VycmVkIGJ5IG9yIGNsYWltcyBh
c3NlcnRlZCBhZ2FpbnN0IEFwcGxlIG9yIHN1Y2ggQ29udHJpYnV0b3IgYnkKK3JlYXNvbiBvZiBh
bnkgc3VjaCBBZGRpdGlvbmFsIFRlcm1zLgorCis3LiBWZXJzaW9ucyBvZiB0aGUgTGljZW5zZS4g
QXBwbGUgbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3Cit2ZXJzaW9ucyBvZiB0aGlzIExp
Y2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuIEVhY2ggdmVyc2lvbiB3aWxsIGJlIGdpdmVuCithIGRp
c3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBPbmNlIE9yaWdpbmFsIENvZGUgaGFzIGJlZW4g
cHVibGlzaGVkCit1bmRlciBhIHBhcnRpY3VsYXIgdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2UsIFlv
dSBtYXkgY29udGludWUgdG8gdXNlIGl0Cit1bmRlciB0aGUgdGVybXMgb2YgdGhhdCB2ZXJzaW9u
LiBZb3UgbWF5IGFsc28gY2hvb3NlIHRvIHVzZSBzdWNoCitPcmlnaW5hbCBDb2RlIHVuZGVyIHRo
ZSB0ZXJtcyBvZiBhbnkgc3Vic2VxdWVudCB2ZXJzaW9uIG9mIHRoaXMKK0xpY2Vuc2UgcHVibGlz
aGVkIGJ5IEFwcGxlLiBObyBvbmUgb3RoZXIgdGhhbiBBcHBsZSBoYXMgdGhlIHJpZ2h0IHRvCitt
b2RpZnkgdGhlIHRlcm1zIGFwcGxpY2FibGUgdG8gQ292ZXJlZCBDb2RlIGNyZWF0ZWQgdW5kZXIg
dGhpcworTGljZW5zZS4KKworOC4gTk8gV0FSUkFOVFkgT1IgU1VQUE9SVC4gVGhlIENvdmVyZWQg
Q29kZSBtYXkgY29udGFpbiBpbiB3aG9sZSBvciBpbgorcGFydCBwcmUtcmVsZWFzZSwgdW50ZXN0
ZWQsIG9yIG5vdCBmdWxseSB0ZXN0ZWQgd29ya3MuIFRoZSBDb3ZlcmVkCitDb2RlIG1heSBjb250
YWluIGVycm9ycyB0aGF0IGNvdWxkIGNhdXNlIGZhaWx1cmVzIG9yIGxvc3Mgb2YgZGF0YSwgYW5k
CittYXkgYmUgaW5jb21wbGV0ZSBvciBjb250YWluIGluYWNjdXJhY2llcy4gWW91IGV4cHJlc3Ns
eSBhY2tub3dsZWRnZQorYW5kIGFncmVlIHRoYXQgdXNlIG9mIHRoZSBDb3ZlcmVkIENvZGUsIG9y
IGFueSBwb3J0aW9uIHRoZXJlb2YsIGlzIGF0CitZb3VyIHNvbGUgYW5kIGVudGlyZSByaXNrLiBU
SEUgQ09WRVJFRCBDT0RFIElTIFBST1ZJREVEICJBUyBJUyIgQU5ECitXSVRIT1VUIFdBUlJBTlRZ
LCBVUEdSQURFUyBPUiBTVVBQT1JUIE9GIEFOWSBLSU5EIEFORCBBUFBMRSBBTkQKK0FQUExFJ1Mg
TElDRU5TT1IoUykgKENPTExFQ1RJVkVMWSBSRUZFUlJFRCBUTyBBUyAiQVBQTEUiIEZPUiBUSEUK
K1BVUlBPU0VTIE9GIFNFQ1RJT05TIDggQU5EIDkpIEFORCBBTEwgQ09OVFJJQlVUT1JTIEVYUFJF
U1NMWSBESVNDTEFJTQorQUxMIFdBUlJBTlRJRVMgQU5EL09SIENPTkRJVElPTlMsIEVYUFJFU1Mg
T1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQKK05PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIEFORC9PUiBDT05ESVRJT05TIE9GCitNRVJDSEFOVEFCSUxJVFksIE9GIFNBVElT
RkFDVE9SWSBRVUFMSVRZLCBPRiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKK1BVUlBPU0UsIE9G
IEFDQ1VSQUNZLCBPRiBRVUlFVCBFTkpPWU1FTlQsIEFORCBOT05JTkZSSU5HRU1FTlQgT0YgVEhJ
UkQKK1BBUlRZIFJJR0hUUy4gQVBQTEUgQU5EIEVBQ0ggQ09OVFJJQlVUT1IgRE9FUyBOT1QgV0FS
UkFOVCBBR0FJTlNUCitJTlRFUkZFUkVOQ0UgV0lUSCBZT1VSIEVOSk9ZTUVOVCBPRiBUSEUgQ09W
RVJFRCBDT0RFLCBUSEFUIFRIRQorRlVOQ1RJT05TIENPTlRBSU5FRCBJTiBUSEUgQ09WRVJFRCBD
T0RFIFdJTEwgTUVFVCBZT1VSIFJFUVVJUkVNRU5UUywKK1RIQVQgVEhFIE9QRVJBVElPTiBPRiBU
SEUgQ09WRVJFRCBDT0RFIFdJTEwgQkUgVU5JTlRFUlJVUFRFRCBPUgorRVJST1ItRlJFRSwgT1Ig
VEhBVCBERUZFQ1RTIElOIFRIRSBDT1ZFUkVEIENPREUgV0lMTCBCRSBDT1JSRUNURUQuIE5PCitP
UkFMIE9SIFdSSVRURU4gSU5GT1JNQVRJT04gT1IgQURWSUNFIEdJVkVOIEJZIEFQUExFLCBBTiBB
UFBMRQorQVVUSE9SSVpFRCBSRVBSRVNFTlRBVElWRSBPUiBBTlkgQ09OVFJJQlVUT1IgU0hBTEwg
Q1JFQVRFIEEgV0FSUkFOVFkuCitZb3UgYWNrbm93bGVkZ2UgdGhhdCB0aGUgQ292ZXJlZCBDb2Rl
IGlzIG5vdCBpbnRlbmRlZCBmb3IgdXNlIGluIHRoZQorb3BlcmF0aW9uIG9mIG51Y2xlYXIgZmFj
aWxpdGllcywgYWlyY3JhZnQgbmF2aWdhdGlvbiwgY29tbXVuaWNhdGlvbgorc3lzdGVtcywgb3Ig
YWlyIHRyYWZmaWMgY29udHJvbCBtYWNoaW5lcyBpbiB3aGljaCBjYXNlIHRoZSBmYWlsdXJlIG9m
Cit0aGUgQ292ZXJlZCBDb2RlIGNvdWxkIGxlYWQgdG8gZGVhdGgsIHBlcnNvbmFsIGluanVyeSwg
b3Igc2V2ZXJlCitwaHlzaWNhbCBvciBlbnZpcm9ubWVudGFsIGRhbWFnZS4KKworOS4gTElNSVRB
VElPTiBPRiBMSUFCSUxJVFkuIFRPIFRIRSBFWFRFTlQgTk9UIFBST0hJQklURUQgQlkgTEFXLCBJ
TiBOTworRVZFTlQgU0hBTEwgQVBQTEUgT1IgQU5ZIENPTlRSSUJVVE9SIEJFIExJQUJMRSBGT1Ig
QU5ZIElOQ0lERU5UQUwsCitTUEVDSUFMLCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgQVJJU0lORyBPVVQgT0YgT1IgUkVMQVRJTkcKK1RPIFRISVMgTElDRU5TRSBPUiBZT1VSIFVT
RSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBDT1ZFUkVEIENPREUsIE9SCitBTlkgUE9SVElPTiBU
SEVSRU9GLCBXSEVUSEVSIFVOREVSIEEgVEhFT1JZIE9GIENPTlRSQUNULCBXQVJSQU5UWSwKK1RP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFKSwgUFJPRFVDVFMgTElBQklMSVRZIE9SIE9USEVSV0lT
RSwgRVZFTiBJRgorQVBQTEUgT1IgU1VDSCBDT05UUklCVVRPUiBIQVMgQkVFTiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICitEQU1BR0VTIEFORCBOT1RXSVRIU1RBTkRJTkcgVEhF
IEZBSUxVUkUgT0YgRVNTRU5USUFMIFBVUlBPU0UgT0YgQU5ZCitSRU1FRFkuIFNPTUUgSlVSSVNE
SUNUSU9OUyBETyBOT1QgQUxMT1cgVEhFIExJTUlUQVRJT04gT0YgTElBQklMSVRZIE9GCitJTkNJ
REVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUywgU08gVEhJUyBMSU1JVEFUSU9OIE1BWSBO
T1QgQVBQTFkKK1RPIFlPVS4gSW4gbm8gZXZlbnQgc2hhbGwgQXBwbGUncyB0b3RhbCBsaWFiaWxp
dHkgdG8gWW91IGZvciBhbGwKK2RhbWFnZXMgKG90aGVyIHRoYW4gYXMgbWF5IGJlIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3KSB1bmRlciB0aGlzCitMaWNlbnNlIGV4Y2VlZCB0aGUgYW1vdW50
IG9mIGZpZnR5IGRvbGxhcnMgKCQ1MC4wMCkuCisKKzEwLiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vu
c2UgZG9lcyBub3QgZ3JhbnQgYW55IHJpZ2h0cyB0byB1c2UgdGhlCit0cmFkZW1hcmtzIG9yIHRy
YWRlIG5hbWVzICJBcHBsZSIsICJBcHBsZSBDb21wdXRlciIsICJNYWMiLCAiTWFjIE9TIiwKKyJR
dWlja1RpbWUiLCAiUXVpY2tUaW1lIFN0cmVhbWluZyBTZXJ2ZXIiIG9yIGFueSBvdGhlciB0cmFk
ZW1hcmtzLAorc2VydmljZSBtYXJrcywgbG9nb3Mgb3IgdHJhZGUgbmFtZXMgYmVsb25naW5nIHRv
IEFwcGxlIChjb2xsZWN0aXZlbHkKKyJBcHBsZSBNYXJrcyIpIG9yIHRvIGFueSB0cmFkZW1hcmss
IHNlcnZpY2UgbWFyaywgbG9nbyBvciB0cmFkZSBuYW1lCitiZWxvbmdpbmcgdG8gYW55IENvbnRy
aWJ1dG9yLiBZb3UgYWdyZWUgbm90IHRvIHVzZSBhbnkgQXBwbGUgTWFya3MgaW4KK29yIGFzIHBh
cnQgb2YgdGhlIG5hbWUgb2YgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoZSBPcmlnaW5hbCBDb2Rl
IG9yCit0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoZSBPcmln
aW5hbCBDb2RlIG90aGVyCit0aGFuIGFzIGV4cHJlc3NseSBwZXJtaXR0ZWQgYnkgYW5kIGluIHN0
cmljdCBjb21wbGlhbmNlIGF0IGFsbCB0aW1lcword2l0aCBBcHBsZSdzIHRoaXJkIHBhcnR5IHRy
YWRlbWFyayB1c2FnZSBndWlkZWxpbmVzIHdoaWNoIGFyZSBwb3N0ZWQKK2F0IGh0dHA6Ly93d3cu
YXBwbGUuY29tL2xlZ2FsL2d1aWRlbGluZXNmb3IzcmRwYXJ0aWVzLmh0bWwuCisKKzExLiBPd25l
cnNoaXAuIFN1YmplY3QgdG8gdGhlIGxpY2Vuc2VzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNl
LAorZWFjaCBDb250cmlidXRvciByZXRhaW5zIGFsbCByaWdodHMsIHRpdGxlIGFuZCBpbnRlcmVz
dCBpbiBhbmQgdG8gYW55CitNb2RpZmljYXRpb25zIG1hZGUgYnkgc3VjaCBDb250cmlidXRvci4g
QXBwbGUgcmV0YWlucyBhbGwgcmlnaHRzLAordGl0bGUgYW5kIGludGVyZXN0IGluIGFuZCB0byB0
aGUgT3JpZ2luYWwgQ29kZSBhbmQgYW55IE1vZGlmaWNhdGlvbnMKK21hZGUgYnkgb3Igb24gYmVo
YWxmIG9mIEFwcGxlICgiQXBwbGUgTW9kaWZpY2F0aW9ucyIpLCBhbmQgc3VjaCBBcHBsZQorTW9k
aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBhdXRvbWF0aWNhbGx5IHN1YmplY3QgdG8gdGhpcyBMaWNl
bnNlLiBBcHBsZQorbWF5LCBhdCBpdHMgc29sZSBkaXNjcmV0aW9uLCBjaG9vc2UgdG8gbGljZW5z
ZSBzdWNoIEFwcGxlCitNb2RpZmljYXRpb25zIHVuZGVyIHRoaXMgTGljZW5zZSwgb3Igb24gZGlm
ZmVyZW50IHRlcm1zIGZyb20gdGhvc2UKK2NvbnRhaW5lZCBpbiB0aGlzIExpY2Vuc2Ugb3IgbWF5
IGNob29zZSBub3QgdG8gbGljZW5zZSB0aGVtIGF0IGFsbC4KKworMTIuIFRlcm1pbmF0aW9uLgor
CisxMi4xIFRlcm1pbmF0aW9uLiBUaGlzIExpY2Vuc2UgYW5kIHRoZSByaWdodHMgZ3JhbnRlZCBo
ZXJldW5kZXIgd2lsbAordGVybWluYXRlOgorCisoYSkgYXV0b21hdGljYWxseSB3aXRob3V0IG5v
dGljZSBmcm9tIEFwcGxlIGlmIFlvdSBmYWlsIHRvIGNvbXBseSB3aXRoCithbnkgdGVybShzKSBv
ZiB0aGlzIExpY2Vuc2UgYW5kIGZhaWwgdG8gY3VyZSBzdWNoIGJyZWFjaCB3aXRoaW4gMzAKK2Rh
eXMgb2YgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBicmVhY2g7CisKKyhiKSBpbW1lZGlhdGVseSBp
biB0aGUgZXZlbnQgb2YgdGhlIGNpcmN1bXN0YW5jZXMgZGVzY3JpYmVkIGluIFNlY3Rpb24KKzEz
LjUoYik7IG9yCisKKyhjKSBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgbm90aWNlIGZyb20gQXBwbGUg
aWYgWW91LCBhdCBhbnkgdGltZSBkdXJpbmcKK3RoZSB0ZXJtIG9mIHRoaXMgTGljZW5zZSwgY29t
bWVuY2UgYW4gYWN0aW9uIGZvciBwYXRlbnQgaW5mcmluZ2VtZW50CithZ2FpbnN0IEFwcGxlOyBw
cm92aWRlZCB0aGF0IEFwcGxlIGRpZCBub3QgZmlyc3QgY29tbWVuY2UKK2FuIGFjdGlvbiBmb3Ig
cGF0ZW50IGluZnJpbmdlbWVudCBhZ2FpbnN0IFlvdSBpbiB0aGF0IGluc3RhbmNlLgorCisxMi4y
IEVmZmVjdCBvZiBUZXJtaW5hdGlvbi4gVXBvbiB0ZXJtaW5hdGlvbiwgWW91IGFncmVlIHRvIGlt
bWVkaWF0ZWx5CitzdG9wIGFueSBmdXJ0aGVyIHVzZSwgcmVwcm9kdWN0aW9uLCBtb2RpZmljYXRp
b24sIHN1YmxpY2Vuc2luZyBhbmQKK2Rpc3RyaWJ1dGlvbiBvZiB0aGUgQ292ZXJlZCBDb2RlLiBB
bGwgc3VibGljZW5zZXMgdG8gdGhlIENvdmVyZWQgQ29kZQord2hpY2ggaGF2ZSBiZWVuIHByb3Bl
cmx5IGdyYW50ZWQgcHJpb3IgdG8gdGVybWluYXRpb24gc2hhbGwgc3Vydml2ZQorYW55IHRlcm1p
bmF0aW9uIG9mIHRoaXMgTGljZW5zZS4gUHJvdmlzaW9ucyB3aGljaCwgYnkgdGhlaXIgbmF0dXJl
LAorc2hvdWxkIHJlbWFpbiBpbiBlZmZlY3QgYmV5b25kIHRoZSB0ZXJtaW5hdGlvbiBvZiB0aGlz
IExpY2Vuc2Ugc2hhbGwKK3N1cnZpdmUsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gU2Vj
dGlvbnMgMywgNSwgOCwgOSwgMTAsIDExLAorMTIuMiBhbmQgMTMuIE5vIHBhcnR5IHdpbGwgYmUg
bGlhYmxlIHRvIGFueSBvdGhlciBmb3IgY29tcGVuc2F0aW9uLAoraW5kZW1uaXR5IG9yIGRhbWFn
ZXMgb2YgYW55IHNvcnQgc29sZWx5IGFzIGEgcmVzdWx0IG9mIHRlcm1pbmF0aW5nCit0aGlzIExp
Y2Vuc2UgaW4gYWNjb3JkYW5jZSB3aXRoIGl0cyB0ZXJtcywgYW5kIHRlcm1pbmF0aW9uIG9mIHRo
aXMKK0xpY2Vuc2Ugd2lsbCBiZSB3aXRob3V0IHByZWp1ZGljZSB0byBhbnkgb3RoZXIgcmlnaHQg
b3IgcmVtZWR5IG9mCithbnkgcGFydHkuCisKKzEzLiBNaXNjZWxsYW5lb3VzLgorCisxMy4xIEdv
dmVybm1lbnQgRW5kIFVzZXJzLiBUaGUgQ292ZXJlZCBDb2RlIGlzIGEgImNvbW1lcmNpYWwgaXRl
bSIgYXMKK2RlZmluZWQgaW4gRkFSIDIuMTAxLiBHb3Zlcm5tZW50IHNvZnR3YXJlIGFuZCB0ZWNo
bmljYWwgZGF0YSByaWdodHMgaW4KK3RoZSBDb3ZlcmVkIENvZGUgaW5jbHVkZSBvbmx5IHRob3Nl
IHJpZ2h0cyBjdXN0b21hcmlseSBwcm92aWRlZCB0byB0aGUKK3B1YmxpYyBhcyBkZWZpbmVkIGlu
IHRoaXMgTGljZW5zZS4gVGhpcyBjdXN0b21hcnkgY29tbWVyY2lhbCBsaWNlbnNlCitpbiB0ZWNo
bmljYWwgZGF0YSBhbmQgc29mdHdhcmUgaXMgcHJvdmlkZWQgaW4gYWNjb3JkYW5jZSB3aXRoIEZB
UgorMTIuMjExIChUZWNobmljYWwgRGF0YSkgYW5kIDEyLjIxMiAoQ29tcHV0ZXIgU29mdHdhcmUp
IGFuZCwgZm9yCitEZXBhcnRtZW50IG9mIERlZmVuc2UgcHVyY2hhc2VzLCBERkFSIDI1Mi4yMjct
NzAxNSAoVGVjaG5pY2FsIERhdGEgLS0KK0NvbW1lcmNpYWwgSXRlbXMpIGFuZCAyMjcuNzIwMi0z
IChSaWdodHMgaW4gQ29tbWVyY2lhbCBDb21wdXRlcgorU29mdHdhcmUgb3IgQ29tcHV0ZXIgU29m
dHdhcmUgRG9jdW1lbnRhdGlvbikuIEFjY29yZGluZ2x5LCBhbGwgVS5TLgorR292ZXJubWVudCBF
bmQgVXNlcnMgYWNxdWlyZSBDb3ZlcmVkIENvZGUgd2l0aCBvbmx5IHRob3NlIHJpZ2h0cyBzZXQK
K2ZvcnRoIGhlcmVpbi4KKworMTMuMiBSZWxhdGlvbnNoaXAgb2YgUGFydGllcy4gVGhpcyBMaWNl
bnNlIHdpbGwgbm90IGJlIGNvbnN0cnVlZCBhcworY3JlYXRpbmcgYW4gYWdlbmN5LCBwYXJ0bmVy
c2hpcCwgam9pbnQgdmVudHVyZSBvciBhbnkgb3RoZXIgZm9ybSBvZgorbGVnYWwgYXNzb2NpYXRp
b24gYmV0d2VlbiBvciBhbW9uZyBZb3UsIEFwcGxlIG9yIGFueSBDb250cmlidXRvciwgYW5kCitZ
b3Ugd2lsbCBub3QgcmVwcmVzZW50IHRvIHRoZSBjb250cmFyeSwgd2hldGhlciBleHByZXNzbHks
IGJ5CitpbXBsaWNhdGlvbiwgYXBwZWFyYW5jZSBvciBvdGhlcndpc2UuCisKKzEzLjMgSW5kZXBl
bmRlbnQgRGV2ZWxvcG1lbnQuIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHdpbGwgaW1wYWlyCitB
cHBsZSdzIHJpZ2h0IHRvIGFjcXVpcmUsIGxpY2Vuc2UsIGRldmVsb3AsIGhhdmUgb3RoZXJzIGRl
dmVsb3AgZm9yCitpdCwgbWFya2V0IGFuZC9vciBkaXN0cmlidXRlIHRlY2hub2xvZ3kgb3IgcHJv
ZHVjdHMgdGhhdCBwZXJmb3JtIHRoZQorc2FtZSBvciBzaW1pbGFyIGZ1bmN0aW9ucyBhcywgb3Ig
b3RoZXJ3aXNlIGNvbXBldGUgd2l0aCwKK01vZGlmaWNhdGlvbnMsIExhcmdlciBXb3JrcywgdGVj
aG5vbG9neSBvciBwcm9kdWN0cyB0aGF0IFlvdSBtYXkKK2RldmVsb3AsIHByb2R1Y2UsIG1hcmtl
dCBvciBkaXN0cmlidXRlLgorCisxMy40IFdhaXZlcjsgQ29uc3RydWN0aW9uLiBGYWlsdXJlIGJ5
IEFwcGxlIG9yIGFueSBDb250cmlidXRvciB0bworZW5mb3JjZSBhbnkgcHJvdmlzaW9uIG9mIHRo
aXMgTGljZW5zZSB3aWxsIG5vdCBiZSBkZWVtZWQgYSB3YWl2ZXIgb2YKK2Z1dHVyZSBlbmZvcmNl
bWVudCBvZiB0aGF0IG9yIGFueSBvdGhlciBwcm92aXNpb24uIEFueSBsYXcgb3IKK3JlZ3VsYXRp
b24gd2hpY2ggcHJvdmlkZXMgdGhhdCB0aGUgbGFuZ3VhZ2Ugb2YgYSBjb250cmFjdCBzaGFsbCBi
ZQorY29uc3RydWVkIGFnYWluc3QgdGhlIGRyYWZ0ZXIgd2lsbCBub3QgYXBwbHkgdG8gdGhpcyBM
aWNlbnNlLgorCisxMy41IFNldmVyYWJpbGl0eS4gKGEpIElmIGZvciBhbnkgcmVhc29uIGEgY291
cnQgb2YgY29tcGV0ZW50CitqdXJpc2RpY3Rpb24gZmluZHMgYW55IHByb3Zpc2lvbiBvZiB0aGlz
IExpY2Vuc2UsIG9yIHBvcnRpb24gdGhlcmVvZiwKK3RvIGJlIHVuZW5mb3JjZWFibGUsIHRoYXQg
cHJvdmlzaW9uIG9mIHRoZSBMaWNlbnNlIHdpbGwgYmUgZW5mb3JjZWQgdG8KK3RoZSBtYXhpbXVt
IGV4dGVudCBwZXJtaXNzaWJsZSBzbyBhcyB0byBlZmZlY3QgdGhlIGVjb25vbWljIGJlbmVmaXRz
CithbmQgaW50ZW50IG9mIHRoZSBwYXJ0aWVzLCBhbmQgdGhlIHJlbWFpbmRlciBvZiB0aGlzIExp
Y2Vuc2Ugd2lsbAorY29udGludWUgaW4gZnVsbCBmb3JjZSBhbmQgZWZmZWN0LiAoYikgTm90d2l0
aHN0YW5kaW5nIHRoZSBmb3JlZ29pbmcsCitpZiBhcHBsaWNhYmxlIGxhdyBwcm9oaWJpdHMgb3Ig
cmVzdHJpY3RzIFlvdSBmcm9tIGZ1bGx5IGFuZC9vcgorc3BlY2lmaWNhbGx5IGNvbXBseWluZyB3
aXRoIFNlY3Rpb25zIDIgYW5kL29yIDMgb3IgcHJldmVudHMgdGhlCitlbmZvcmNlYWJpbGl0eSBv
ZiBlaXRoZXIgb2YgdGhvc2UgU2VjdGlvbnMsIHRoaXMgTGljZW5zZSB3aWxsCitpbW1lZGlhdGVs
eSB0ZXJtaW5hdGUgYW5kIFlvdSBtdXN0IGltbWVkaWF0ZWx5IGRpc2NvbnRpbnVlIGFueSB1c2Ug
b2YKK3RoZSBDb3ZlcmVkIENvZGUgYW5kIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiBpdCB0aGF0IGFy
ZSBpbiB5b3VyCitwb3NzZXNzaW9uIG9yIGNvbnRyb2wuCisKKzEzLjYgRGlzcHV0ZSBSZXNvbHV0
aW9uLiBBbnkgbGl0aWdhdGlvbiBvciBvdGhlciBkaXNwdXRlIHJlc29sdXRpb24KK2JldHdlZW4g
WW91IGFuZCBBcHBsZSByZWxhdGluZyB0byB0aGlzIExpY2Vuc2Ugc2hhbGwgdGFrZSBwbGFjZSBp
biB0aGUKK05vcnRoZXJuIERpc3RyaWN0IG9mIENhbGlmb3JuaWEsIGFuZCBZb3UgYW5kIEFwcGxl
IGhlcmVieSBjb25zZW50IHRvCit0aGUgcGVyc29uYWwganVyaXNkaWN0aW9uIG9mLCBhbmQgdmVu
dWUgaW4sIHRoZSBzdGF0ZSBhbmQgZmVkZXJhbAorY291cnRzIHdpdGhpbiB0aGF0IERpc3RyaWN0
IHdpdGggcmVzcGVjdCB0byB0aGlzIExpY2Vuc2UuIFRoZQorYXBwbGljYXRpb24gb2YgdGhlIFVu
aXRlZCBOYXRpb25zIENvbnZlbnRpb24gb24gQ29udHJhY3RzIGZvciB0aGUKK0ludGVybmF0aW9u
YWwgU2FsZSBvZiBHb29kcyBpcyBleHByZXNzbHkgZXhjbHVkZWQuCisKKzEzLjcgRW50aXJlIEFn
cmVlbWVudDsgR292ZXJuaW5nIExhdy4gVGhpcyBMaWNlbnNlIGNvbnN0aXR1dGVzIHRoZQorZW50
aXJlIGFncmVlbWVudCBiZXR3ZWVuIHRoZSBwYXJ0aWVzIHdpdGggcmVzcGVjdCB0byB0aGUgc3Vi
amVjdAorbWF0dGVyIGhlcmVvZi4gVGhpcyBMaWNlbnNlIHNoYWxsIGJlIGdvdmVybmVkIGJ5IHRo
ZSBsYXdzIG9mIHRoZQorVW5pdGVkIFN0YXRlcyBhbmQgdGhlIFN0YXRlIG9mIENhbGlmb3JuaWEs
IGV4Y2VwdCB0aGF0IGJvZHkgb2YKK0NhbGlmb3JuaWEgbGF3IGNvbmNlcm5pbmcgY29uZmxpY3Rz
IG9mIGxhdy4KKworV2hlcmUgWW91IGFyZSBsb2NhdGVkIGluIHRoZSBwcm92aW5jZSBvZiBRdWVi
ZWMsIENhbmFkYSwgdGhlIGZvbGxvd2luZworY2xhdXNlIGFwcGxpZXM6IFRoZSBwYXJ0aWVzIGhl
cmVieSBjb25maXJtIHRoYXQgdGhleSBoYXZlIHJlcXVlc3RlZAordGhhdCB0aGlzIExpY2Vuc2Ug
YW5kIGFsbCByZWxhdGVkIGRvY3VtZW50cyBiZSBkcmFmdGVkIGluIEVuZ2xpc2guIExlcworcGFy
dGllcyBvbnQgZXhpZ2UgcXVlIGxlIHByZXNlbnQgY29udHJhdCBldCB0b3VzIGxlcyBkb2N1bWVu
dHMKK2Nvbm5leGVzIHNvaWVudCByZWRpZ2VzIGVuIGFuZ2xhaXMuCisKK0VYSElCSVQgQS4KKwor
IlBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5OS0yMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMuIEFs
bCBSaWdodHMKK1Jlc2VydmVkLgorCitUaGlzIGZpbGUgY29udGFpbnMgT3JpZ2luYWwgQ29kZSBh
bmQvb3IgTW9kaWZpY2F0aW9ucyBvZiBPcmlnaW5hbCBDb2RlCithcyBkZWZpbmVkIGluIGFuZCB0
aGF0IGFyZSBzdWJqZWN0IHRvIHRoZSBBcHBsZSBQdWJsaWMgU291cmNlIExpY2Vuc2UKK1ZlcnNp
b24gMi4wICh0aGUgJ0xpY2Vuc2UnKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4KK2NvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gUGxlYXNlIG9idGFpbiBhIGNvcHkgb2Yg
dGhlIExpY2Vuc2UgYXQKK2h0dHA6Ly93d3cub3BlbnNvdXJjZS5hcHBsZS5jb20vYXBzbC8gYW5k
IHJlYWQgaXQgYmVmb3JlIHVzaW5nIHRoaXMKK2ZpbGUuCisKK1RoZSBPcmlnaW5hbCBDb2RlIGFu
ZCBhbGwgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgYXJlCitkaXN0cmli
dXRlZCBvbiBhbiAnQVMgSVMnIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF
SVRIRVIKK0VYUFJFU1MgT1IgSU1QTElFRCwgQU5EIEFQUExFIEhFUkVCWSBESVNDTEFJTVMgQUxM
IFNVQ0ggV0FSUkFOVElFUywKK0lOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLCBRVUlFVCBFTkpPWU1FTlQgT1IgTk9OLUlORlJJTkdFTUVOVC4KK1BsZWFzZSBzZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcmlnaHRzIGFuZAor
bGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuIgpJbmRleDogc3ZnMnBuZy5tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IHN2ZzJwbmcubQpkaWZmIC1OIHN2ZzJwbmcubQotLS0gc3ZnMnBuZy5tCTEg
SmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHN2ZzJwbmcubQkyOCBKdWwgMjAwNSAwNToxMTo0
MSAtMDAwMApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwNSBBcHBs
ZSBDb21wdXRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBBUFBMRV9MSUNF
TlNFX0hFQURFUl9TVEFSVEAKKyAqIAorICogVGhpcyBmaWxlIGNvbnRhaW5zIE9yaWdpbmFsIENv
ZGUgYW5kL29yIE1vZGlmaWNhdGlvbnMgb2YgT3JpZ2luYWwgQ29kZQorICogYXMgZGVmaW5lZCBp
biBhbmQgdGhhdCBhcmUgc3ViamVjdCB0byB0aGUgQXBwbGUgUHVibGljIFNvdXJjZSBMaWNlbnNl
CisgKiBWZXJzaW9uIDIuMCAodGhlICdMaWNlbnNlJykuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluCisgKiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFBsZWFzZSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2UuYXBw
bGUuY29tL2Fwc2wvIGFuZCByZWFkIGl0IGJlZm9yZSB1c2luZyB0aGlzCisgKiBmaWxlLgorICog
CisgKiBUaGUgT3JpZ2luYWwgQ29kZSBhbmQgYWxsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGFyZQorICogZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBiYXNpcywgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRUlUSEVSCisgKiBFWFBSRVNTIE9SIElNUExJRUQs
IEFORCBBUFBMRSBIRVJFQlkgRElTQ0xBSU1TIEFMTCBTVUNIIFdBUlJBTlRJRVMsCisgKiBJTkNM
VURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgUVVJRVQgRU5KT1lNRU5U
IE9SIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBQbGVhc2Ugc2VlIHRoZSBMaWNlbnNlIGZvciB0aGUg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBhbmQKKyAqIGxpbWl0YXRpb25zIHVu
ZGVyIHRoZSBMaWNlbnNlLgorICogCisgKiBAQVBQTEVfTElDRU5TRV9IRUFERVJfRU5EQAorICov
CisKKyNpbXBvcnQgPFdlYkNvcmUrU1ZHL0RyYXdEb2N1bWVudFByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYkNvcmUrU1ZHL0RyYXdWaWV3Lmg+CisKKy8vIHVzYWdlIGluIGtkZSByZWdyZXNzaW9uIHNj
cmlwdHM6CisvLyBzdmdkaXNwbGF5IC0taW5jcmVtZW50YWwgLS1kZXZpY2U9YWdnIC0tcGFyc2Vy
PWxpYnhtbCAtLWR1bXAgdGVzdC5wbmcgI3tzdmdfbmFtZX0KKworZXh0ZXJuIGNvbnN0IGRvdWJs
ZSBzdmcycG5nVmVyc2lvbk51bWJlcjsKK2V4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIHN2ZzJw
bmdWZXJzaW9uU3RyaW5nW107CisKK3ZvaWQgdXNhZ2UoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAg
ICBwcmludGYoIlVzYWdlOiAlcyBbb3B0aW9uc10gZmlsZVxuIiwgbmFtZSk7CisgICAgcHJpbnRm
KCJPcHRpb25zOlxuIik7CisgICAgcHJpbnRmKCIgIC0tdmVyc2lvblx0XHRcdFByaW50cyBmdWxs
IHZlcnNpb24gKCUuMWYpIGluZm9ybWF0aW9uIGFuZCBleGl0cy5cbiIsIHN2ZzJwbmdWZXJzaW9u
TnVtYmVyKTsKKyAgICBwcmludGYoIiAgLS1pbmNyZW1lbnRhbFx0XHRVc2UgaW5jcmVtZW50YWwg
cGFyc2luZy9kaXNwbGF5IChpZ25vcmVkKS5cbiIpOworICAgIHByaW50ZigiICAtLXBhcnNlciAo
aWdub3JlZCwga2RlIGNvbXBhdGliaWxpdHkpXG4iKTsKKyAgICBwcmludGYoIiAgLS1kZXZpY2Ug
KGlnbm9yZWQsIGtkZSBjb21wYXRpYmlsaXR5KVxuIik7CisgICAgcHJpbnRmKCIgIC0tZHVtcCA8
b3V0cHV0ZmlsZT4gZHVtcCBhIHBuZyBjb3B5IG9mIHRoZSBzdmcgdG8gdGhlIG5hbWVkIHBhdGhc
biIpOworICAgIGV4aXQoMSk7Cit9OworCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIg
KmFyZ3ZbXSkKK3sKKyAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NdIGluaXRdOworICAgIC8vIGRlYWwgd2l0aCBhcmdzCisgICAgTlNNdXRhYmxl
QXJyYXkgKnN2Z3MgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGNvbnN0IGNoYXIgKm5h
bWUgPSBbW1tOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzphcmd2WzBdXSBsYXN0UGF0aENv
bXBvbmVudF0gVVRGOFN0cmluZ107CisgICAgTlNTdHJpbmcgKm91dHB1dFBhdGggPSBuaWw7Cisg
ICAgQk9PTCB1c2VJbmNyZW1lbnRhbFBhcnNpbmcgPSBOTzsKKyAgICAKKyAgICBpbnQgeCA9IDA7
CisgICAgZm9yKHggPSAxOyB4IDwgYXJnYzsgeCsrKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKmFy
ZyA9IGFyZ3ZbeF07CisgICAgICAgIE5TU3RyaW5nICphcmdTdHJpbmcgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aFVURjhTdHJpbmc6YXJnXTsKKyAgICAgICAgCisgICAgICAgIGlmIChbYXJnU3RyaW5n
IGhhc1ByZWZpeDpAIi0tIl0pIHsgLy8gdGhpcyBpcyBhbiBvcHRpb24KKyAgICAgICAgICAgIGlm
IChbYXJnU3RyaW5nIGlzRXF1YWxUb1N0cmluZzpAIi0taGVscCJdKQorICAgICAgICAgICAgICAg
IHVzYWdlKG5hbWUpOworICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ1N0cmluZyBpc0VxdWFsVG9T
dHJpbmc6QCItLXZlcnNpb24iXSkgeworICAgICAgICAgICAgICAgIHByaW50ZigoY2hhciAqKXN2
ZzJwbmdWZXJzaW9uU3RyaW5nKTsKKyAgICAgICAgICAgICAgICBleGl0KDApOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChbYXJnU3RyaW5nIGlzRXF1YWxUb1N0cmluZzpAIi0taW5jcmVtZW50YWwi
XSkgeworICAgICAgICAgICAgICAgIHVzZUluY3JlbWVudGFsUGFyc2luZyA9IFlFUzsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoW2FyZ1N0cmluZyBoYXNQcmVmaXg6QCItLXBhcnNlciJdKSB7Cisg
ICAgICAgICAgICAgICAgLy8gaWdub3JlZC4KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoW2FyZ1N0
cmluZyBoYXNQcmVmaXg6QCItLWRldmljZSJdKSB7CisgICAgICAgICAgICAgICAgLy8gaWdub3Jl
ZC4KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoW2FyZ1N0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCIt
LWR1bXAiXSkgeworICAgICAgICAgICAgICAgIGlmICh4KzEgPCBhcmdjKSB7CisgICAgICAgICAg
ICAgICAgICAgIG91dHB1dFBhdGggPSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6YXJn
dlt4KzFdXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFtvdXRwdXRQYXRoIGhhc1ByZWZpeDpA
Ii0tIl0pCisgICAgICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIldBUk5JTkc6IGRpZCB5b3Ug
bWVhbiB0byBkdW1wIHRvOiBAICBPciBkaWQgeW91IGp1c3QgZm9yZ2V0IHRoZSAtLWR1bXAgYXJn
dW1lbnQ/Iiwgb3V0cHV0UGF0aCk7CisgICAgICAgICAgICAgICAgICAgIHgrKzsgLy8gdG8gc2tp
cCB0aGUgbmV4dCBhcmcKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBOU0xvZyhAIi0tZHVtcCByZXF1aXJlcyBhbiBhcmd1bWVudC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgdXNhZ2UobmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlVucmVjb2duaXplZCBvcHRpb24gJXNcbiIs
IGFyZ3ZbeF0pOworICAgICAgICAgICAgICAgIHVzYWdlKG5hbWUpOworICAgICAgICAgICAgfQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6W2FyZ1N0cmluZyBzdHJpbmdCeVN0YW5kYXJkaXpp
bmdQYXRoXV0pIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlNWRyBkb2VzIG5vdCBleGlzdCBh
dCBwYXRoOiAlc1xuIiwgYXJndlt4XSk7CisgICAgICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIFtzdmdzIGFkZE9iamVjdDphcmdTdHJpbmddOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGlmICghW3N2Z3MgY291bnRdKSB7CisgICAgICAgIHByaW50
ZigiTm8gc3ZncyBzcGVjaWZpZWQuXG4iKTsKKyAgICAgICAgdXNhZ2UobmFtZSk7CisgICAgfQor
ICAgIAorICAgIC8vIGxvYWQgdGhlIGdpdmVuIGRvY3VtZW50CisgICAgRHJhd0RvY3VtZW50ICpk
b2N1bWVudCA9IFtbRHJhd0RvY3VtZW50IGFsbG9jXSBpbml0V2l0aENvbnRlbnRzT2ZGaWxlOltz
dmdzIG9iamVjdEF0SW5kZXg6MF1dOworICAgIC8vIGNyZWF0ZSBhIHZpZXcKKyAgICBEcmF3Vmll
dyAqdmlldyA9IFtbRHJhd1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdF07Cisg
ICAgW3ZpZXcgc2V0RG9jdW1lbnQ6ZG9jdW1lbnRdOworICAgIFt2aWV3IHNpemVUb0ZpdFZpZXdC
b3hdOworICAgIE5TU2l6ZSBib3VuZHNTaXplID0gW3ZpZXcgYm91bmRzXS5zaXplOworICAgIGlm
IChib3VuZHNTaXplLndpZHRoID4gNTAwKQorICAgICAgICBib3VuZHNTaXplLndpZHRoID0gNTAw
OworICAgIGlmIChib3VuZHNTaXplLmhlaWdodCA+IDUwMCkKKyAgICAgICAgYm91bmRzU2l6ZS5o
ZWlnaHQgPSA1MDA7CisgICAgW3ZpZXcgc2V0RnJhbWVTaXplOmJvdW5kc1NpemVdOworICAgIC8v
IHRlbGwgdGhhdCB2aWV3IHRvIHJlbmRlcgorICAgIE5TQml0bWFwSW1hZ2VSZXAgKmltYWdlUmVw
ID0gW3ZpZXcgYml0bWFwSW1hZ2VSZXBGb3JDYWNoaW5nRGlzcGxheUluUmVjdDpbdmlldyBib3Vu
ZHNdXTsKKyAgICBbdmlldyBjYWNoZURpc3BsYXlJblJlY3Q6W3ZpZXcgYm91bmRzXSB0b0JpdG1h
cEltYWdlUmVwOmltYWdlUmVwXTsKKyAgICAvLyBvdXRwdXQgdGhlIHJlc3VsdGluZyBpbWFnZQor
ICAgIE5TRGF0YSAqcG5nRGF0YSA9IFtpbWFnZVJlcCByZXByZXNlbnRhdGlvblVzaW5nVHlwZTpO
U1BOR0ZpbGVUeXBlIHByb3BlcnRpZXM6bmlsXTsKKyAgICBbcG5nRGF0YSB3cml0ZVRvRmlsZTpv
dXRwdXRQYXRoIGF0b21pY2FsbHk6WUVTXTsKKyAgICAKKyAgICBbcG9vbCBkcmFpbl07CisgICAg
CisgICAgcmV0dXJuIDA7Cit9CisKKwpJbmRleDogc3ZnMnBuZ19QcmVmaXgucGNoCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IHN2ZzJwbmdfUHJlZml4LnBjaApkaWZmIC1OIHN2ZzJwbmdfUHJlZml4LnBj
aAotLS0gc3ZnMnBuZ19QcmVmaXgucGNoCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHN2
ZzJwbmdfUHJlZml4LnBjaAkyOCBKdWwgMjAwNSAwNToxMTo0MSAtMDAwMApAQCAtMCwwICsxLDcg
QEAKKy8vCisvLyBQcmVmaXggaGVhZGVyIGZvciBhbGwgc291cmNlIGZpbGVzIG9mIHRoZSAnc3Zn
MnBuZycgdGFyZ2V0IGluIHRoZSAnc3ZnMnBuZycgcHJvamVjdC4KKy8vCisKKyNpZmRlZiBfX09C
SkNfXworICAgICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2VuZGlmCkluZGV4
OiAuL3N2ZzJwbmcueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBwcm9qZWN0LnBieHByb2oKZGlmZiAtTiAuL3N2ZzJwbmcueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagotLS0gLi9zdmcycG5nLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJMSBKYW4gMTk3MCAw
MDowMDowMCAtMDAwMAorKysgLi9zdmcycG5nLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJMjgg
SnVsIDIwMDUgMDU6MTE6NDQgLTAwMDAKQEAgLTAsMCArMSwyNzcgQEAKKy8vICEkKlVURjgqJCEK
K3sKKwlhcmNoaXZlVmVyc2lvbiA9IDE7CisJY2xhc3NlcyA9IHsKKwl9OworCW9iamVjdFZlcnNp
b24gPSA0MjsKKwlvYmplY3RzID0geworCisvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LworCQk4REQ3NkY5QTA0ODZBQTc2MDBEOTZCNUUgLyogc3ZnMnBuZy5tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhGQjc3OTZGRTg0MTU1REMwMkFBQzA3
IC8qIHN2ZzJwbmcubSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk4
REQ3NkY5QzA0ODZBQTc2MDBEOTZCNUUgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEZCNzc5RUZFODQxNTVE
QzAyQUFDMDcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisJCUE4OThGNzk1MDg4MjRC
NEEwMDc1RUZCMiAvKiBXZWJDb3JlK1NWRy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODk4Rjc5NDA4ODI0QjRBMDA3NUVGQjIgLyog
V2ViQ29yZStTVkcuZnJhbWV3b3JrICovOyB9OworLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9u
ICovCisKKy8qIEJlZ2luIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLworCQkwMTRDRUE0RjAwMThD
RTQ4MTFDQTI5MjMgLyogRGV2ZWxvcG1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhCdWlsZFN0eWxl
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJ
R0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX0VOQUJMRV9GSVhfQU5EX0NPTlRJTlVF
ID0gWUVTOworCQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdfU1lNQk9MUyA9IFlFUzsKKwkJCQlH
Q0NfT1BUSU1JWkFUSU9OX0xFVkVMID0gMDsKKwkJCQlaRVJPX0xJTksgPSBZRVM7CisJCQl9Owor
CQkJbmFtZSA9IERldmVsb3BtZW50OworCQl9OworCQkwMTRDRUE1MDAwMThDRTQ4MTFDQTI5MjMg
LyogRGVwbG95bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEJ1aWxkU3R5bGU7CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBZRVM7CisJCQkJR0NDX0VOQUJMRV9G
SVhfQU5EX0NPTlRJTlVFID0gTk87CisJCQkJWkVST19MSU5LID0gTk87CisJCQl9OworCQkJbmFt
ZSA9IERlcGxveW1lbnQ7CisJCX07CisvKiBFbmQgUEJYQnVpbGRTdHlsZSBzZWN0aW9uICovCisK
Ky8qIEJlZ2luIFBCWENvcHlGaWxlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQk4REQ3NkY5RTA0
ODZBQTc2MDBEOTZCNUUgLyogQ29weUZpbGVzICovID0geworCQkJaXNhID0gUEJYQ29weUZpbGVz
QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDg7CisJCQlkc3RQYXRoID0gL3Vzci9z
aGFyZS9tYW4vbWFuMS87CisJCQlkc3RTdWJmb2xkZXJTcGVjID0gMDsKKwkJCWZpbGVzID0gKAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAxOworCQl9Owor
LyogRW5kIFBCWENvcHlGaWxlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhG
aWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMDhGQjc3OTZGRTg0MTU1REMwMkFBQzA3IC8qIHN2
ZzJwbmcubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gc3ZnMnBuZy5tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwOEZCNzc5RUZFODQxNTVEQzAyQUFDMDcgLyog
Rm91bmRhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEZvdW5kYXRpb24uZnJhbWV3
b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlvbi5mcmFtZXdv
cms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTMyQTcwQUFCMDM3MDVFMUYwMEM5
MTc4MyAvKiBzdmcycG5nX1ByZWZpeC5wY2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHN2ZzJwbmdfUHJlZml4LnBjaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOERE
NzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJwbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGlu
Y2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHN2ZzJwbmc7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCUE4OThGNzk0MDg4MjRCNEEwMDc1RUZCMiAvKiBXZWJDb3JlK1NWRy5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9ICJXZWJDb3JlK1NWRy5mcmFtZXdvcmsiOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ug
c2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICov
CisJCThERDc2RjlCMDQ4NkFBNzYwMEQ5NkI1RSAvKiBGcmFtZXdvcmtzICovID0geworCQkJaXNh
ID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OworCQkJZmlsZXMgPSAoCisJCQkJOERENzZGOUMwNDg2QUE3NjAwRDk2QjVFIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQTg5OEY3OTUwODgyNEI0QTAw
NzVFRkIyIC8qIFdlYkNvcmUrU1ZHLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsK
KwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworLyogRW5k
IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYR3JvdXAg
c2VjdGlvbiAqLworCQkwOEZCNzc5NEZFODQxNTVEQzAyQUFDMDcgLyogc3ZnMnBuZyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMDhGQjc3OTVGRTg0MTU1
REMwMkFBQzA3IC8qIFNvdXJjZSAqLywKKwkJCQkwOEZCNzc5REZFODQxNTVEQzAyQUFDMDcgLyog
RXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzICovLAorCQkJCTFBQjY3NEFERkU5RDU0
QjUxMUNBMkNCQiAvKiBQcm9kdWN0cyAqLywKKwkJCSk7CisJCQluYW1lID0gc3ZnMnBuZzsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTA4RkI3Nzk1RkU4NDE1NURDMDJBQUMw
NyAvKiBTb3VyY2UgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTMyQTcwQUFCMDM3MDVFMUYwMEM5MTc4MyAvKiBzdmcycG5nX1ByZWZpeC5wY2ggKi8sCisJ
CQkJMDhGQjc3OTZGRTg0MTU1REMwMkFBQzA3IC8qIHN2ZzJwbmcubSAqLywKKwkJCSk7CisJCQlu
YW1lID0gU291cmNlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMDhGQjc3
OURGRTg0MTU1REMwMkFBQzA3IC8qIEV4dGVybmFsIEZyYW1ld29ya3MgYW5kIExpYnJhcmllcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTg5OEY3OTQw
ODgyNEI0QTAwNzVFRkIyIC8qIFdlYkNvcmUrU1ZHLmZyYW1ld29yayAqLywKKwkJCQkwOEZCNzc5
RUZFODQxNTVEQzAyQUFDMDcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCisJCQkpOworCQkJ
bmFtZSA9ICJFeHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMiOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMUFCNjc0QURGRTlENTRCNTExQ0EyQ0JCIC8qIFByb2R1
Y3RzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4REQ3
NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogc3ZnMnBuZyAqLywKKwkJCSk7CisJCQluYW1lID0gUHJv
ZHVjdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworLyogRW5kIFBCWEdyb3Vw
IHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYTmF0aXZlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJOERE
NzZGOTYwNDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJwbmcgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRp
dmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQThDMDA2MjUwODk3NTY5QTAw
QkE1MTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJz
dmcycG5nIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCThERDc2Rjk5MDQ4NkFBNzYwMEQ5
NkI1RSAvKiBTb3VyY2VzICovLAorCQkJCThERDc2RjlCMDQ4NkFBNzYwMEQ5NkI1RSAvKiBGcmFt
ZXdvcmtzICovLAorCQkJCThERDc2RjlFMDQ4NkFBNzYwMEQ5NkI1RSAvKiBDb3B5RmlsZXMgKi8s
CisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdfU1lNQk9MUyA9IE5POworCQkJCUdDQ19NT0RFTF9U
VU5JTkcgPSBHNTsKKwkJCQlHQ0NfUFJFQ09NUElMRV9QUkVGSVhfSEVBREVSID0gWUVTOworCQkJ
CUdDQ19QUkVGSVhfSEVBREVSID0gc3ZnMnBuZ19QcmVmaXgucGNoOworCQkJCUdDQ19XQVJOX0FC
T1VUX1JFVFVSTl9UWVBFID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlF
UzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChIT01FKS9iaW4iOworCQkJCVBSRUJJTkRJTkcgPSBO
TzsKKwkJCQlQUk9EVUNUX05BTUUgPSBzdmcycG5nOworCQkJCVZFUlNJT05JTkdfU1lTVEVNID0g
ImFwcGxlLWdlbmVyaWMiOworCQkJfTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQlu
YW1lID0gc3ZnMnBuZzsKKwkJCXByb2R1Y3RJbnN0YWxsUGF0aCA9ICIkKEhPTUUpL2JpbiI7CisJ
CQlwcm9kdWN0TmFtZSA9IHN2ZzJwbmc7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gOERENzZGQTEw
NDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJwbmcgKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBw
bGUucHJvZHVjdC10eXBlLnRvb2wiOworCQl9OworLyogRW5kIFBCWE5hdGl2ZVRhcmdldCBzZWN0
aW9uICovCisKKy8qIEJlZ2luIFBCWFByb2plY3Qgc2VjdGlvbiAqLworCQkwOEZCNzc5M0ZFODQx
NTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi8gPSB7CisJCQlpc2EgPSBQQlhQcm9qZWN0
OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEE4QzAwNjI5MDg5NzU2OUEwMEJBNTExNCAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgInN2ZzJwbmciICovOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQlidWlsZFN0eWxlcyA9ICgKKwkJCQkwMTRD
RUE0RjAwMThDRTQ4MTFDQTI5MjMgLyogRGV2ZWxvcG1lbnQgKi8sCisJCQkJMDE0Q0VBNTAwMDE4
Q0U0ODExQ0EyOTIzIC8qIERlcGxveW1lbnQgKi8sCisJCQkpOworCQkJaGFzU2Nhbm5lZEZvckVu
Y29kaW5ncyA9IDE7CisJCQltYWluR3JvdXAgPSAwOEZCNzc5NEZFODQxNTVEQzAyQUFDMDcgLyog
c3ZnMnBuZyAqLzsKKwkJCXByb2plY3REaXJQYXRoID0gIiI7CisJCQl0YXJnZXRzID0gKAorCQkJ
CThERDc2Rjk2MDQ4NkFBNzYwMEQ5NkI1RSAvKiBzdmcycG5nICovLAorCQkJKTsKKwkJfTsKKy8q
IEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLworCQk4REQ3NkY5OTA0ODZBQTc2MDBEOTZCNUUgLyogU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCThERDc2RjlBMDQ4NkFBNzYwMEQ5NkI1RSAv
KiBzdmcycG5nLm0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKy8qIEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCisKKy8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJ
QThDMDA2MjYwODk3NTY5QTAwQkE1MTE0IC8qIERldmVsb3BtZW50ICovID0geworCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPUFlfUEhB
U0VfU1RSSVAgPSBOTzsKKwkJCQlHQ0NfRFlOQU1JQ19OT19QSUMgPSBOTzsKKwkJCQlHQ0NfRU5B
QkxFX0ZJWF9BTkRfQ09OVElOVUUgPSBZRVM7CisJCQkJR0NDX0dFTkVSQVRFX0RFQlVHR0lOR19T
WU1CT0xTID0gWUVTOworCQkJCUdDQ19NT0RFTF9UVU5JTkcgPSBHNTsKKwkJCQlHQ0NfT1BUSU1J
WkFUSU9OX0xFVkVMID0gMDsKKwkJCQlHQ0NfUFJFQ09NUElMRV9QUkVGSVhfSEVBREVSID0gWUVT
OworCQkJCUdDQ19QUkVGSVhfSEVBREVSID0gc3ZnMnBuZ19QcmVmaXgucGNoOworCQkJCUdDQ19X
QVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJM
RSA9IFlFUzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChIT01FKS9iaW4iOworCQkJCVBSRUJJTkRJ
TkcgPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSBzdmcycG5nOworCQkJCVZFUlNJT05JTkdfU1lT
VEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJCVpFUk9fTElOSyA9IFlFUzsKKwkJCX07CisJCQlu
YW1lID0gRGV2ZWxvcG1lbnQ7CisJCX07CisJCUE4QzAwNjI3MDg5NzU2OUEwMEJBNTExNCAvKiBE
ZXBsb3ltZW50ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBZRVM7CisJCQkJR0NDX0VOQUJM
RV9GSVhfQU5EX0NPTlRJTlVFID0gTk87CisJCQkJR0NDX0dFTkVSQVRFX0RFQlVHR0lOR19TWU1C
T0xTID0gTk87CisJCQkJR0NDX01PREVMX1RVTklORyA9IEc1OworCQkJCUdDQ19QUkVDT01QSUxF
X1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0NDX1BSRUZJWF9IRUFERVIgPSBzdmcycG5nX1By
ZWZpeC5wY2g7CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVM7CisJCQkJR0ND
X1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCUlOU1RBTExfUEFUSCA9ICIkKEhPTUUp
L2JpbiI7CisJCQkJUFJFQklORElORyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9IHN2ZzJwbmc7
CisJCQkJVkVSU0lPTklOR19TWVNURU0gPSAiYXBwbGUtZ2VuZXJpYyI7CisJCQkJWkVST19MSU5L
ID0gTk87CisJCQl9OworCQkJbmFtZSA9IERlcGxveW1lbnQ7CisJCX07CisJCUE4QzAwNjI4MDg5
NzU2OUEwMEJBNTExNCAvKiBEZWZhdWx0ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdf
U1lNQk9MUyA9IE5POworCQkJCUdDQ19NT0RFTF9UVU5JTkcgPSBHNTsKKwkJCQlHQ0NfUFJFQ09N
UElMRV9QUkVGSVhfSEVBREVSID0gWUVTOworCQkJCUdDQ19QUkVGSVhfSEVBREVSID0gc3ZnMnBu
Z19QcmVmaXgucGNoOworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTOworCQkJ
CUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChI
T01FKS9iaW4iOworCQkJCVBSRUJJTkRJTkcgPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSBzdmcy
cG5nOworCQkJCVZFUlNJT05JTkdfU1lTVEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJfTsKKwkJ
CW5hbWUgPSBEZWZhdWx0OworCQl9OworCQlBOEMwMDYyQTA4OTc1NjlBMDBCQTUxMTQgLyogRGV2
ZWxvcG1lbnQgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxk
U2V0dGluZ3MgPSB7CisJCQkJR0NDX1RSRUFUX1dBUk5JTkdTX0FTX0VSUk9SUyA9IFlFUzsKKwkJ
CX07CisJCQluYW1lID0gRGV2ZWxvcG1lbnQ7CisJCX07CisJCUE4QzAwNjJCMDg5NzU2OUEwMEJB
NTExNCAvKiBEZXBsb3ltZW50ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUdDQ19UUkVBVF9XQVJOSU5HU19BU19FUlJPUlMg
PSBZRVM7CisJCQl9OworCQkJbmFtZSA9IERlcGxveW1lbnQ7CisJCX07CisJCUE4QzAwNjJDMDg5
NzU2OUEwMEJBNTExNCAvKiBEZWZhdWx0ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUdDQ19UUkVBVF9XQVJOSU5HU19BU19F
UlJPUlMgPSBZRVM7CisJCQl9OworCQkJbmFtZSA9IERlZmF1bHQ7CisJCX07CisvKiBFbmQgWENC
dWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25M
aXN0IHNlY3Rpb24gKi8KKwkJQThDMDA2MjUwODk3NTY5QTAwQkE1MTE0IC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJzdmcycG5nIiAqLyA9IHsKKwkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJ
CUE4QzAwNjI2MDg5NzU2OUEwMEJBNTExNCAvKiBEZXZlbG9wbWVudCAqLywKKwkJCQlBOEMwMDYy
NzA4OTc1NjlBMDBCQTUxMTQgLyogRGVwbG95bWVudCAqLywKKwkJCQlBOEMwMDYyODA4OTc1NjlB
MDBCQTUxMTQgLyogRGVmYXVsdCAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBEZWZhdWx0OworCQl9
OworCQlBOEMwMDYyOTA4OTc1NjlBMDBCQTUxMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhQcm9qZWN0ICJzdmcycG5nIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCUE4QzAwNjJBMDg5NzU2OUEw
MEJBNTExNCAvKiBEZXZlbG9wbWVudCAqLywKKwkJCQlBOEMwMDYyQjA4OTc1NjlBMDBCQTUxMTQg
LyogRGVwbG95bWVudCAqLywKKwkJCQlBOEMwMDYyQzA4OTc1NjlBMDBCQTUxMTQgLyogRGVmYXVs
dCAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBEZWZhdWx0OworCQl9OworLyogRW5kIFhDQ29uZmln
dXJhdGlvbkxpc3Qgc2VjdGlvbiAqLworCX07CisJcm9vdE9iamVjdCA9IDA4RkI3NzkzRkU4NDE1
NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKK30K
</data>
<flag name="review"
          id="288"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3134</attachid>
            <date>2005-07-28 01:23:07 -0700</date>
            <delta_ts>2005-07-28 18:39:21 -0700</delta_ts>
            <desc>Further improved svg2png w/ BSD licencse</desc>
            <filename>svg2png.patch</filename>
            <type>text/plain</type>
            <size>18657</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IHN2ZzJwbmcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBzdmcycG5nLm0KZGlmZiAtTiBz
dmcycG5nLm0KLS0tIHN2ZzJwbmcubQkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBzdmcy
cG5nLm0JMjggSnVsIDIwMDUgMDg6MDY6NTIgLTAwMDAKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbXBvcnQgPFdlYkNvcmUrU1ZHL0RyYXdEb2N1bWVudFByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYkNvcmUrU1ZHL0RyYXdWaWV3Lmg+CisKK2V4dGVybiBjb25zdCBkb3Vi
bGUgc3ZnMnBuZ1ZlcnNpb25OdW1iZXI7CitleHRlcm4gY29uc3QgdW5zaWduZWQgY2hhciBzdmcy
cG5nVmVyc2lvblN0cmluZ1tdOworCit2b2lkIHVzYWdlKGNvbnN0IGNoYXIgKm5hbWUpCit7Cisg
ICAgcHJpbnRmKCJVc2FnZTogJXMgW29wdGlvbnNdIGZpbGVbc11cbiIsIG5hbWUpOworICAgIHBy
aW50ZigiT3B0aW9uczpcbiIpOworICAgIHByaW50ZigiICAtLXZlcnNpb25cdFx0XHRQcmludHMg
ZnVsbCB2ZXJzaW9uICglLjFmKSBpbmZvcm1hdGlvbiBhbmQgZXhpdHMuXG4iLCBzdmcycG5nVmVy
c2lvbk51bWJlcik7CisgICAgcHJpbnRmKCIgIC0tb3V0cHV0IDxvdXRwdXRmaWxlPiBkdW1wIGEg
cG5nIGNvcHkgb2YgYSBzaW5nbGUgc3ZnIGlucHV0IGZpbGUgdG8gdGhlIG5hbWVkIHBhdGhcbiIp
OworICAgIHByaW50ZigiICAtLXN1ZmZpeCA8c3VmZml4PiBhcHBlbmQgPHN1ZmZpeD4gdG8gZWFj
aCBvdXRwdXQgZmlsZSBlLmcuIDxpbnB1dG5hbWU+PHN1ZmZpeD4ucG5nXG4iKTsKKyAgICBwcmlu
dGYoIldoZW4gLS1vdXRwdXQgaXMgbm90IHNwZWNpZmllZCwgb3V0cHV0IGZpbGVzIGFyZSBjcmVh
dGVkIGluIHRoZSBzYW1lIGRpcmVjdG9yeVxuIik7CisgICAgcHJpbnRmKCJhcyB0aGUgb3JpZ2lu
YWwgc291cmNlIGZpbGVzIGUuZy4gPHNvdXJjZSBkaXJlY3Rvcnk+LzxmaWxlbmFtZT48c3VmZml4
Pi5wbmciKTsKKyAgICBleGl0KDEpOworfTsKKwordm9pZCBvdXRwdXRQTkcoTlNTdHJpbmcgKnN2
Z1BhdGgsIE5TU3RyaW5nICpwbmdQYXRoKQoreworICAgIC8vIGxvYWQgdGhlIGdpdmVuIGRvY3Vt
ZW50CisgICAgRHJhd0RvY3VtZW50ICpkb2N1bWVudCA9IFtbRHJhd0RvY3VtZW50IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRzT2ZGaWxlOnN2Z1BhdGhdOworICAgIAorICAgIC8vIGNyZWF0ZSBhIHZp
ZXcKKyAgICBEcmF3VmlldyAqdmlldyA9IFtbRHJhd1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdF07IC8vIGNvdWxkIGJlIHN0YXRpYy4uLgorICAgIFt2aWV3IHNldERvY3VtZW50
OmRvY3VtZW50XTsKKyAgICBbdmlldyBzaXplVG9GaXRWaWV3Qm94XTsKKyAgICAKKyAgICAvLyBN
eSBtYXhpbXVtIDUwMHg1MDAgc2l6ZSBoYWNrOgorICAgIE5TU2l6ZSBib3VuZHNTaXplID0gW3Zp
ZXcgYm91bmRzXS5zaXplOworICAgIGlmIChib3VuZHNTaXplLndpZHRoID4gNTAwKQorICAgICAg
ICBib3VuZHNTaXplLndpZHRoID0gNTAwOworICAgIGlmIChib3VuZHNTaXplLmhlaWdodCA+IDUw
MCkKKyAgICAgICAgYm91bmRzU2l6ZS5oZWlnaHQgPSA1MDA7CisgICAgW3ZpZXcgc2V0RnJhbWVT
aXplOmJvdW5kc1NpemVdOworICAgIAorICAgIC8vIHRlbGwgdGhhdCB2aWV3IHRvIHJlbmRlcgor
ICAgIE5TQml0bWFwSW1hZ2VSZXAgKmltYWdlUmVwID0gW3ZpZXcgYml0bWFwSW1hZ2VSZXBGb3JD
YWNoaW5nRGlzcGxheUluUmVjdDpbdmlldyBib3VuZHNdXTsKKyAgICBbdmlldyBjYWNoZURpc3Bs
YXlJblJlY3Q6W3ZpZXcgYm91bmRzXSB0b0JpdG1hcEltYWdlUmVwOmltYWdlUmVwXTsKKyAgICAK
KyAgICAvLyBvdXRwdXQgdGhlIHJlc3VsdGluZyBpbWFnZQorICAgIE5TRGF0YSAqcG5nRGF0YSA9
IFtpbWFnZVJlcCByZXByZXNlbnRhdGlvblVzaW5nVHlwZTpOU1BOR0ZpbGVUeXBlIHByb3BlcnRp
ZXM6bmlsXTsKKyAgICBbcG5nRGF0YSB3cml0ZVRvRmlsZTpzdmdQYXRoIGF0b21pY2FsbHk6WUVT
XTsKKyAgICAKKyAgICBbdmlldyByZWxlYXNlXTsgLy8gc2hvdWxkIGJlIHNpbmdsZXRvbi4KKyAg
ICBbZG9jdW1lbnQgcmVsZWFzZV07Cit9CisKK2ludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hh
ciAqYXJndltdKQoreworICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxl
YXNlUG9vbCBhbGxvY10gaW5pdF07CisgICAgLy8gZGVhbCB3aXRoIGFyZ3MKKyAgICBOU011dGFi
bGVBcnJheSAqc3ZncyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgY29uc3QgY2hhciAq
bmFtZSA9IFtbW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmFyZ3ZbMF1dIGxhc3RQYXRo
Q29tcG9uZW50XSBVVEY4U3RyaW5nXTsKKyAgICBOU1N0cmluZyAqZXhwbGljaXRPdXRwdXRQYXRo
ID0gbmlsOworICAgIE5TU3RyaW5nICpvdXRwdXRTdWZmaXggPSBuaWw7CisgICAgCisgICAgZm9y
KGludCB4ID0gMTsgeCA8IGFyZ2M7IHgrKykgeworICAgICAgICBjb25zdCBjaGFyICphcmcgPSBh
cmd2W3hdOworICAgICAgICBOU1N0cmluZyAqYXJnU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhVVEY4U3RyaW5nOmFyZ107CisgICAgICAgIAorICAgICAgICBpZiAoW2FyZ1N0cmluZyBoYXNQ
cmVmaXg6QCItLSJdKSB7IC8vIHRoaXMgaXMgYW4gb3B0aW9uCisgICAgICAgICAgICBpZiAoW2Fy
Z1N0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCItLWhlbHAiXSkKKyAgICAgICAgICAgICAgICB1c2Fn
ZShuYW1lKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKFthcmdTdHJpbmcgaXNFcXVhbFRvU3RyaW5n
OkAiLS12ZXJzaW9uIl0pIHsKKyAgICAgICAgICAgICAgICBwcmludGYoKGNoYXIgKilzdmcycG5n
VmVyc2lvblN0cmluZyk7CisgICAgICAgICAgICAgICAgZXhpdCgwKTsKKyAgICAgICAgICAgIH0g
ZWxzZSBpZiAoW2FyZ1N0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCItLW91dHB1dCJdKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHggKyAxIDwgYXJnYykgeworICAgICAgICAgICAgICAgICAgICBleHBs
aWNpdE91dHB1dFBhdGggPSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6YXJndlt4KzFd
XTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFtleHBsaWNpdE91dHB1dFBhdGggaGFzUHJlZml4
OkAiLS0iXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiV0FSTklORzogZGlkIHlv
dSByZWFsbHkgbWVhbiB0byBvdXRwdXQgdG86ICVAICBPciBkaWQgeW91IGp1c3QgZm9yZ2V0IHRo
ZSAtLW91dHB1dCA8ZmlsZW5hbWU+IGFyZ3VtZW50PyIsIGV4cGxpY2l0T3V0cHV0UGF0aCk7Cisg
ICAgICAgICAgICAgICAgICAgIHgrKzsgLy8gdG8gc2tpcCB0aGUgbmV4dCBhcmcKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIi0tb3V0cHV0IHJl
cXVpcmVzIGFuIGFyZ3VtZW50LiIpOworICAgICAgICAgICAgICAgICAgICB1c2FnZShuYW1lKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICBlbHNlIGlmIChbYXJnU3RyaW5nIGlz
RXF1YWxUb1N0cmluZzpAIi0tc3VmZml4Il0pIHsKKyAgICAgICAgICAgICAgICBpZiAoeCArIDEg
PCBhcmdjKSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dFN1ZmZpeCA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoVVRGOFN0cmluZzphcmd2W3grMV1dOworICAgICAgICAgICAgICAgICAgICB4Kys7
IC8vIHRvIHNraXAgdGhlIG5leHQgYXJnCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgTlNMb2coQCItLXN1ZmZpeCByZXF1aXJlcyBhbiBhcmd1bWVudC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgdXNhZ2UobmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlVucmVjb2duaXplZCBv
cHRpb24gJUBcbiIsIGFyZ1N0cmluZyk7CisgICAgICAgICAgICAgICAgdXNhZ2UobmFtZSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIVtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpbYXJnU3RyaW5nIHN0cmlu
Z0J5U3RhbmRhcmRpemluZ1BhdGhdXSkgeworICAgICAgICAgICAgICAgIHByaW50ZigiU1ZHIGRv
ZXMgbm90IGV4aXN0IGF0IHBhdGg6ICVAXG4iLCBhcmdTdHJpbmcpOworICAgICAgICAgICAgICAg
IGV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBbc3ZncyBhZGRPYmplY3Q6YXJn
U3RyaW5nXTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoIVtzdmdzIGNvdW50XSkg
eworICAgICAgICBwcmludGYoIk5vIHN2Z3Mgc3BlY2lmaWVkLlxuIik7CisgICAgICAgIHVzYWdl
KG5hbWUpOworICAgIH0KKyAgICAKKyAgICBpZiAoIChbc3ZncyBjb3VudF0gPiAxKSAmJiBleHBs
aWNpdE91dHB1dFBhdGgpIHsKKyAgICAgICAgcHJpbnRmKCItLW91dHB1dCBuYW1lIHNwZWNpZmVk
LCB5ZXQgbW9yZSB0aGFuIG9uZSBpbnB1dCBmaWxlIHdhcyBnaXZlbiFcblxuIik7CisgICAgICAg
IHVzYWdlKG5hbWUpOworICAgIH0KKyAgICAKKyAgICBOU1N0cmluZyAqc3ZnUGF0aCA9IG5pbDsK
KyAgICBmb3JlYWNoYXJyYXkoc3ZnUGF0aCwgc3ZncykgeworICAgICAgICBOU1N0cmluZyAqcG5n
UGF0aCA9IG5pbDsKKyAgICAgICAgaWYgKGV4cGxpY2l0T3V0cHV0UGF0aCkKKyAgICAgICAgICAg
IHBuZ1BhdGggPSBleHBsaWNpdE91dHB1dFBhdGg7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgcG5nUGF0aCA9IFtzdmdQYXRoIHN0cmluZ0J5RGVsZXRpbmdQYXRoRXh0ZW5zaW9uXTsKKyAg
ICAgICAgICAgIGlmIChvdXRwdXRTdWZmaXgpCisgICAgICAgICAgICAgICAgcG5nUGF0aCA9IFtw
bmdQYXRoIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOm91dHB1dFN1ZmZpeF07CisgICAgICAgICAg
ICBwbmdQYXRoID0gW3BuZ1BhdGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoRXh0ZW5zaW9uOkAicG5n
Il07CisgICAgICAgIH0KKyAgICAgICAgb3V0cHV0UE5HKHN2Z1BhdGgsIHBuZ1BhdGgpOworICAg
IH0KKyAgICAKKyAgICBbcG9vbCBkcmFpbl07CisgICAgCisgICAgcmV0dXJuIDA7Cit9CisKKwpJ
bmRleDogc3ZnMnBuZ19QcmVmaXgucGNoCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IHN2ZzJwbmdfUHJl
Zml4LnBjaApkaWZmIC1OIHN2ZzJwbmdfUHJlZml4LnBjaAotLS0gc3ZnMnBuZ19QcmVmaXgucGNo
CTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHN2ZzJwbmdfUHJlZml4LnBjaAkyOCBKdWwg
MjAwNSAwODowNjo1MiAtMDAwMApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisvLworLy8gUHJlZml4IGhlYWRlciBmb3IgYWxsIHNvdXJjZSBmaWxlcyBvZiB0aGUgJ3N2ZzJw
bmcnIHRhcmdldCBpbiB0aGUgJ3N2ZzJwbmcnIHByb2plY3QuCisvLworCisjaWZkZWYgX19PQkpD
X18KKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjZGVmaW5lIGZvcmVhY2hh
cnJheShfX3ZhcmlhYmxlLCBfX2NvbnRhaW5lcikgXAorICAgIGZvciAoaW50IF9fdmFyaWFibGUj
I19faT0wLCBfX3ZhcmlhYmxlIyNfX249W19fY29udGFpbmVyIGNvdW50XTsgIFwKKyAgICAgICAg
X192YXJpYWJsZSMjX19pIDwgX192YXJpYWJsZSMjX19uICYmIChfX3ZhcmlhYmxlID0gW19fY29u
dGFpbmVyIG9iamVjdEF0SW5kZXg6X192YXJpYWJsZSMjX19pXSk7ICBcCisgICAgICAgICsrX192
YXJpYWJsZSMjX19pKQorI2VuZGlmCkluZGV4OiAuL3N2ZzJwbmcueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBwcm9qZWN0LnBieHByb2oKZGlmZiAtTiAuL3N2
ZzJwbmcueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagotLS0gLi9zdmcycG5nLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgLi9zdmcycG5nLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJMjggSnVsIDIwMDUgMDg6MDY6NTMgLTAwMDAKQEAgLTAs
MCArMSwyODMgQEAKKy8vICEkKlVURjgqJCEKK3sKKwlhcmNoaXZlVmVyc2lvbiA9IDE7CisJY2xh
c3NlcyA9IHsKKwl9OworCW9iamVjdFZlcnNpb24gPSA0MjsKKwlvYmplY3RzID0geworCisvKiBC
ZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQk4REQ3NkY5QTA0ODZBQTc2MDBEOTZCNUUg
Lyogc3ZnMnBuZy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDhGQjc3OTZGRTg0MTU1REMwMkFBQzA3IC8qIHN2ZzJwbmcubSAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk4REQ3NkY5QzA0ODZBQTc2MDBEOTZCNUUgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwOEZCNzc5RUZFODQxNTVEQzAyQUFDMDcgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgKi87IH07CisJCUE4OThGNzk1MDg4MjRCNEEwMDc1RUZCMiAvKiBXZWJDb3JlK1NWRy5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODk4Rjc5NDA4ODI0QjRBMDA3NUVGQjIgLyogV2ViQ29yZStTVkcuZnJhbWV3b3JrICovOyB9Owor
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEJ1aWxkU3R5bGUg
c2VjdGlvbiAqLworCQkwMTRDRUE0RjAwMThDRTQ4MTFDQTI5MjMgLyogRGV2ZWxvcG1lbnQgKi8g
PSB7CisJCQlpc2EgPSBQQlhCdWlsZFN0eWxlOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlD
T1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJ
R0NDX0VOQUJMRV9GSVhfQU5EX0NPTlRJTlVFID0gWUVTOworCQkJCUdDQ19HRU5FUkFURV9ERUJV
R0dJTkdfU1lNQk9MUyA9IFlFUzsKKwkJCQlHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMID0gMDsKKwkJ
CQlaRVJPX0xJTksgPSBZRVM7CisJCQl9OworCQkJbmFtZSA9IERldmVsb3BtZW50OworCQl9Owor
CQkwMTRDRUE1MDAwMThDRTQ4MTFDQTI5MjMgLyogRGVwbG95bWVudCAqLyA9IHsKKwkJCWlzYSA9
IFBCWEJ1aWxkU3R5bGU7CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPUFlfUEhBU0VfU1RS
SVAgPSBZRVM7CisJCQkJR0NDX0VOQUJMRV9GSVhfQU5EX0NPTlRJTlVFID0gTk87CisJCQkJWkVS
T19MSU5LID0gTk87CisJCQl9OworCQkJbmFtZSA9IERlcGxveW1lbnQ7CisJCX07CisvKiBFbmQg
UEJYQnVpbGRTdHlsZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWENvcHlGaWxlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLworCQk4REQ3NkY5RTA0ODZBQTc2MDBEOTZCNUUgLyogQ29weUZpbGVzICov
ID0geworCQkJaXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDg7CisJCQlkc3RQYXRoID0gL3Vzci9zaGFyZS9tYW4vbWFuMS87CisJCQlkc3RTdWJmb2xk
ZXJTcGVjID0gMDsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAxOworCQl9OworLyogRW5kIFBCWENvcHlGaWxlc0J1aWxkUGhhc2Ug
c2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMDhG
Qjc3OTZGRTg0MTU1REMwMkFBQzA3IC8qIHN2ZzJwbmcubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5vYmpjOyBwYXRoID0gc3ZnMnBuZy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
OEZCNzc5RUZFODQxNTVEQzAyQUFDMDcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgbmFtZSA9IEZvdW5kYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7
IH07CisJCTMyQTcwQUFCMDM3MDVFMUYwMEM5MTc4MyAvKiBzdmcycG5nX1ByZWZpeC5wY2ggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHN2ZzJwbmdfUHJlZml4LnBjaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJw
bmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21w
aWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHN2ZzJw
bmc7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUE4OThGNzk0MDg4MjRC
NEEwMDc1RUZCMiAvKiBXZWJDb3JlK1NWRy5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9ICJX
ZWJDb3JlK1NWRy5mcmFtZXdvcmsiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisJCThERDc2RjlCMDQ4NkFBNzYwMEQ5NkI1RSAv
KiBGcmFtZXdvcmtzICovID0geworCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJOERENzZG
OUMwNDg2QUE3NjAwRDk2QjVFIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8sCisJCQkJQTg5OEY3OTUwODgyNEI0QTAwNzVFRkIyIC8qIFdlYkNvcmUrU1ZHLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOworCQl9OworLyogRW5kIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KKworLyogQmVnaW4gUEJYR3JvdXAgc2VjdGlvbiAqLworCQkwOEZCNzc5NEZFODQxNTVE
QzAyQUFDMDcgLyogc3ZnMnBuZyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMDhGQjc3OTVGRTg0MTU1REMwMkFBQzA3IC8qIFNvdXJjZSAqLywKKwkJCQkw
OEZCNzc5REZFODQxNTVEQzAyQUFDMDcgLyogRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFy
aWVzICovLAorCQkJCTFBQjY3NEFERkU5RDU0QjUxMUNBMkNCQiAvKiBQcm9kdWN0cyAqLywKKwkJ
CSk7CisJCQluYW1lID0gc3ZnMnBuZzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTA4RkI3Nzk1RkU4NDE1NURDMDJBQUMwNyAvKiBTb3VyY2UgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTMyQTcwQUFCMDM3MDVFMUYwMEM5MTc4MyAv
KiBzdmcycG5nX1ByZWZpeC5wY2ggKi8sCisJCQkJMDhGQjc3OTZGRTg0MTU1REMwMkFBQzA3IC8q
IHN2ZzJwbmcubSAqLywKKwkJCSk7CisJCQluYW1lID0gU291cmNlOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMDhGQjc3OURGRTg0MTU1REMwMkFBQzA3IC8qIEV4dGVybmFs
IEZyYW1ld29ya3MgYW5kIExpYnJhcmllcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJQTg5OEY3OTQwODgyNEI0QTAwNzVFRkIyIC8qIFdlYkNvcmUrU1ZH
LmZyYW1ld29yayAqLywKKwkJCQkwOEZCNzc5RUZFODQxNTVEQzAyQUFDMDcgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi8sCisJCQkpOworCQkJbmFtZSA9ICJFeHRlcm5hbCBGcmFtZXdvcmtzIGFu
ZCBMaWJyYXJpZXMiOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMUFCNjc0
QURGRTlENTRCNTExQ0EyQ0JCIC8qIFByb2R1Y3RzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogc3ZnMnBu
ZyAqLywKKwkJCSk7CisJCQluYW1lID0gUHJvZHVjdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYTmF0
aXZlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJOERENzZGOTYwNDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJw
bmcgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gQThDMDA2MjUwODk3NTY5QTAwQkE1MTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJzdmcycG5nIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0g
KAorCQkJCThERDc2Rjk5MDQ4NkFBNzYwMEQ5NkI1RSAvKiBTb3VyY2VzICovLAorCQkJCThERDc2
RjlCMDQ4NkFBNzYwMEQ5NkI1RSAvKiBGcmFtZXdvcmtzICovLAorCQkJCThERDc2RjlFMDQ4NkFB
NzYwMEQ5NkI1RSAvKiBDb3B5RmlsZXMgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJ
CSk7CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdfU1lN
Qk9MUyA9IE5POworCQkJCUdDQ19NT0RFTF9UVU5JTkcgPSBHNTsKKwkJCQlHQ0NfUFJFQ09NUElM
RV9QUkVGSVhfSEVBREVSID0gWUVTOworCQkJCUdDQ19QUkVGSVhfSEVBREVSID0gc3ZnMnBuZ19Q
cmVmaXgucGNoOworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTOworCQkJCUdD
Q19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChIT01F
KS9iaW4iOworCQkJCVBSRUJJTkRJTkcgPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSBzdmcycG5n
OworCQkJCVZFUlNJT05JTkdfU1lTVEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJfTsKKwkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gc3ZnMnBuZzsKKwkJCXByb2R1Y3RJbnN0
YWxsUGF0aCA9ICIkKEhPTUUpL2JpbiI7CisJCQlwcm9kdWN0TmFtZSA9IHN2ZzJwbmc7CisJCQlw
cm9kdWN0UmVmZXJlbmNlID0gOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIHN2ZzJwbmcgKi87
CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOworCQl9Owor
LyogRW5kIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWFByb2plY3Qg
c2VjdGlvbiAqLworCQkwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3Qg
Ki8gPSB7CisJCQlpc2EgPSBQQlhQcm9qZWN0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IEE4QzAwNjI5MDg5NzU2OUEwMEJBNTExNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWFByb2plY3QgInN2ZzJwbmciICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJ
CQlidWlsZFN0eWxlcyA9ICgKKwkJCQkwMTRDRUE0RjAwMThDRTQ4MTFDQTI5MjMgLyogRGV2ZWxv
cG1lbnQgKi8sCisJCQkJMDE0Q0VBNTAwMDE4Q0U0ODExQ0EyOTIzIC8qIERlcGxveW1lbnQgKi8s
CisJCQkpOworCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CisJCQltYWluR3JvdXAgPSAw
OEZCNzc5NEZFODQxNTVEQzAyQUFDMDcgLyogc3ZnMnBuZyAqLzsKKwkJCXByb2plY3REaXJQYXRo
ID0gIiI7CisJCQl0YXJnZXRzID0gKAorCQkJCThERDc2Rjk2MDQ4NkFBNzYwMEQ5NkI1RSAvKiBz
dmcycG5nICovLAorCQkJKTsKKwkJfTsKKy8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKwor
LyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQk4REQ3NkY5OTA0ODZB
QTc2MDBEOTZCNUUgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBo
YXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJ
CThERDc2RjlBMDQ4NkFBNzYwMEQ5NkI1RSAvKiBzdmcycG5nLm0gaW4gU291cmNlcyAqLywKKwkJ
CSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKy8q
IEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFhDQnVpbGRD
b25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJQThDMDA2MjYwODk3NTY5QTAwQkE1MTE0IC8qIERl
dmVsb3BtZW50ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlHQ0NfRFlOQU1J
Q19OT19QSUMgPSBOTzsKKwkJCQlHQ0NfRU5BQkxFX0ZJWF9BTkRfQ09OVElOVUUgPSBZRVM7CisJ
CQkJR0NDX0dFTkVSQVRFX0RFQlVHR0lOR19TWU1CT0xTID0gWUVTOworCQkJCUdDQ19NT0RFTF9U
VU5JTkcgPSBHNTsKKwkJCQlHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMID0gMDsKKwkJCQlHQ0NfUFJF
Q09NUElMRV9QUkVGSVhfSEVBREVSID0gWUVTOworCQkJCUdDQ19QUkVGSVhfSEVBREVSID0gc3Zn
MnBuZ19QcmVmaXgucGNoOworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTOwor
CQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlJTlNUQUxMX1BBVEggPSAi
JChIT01FKS9iaW4iOworCQkJCVBSRUJJTkRJTkcgPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSBz
dmcycG5nOworCQkJCVZFUlNJT05JTkdfU1lTVEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJCVpF
Uk9fTElOSyA9IFlFUzsKKwkJCX07CisJCQluYW1lID0gRGV2ZWxvcG1lbnQ7CisJCX07CisJCUE4
QzAwNjI3MDg5NzU2OUEwMEJBNTExNCAvKiBEZXBsb3ltZW50ICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPUFlfUEhBU0Vf
U1RSSVAgPSBZRVM7CisJCQkJR0NDX0VOQUJMRV9GSVhfQU5EX0NPTlRJTlVFID0gTk87CisJCQkJ
R0NDX0dFTkVSQVRFX0RFQlVHR0lOR19TWU1CT0xTID0gTk87CisJCQkJR0NDX01PREVMX1RVTklO
RyA9IEc1OworCQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0ND
X1BSRUZJWF9IRUFERVIgPSBzdmcycG5nX1ByZWZpeC5wY2g7CisJCQkJR0NDX1dBUk5fQUJPVVRf
UkVUVVJOX1RZUEUgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwor
CQkJCUlOU1RBTExfUEFUSCA9ICIkKEhPTUUpL2JpbiI7CisJCQkJUFJFQklORElORyA9IE5POwor
CQkJCVBST0RVQ1RfTkFNRSA9IHN2ZzJwbmc7CisJCQkJVkVSU0lPTklOR19TWVNURU0gPSAiYXBw
bGUtZ2VuZXJpYyI7CisJCQkJWkVST19MSU5LID0gTk87CisJCQl9OworCQkJbmFtZSA9IERlcGxv
eW1lbnQ7CisJCX07CisJCUE4QzAwNjI4MDg5NzU2OUEwMEJBNTExNCAvKiBEZWZhdWx0ICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCUdDQ19HRU5FUkFURV9ERUJVR0dJTkdfU1lNQk9MUyA9IE5POworCQkJCUdDQ19NT0RFTF9U
VU5JTkcgPSBHNTsKKwkJCQlHQ0NfUFJFQ09NUElMRV9QUkVGSVhfSEVBREVSID0gWUVTOworCQkJ
CUdDQ19QUkVGSVhfSEVBREVSID0gc3ZnMnBuZ19QcmVmaXgucGNoOworCQkJCUdDQ19XQVJOX0FC
T1VUX1JFVFVSTl9UWVBFID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlF
UzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChIT01FKS9iaW4iOworCQkJCVBSRUJJTkRJTkcgPSBO
TzsKKwkJCQlQUk9EVUNUX05BTUUgPSBzdmcycG5nOworCQkJCVZFUlNJT05JTkdfU1lTVEVNID0g
ImFwcGxlLWdlbmVyaWMiOworCQkJfTsKKwkJCW5hbWUgPSBEZWZhdWx0OworCQl9OworCQlBOEMw
MDYyQTA4OTc1NjlBMDBCQTUxMTQgLyogRGV2ZWxvcG1lbnQgKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJR0NDX0NfTEFOR1VB
R0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlHQ0NfVFJFQVRfV0FSTklOR1NfQVNfRVJST1JTID0g
WUVTOworCQkJCVZFUlNJT05JTkdfU1lTVEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJfTsKKwkJ
CW5hbWUgPSBEZXZlbG9wbWVudDsKKwkJfTsKKwkJQThDMDA2MkIwODk3NTY5QTAwQkE1MTE0IC8q
IERlcGxveW1lbnQgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1
aWxkU2V0dGluZ3MgPSB7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJ
CQlHQ0NfVFJFQVRfV0FSTklOR1NfQVNfRVJST1JTID0gWUVTOworCQkJCVZFUlNJT05JTkdfU1lT
VEVNID0gImFwcGxlLWdlbmVyaWMiOworCQkJfTsKKwkJCW5hbWUgPSBEZXBsb3ltZW50OworCQl9
OworCQlBOEMwMDYyQzA4OTc1NjlBMDBCQTUxMTQgLyogRGVmYXVsdCAqLyA9IHsKKwkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlHQ0NfQ19M
QU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworCQkJCUdDQ19UUkVBVF9XQVJOSU5HU19BU19FUlJP
UlMgPSBZRVM7CisJCQkJVkVSU0lPTklOR19TWVNURU0gPSAiYXBwbGUtZ2VuZXJpYyI7CisJCQl9
OworCQkJbmFtZSA9IERlZmF1bHQ7CisJCX07CisvKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24g
c2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KKwkJ
QThDMDA2MjUwODk3NTY5QTAwQkE1MTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJzdmcycG5nIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCUE4QzAwNjI2MDg5NzU2OUEw
MEJBNTExNCAvKiBEZXZlbG9wbWVudCAqLywKKwkJCQlBOEMwMDYyNzA4OTc1NjlBMDBCQTUxMTQg
LyogRGVwbG95bWVudCAqLywKKwkJCQlBOEMwMDYyODA4OTc1NjlBMDBCQTUxMTQgLyogRGVmYXVs
dCAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBEZWZhdWx0OworCQl9OworCQlBOEMwMDYyOTA4OTc1
NjlBMDBCQTUxMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJz
dmcycG5nIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENv
bmZpZ3VyYXRpb25zID0gKAorCQkJCUE4QzAwNjJBMDg5NzU2OUEwMEJBNTExNCAvKiBEZXZlbG9w
bWVudCAqLywKKwkJCQlBOEMwMDYyQjA4OTc1NjlBMDBCQTUxMTQgLyogRGVwbG95bWVudCAqLywK
KwkJCQlBOEMwMDYyQzA4OTc1NjlBMDBCQTUxMTQgLyogRGVmYXVsdCAqLywKKwkJCSk7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlv
bk5hbWUgPSBEZWZhdWx0OworCQl9OworLyogRW5kIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlv
biAqLworCX07CisJcm9vdE9iamVjdCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9q
ZWN0IG9iamVjdCAqLzsKK30K
</data>
<flag name="review"
          id="290"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>