diff --git a/modules/angular2/docs/cheatsheet/bootstrapping.md b/modules/angular2/docs/cheatsheet/bootstrapping.md index badcf79b8e..5859e9b5f8 100644 --- a/modules/angular2/docs/cheatsheet/bootstrapping.md +++ b/modules/angular2/docs/cheatsheet/bootstrapping.md @@ -2,7 +2,7 @@ Bootstrapping @cheatsheetIndex 0 @description -{@target js ts}`import {bootstrap} from 'angular2/angular2';`{@endtarget} +{@target js ts}`import {bootstrap} from 'angular2/platform/browser';`{@endtarget} {@target dart}`import 'package:angular2/bootstrap.dart';`{@endtarget} @cheatsheetItem diff --git a/modules/angular2/docs/cheatsheet/built-in-directives.md b/modules/angular2/docs/cheatsheet/built-in-directives.md index 666ecc7d64..126578e55c 100644 --- a/modules/angular2/docs/cheatsheet/built-in-directives.md +++ b/modules/angular2/docs/cheatsheet/built-in-directives.md @@ -2,8 +2,8 @@ Built-in directives @cheatsheetIndex 2 @description -{@target js ts}`import {NgIf, ...} from 'angular2/angular2';`{@endtarget} -{@target dart}`import 'package:angular2/angular2.dart';`{@endtarget} +{@target js ts}`import {NgIf, ...} from 'angular2/common';`{@endtarget} +{@target dart}`import 'package:angular2/common.dart';`{@endtarget} @cheatsheetItem syntax: diff --git a/modules/angular2/docs/cheatsheet/class-decorators.md b/modules/angular2/docs/cheatsheet/class-decorators.md index fbeb391dca..af449c8b80 100644 --- a/modules/angular2/docs/cheatsheet/class-decorators.md +++ b/modules/angular2/docs/cheatsheet/class-decorators.md @@ -2,8 +2,8 @@ Class decorators @cheatsheetIndex 4 @description -{@target js ts}`import {Directive, ...} from 'angular2/angular2';`{@endtarget} -{@target dart}`import 'package:angular2/angular2.dart';`{@endtarget} +{@target js ts}`import {Directive, ...} from 'angular2/core';`{@endtarget} +{@target dart}`import 'package:angular2/core.dart';`{@endtarget} @cheatsheetItem syntax(js ts): diff --git a/modules/angular2/docs/cheatsheet/dependency-injection.md b/modules/angular2/docs/cheatsheet/dependency-injection.md index b055278896..ed6426d94f 100644 --- a/modules/angular2/docs/cheatsheet/dependency-injection.md +++ b/modules/angular2/docs/cheatsheet/dependency-injection.md @@ -2,8 +2,8 @@ Dependency injection configuration @cheatsheetIndex 9 @description -{@target js ts}`import {provide} from 'angular2/angular2';`{@endtarget} -{@target dart}`import 'package:angular2/angular2.dart';`{@endtarget} +{@target js ts}`import {provide} from 'angular2/core';`{@endtarget} +{@target dart}`import 'package:angular2/core.dart';`{@endtarget} @cheatsheetItem syntax: diff --git a/modules/angular2/docs/cheatsheet/directive-and-component-decorators.md b/modules/angular2/docs/cheatsheet/directive-and-component-decorators.md index 08370e597f..4de517b3d3 100644 --- a/modules/angular2/docs/cheatsheet/directive-and-component-decorators.md +++ b/modules/angular2/docs/cheatsheet/directive-and-component-decorators.md @@ -2,8 +2,8 @@ Class field decorators for directives and components @cheatsheetIndex 7 @description -{@target js ts}`import {Input, ...} from 'angular2/angular2';`{@endtarget} -{@target dart}`import 'package:angular2/angular2.dart';`{@endtarget} +{@target js ts}`import {Input, ...} from 'angular2/core';`{@endtarget} +{@target dart}`import 'package:angular2/core.dart';`{@endtarget} @cheatsheetItem syntax: diff --git a/modules/angular2/docs/cheatsheet/forms.md b/modules/angular2/docs/cheatsheet/forms.md index 5841f1dab8..30cc0c1c52 100644 --- a/modules/angular2/docs/cheatsheet/forms.md +++ b/modules/angular2/docs/cheatsheet/forms.md @@ -2,8 +2,8 @@ Forms @cheatsheetIndex 3 @description -{@target js ts}`import {FORM_DIRECTIVES} from 'angular2/angular2';`{@endtarget} -{@target dart}`import 'package:angular2/angular2.dart';`{@endtarget} +{@target js ts}`import {FORM_DIRECTIVES} from 'angular2/common';`{@endtarget} +{@target dart}`import 'package:angular2/common.dart';`{@endtarget} @cheatsheetItem syntax: diff --git a/modules/angular2/docs/cheatsheet/routing.md b/modules/angular2/docs/cheatsheet/routing.md index d257079a25..7787e5243c 100644 --- a/modules/angular2/docs/cheatsheet/routing.md +++ b/modules/angular2/docs/cheatsheet/routing.md @@ -3,7 +3,7 @@ Routing and navigation @cheatsheetIndex 10 @description {@target js ts}`import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, ...} from 'angular2/router';`{@endtarget} -{@target dart}`import 'package:angular2/angular2.dart';`{@endtarget} +{@target dart}`import 'package:angular2/router.dart';`{@endtarget} @cheatsheetItem diff --git a/modules/angular2/http.ts b/modules/angular2/http.ts index d16325d2a7..69c918d4ee 100644 --- a/modules/angular2/http.ts +++ b/modules/angular2/http.ts @@ -44,7 +44,9 @@ export {URLSearchParams} from './src/http/url_search_params'; * ### Example ([live demo](http://plnkr.co/edit/snj7Nv?p=preview)) * * ``` - * import {bootstrap, Component, NgFor, View} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; + * import {NgFor} from 'angular2/common'; * import {HTTP_PROVIDERS, Http} from 'angular2/http'; * * @Component({ @@ -98,7 +100,8 @@ export {URLSearchParams} from './src/http/url_search_params'; * ### Example ([live demo](http://plnkr.co/edit/aCMEXi?p=preview)) * * ``` - * import {provide, bootstrap} from 'angular2/angular2'; + * import {provide} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {HTTP_PROVIDERS, BaseRequestOptions, RequestOptions} from 'angular2/http'; * * class MyOptions extends BaseRequestOptions { @@ -115,7 +118,8 @@ export {URLSearchParams} from './src/http/url_search_params'; * ### Example ([live demo](http://plnkr.co/edit/7LWALD?p=preview)) * * ``` - * import {provide, Injector} from 'angular2/angular2'; + * import {provide} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {HTTP_PROVIDERS, Http, Response, XHRBackend} from 'angular2/http'; * import {MockBackend} from 'angular2/http/testing'; * @@ -175,7 +179,8 @@ export const HTTP_BINDINGS = HTTP_PROVIDERS; * ### Example ([live demo](http://plnkr.co/edit/vmeN4F?p=preview)) * * ``` - * import {Component, NgFor, View} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; + * import {NgFor} from 'angular2/common'; * import {JSONP_PROVIDERS, Jsonp} from 'angular2/http'; * * @Component({ @@ -222,7 +227,8 @@ export const HTTP_BINDINGS = HTTP_PROVIDERS; * ### Example ([live demo](http://plnkr.co/edit/TFug7x?p=preview)) * * ``` - * import {provide, bootstrap} from 'angular2/angular2'; + * import {provide} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {JSONP_PROVIDERS, BaseRequestOptions, RequestOptions} from 'angular2/http'; * * class MyOptions extends BaseRequestOptions { @@ -239,7 +245,7 @@ export const HTTP_BINDINGS = HTTP_PROVIDERS; * ### Example ([live demo](http://plnkr.co/edit/HDqZWL?p=preview)) * * ``` - * import {provide, Injector} from 'angular2/angular2'; + * import {provide, Injector} from 'angular2/core'; * import {JSONP_PROVIDERS, Jsonp, Response, JSONPBackend} from 'angular2/http'; * import {MockBackend} from 'angular2/http/testing'; * diff --git a/modules/angular2/router.ts b/modules/angular2/router.ts index b329aa8a0d..8d5409952d 100644 --- a/modules/angular2/router.ts +++ b/modules/angular2/router.ts @@ -41,7 +41,7 @@ import {BaseException} from 'angular2/src/facade/exceptions'; * ### Example ([live demo](http://plnkr.co/edit/iRUP8B5OUbxCWQ3AcIDm)) * * ``` - * import {Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; * import {ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig} from 'angular2/router'; * * @Component({directives: [ROUTER_DIRECTIVES]}) @@ -63,7 +63,7 @@ export const ROUTER_DIRECTIVES: any[] = CONST_EXPR([RouterOutlet, RouterLink]); * ### Example ([live demo](http://plnkr.co/edit/iRUP8B5OUbxCWQ3AcIDm)) * * ``` - * import {Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; * import { * ROUTER_DIRECTIVES, * ROUTER_PROVIDERS, diff --git a/modules/angular2/src/common/common_directives.ts b/modules/angular2/src/common/common_directives.ts index 3407469043..089395fe2a 100644 --- a/modules/angular2/src/common/common_directives.ts +++ b/modules/angular2/src/common/common_directives.ts @@ -17,7 +17,7 @@ import {CORE_DIRECTIVES} from './directives'; * * ```typescript * import {NgClass, NgIf, NgFor, NgSwitch, NgSwitchWhen, NgSwitchDefault, NgModel, NgForm} from - * 'angular2/angular2'; + * 'angular2/common'; * import {OtherDirective} from './myDirectives'; * * @Component({ @@ -33,7 +33,7 @@ import {CORE_DIRECTIVES} from './directives'; * one could import all the common directives at once: * * ```typescript - * import {COMMON_DIRECTIVES} from 'angular2/angular2'; + * import {COMMON_DIRECTIVES} from 'angular2/common'; * import {OtherDirective} from './myDirectives'; * * @Component({ @@ -46,4 +46,4 @@ import {CORE_DIRECTIVES} from './directives'; * } * ``` */ -export const COMMON_DIRECTIVES: Type[][] = CONST_EXPR([CORE_DIRECTIVES, FORM_DIRECTIVES]); \ No newline at end of file +export const COMMON_DIRECTIVES: Type[][] = CONST_EXPR([CORE_DIRECTIVES, FORM_DIRECTIVES]); diff --git a/modules/angular2/src/common/directives/core_directives.ts b/modules/angular2/src/common/directives/core_directives.ts index f02231a5f9..61f9e77612 100644 --- a/modules/angular2/src/common/directives/core_directives.ts +++ b/modules/angular2/src/common/directives/core_directives.ts @@ -17,7 +17,7 @@ import {NgSwitch, NgSwitchWhen, NgSwitchDefault} from './ng_switch'; * Instead of writing: * * ```typescript - * import {NgClass, NgIf, NgFor, NgSwitch, NgSwitchWhen, NgSwitchDefault} from 'angular2/angular2'; + * import {NgClass, NgIf, NgFor, NgSwitch, NgSwitchWhen, NgSwitchDefault} from 'angular2/common'; * import {OtherDirective} from './myDirectives'; * * @Component({ @@ -32,7 +32,7 @@ import {NgSwitch, NgSwitchWhen, NgSwitchDefault} from './ng_switch'; * one could import all the core directives at once: * * ```typescript - * import {CORE_DIRECTIVES} from 'angular2/angular2'; + * import {CORE_DIRECTIVES} from 'angular2/common'; * import {OtherDirective} from './myDirectives'; * * @Component({ diff --git a/modules/angular2/src/common/directives/ng_class.ts b/modules/angular2/src/common/directives/ng_class.ts index 21d63fed4b..2f77b0767f 100644 --- a/modules/angular2/src/common/directives/ng_class.ts +++ b/modules/angular2/src/common/directives/ng_class.ts @@ -31,7 +31,8 @@ import {StringMapWrapper, isListLikeIterable} from 'angular2/src/facade/collecti * ### Example ([live demo](http://plnkr.co/edit/a4YdtmWywhJ33uqfpPPn?p=preview)): * * ``` - * import {Component, NgClass} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; + * import {NgClass} from 'angular2/common'; * * @Component({ * selector: 'toggle-button', diff --git a/modules/angular2/src/common/directives/ng_style.ts b/modules/angular2/src/common/directives/ng_style.ts index 4bc4254023..90b5d74483 100644 --- a/modules/angular2/src/common/directives/ng_style.ts +++ b/modules/angular2/src/common/directives/ng_style.ts @@ -23,7 +23,8 @@ import {isPresent, isBlank, print} from 'angular2/src/facade/lang'; * ### Example ([live demo](http://plnkr.co/edit/YamGS6GkUh9GqWNQhCyM?p=preview)): * * ``` - * import {Component, NgStyle} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; + * import {NgStyle} from 'angular2/common'; * * @Component({ * selector: 'ngStyle-example', diff --git a/modules/angular2/src/core/change_detection/pipe_transform.ts b/modules/angular2/src/core/change_detection/pipe_transform.ts index 82d31b2646..07cf19c376 100644 --- a/modules/angular2/src/core/change_detection/pipe_transform.ts +++ b/modules/angular2/src/core/change_detection/pipe_transform.ts @@ -13,7 +13,7 @@ * The `RepeatPipe` below repeats the value as many times as indicated by the first argument: * * ``` - * import {Pipe, PipeTransform} from 'angular2/angular2'; + * import {Pipe, PipeTransform} from 'angular2/core'; * * @Pipe({name: 'repeat'}) * export class RepeatPipe implements PipeTransform { diff --git a/modules/angular2/src/core/linker/interfaces.ts b/modules/angular2/src/core/linker/interfaces.ts index f3733aee60..d59e38ab69 100644 --- a/modules/angular2/src/core/linker/interfaces.ts +++ b/modules/angular2/src/core/linker/interfaces.ts @@ -243,7 +243,7 @@ export interface DoCheck { ngDoCheck(); } * the interval when the binding is destroyed or the countdown completes. * * ``` - * import {OnDestroy, Pipe, PipeTransform} from 'angular2/angular2' + * import {OnDestroy, Pipe, PipeTransform} from 'angular2/core' * @Pipe({name: 'countdown', pure: false}) * class CountDown implements PipeTransform, OnDestroy { * remainingTime:Number; diff --git a/modules/angular2/src/core/metadata.ts b/modules/angular2/src/core/metadata.ts index f30c31cb9d..a6f758837c 100644 --- a/modules/angular2/src/core/metadata.ts +++ b/modules/angular2/src/core/metadata.ts @@ -253,7 +253,7 @@ export interface ComponentFactory { * ### Example as TypeScript Decorator * * ``` - * import {Component, View} from "angular2/angular2"; + * import {Component, View} from "angular2/core"; * * @Component({...}) * @View({...}) @@ -356,7 +356,7 @@ export interface AttributeFactory { * ### Example as TypeScript Decorator * * ``` - * import {Query, QueryList, Component} from "angular2/angular2"; + * import {Query, QueryList, Component} from "angular2/core"; * * @Component({...}) * class MyComponent { diff --git a/modules/angular2/src/core/platform_directives_and_pipes.ts b/modules/angular2/src/core/platform_directives_and_pipes.ts index c840c3f833..58c6a9cb3b 100644 --- a/modules/angular2/src/core/platform_directives_and_pipes.ts +++ b/modules/angular2/src/core/platform_directives_and_pipes.ts @@ -8,7 +8,7 @@ import {CONST_EXPR} from "angular2/src/facade/lang"; * ### Example * * ```typescript - * import {PLATFORM_DIRECTIVES} from 'angular2/angular2'; + * import {PLATFORM_DIRECTIVES} from 'angular2/core'; * import {OtherDirective} from './myDirectives'; * * @Component({ @@ -34,7 +34,7 @@ export const PLATFORM_DIRECTIVES: OpaqueToken = CONST_EXPR(new OpaqueToken("Plat * ### Example * * ```typescript - * import {PLATFORM_PIPES} from 'angular2/angular2'; + * import {PLATFORM_PIPES} from 'angular2/core'; * import {OtherPipe} from './myPipe'; * * @Component({ diff --git a/modules/angular2/src/core/zone/ng_zone.ts b/modules/angular2/src/core/zone/ng_zone.ts index 73b081bf37..0df53e44a5 100644 --- a/modules/angular2/src/core/zone/ng_zone.ts +++ b/modules/angular2/src/core/zone/ng_zone.ts @@ -34,7 +34,8 @@ export class NgZoneError { * * ### Example ([live demo](http://plnkr.co/edit/lY9m8HLy7z06vDoUaSN2?p=preview)) * ``` - * import {Component, View, NgIf, NgZone} from 'angular2/angular2'; + * import {Component, View, NgZone} from 'angular2/core'; + * import {NgIf} from 'angular2/common'; * * @Component({ * selector: 'ng-zone-demo'. diff --git a/modules/angular2/src/http/base_request_options.ts b/modules/angular2/src/http/base_request_options.ts index 6dd73bbd57..133de727f7 100644 --- a/modules/angular2/src/http/base_request_options.ts +++ b/modules/angular2/src/http/base_request_options.ts @@ -117,7 +117,8 @@ export class RequestOptions { * ### Example ([live demo](http://plnkr.co/edit/LEKVSx?p=preview)) * * ```typescript - * import {provide, bootstrap} from 'angular2/angular2'; + * import {provide} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {HTTP_PROVIDERS, Http, BaseRequestOptions, RequestOptions} from 'angular2/http'; * import {App} from './myapp'; * diff --git a/modules/angular2/src/http/base_response_options.ts b/modules/angular2/src/http/base_response_options.ts index 389b9815cb..a5c7eb3627 100644 --- a/modules/angular2/src/http/base_response_options.ts +++ b/modules/angular2/src/http/base_response_options.ts @@ -115,7 +115,8 @@ export class ResponseOptions { * ### Example ([live demo](http://plnkr.co/edit/qv8DLT?p=preview)) * * ```typescript - * import {provide, bootstrap} from 'angular2/angular2'; + * import {provide} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {HTTP_PROVIDERS, Headers, Http, BaseResponseOptions, ResponseOptions} from * 'angular2/http'; * import {App} from './myapp'; diff --git a/modules/angular2/src/http/index.ts b/modules/angular2/src/http/index.ts index 4f2cc87017..b41976de41 100644 --- a/modules/angular2/src/http/index.ts +++ b/modules/angular2/src/http/index.ts @@ -2,7 +2,7 @@ // require('reflect-metadata'); // require('es6-shim'); // import {HTTP_PROVIDERS, JSONP_PROVIDERS, Http, Jsonp} from './http'; -// import {Injector} from 'angular2/angular2'; +// import {Injector} from 'angular2/core'; // export * from './http'; // /** diff --git a/modules/angular2/src/http/static_request.ts b/modules/angular2/src/http/static_request.ts index 33305a366d..093fa97b2f 100644 --- a/modules/angular2/src/http/static_request.ts +++ b/modules/angular2/src/http/static_request.ts @@ -25,7 +25,7 @@ import { * where it may be useful to generate a `Request` with arbitrary headers and search params. * * ```typescript - * import {Injectable, Injector} from 'angular2/angular2'; + * import {Injectable, Injector} from 'angular2/core'; * import {HTTP_PROVIDERS, Http, Request, RequestMethod} from 'angular2/http'; * * @Injectable() diff --git a/modules/angular2/src/router/hash_location_strategy.ts b/modules/angular2/src/router/hash_location_strategy.ts index 43b2a602e3..68d01c4142 100644 --- a/modules/angular2/src/router/hash_location_strategy.ts +++ b/modules/angular2/src/router/hash_location_strategy.ts @@ -21,7 +21,7 @@ import {PlatformLocation} from './platform_location'; * ### Example * * ``` - * import {Component, provide} from 'angular2/angular2'; + * import {Component, provide} from 'angular2/core'; * import { * ROUTER_DIRECTIVES, * ROUTER_PROVIDERS, diff --git a/modules/angular2/src/router/instruction.ts b/modules/angular2/src/router/instruction.ts index 13e4e9f192..be3e3d46f1 100644 --- a/modules/angular2/src/router/instruction.ts +++ b/modules/angular2/src/router/instruction.ts @@ -12,7 +12,8 @@ import {Promise, PromiseWrapper} from 'angular2/src/facade/async'; * ### Example * * ``` - * import {bootstrap, Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig} from 'angular2/router'; * * @Component({directives: [ROUTER_DIRECTIVES]}) @@ -46,7 +47,8 @@ export class RouteParams { * ### Example * * ``` - * import {bootstrap, Component, View} from 'angular2/angular2'; + * import {Component, View} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {Router, ROUTER_DIRECTIVES, routerBindings, RouteConfig} from 'angular2/router'; * * @Component({...}) @@ -86,7 +88,8 @@ export var BLANK_ROUTE_DATA = new RouteData(); * ### Example * * ``` - * import {bootstrap, Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; + * import {bootstrap} from 'angular2/platform/browser'; * import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig} from 'angular2/router'; * * @Component({directives: [ROUTER_DIRECTIVES]}) diff --git a/modules/angular2/src/router/location.ts b/modules/angular2/src/router/location.ts index 1d509a94cb..8684a34681 100644 --- a/modules/angular2/src/router/location.ts +++ b/modules/angular2/src/router/location.ts @@ -21,7 +21,7 @@ import {Injectable, Inject} from 'angular2/core'; * ### Example * * ``` - * import {Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; * import { * ROUTER_DIRECTIVES, * ROUTER_PROVIDERS, diff --git a/modules/angular2/src/router/location_strategy.ts b/modules/angular2/src/router/location_strategy.ts index 7a46e2b5f0..186dfa19bb 100644 --- a/modules/angular2/src/router/location_strategy.ts +++ b/modules/angular2/src/router/location_strategy.ts @@ -40,7 +40,7 @@ export abstract class LocationStrategy { * ### Example * * ``` - * import {Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; * import {ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig} from 'angular2/router'; * * @Component({directives: [ROUTER_DIRECTIVES]}) diff --git a/modules/angular2/src/router/path_location_strategy.ts b/modules/angular2/src/router/path_location_strategy.ts index 9e4dfb6b0f..7dc68b3820 100644 --- a/modules/angular2/src/router/path_location_strategy.ts +++ b/modules/angular2/src/router/path_location_strategy.ts @@ -30,7 +30,7 @@ import {PlatformLocation} from './platform_location'; * ### Example * * ``` - * import {Component, provide} from 'angular2/angular2'; + * import {Component, provide} from 'angular2/core'; * import { * APP_BASE_HREF * ROUTER_DIRECTIVES, diff --git a/modules/angular2/src/router/route_registry.ts b/modules/angular2/src/router/route_registry.ts index c9b1193d5e..fd10fab80b 100644 --- a/modules/angular2/src/router/route_registry.ts +++ b/modules/angular2/src/router/route_registry.ts @@ -47,7 +47,7 @@ var _resolveToNull = PromiseWrapper.resolve(null); * ### Example ([live demo](http://plnkr.co/edit/iRUP8B5OUbxCWQ3AcIDm)) * * ``` - * import {Component} from 'angular2/angular2'; + * import {Component} from 'angular2/core'; * import { * ROUTER_DIRECTIVES, * ROUTER_PROVIDERS,