The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1 | <?cs include:"doctype.cs" ?> |
| 2 | <?cs include:"macros.cs" ?> |
| 3 | <html> |
| 4 | <?cs if:sdk.redirect ?> |
| 5 | <head> |
| 6 | <title>Redirecting...</title> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 7 | <meta http-equiv="refresh" content="0;url=<?cs var:toroot ?>sdk/<?cs |
| 8 | if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs |
Dirk Dougherty | e123385 | 2010-03-03 14:34:51 -0800 | [diff] [blame] | 9 | else ?>index.html<?cs /if ?>"> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 10 | <link href="<?cs var:toroot ?>assets/android-developer-docs.css" rel="stylesheet" type="text/css" /> |
| 11 | </head> |
| 12 | <?cs else ?> |
| 13 | <?cs include:"head_tag.cs" ?> |
| 14 | <?cs /if ?> |
| 15 | <body class="gc-documentation"> |
| 16 | <a name="top"></a> |
| 17 | <?cs call:custom_masthead() ?> |
| 18 | |
| 19 | <?cs call:sdk_nav() ?> |
| 20 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 21 | <?cs if:sdk.redirect ?> |
Dirk Dougherty | d8cfce0 | 2009-07-15 16:37:21 -0700 | [diff] [blame] | 22 | |
Dirk Dougherty | 19a4bd1 | 2009-04-24 11:30:32 -0700 | [diff] [blame] | 23 | <div class="g-unit"> |
| 24 | <div id="jd-content"> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 25 | <p>Redirecting to |
| 26 | <a href="<?cs var:toroot ?>sdk/<?cs |
Scott Main | b66a5c0 | 2010-07-08 11:29:28 -0700 | [diff] [blame] | 27 | if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs |
| 28 | else ?>index.html<?cs /if ?>"><?cs |
| 29 | if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs |
| 30 | else ?>Download the SDK<?cs /if ?> |
Dirk Dougherty | d8cfce0 | 2009-07-15 16:37:21 -0700 | [diff] [blame] | 31 | </a> ...</p> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 32 | <?cs else ?> |
Dirk Dougherty | 19a4bd1 | 2009-04-24 11:30:32 -0700 | [diff] [blame] | 33 | <div class="g-unit" id="doc-content" > |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 34 | <div id="jd-header" class="guide-header" > |
| 35 | <span class="crumb"> </span> |
Dirk Dougherty | 3d3d7b7 | 2009-10-21 19:52:52 -0700 | [diff] [blame] | 36 | <h1><?cs if:android.whichdoc == "online" ?>Download the <?cs /if ?><?cs var:page.title ?></h1> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 37 | </div> |
| 38 | |
Dirk Dougherty | 19a4bd1 | 2009-04-24 11:30:32 -0700 | [diff] [blame] | 39 | <div id="jd-content"> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 40 | <?cs |
| 41 | if:ndk ?><?cs |
| 42 | else ?><?cs |
| 43 | if:android.whichdoc == "online" ?><p><em><?cs |
| 44 | var:sdk.date ?></em></p><?cs |
Dirk Dougherty | 3d3d7b7 | 2009-10-21 19:52:52 -0700 | [diff] [blame] | 45 | /if ?><?cs |
| 46 | /if ?> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 47 | |
| 48 | <?cs if:sdk.not_latest_version ?> |
| 49 | <div class="special"> |
| 50 | <p><strong>This is NOT the current Android SDK release.</strong></p> |
Dirk Dougherty | 3d3d7b7 | 2009-10-21 19:52:52 -0700 | [diff] [blame] | 51 | <p><a href="/sdk/index.html">Download the current Android SDK</a></p> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 52 | </div> |
| 53 | <?cs /if ?> |
Dirk Dougherty | e6be85f | 2009-06-24 11:01:03 -0700 | [diff] [blame] | 54 | |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 55 | <?cs if:android.whichdoc != "online" && !android.preview ?> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 56 | |
Dirk Dougherty | 3d3d7b7 | 2009-10-21 19:52:52 -0700 | [diff] [blame] | 57 | <!-- <p>The sections below provide an overview of how to install the SDK package. </p> --> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 58 | |
| 59 | <?cs else ?> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 60 | <?cs if:ndk ?> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 61 | |
Robert Ly | 706e41e | 2010-11-02 18:35:43 -0700 | [diff] [blame^] | 62 | <p>The Android NDK is a companion tool to the Android SDK that lets you build |
| 63 | performance-critical portions of your apps in native code. It provides headers and |
| 64 | libraries that allow you to build activities, handle user input, use hardware sensors, |
| 65 | access application resources, and more, when programming in C or C++. If you write |
| 66 | native code, your applications are still packaged into an .apk file and they still run |
| 67 | inside of a virtual machine on the device. The fundamental Android application model |
| 68 | does not change.</p> |
| 69 | |
| 70 | Using native code does not result in an automatic performance increase, |
| 71 | but always increases application complexity. If you have not run into any limitations |
| 72 | using the Android framework APIs, you probably do not need the NDK. |
| 73 | <p>Read <a href="<?cs var:toroot ?>sdk/ndk/overview.html">What is the NDK?</a> |
| 74 | to get an understanding of what the NDK offers and whether |
| 75 | it will be useful to you. |
| 76 | </p> |
| 77 | <p> |
| 78 | The NDK is designed for use <em>only</em> in conjunction with the |
Dirk Dougherty | 5c450ed | 2009-09-23 17:31:16 -0700 | [diff] [blame] | 79 | Android SDK, so if you have not already installed the latest Android SDK, please |
Robert Ly | 706e41e | 2010-11-02 18:35:43 -0700 | [diff] [blame^] | 80 | do so before downloading the NDK. |
| 81 | </p> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 82 | |
| 83 | <p>Select the download package that is appropriate for your development |
Dirk Dougherty | e6be85f | 2009-06-24 11:01:03 -0700 | [diff] [blame] | 84 | computer. </p> |
| 85 | |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 86 | <table class="download"> |
| 87 | <tr> |
| 88 | <th>Platform</th> |
| 89 | <th>Package</th> |
| 90 | <th>Size</th> |
| 91 | <th>MD5 Checksum</th> |
| 92 | </tr> |
| 93 | <tr> |
| 94 | <td>Windows</td> |
| 95 | <td> |
Dirk Dougherty | e6be85f | 2009-06-24 11:01:03 -0700 | [diff] [blame] | 96 | <a href="http://dl.google.com/android/ndk/<?cs var:ndk.win_download ?>"><?cs var:ndk.win_download ?></a> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 97 | </td> |
| 98 | <td><?cs var:ndk.win_bytes ?> bytes</td> |
| 99 | <td><?cs var:ndk.win_checksum ?></td> |
| 100 | </tr> |
| 101 | <tr class="alt-color"> |
| 102 | <td>Mac OS X (intel)</td> |
| 103 | <td> |
Dirk Dougherty | e6be85f | 2009-06-24 11:01:03 -0700 | [diff] [blame] | 104 | <a href="http://dl.google.com/android/ndk/<?cs var:ndk.mac_download ?>"><?cs var:ndk.mac_download ?></a> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 105 | </td> |
| 106 | <td><?cs var:ndk.mac_bytes ?> bytes</td> |
| 107 | <td><?cs var:ndk.mac_checksum ?></td> |
| 108 | </tr> |
| 109 | <tr> |
Dirk Dougherty | e6be85f | 2009-06-24 11:01:03 -0700 | [diff] [blame] | 110 | <td>Linux 32/64-bit (x86)</td> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 111 | <td> |
Dirk Dougherty | e6be85f | 2009-06-24 11:01:03 -0700 | [diff] [blame] | 112 | <a href="http://dl.google.com/android/ndk/<?cs var:ndk.linux_download ?>"><?cs var:ndk.linux_download ?></a> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 113 | </td> |
| 114 | <td><?cs var:ndk.linux_bytes ?> bytes</td> |
| 115 | <td><?cs var:ndk.linux_checksum ?></td> |
| 116 | </tr> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 117 | </table> |
| 118 | |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 119 | <?cs else ?><?cs if:android.whichdoc == "online" ?> |
| 120 | |
| 121 | <?cs if:sdk.preview ?> |
| 122 | <p>Welcome developers! The next release of the Android platform will be |
| 123 | Android 1.6 and we are pleased to announce the availability of an early look |
| 124 | SDK to give you a head-start on developing applications for it. </p> |
| 125 | |
Dirk Dougherty | 123bb12 | 2009-08-27 16:45:47 -0700 | [diff] [blame] | 126 | <p>The Android <?cs var:sdk.preview.version ?> platform includes a variety of |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 127 | improvements and new features for users and developers. Additionally, the SDK |
| 128 | itself introduces several new capabilities that enable you to develop |
| 129 | applications more efficiently. See the <a href="features.html">Android <?cs |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 130 | var:sdk.preview.version ?> Platform Highlights</a> document for a list of |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 131 | highlights.</p> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 132 | <?cs /if ?> |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 133 | <?cs # end if NDK ... the following is for the SDK ?> |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 134 | |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 135 | <?cs # |
Dirk Dougherty | e123385 | 2010-03-03 14:34:51 -0800 | [diff] [blame] | 136 | <div class="toggle-content special"> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 137 | <p>The Android SDK has changed! If you've worked with the Android SDK before, |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 138 | you will notice several important differences:</p> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 139 | |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 140 | <div class="toggle-content-toggleme" style="display:none"> |
Dirk Dougherty | c2c5e50 | 2009-10-24 14:38:58 -0700 | [diff] [blame] | 141 | <ul style="padding-bottom:.0;"> |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 142 | <li style="margin-top:.5em">The SDK downloadable package includes <em>only</em> |
| 143 | the latest version of the Android SDK Tools.</li> |
| 144 | <li>Once you've installed the SDK, you now use the Android SDK and AVD Manager |
| 145 | to download all of the SDK components that you need, such as Android platforms, |
| 146 | SDK add-ons, tools, and documentation. </li> |
| 147 | <li>The new approach is modular — you can install only the components you |
| 148 | need and update any or all components without affecting other parts of your |
| 149 | development environment.</li> |
| 150 | <li>In short, once you've installed the new SDK, you will not need to download |
| 151 | an SDK package again. Instead, you will use the Android SDK and AVD Manager to |
| 152 | keep your development environment up-to-date. </li> |
| 153 | </ul> |
Dirk Dougherty | c2c5e50 | 2009-10-24 14:38:58 -0700 | [diff] [blame] | 154 | <p style="margin-top:0">If you are currently using the Android 1.6 SDK, you |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 155 | do not need to install the new SDK, because your existing SDK already |
| 156 | includes the Android SDK and AVD Manager tool. To develop against Android |
| 157 | 2.0.1, for example, you can just download the Android 2.0.1 platform (and |
| 158 | updated SDK Tools) into your existing SDK. Refer to <a |
Dirk Dougherty | c2c5e50 | 2009-10-24 14:38:58 -0700 | [diff] [blame] | 159 | href="adding-components.html">Adding SDK Components</a>.</p> |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 160 | </div> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 161 | |
Dirk Dougherty | e123385 | 2010-03-03 14:34:51 -0800 | [diff] [blame] | 162 | <a href='#' class='toggle-content-button show' onclick="toggleContent(this,true);return false;"> |
Scott Main | 462cc37 | 2009-10-23 16:19:37 -0700 | [diff] [blame] | 163 | <span>show more</span><span style='display:none'>show less</span> |
| 164 | </a> |
| 165 | </div> |
Dirk Dougherty | e123385 | 2010-03-03 14:34:51 -0800 | [diff] [blame] | 166 | ?> |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 167 | |
Dirk Dougherty | 4b2eb97 | 2010-03-08 17:31:26 -0800 | [diff] [blame] | 168 | <p>Welcome Developers! If you are new to the Android SDK, please read the <a |
| 169 | href="#quickstart">Quick Start</a>, below, for an overview of how to install and |
| 170 | set up the SDK. </p> |
| 171 | |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 172 | <p>If you're already using the Android SDK, you should |
| 173 | update to the latest tools or platform using the <em>Android SDK and AVD Manager</em>, rather than |
| 174 | downloading a new SDK starter package. See <a |
| 175 | href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p> |
Dirk Dougherty | 4b2eb97 | 2010-03-08 17:31:26 -0800 | [diff] [blame] | 176 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 177 | <table class="download"> |
| 178 | <tr> |
| 179 | <th>Platform</th> |
| 180 | <th>Package</th> |
| 181 | <th>Size</th> |
| 182 | <th>MD5 Checksum</th> |
| 183 | </tr> |
| 184 | <tr> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 185 | <td rowspan="2">Windows</td> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 186 | <td> |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 187 | <a onclick="onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_download |
| 188 | ?>"><?cs var:sdk.win_download ?></a> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 189 | </td> |
| 190 | <td><?cs var:sdk.win_bytes ?> bytes</td> |
| 191 | <td><?cs var:sdk.win_checksum ?></td> |
| 192 | </tr> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 193 | <tr> |
| 194 | <!-- blank TD from Windows rowspan --> |
| 195 | <td> |
| 196 | <a onclick="onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_installer |
| 197 | ?>"><?cs var:sdk.win_installer ?></a> (Recommended) |
| 198 | </td> |
| 199 | <td><?cs var:sdk.win_installer_bytes ?> bytes</td> |
| 200 | <td><?cs var:sdk.win_installer_checksum ?></td> |
| 201 | </tr> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 202 | <tr class="alt-color"> |
| 203 | <td>Mac OS X (intel)</td> |
| 204 | <td> |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 205 | <a onclick="onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.mac_download |
| 206 | ?>"><?cs var:sdk.mac_download ?></a> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 207 | </td> |
| 208 | <td><?cs var:sdk.mac_bytes ?> bytes</td> |
| 209 | <td><?cs var:sdk.mac_checksum ?></td> |
| 210 | </tr> |
| 211 | <tr> |
| 212 | <td>Linux (i386)</td> |
| 213 | <td> |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 214 | <a onclick="onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.linux_download |
| 215 | ?>"><?cs var:sdk.linux_download ?></a> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 216 | </td> |
| 217 | <td><?cs var:sdk.linux_bytes ?> bytes</td> |
| 218 | <td><?cs var:sdk.linux_checksum ?></td> |
| 219 | </tr> |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 220 | <?cs if:adt.zip_download ?> |
| 221 | <tr class="alt-color"> |
| 222 | <td>ADT Plugin for Eclipse <?cs var:adt.zip_version ?></td> |
| 223 | <td> |
Dirk Dougherty | c66c90a | 2009-09-16 10:11:01 -0700 | [diff] [blame] | 224 | <a href="http://dl.google.com/android/<?cs var:adt.zip_download ?>"><?cs var:adt.zip_download ?></a> |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 225 | </td> |
| 226 | <td><?cs var:adt.zip_bytes ?> bytes</td> |
| 227 | <td><?cs var:adt.zip_checksum ?></td> |
| 228 | </tr> |
| 229 | <?cs /if ?> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 230 | </table> |
| 231 | |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 232 | |
| 233 | <div id="next-steps" style="display:none"> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 234 | <p><b><em><span id="filename"></span></em> is now downloading. Follow the steps below to |
| 235 | get started.</b></p> |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 236 | </div> |
| 237 | |
| 238 | <script type="text/javascript"> |
| 239 | function onDownload(link) { |
Scott Main | a1b358a | 2010-06-24 16:36:54 -0700 | [diff] [blame] | 240 | $("#filename").text($(link).html()); |
| 241 | $("#next-steps").show(); |
| 242 | } |
| 243 | </script> |
| 244 | |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 245 | <?cs /if ?> |
| 246 | <?cs /if ?> |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 247 | <?cs /if ?> |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 248 | |
| 249 | <?cs if:android.whichdoc != "online" && sdk.preview ?> |
| 250 | <p>Welcome developers! The next release of the Android platform will be |
Dirk Dougherty | 123bb12 | 2009-08-27 16:45:47 -0700 | [diff] [blame] | 251 | Android <?cs var:sdk.preview.version ?> and we are pleased to announce the |
| 252 | availability of an early look SDK to give you a head-start on developing |
| 253 | applications for it. </p> |
Dirk Dougherty | 82a2881 | 2009-08-05 19:09:16 -0700 | [diff] [blame] | 254 | |
Dirk Dougherty | 123bb12 | 2009-08-27 16:45:47 -0700 | [diff] [blame] | 255 | <p>The Android <?cs var:sdk.preview.version ?> platform includes a variety of |
| 256 | improvements and new features for users and developers. Additionally, the SDK |
| 257 | itself introduces several new capabilities that enable you to develop |
| 258 | applications more efficiently. See the <a |
Scott Main | f086a6e | 2010-10-27 22:35:24 -0700 | [diff] [blame] | 259 | href="http://developer.android.com/sdk/preview/features.html">Android |
Dirk Dougherty | 123bb12 | 2009-08-27 16:45:47 -0700 | [diff] [blame] | 260 | <?cs var:sdk.preview.version ?> Highlights</a> document for a list of |
| 261 | highlights.</p> |
Dirk Dougherty | 4e4c919 | 2009-05-12 15:32:35 -0700 | [diff] [blame] | 262 | <?cs /if ?> |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 263 | |
| 264 | <?cs call:tag_list(root.descr) ?> |
| 265 | |
| 266 | <?cs /if ?> |
| 267 | </div><!-- end jd-content --> |
| 268 | |
Dirk Dougherty | 19a4bd1 | 2009-04-24 11:30:32 -0700 | [diff] [blame] | 269 | <?cs if:!sdk.redirect ?> |
| 270 | <?cs include:"footer.cs" ?> |
| 271 | <?cs /if ?> |
| 272 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 273 | </div><!-- end doc-content --> |
| 274 | |
| 275 | <?cs include:"trailer.cs" ?> |
| 276 | |
| 277 | </body> |
| 278 | </html> |
| 279 | |
| 280 | |
| 281 | |