<?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>113806</bug_id>
          
          <creation_ts>2013-04-02 10:59:37 -0700</creation_ts>
          <short_desc>Upstream AudioDestinationIOS.</short_desc>
          <delta_ts>2013-04-02 13:46:02 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>113813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>868037</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-02 10:59:37 -0700</bug_when>
    <thetext>Upstream AudioDestiantionIOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868094</commentid>
    <comment_count>1</comment_count>
      <attachid>196191</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-02 11:22:53 -0700</bug_when>
    <thetext>Created attachment 196191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868098</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 11:27:13 -0700</bug_when>
    <thetext>Attachment 196191 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp&apos;, u&apos;Source/WebCore/platform/audio/ios/AudioDestinationIOS.h&apos;]&quot; exit_code: 1
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:43:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:148:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:149:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:150:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:151:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:167:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:271:  Use std::min() or std::min&lt;type&gt;() instead of the MIN() macro.  [runtime/max_min_macros] [4]
Total errors found: 8 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868166</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-02 12:33:25 -0700</bug_when>
    <thetext>The style errors will be resolved in bug 113813.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868172</commentid>
    <comment_count>4</comment_count>
      <attachid>196191</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-02 12:48:41 -0700</bug_when>
    <thetext>Comment on attachment 196191
Patch

r=me if you fix the style complaints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868191</commentid>
    <comment_count>5</comment_count>
      <attachid>196191</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2013-04-02 13:02:16 -0700</bug_when>
    <thetext>Comment on attachment 196191
Patch

r=me if you fix the style issues, either before or after landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868197</commentid>
    <comment_count>6</comment_count>
      <attachid>196191</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-04-02 13:12:09 -0700</bug_when>
    <thetext>Comment on attachment 196191
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Upstream AudioDestiantionIOS.

Please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868202</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-02 13:23:13 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 196191 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=196191&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Upstream AudioDestiantionIOS.
&gt; 
&gt; Please fix.

Whoops.  Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868218</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-02 13:46:02 -0700</bug_when>
    <thetext>Committed r147493: &lt;http://trac.webkit.org/changeset/147493&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196191</attachid>
            <date>2013-04-02 11:22:53 -0700</date>
            <delta_ts>2013-04-02 13:12:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113806-20130402112244.patch</filename>
            <type>text/plain</type>
            <size>23053</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgxNGRiZDNjNmFhYmQ5
Mzk1MGU3N2NlYTcxOWIyNWQ2MDRkMmMwOC4uOGQwNDViYzExNGNlNjFlNDBlMjY1YWIwMGU1MTQy
MmYzYmYxYzE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA0LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3RyZWFtIEF1ZGlvRGVz
dGlhbnRpb25JT1MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTM4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcHN0cmVhbSBBdWRpb0Rlc3RpbmF0aW9uSU9TIGZyb20gdGhlIGlPUyByZXBvc2l0b3J5
LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjphdWRpb0Rlc3RpbmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5h
dGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGlu
YXRpb246Om1heENoYW5uZWxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uSU9TOjpBdWRpb0Rlc3RpbmF0aW9uSU9TKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25JT1M6On5BdWRpb0Rlc3RpbmF0aW9uSU9TKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb25JT1M6OmNvbmZpZ3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uSU9TOjphdWRpb0Rlc3RpbmF0aW9uSW50ZXJydXB0aW9uTGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbklPUzo6aW5pdGlhbGl6ZUF1ZGlvU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uSU9TOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uSU9TOjpzdG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvRGVzdGluYXRpb25JT1M6OmJlZ2FuQXVkaW9JbnRlcnJ1cHRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbklPUzo6ZW5kZWRBdWRpb0ludGVycnVwdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uSU9TOjpyZW5kZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbklPUzo6aW5wdXRQcm9jKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb25JT1M6OmZyYW1lU2l6ZUNoYW5nZWRQcm9jKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5oOiBBZGRlZC4KKyAg
ICAgICAgKEF1ZGlvRGVzdGluYXRpb25JT1MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbklPUzo6aXNQbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b25JT1M6OnNhbXBsZVJhdGUpOgorCiAyMDEzLTAzLTIxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpjYWNo
ZWRSZXNvdXJjZUxvYWRlciArIDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YWViNmNmYzg2M2YwNDE1NWI5OWIyMzU3MDAwZWQz
MjBhNDA5NDE0Li41NGYxZWMwMjVkYzE4MmVkNTY0YmQ1NjU1NzRiZjliNzI3Y2M4MDJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02MDE2LDYgKzYwMTYsNyBAQAogCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
Q0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhD
REQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRy
b2xsZXIuY3BwICovOyB9OwogCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDBFRUUwRTE0NzQzRjM5
MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIgLyogQXVk
aW9EZXN0aW5hdGlvbklPUy5jcHAgKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAv
KiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRDFCNEE2NTE2MDc4NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE5OERDMjE2
MDE0RUVFMDBGRUEzQjEgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgKi87IH07CkBAIC0xMzY4
NCw2ICsxMzY4NSw4IEBACiAJCUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERldmljZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQ0My
QjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEMEVFRTBBMTQ3NDNFMzQwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9u
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEF1ZGlvRGVzdGluYXRpb25J
T1MuaDsgcGF0aCA9IGlvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEMEVFRTBCMTQ3NDNFMzUwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9u
SU9TLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEF1ZGlvRGVzdGlu
YXRpb25JT1MuY3BwOyBwYXRoID0gaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Qx
MjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5k
b3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlB
ODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTg1MCw2ICsyMTg1MywxNSBAQAogCQkJbmFtZSA9IGF1ZGlv
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0QwRUVFMEQxNDc0M0U0ODAw
M0VBRkEyIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3Bw
ICovLAorCQkJCUNEMEVFRTBBMTQ3NDNFMzQwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9T
LmggKi8sCisJCQkpOworCQkJbmFtZSA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCUNEQTk4REJEMTYwMTRFMDgwMEZFQTNCMSAvKiBlbmNyeXB0ZWRtZWRpYSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMzE2Myw2ICsyMzE3
NSw3IEBACiAJCUZEMzE2MDQwMTJCMDI2QTMwMEMxQTM1OSAvKiBhdWRpbyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0QwRUVFMEQxNDc0M0U0ODAwM0VB
RkEyIC8qIGlvcyAqLywKIAkJCQlGRDMxNjBCMDEyQjAyNzA3MDBDMUEzNTkgLyogbWFjICovLAog
CQkJCUZEMzE2MDQ0MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggKi8sCiAJCQkJRkQz
MTYwNDUxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVzLmNwcCAqLywKQEAgLTI3MTU1LDYgKzI3
MTY4LDcgQEAKIAkJCQlGRDMxNjBCQjEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9CdXNNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA3RDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFu
bmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDA0MTJCMDI2NzYwMEMxQTM1OSAvKiBB
dWRpb0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VB
RkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYw
QkMxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iODE0ZGE5YjY0MTRlYWVlZjcyMDUzZjdiMjI4Y2EzYjFjYjdjMDYzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVz
dGluYXRpb25JT1MuY3BwCkBAIC0wLDAgKzEsMzA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbmNsdWRlICJB
dWRpb0Rlc3RpbmF0aW9uSU9TLmgiCisKKyNpbmNsdWRlICJBdWRpb0lPQ2FsbGJhY2suaCIKKyNp
bmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZUF1ZGlv
L0F1ZGlvSGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9TZXJ2aWNlcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gp
CitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0Nv
bXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVu
dERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCitTT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0dXMsIChB
dWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCitTT0ZUX0xJ
TksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1
ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlICpvdXRJbnN0
YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJv
eCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkK
K1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0b3AsIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGNpKSwgKGNpKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvU2Vzc2lv
bkluaXRpYWxpemUsIE9TU3RhdHVzLCAoQ0ZSdW5Mb29wUmVmIGluUnVuTG9vcCwgQ0ZTdHJpbmdS
ZWYgaW5SdW5Mb29wTW9kZSwgQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uTGlzdGVuZXIgaW5JbnRl
cnJ1cHRpb25MaXN0ZW5lciwgdm9pZCAqaW5DbGllbnREYXRhKSwgKGluUnVuTG9vcCwgaW5SdW5M
b29wTW9kZSwgaW5JbnRlcnJ1cHRpb25MaXN0ZW5lciwgaW5DbGllbnREYXRhKSkKK1NPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEF1ZGlvU2Vzc2lvbkdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlv
U2Vzc2lvblByb3BlcnR5SUQgaW5JRCwgVUludDMyICppb0RhdGFTaXplLCB2b2lkICpvdXREYXRh
KSwgKGluSUQsIGlvRGF0YVNpemUsIG91dERhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwg
QXVkaW9TZXNzaW9uU2V0QWN0aXZlLCBPU1N0YXR1cywgKEJvb2xlYW4gYWN0aXZlKSwgKGFjdGl2
ZSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1Nlc3Npb25TZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChBdWRpb1Nlc3Npb25Qcm9wZXJ0eUlEIGluSUQsIFVJbnQzMiBpbkRhdGFTaXplLCBj
b25zdCB2b2lkICppbkRhdGEpLCAoaW5JRCwgaW5EYXRhU2l6ZSwgaW5EYXRhKSkKK1NPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEFkZFByb3BlcnR5TGlzdGVuZXIsIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRQcm9w
ZXJ0eUxpc3RlbmVyUHJvYyBpblByb2MsIHZvaWQgKmluUHJvY1VzZXJEYXRhKSwgKGluVW5pdCwg
aW5JRCwgaW5Qcm9jLCBpblByb2NVc2VyRGF0YSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBB
dWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1Vu
aXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1l
bnQgaW5FbGVtZW50LCB2b2lkICpvdXREYXRhLCBVSW50MzIgKmlvRGF0YVNpemUpLCAoaW5Vbml0
LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorU09GVF9M
SU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1Vu
aXQgaW5Vbml0KSwgKGluVW5pdCkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0
eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVt
ZW50LCBjb25zdCB2b2lkICppbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5J
RCwgaW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NvbnN0IGludCBrUmVuZGVyQnVmZmVyU2l6ZSA9IDEyODsKK2NvbnN0IGlu
dCBrUHJlZmVycmVkQnVmZmVyU2l6ZSA9IDI1NjsKKwordHlwZWRlZiBIYXNoU2V0PEF1ZGlvRGVz
dGluYXRpb25JT1MqPiBBdWRpb0Rlc3RpbmF0aW9uU2V0Oworc3RhdGljIEF1ZGlvRGVzdGluYXRp
b25TZXQmIGF1ZGlvRGVzdGluYXRpb25zKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF1
ZGlvRGVzdGluYXRpb25TZXQsIGF1ZGlvRGVzdGluYXRpb25TZXQsICgpKTsKKyAgICByZXR1cm4g
YXVkaW9EZXN0aW5hdGlvblNldDsKK30KKworLy8gRmFjdG9yeSBtZXRob2Q6IGlPUy1pbXBsZW1l
bnRhdGlvbgorUGFzc093blB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKQoreworICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1dERldmlj
ZUlkIGFzIGFwcHJvcHJpYXRlLgorCisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsb2Nh
bC9saXZlIGF1ZGlvIGlucHV0LgorICAgIGlmIChudW1iZXJPZklucHV0Q2hhbm5lbHMpCisgICAg
ICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgldSwgJXUsICVmKSAtIHVu
aGFuZGxlZCBpbnB1dCBjaGFubmVscyIsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQg
Zm9yIG11bHRpLWNoYW5uZWwgKD4gc3RlcmVvKSBvdXRwdXQuCisgICAgaWYgKG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMgIT0gMikKKyAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKCV1LCAldSwgJWYpIC0gdW5oYW5kbGVkIG91dHB1dCBjaGFubmVscyIsIG51bWJlck9m
SW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEF1ZGlvRGVzdGluYXRpb25JT1MoY2FsbGJhY2ssIHNhbXBs
ZVJhdGUpKTsKK30KKworLy8gaU9TIDcuMC9Jbm5zYnJ1Y2sgd2lsbCBkZXByZWNhdGUgQXVkaW9T
ZXNzaW9uIEFQSXMuIEZvciBub3cgY29udGludWUgdG8gdXNlIHRoZSBvbGQgQVBJLgorLy8gPHJk
YXI6Ly9wcm9ibGVtLzExNzAxNzkyPiBBdWRpb1Nlc3Npb24gc2hvdWxkIG1vdmUgdG8gdXNpbmcg
QVZBdWRpb1Nlc3Npb24gKElubnNicnVjaykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAor
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorCitmbG9hdCBBdWRpb0Rlc3RpbmF0aW9uOjpoYXJkd2FyZVNhbXBsZVJhdGUoKQoreworICAg
IEF1ZGlvRGVzdGluYXRpb25JT1M6OmluaXRpYWxpemVBdWRpb1Nlc3Npb24oKTsKKworICAgIGRv
dWJsZSBzYW1wbGVSYXRlID0gMDsKKyAgICBVSW50MzIgc2FtcGxlUmF0ZVNpemUgPSBzaXplb2Yo
c2FtcGxlUmF0ZSk7CisKKyAgICBBdWRpb1Nlc3Npb25HZXRQcm9wZXJ0eShrQXVkaW9TZXNzaW9u
UHJvcGVydHlfQ3VycmVudEhhcmR3YXJlU2FtcGxlUmF0ZSwgJnNhbXBsZVJhdGVTaXplLCAmc2Ft
cGxlUmF0ZSk7CisgICAgcmV0dXJuIHNhbXBsZVJhdGU7Cit9CisKK3Vuc2lnbmVkIGxvbmcgQXVk
aW9EZXN0aW5hdGlvbjo6bWF4Q2hhbm5lbENvdW50KCkKK3sKKyAgICAvLyBGSVhNRTogcXVlcnkg
dGhlIGRlZmF1bHQgYXVkaW8gaGFyZHdhcmUgZGV2aWNlIHRvIHJldHVybiB0aGUgYWN0dWFsIG51
bWJlcgorICAgIC8vIG9mIGNoYW5uZWxzIG9mIHRoZSBkZXZpY2UuIEFsc28gc2VlIGNvcnJlc3Bv
bmRpbmcgRklYTUUgaW4gY3JlYXRlKCkuCisgICAgLy8gVGhlcmUgaXMgYSBzbWFsbCBhbW91bnQg
b2YgY29kZSB3aGljaCBhc3N1bWVzIHN0ZXJlbyBpbiBBdWRpb0Rlc3RpbmF0aW9uSU9TIHdoaWNo
CisgICAgLy8gY2FuIGJlIHVwZ3JhZGVkLgorICAgIHJldHVybiAwOworfQorCitBdWRpb0Rlc3Rp
bmF0aW9uSU9TOjpBdWRpb0Rlc3RpbmF0aW9uSU9TKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ss
IGRvdWJsZSBzYW1wbGVSYXRlKQorICAgIDogbV9vdXRwdXRVbml0KDApCisgICAgLCBtX2NhbGxi
YWNrKGNhbGxiYWNrKQorICAgICwgbV9yZW5kZXJCdXMoMiwga1JlbmRlckJ1ZmZlclNpemUsIGZh
bHNlKQorICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCisgICAgLCBtX2lzUGxheWluZyhm
YWxzZSkKKyAgICAsIG1faW50ZXJydXB0ZWRPblBsYXliYWNrKGZhbHNlKQoreworICAgIGluaXRp
YWxpemVBdWRpb1Nlc3Npb24oKTsKKworICAgIGF1ZGlvRGVzdGluYXRpb25zKCkuYWRkKHRoaXMp
OworICAgIGlmIChhdWRpb0Rlc3RpbmF0aW9ucygpLnNpemUoKSA9PSAxKQorICAgICAgICBBdWRp
b1Nlc3Npb25TZXRBY3RpdmUodHJ1ZSk7CisKKyAgICAvLyBPcGVuIGFuZCBpbml0aWFsaXplIERl
ZmF1bHRPdXRwdXRVbml0CisgICAgQXVkaW9Db21wb25lbnQgY29tcDsKKyAgICBBdWRpb0NvbXBv
bmVudERlc2NyaXB0aW9uIGRlc2M7CisKKyAgICBkZXNjLmNvbXBvbmVudFR5cGUgPSBrQXVkaW9V
bml0VHlwZV9PdXRwdXQ7CisgICAgZGVzYy5jb21wb25lbnRTdWJUeXBlID0ga0F1ZGlvVW5pdFN1
YlR5cGVfUmVtb3RlSU87CisgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9V
bml0TWFudWZhY3R1cmVyX0FwcGxlOworICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOworICAg
IGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0gMDsKKyAgICBjb21wID0gQXVkaW9Db21wb25lbnRG
aW5kTmV4dCgwLCAmZGVzYyk7CisKKyAgICBBU1NFUlQoY29tcCk7CisKKyAgICBPU1N0YXR1cyBy
ZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwor
ICAgIEFTU0VSVCghcmVzdWx0KTsKKworICAgIFVJbnQzMiBmbGFnID0gMTsKKyAgICByZXN1bHQg
PSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmZmxhZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZW9mKGZsYWcpKTsKKyAgICBBU1NFUlQoIXJlc3VsdCk7CisKKyAgICByZXN1bHQgPSBBdWRp
b1VuaXRBZGRQcm9wZXJ0eUxpc3RlbmVyKG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X01heGltdW1GcmFtZXNQZXJTbGljZSwgZnJhbWVTaXplQ2hhbmdlZFByb2MsIHRoaXMpOworICAg
IEFTU0VSVCghcmVzdWx0KTsKKworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9v
dXRwdXRVbml0KTsKKyAgICBBU1NFUlQoIXJlc3VsdCk7CisKKyAgICBjb25maWd1cmUoKTsKK30K
KworQXVkaW9EZXN0aW5hdGlvbklPUzo6fkF1ZGlvRGVzdGluYXRpb25JT1MoKQoreworICAgIGF1
ZGlvRGVzdGluYXRpb25zKCkucmVtb3ZlKHRoaXMpOworICAgIGlmIChhdWRpb0Rlc3RpbmF0aW9u
cygpLnNpemUoKSA9PSAwKQorICAgICAgICBBdWRpb1Nlc3Npb25TZXRBY3RpdmUoZmFsc2UpOwor
CisgICAgaWYgKG1fb3V0cHV0VW5pdCkKKyAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UobV9vdXRwdXRVbml0KTsKK30KKwordm9pZCBBdWRpb0Rlc3RpbmF0aW9uSU9TOjpjb25m
aWd1cmUoKQoreworICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKKyAgICBBVVJlbmRlckNhbGxi
YWNrU3RydWN0IGlucHV0OworICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKKyAgICBp
bnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlv
VW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRl
ckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0
KSk7CisgICAgQVNTRVJUKCFyZXN1bHQpOworCisgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKKyAg
ICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gc3RyZWFtRm9ybWF0OworCisgICAgVUludDMy
IHNpemUgPSBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKTsKKyAgICByZXN1bHQg
PSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
dHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikmc3RyZWFtRm9y
bWF0LCAmc2l6ZSk7CisgICAgQVNTRVJUKCFyZXN1bHQpOworCisgICAgY29uc3QgaW50IGJ5dGVz
UGVyRmxvYXQgPSBzaXplb2YoRmxvYXQzMik7CisgICAgY29uc3QgaW50IGJpdHNQZXJCeXRlID0g
ODsKKyAgICBzdHJlYW1Gb3JtYXQubVNhbXBsZVJhdGUgPSBtX3NhbXBsZVJhdGU7CisgICAgc3Ry
ZWFtRm9ybWF0Lm1Gb3JtYXRJRCA9IGtBdWRpb0Zvcm1hdExpbmVhclBDTTsKKyAgICBzdHJlYW1G
b3JtYXQubUZvcm1hdEZsYWdzID0ga0F1ZGlvRm9ybWF0RmxhZ3NOYXRpdmVGbG9hdFBhY2tlZCB8
IGtBdWRpb0Zvcm1hdEZsYWdJc05vbkludGVybGVhdmVkOworICAgIHN0cmVhbUZvcm1hdC5tQnl0
ZXNQZXJQYWNrZXQgPSBieXRlc1BlckZsb2F0OworICAgIHN0cmVhbUZvcm1hdC5tRnJhbWVzUGVy
UGFja2V0ID0gMTsKKyAgICBzdHJlYW1Gb3JtYXQubUJ5dGVzUGVyRnJhbWUgPSBieXRlc1BlckZs
b2F0OworICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IDI7CisgICAgc3RyZWFt
Rm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKKwor
ICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCop
JnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAg
IEFTU0VSVCghcmVzdWx0KTsKKworICAgIEZsb2F0MzIgZHVyYXRpb24gPSBuYXJyb3dQcmVjaXNp
b25Ub0Zsb2F0KGtQcmVmZXJyZWRCdWZmZXJTaXplIC8gbV9zYW1wbGVSYXRlKTsKKyAgICBBdWRp
b1Nlc3Npb25TZXRQcm9wZXJ0eShrQXVkaW9TZXNzaW9uUHJvcGVydHlfUHJlZmVycmVkSGFyZHdh
cmVJT0J1ZmZlckR1cmF0aW9uLCBzaXplb2YoZHVyYXRpb24pLCAmZHVyYXRpb24pOworfQorCit2
b2lkIEF1ZGlvRGVzdGluYXRpb25JT1M6OmF1ZGlvRGVzdGluYXRpb25JbnRlcnJ1cHRpb25MaXN0
ZW5lcih2b2lkICp1c2VyRGF0YSwgVUludDMyIGludGVycnVwdGlvblN0YXRlKQoreworICAgIEFT
U0VSVF9VTlVTRUQodXNlckRhdGEsIHVzZXJEYXRhKTsKKyAgICBmb3IgKEF1ZGlvRGVzdGluYXRp
b25TZXQ6Oml0ZXJhdG9yIGkgPSBhdWRpb0Rlc3RpbmF0aW9ucygpLmJlZ2luKCk7IGkgIT0gYXVk
aW9EZXN0aW5hdGlvbnMoKS5lbmQoKTsgKytpKSB7CisgICAgICAgIGlmIChpbnRlcnJ1cHRpb25T
dGF0ZSA9PSBrQXVkaW9TZXNzaW9uQmVnaW5JbnRlcnJ1cHRpb24pCisgICAgICAgICAgICAoKmkp
LT5iZWdhbkF1ZGlvSW50ZXJydXB0aW9uKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICgq
aSktPmVuZGVkQXVkaW9JbnRlcnJ1cHRpb24oKTsKKyAgICB9Cit9CisKK3ZvaWQgQXVkaW9EZXN0
aW5hdGlvbklPUzo6aW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCit7CisgICAgc3RhdGljIGJvb2wg
YXVkaW9TZXNzaW9uV2FzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBpZiAoYXVkaW9TZXNzaW9u
V2FzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1ZGlvU2Vzc2lvbldhc0lu
aXRpYWxpemVkID0gdHJ1ZTsKKyAgICBBdWRpb1Nlc3Npb25Jbml0aWFsaXplKDAsIDAsICZhdWRp
b0Rlc3RpbmF0aW9uSW50ZXJydXB0aW9uTGlzdGVuZXIsIDApOworICAgIFBhZ2U6OnNldEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KGtBdWRpb1Nlc3Npb25DYXRlZ29yeV9BbWJpZW50U291bmQpOworfQor
CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorCit2b2lkIEF1ZGlvRGVzdGluYXRpb25JT1M6
OnN0YXJ0KCkKK3sKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydCht
X291dHB1dFVuaXQpOworCisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIG1faXNQbGF5aW5nID0g
dHJ1ZTsKK30KKwordm9pZCBBdWRpb0Rlc3RpbmF0aW9uSU9TOjpzdG9wKCkKK3sKKyAgICBPU1N0
YXR1cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKK30KKwordm9pZCBBdWRp
b0Rlc3RpbmF0aW9uSU9TOjpiZWdhbkF1ZGlvSW50ZXJydXB0aW9uKCkKK3sKKyAgICBpZiAoIW1f
aXNQbGF5aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBzdG9wKCk7CisgICAgbV9pbnRlcnJ1
cHRlZE9uUGxheWJhY2sgPSB0cnVlOworfQorCit2b2lkIEF1ZGlvRGVzdGluYXRpb25JT1M6OmVu
ZGVkQXVkaW9JbnRlcnJ1cHRpb24oKQoreworICAgIGlmICghbV9pbnRlcnJ1cHRlZE9uUGxheWJh
Y2spCisgICAgICAgIHJldHVybjsKKworICAgIG1faW50ZXJydXB0ZWRPblBsYXliYWNrID0gZmFs
c2U7CisgICAgc3RhcnQoKTsKK30KKworLy8gUHVsbHMgb24gb3VyIHByb3ZpZGVyIHRvIGdldCBy
ZW5kZXJlZCBhdWRpbyBzdHJlYW0uCitPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uSU9TOjpyZW5k
ZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkKK3sKKyAg
ICBBdWRpb0J1ZmZlciogYnVmZmVycyA9IGlvRGF0YS0+bUJ1ZmZlcnM7CisgICAgZm9yIChVSW50
MzIgZnJhbWVPZmZzZXQgPSAwOyBmcmFtZU9mZnNldCArIGtSZW5kZXJCdWZmZXJTaXplIDw9IG51
bWJlck9mRnJhbWVzOyBmcmFtZU9mZnNldCArPSBrUmVuZGVyQnVmZmVyU2l6ZSkgeworICAgICAg
ICBVSW50MzIgcmVtYWluaW5nRnJhbWVzID0gTUlOKGtSZW5kZXJCdWZmZXJTaXplLCBudW1iZXJP
ZkZyYW1lcyAtIGZyYW1lT2Zmc2V0KTsKKyAgICAgICAgZm9yIChVSW50MzIgaSA9IDA7IGkgPCBp
b0RhdGEtPm1OdW1iZXJCdWZmZXJzOyArK2kpIHsKKyAgICAgICAgICAgIFVJbnQzMiBieXRlc1Bl
ckZyYW1lID0gYnVmZmVyc1tpXS5tRGF0YUJ5dGVTaXplIC8gbnVtYmVyT2ZGcmFtZXM7CisgICAg
ICAgICAgICBVSW50MzIgYnl0ZU9mZnNldCA9IGZyYW1lT2Zmc2V0ICogYnl0ZXNQZXJGcmFtZTsK
KyAgICAgICAgICAgIGZsb2F0KiBtZW1vcnkgPSAoZmxvYXQqKSgoY2hhciopYnVmZmVyc1tpXS5t
RGF0YSArIGJ5dGVPZmZzZXQpOworICAgICAgICAgICAgbV9yZW5kZXJCdXMuc2V0Q2hhbm5lbE1l
bW9yeShpLCBtZW1vcnksIHJlbWFpbmluZ0ZyYW1lcyk7CisgICAgICAgIH0KKyAgICAgICAgbV9j
YWxsYmFjay5yZW5kZXIoMCwgJm1fcmVuZGVyQnVzLCByZW1haW5pbmdGcmFtZXMpOworICAgIH0K
KworICAgIHJldHVybiBub0VycjsKK30KKworLy8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sK
K09TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25JT1M6OmlucHV0UHJvYyh2b2lkKiB1c2VyRGF0YSwg
QXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCosIFVJbnQz
MiAvKmJ1c051bWJlciovLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCog
aW9EYXRhKQoreworICAgIEF1ZGlvRGVzdGluYXRpb25JT1MqIGF1ZGlvT3V0cHV0ID0gc3RhdGlj
X2Nhc3Q8QXVkaW9EZXN0aW5hdGlvbklPUyo+KHVzZXJEYXRhKTsKKyAgICByZXR1cm4gYXVkaW9P
dXRwdXQtPnJlbmRlcihudW1iZXJPZkZyYW1lcywgaW9EYXRhKTsKK30KKwordm9pZCBBdWRpb0Rl
c3RpbmF0aW9uSU9TOjpmcmFtZVNpemVDaGFuZ2VkUHJvYyh2b2lkICppblJlZkNvbiwgQXVkaW9V
bml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlELCBBdWRpb1VuaXRTY29wZSwgQXVkaW9Vbml0RWxlbWVu
dCkKK3sKKyAgICBBdWRpb0Rlc3RpbmF0aW9uSU9TKiBhdWRpb091dHB1dCA9IHN0YXRpY19jYXN0
PEF1ZGlvRGVzdGluYXRpb25JT1MqPihpblJlZkNvbik7CisgICAgVUludDMyIGJ1ZmZlclNpemUg
PSAwOworICAgIFVJbnQzMiBkYXRhU2l6ZSA9IHNpemVvZihidWZmZXJTaXplKTsKKyAgICBBdWRp
b1VuaXRHZXRQcm9wZXJ0eShhdWRpb091dHB1dC0+bV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfTWF4aW11bUZyYW1lc1BlclNsaWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAo
dm9pZCopJmJ1ZmZlclNpemUsICZkYXRhU2l6ZSk7CisgICAgZnByaW50ZihzdGRlcnIsICI+Pj4+
IGZyYW1lU2l6ZUNoYW5nZWQgPSAlbHVcbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGJ1
ZmZlclNpemUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVjYWQ3Yjk0YmExOTc4MTlmMTc5OWFjMzhhZGUxOTc2ZTMyZjYwMDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0
aW5hdGlvbklPUy5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBdWRpb0Rlc3RpbmF0aW9uSU9T
X2gKKyNkZWZpbmUgQXVkaW9EZXN0aW5hdGlvbklPU19oCisKKyNpbmNsdWRlICJBdWRpb0J1cy5o
IgorI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb25M
aXN0ZW5lci5oIgorI2luY2x1ZGUgPEF1ZGlvVW5pdC9BdWRpb1VuaXQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCisvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRl
ZmF1bHQgb3V0cHV0IEF1ZGlvVW5pdAorCitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uSU9TIDogcHVi
bGljIEF1ZGlvRGVzdGluYXRpb24sIHB1YmxpYyBBdWRpb1Nlc3Npb25MaXN0ZW5lciB7CitwdWJs
aWM6CisgICAgQXVkaW9EZXN0aW5hdGlvbklPUyhBdWRpb0lPQ2FsbGJhY2smLCB1bnNpZ25lZCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBkb3VibGUgc2FtcGxlUmF0ZSk7CisgICAgdmlydHVhbCB+
QXVkaW9EZXN0aW5hdGlvbklPUygpOworCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCk7CisgICAg
dmlydHVhbCB2b2lkIHN0b3AoKTsKKyAgICBib29sIGlzUGxheWluZygpIHsgcmV0dXJuIG1faXNQ
bGF5aW5nOyB9CisKKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zYW1w
bGVSYXRlOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBjb25maWd1cmUoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYmVnYW5BdWRpb0ludGVycnVwdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBlbmRlZEF1ZGlvSW50ZXJydXB0aW9uKCkgT1ZFUlJJREU7CisKKyAgICAvLyBEZWZhdWx0T3V0
cHV0VW5pdCBjYWxsYmFjaworICAgIHN0YXRpYyBPU1N0YXR1cyBpbnB1dFByb2Modm9pZCogdXNl
ckRhdGEsIEF1ZGlvVW5pdFJlbmRlckFjdGlvbkZsYWdzKiwgY29uc3QgQXVkaW9UaW1lU3RhbXAq
LCBVSW50MzIgYnVzTnVtYmVyLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlz
dCogaW9EYXRhKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVNpemVDaGFuZ2VkUHJvYyh2b2lkICpp
blJlZkNvbiwgQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRp
b1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCk7CisKKyAgICBm
cmllbmQgZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCk7CisKKyAg
ICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
IGlvRGF0YSk7CisKKyAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OworICAgIEF1ZGlvSU9DYWxs
YmFjayYgbV9jYWxsYmFjazsKKyAgICBBdWRpb0J1cyBtX3JlbmRlckJ1czsKKworICAgIGRvdWJs
ZSBtX3NhbXBsZVJhdGU7CisgICAgYm9vbCBtX2lzUGxheWluZzsKKyAgICBib29sIG1faW50ZXJy
dXB0ZWRPblBsYXliYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gQXVkaW9EZXN0aW5hdGlvbklPU19oCg==
</data>
<flag name="review"
          id="218218"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>