├── .coveralls.yml ├── .gitignore ├── .scrutinizer.yml ├── .travis.yml ├── LICENSE ├── README.md ├── README_CN.md ├── composer.json ├── docs └── .gitignore ├── examples ├── .gitignore ├── access.php ├── config.php ├── css │ ├── main.css │ └── normalize.css ├── index.php ├── request.php └── service.php ├── makefile ├── phpdoc.xml ├── phpunit.xml.dist ├── src └── EvaOAuth │ ├── AdapterTrait.php │ ├── AuthorizedHttpClient.php │ ├── Events │ ├── BeforeAuthorize.php │ ├── BeforeGetAccessToken.php │ ├── BeforeGetRequestToken.php │ ├── EventsManager.php │ ├── Formatter.php │ └── LogSubscriber.php │ ├── Exception │ ├── BadMethodCallException.php │ ├── ExceptionInterface.php │ ├── InvalidArgumentException.php │ ├── RequestException.php │ └── VerifyException.php │ ├── HttpClient.php │ ├── OAuth1 │ ├── Consumer.php │ ├── Providers │ │ ├── AbstractProvider.php │ │ ├── Flickr.php │ │ └── Twitter.php │ ├── ServiceProviderInterface.php │ ├── Signature │ │ ├── Hmac.php │ │ ├── PlainText.php │ │ └── SignatureInterface.php │ └── Token │ │ ├── AccessToken.php │ │ ├── AccessTokenInterface.php │ │ ├── RequestToken.php │ │ └── RequestTokenInterface.php │ ├── OAuth2 │ ├── AuthorizationServerInterface.php │ ├── Client.php │ ├── GrantStrategy │ │ ├── AuthorizationCode.php │ │ └── GrantStrategyInterface.php │ ├── Providers │ │ ├── AbstractProvider.php │ │ ├── Douban.php │ │ ├── Facebook.php │ │ ├── Hundsun.php │ │ ├── Tencent.php │ │ └── Weibo.php │ ├── ResourceServerInterface.php │ └── Token │ │ ├── AccessToken.php │ │ └── AccessTokenInterface.php │ ├── Service.php │ ├── Token │ ├── AccessTokenInterface.php │ └── TokenTrait.php │ ├── User │ ├── StandardUser.php │ ├── UserInterface.php │ └── UserProviderInterface.php │ └── Utils │ ├── ResponseParser.php │ └── Text.php ├── tests ├── Bootstrap.php ├── EvaOAuthTest │ ├── AuthorizedHttpClientTest.php │ ├── Events │ │ ├── FormatterTest.php │ │ └── LogSubscriberTest.php │ ├── OAuth1 │ │ ├── ConsumerTest.php │ │ ├── Signature │ │ │ ├── HmacTest.php │ │ │ └── PlainTextTest.php │ │ └── Token │ │ │ ├── AccessTokenTest.php │ │ │ └── RequestTokenTest.php │ ├── OAuth2 │ │ ├── ClientTest.php │ │ ├── GrantStrategy │ │ │ └── AuthorizationCodeTest.php │ │ └── Token │ │ │ └── AccessTokenTest.php │ ├── ServiceTest.php │ ├── User │ │ └── UserTest.php │ └── Utils │ │ ├── ResponseParserTest.php │ │ └── TextTest.php └── report │ └── .gitignore └── tmp └── .gitignore /.coveralls.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/.coveralls.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/.gitignore -------------------------------------------------------------------------------- /.scrutinizer.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/.scrutinizer.yml -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/README.md -------------------------------------------------------------------------------- /README_CN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/README_CN.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/composer.json -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | oauth1/* 2 | config.local.php 3 | -------------------------------------------------------------------------------- /examples/access.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/access.php -------------------------------------------------------------------------------- /examples/config.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/config.php -------------------------------------------------------------------------------- /examples/css/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/css/main.css -------------------------------------------------------------------------------- /examples/css/normalize.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/css/normalize.css -------------------------------------------------------------------------------- /examples/index.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/index.php -------------------------------------------------------------------------------- /examples/request.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/request.php -------------------------------------------------------------------------------- /examples/service.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/examples/service.php -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/makefile -------------------------------------------------------------------------------- /phpdoc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/phpdoc.xml -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/phpunit.xml.dist -------------------------------------------------------------------------------- /src/EvaOAuth/AdapterTrait.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/AdapterTrait.php -------------------------------------------------------------------------------- /src/EvaOAuth/AuthorizedHttpClient.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/AuthorizedHttpClient.php -------------------------------------------------------------------------------- /src/EvaOAuth/Events/BeforeAuthorize.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Events/BeforeAuthorize.php -------------------------------------------------------------------------------- /src/EvaOAuth/Events/BeforeGetAccessToken.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Events/BeforeGetAccessToken.php -------------------------------------------------------------------------------- /src/EvaOAuth/Events/BeforeGetRequestToken.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Events/BeforeGetRequestToken.php -------------------------------------------------------------------------------- /src/EvaOAuth/Events/EventsManager.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Events/EventsManager.php -------------------------------------------------------------------------------- /src/EvaOAuth/Events/Formatter.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Events/Formatter.php -------------------------------------------------------------------------------- /src/EvaOAuth/Events/LogSubscriber.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Events/LogSubscriber.php -------------------------------------------------------------------------------- /src/EvaOAuth/Exception/BadMethodCallException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Exception/BadMethodCallException.php -------------------------------------------------------------------------------- /src/EvaOAuth/Exception/ExceptionInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Exception/ExceptionInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/Exception/InvalidArgumentException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Exception/InvalidArgumentException.php -------------------------------------------------------------------------------- /src/EvaOAuth/Exception/RequestException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Exception/RequestException.php -------------------------------------------------------------------------------- /src/EvaOAuth/Exception/VerifyException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Exception/VerifyException.php -------------------------------------------------------------------------------- /src/EvaOAuth/HttpClient.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/HttpClient.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Consumer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Consumer.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Providers/AbstractProvider.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Providers/AbstractProvider.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Providers/Flickr.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Providers/Flickr.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Providers/Twitter.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Providers/Twitter.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/ServiceProviderInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/ServiceProviderInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Signature/Hmac.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Signature/Hmac.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Signature/PlainText.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Signature/PlainText.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Signature/SignatureInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Signature/SignatureInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Token/AccessToken.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Token/AccessToken.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Token/AccessTokenInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Token/AccessTokenInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Token/RequestToken.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Token/RequestToken.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth1/Token/RequestTokenInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth1/Token/RequestTokenInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/AuthorizationServerInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/AuthorizationServerInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Client.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Client.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/GrantStrategy/AuthorizationCode.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/GrantStrategy/AuthorizationCode.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/GrantStrategy/GrantStrategyInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/GrantStrategy/GrantStrategyInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Providers/AbstractProvider.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Providers/AbstractProvider.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Providers/Douban.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Providers/Douban.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Providers/Facebook.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Providers/Facebook.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Providers/Hundsun.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Providers/Hundsun.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Providers/Tencent.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Providers/Tencent.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Providers/Weibo.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Providers/Weibo.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/ResourceServerInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/ResourceServerInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Token/AccessToken.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Token/AccessToken.php -------------------------------------------------------------------------------- /src/EvaOAuth/OAuth2/Token/AccessTokenInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/OAuth2/Token/AccessTokenInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/Service.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Service.php -------------------------------------------------------------------------------- /src/EvaOAuth/Token/AccessTokenInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Token/AccessTokenInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/Token/TokenTrait.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Token/TokenTrait.php -------------------------------------------------------------------------------- /src/EvaOAuth/User/StandardUser.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/User/StandardUser.php -------------------------------------------------------------------------------- /src/EvaOAuth/User/UserInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/User/UserInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/User/UserProviderInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/User/UserProviderInterface.php -------------------------------------------------------------------------------- /src/EvaOAuth/Utils/ResponseParser.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Utils/ResponseParser.php -------------------------------------------------------------------------------- /src/EvaOAuth/Utils/Text.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/src/EvaOAuth/Utils/Text.php -------------------------------------------------------------------------------- /tests/Bootstrap.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/Bootstrap.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/AuthorizedHttpClientTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/AuthorizedHttpClientTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/Events/FormatterTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/Events/FormatterTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/Events/LogSubscriberTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/Events/LogSubscriberTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth1/ConsumerTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth1/ConsumerTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth1/Signature/HmacTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth1/Signature/HmacTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth1/Signature/PlainTextTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth1/Signature/PlainTextTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth1/Token/AccessTokenTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth1/Token/AccessTokenTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth1/Token/RequestTokenTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth1/Token/RequestTokenTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth2/ClientTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth2/ClientTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth2/GrantStrategy/AuthorizationCodeTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth2/GrantStrategy/AuthorizationCodeTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/OAuth2/Token/AccessTokenTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/OAuth2/Token/AccessTokenTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/ServiceTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/ServiceTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/User/UserTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/User/UserTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/Utils/ResponseParserTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/Utils/ResponseParserTest.php -------------------------------------------------------------------------------- /tests/EvaOAuthTest/Utils/TextTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlloVince/EvaOAuth/HEAD/tests/EvaOAuthTest/Utils/TextTest.php -------------------------------------------------------------------------------- /tests/report/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /tmp/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | --------------------------------------------------------------------------------