├── 01 ├── arcos.html ├── caminhos.html ├── carro.js ├── imagens-1.html ├── imagens-2.html ├── img │ ├── explosao.png │ └── ovni.png ├── orientacao-objetos.html ├── prototype.html ├── requestanimationframe.html ├── retangulos-1.html ├── retangulos-2.html └── save-e-restore.html ├── 02 ├── animacao-teste-1.html ├── animacao.js └── bola.js ├── 03 ├── animacao.js ├── bola.js ├── heroi.js ├── teclado-teste-1.html ├── teclado-teste-2.html ├── teclado.js └── teste-teclado-3.html ├── 04 ├── animacao.js ├── clipping.html ├── sonic.js ├── spritesheet.js ├── spritesheet.png ├── teclado.js ├── teste-spritesheet-1.html └── teste-spritesheet-2.html ├── 05 ├── bola.js ├── colisor.js └── teste-colisao-1.html ├── 06 ├── animacao.js ├── fundo.js ├── img │ ├── fundo-espaco.png │ ├── fundo-estrelas.png │ ├── fundo-nuvens.png │ └── nave.png ├── nave.js ├── teclado.js ├── teste-fundo.html ├── teste-nave.html ├── teste-tiros.html └── tiro.js ├── 07 ├── animacao-definitivo.js ├── animacao.js ├── colisor.js ├── fundo.js ├── img │ ├── fundo-espaco.png │ ├── fundo-estrelas.png │ ├── fundo-nuvens.png │ ├── nave.png │ └── ovni.png ├── nave.js ├── ovni.js ├── teclado.js ├── teste-bug.html ├── teste-colisao-inimigos.html ├── teste-inimigos-e-fundo.html ├── teste-inimigos.html └── tiro.js ├── 08 ├── animacao.js ├── colisor.js ├── explosao.js ├── fundo.js ├── img │ ├── botao-jogar.png │ ├── explosao.png │ ├── fundo-espaco.png │ ├── fundo-estrelas.png │ ├── fundo-nuvens.png │ ├── nave-spritesheet.png │ ├── nave.png │ └── ovni.png ├── jogo-definitivo.html ├── nave.js ├── ovni.js ├── painel.js ├── snd │ ├── explosao.mp3 │ ├── musica-acao.mp3 │ └── tiro.mp3 ├── spritesheet.js ├── teclado.js └── tiro.js ├── 09 ├── animacao.js ├── colisor.js ├── explosao.js ├── fundo.js ├── img │ ├── botao-jogar.png │ ├── explosao.png │ ├── fundo-espaco.png │ ├── fundo-estrelas.png │ ├── fundo-nuvens.png │ ├── nave-spritesheet.png │ ├── nave.png │ └── ovni.png ├── jogo-definitivo.html ├── nave.js ├── ovni.js ├── painel.js ├── snd │ ├── explosao.mp3 │ ├── musica-acao.mp3 │ └── tiro.mp3 ├── spritesheet.js ├── teclado.js └── tiro.js ├── License-EN.txt └── Licença-PT.txt /01/arcos.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/arcos.html -------------------------------------------------------------------------------- /01/caminhos.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/caminhos.html -------------------------------------------------------------------------------- /01/carro.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/carro.js -------------------------------------------------------------------------------- /01/imagens-1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/imagens-1.html -------------------------------------------------------------------------------- /01/imagens-2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/imagens-2.html -------------------------------------------------------------------------------- /01/img/explosao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/img/explosao.png -------------------------------------------------------------------------------- /01/img/ovni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/img/ovni.png -------------------------------------------------------------------------------- /01/orientacao-objetos.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/orientacao-objetos.html -------------------------------------------------------------------------------- /01/prototype.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/prototype.html -------------------------------------------------------------------------------- /01/requestanimationframe.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/requestanimationframe.html -------------------------------------------------------------------------------- /01/retangulos-1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/retangulos-1.html -------------------------------------------------------------------------------- /01/retangulos-2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/retangulos-2.html -------------------------------------------------------------------------------- /01/save-e-restore.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/01/save-e-restore.html -------------------------------------------------------------------------------- /02/animacao-teste-1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/02/animacao-teste-1.html -------------------------------------------------------------------------------- /02/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/02/animacao.js -------------------------------------------------------------------------------- /02/bola.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/02/bola.js -------------------------------------------------------------------------------- /03/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/animacao.js -------------------------------------------------------------------------------- /03/bola.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/bola.js -------------------------------------------------------------------------------- /03/heroi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/heroi.js -------------------------------------------------------------------------------- /03/teclado-teste-1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/teclado-teste-1.html -------------------------------------------------------------------------------- /03/teclado-teste-2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/teclado-teste-2.html -------------------------------------------------------------------------------- /03/teclado.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/teclado.js -------------------------------------------------------------------------------- /03/teste-teclado-3.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/03/teste-teclado-3.html -------------------------------------------------------------------------------- /04/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/animacao.js -------------------------------------------------------------------------------- /04/clipping.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/clipping.html -------------------------------------------------------------------------------- /04/sonic.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/sonic.js -------------------------------------------------------------------------------- /04/spritesheet.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/spritesheet.js -------------------------------------------------------------------------------- /04/spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/spritesheet.png -------------------------------------------------------------------------------- /04/teclado.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/teclado.js -------------------------------------------------------------------------------- /04/teste-spritesheet-1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/teste-spritesheet-1.html -------------------------------------------------------------------------------- /04/teste-spritesheet-2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/04/teste-spritesheet-2.html -------------------------------------------------------------------------------- /05/bola.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/05/bola.js -------------------------------------------------------------------------------- /05/colisor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/05/colisor.js -------------------------------------------------------------------------------- /05/teste-colisao-1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/05/teste-colisao-1.html -------------------------------------------------------------------------------- /06/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/animacao.js -------------------------------------------------------------------------------- /06/fundo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/fundo.js -------------------------------------------------------------------------------- /06/img/fundo-espaco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/img/fundo-espaco.png -------------------------------------------------------------------------------- /06/img/fundo-estrelas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/img/fundo-estrelas.png -------------------------------------------------------------------------------- /06/img/fundo-nuvens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/img/fundo-nuvens.png -------------------------------------------------------------------------------- /06/img/nave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/img/nave.png -------------------------------------------------------------------------------- /06/nave.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/nave.js -------------------------------------------------------------------------------- /06/teclado.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/teclado.js -------------------------------------------------------------------------------- /06/teste-fundo.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/teste-fundo.html -------------------------------------------------------------------------------- /06/teste-nave.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/teste-nave.html -------------------------------------------------------------------------------- /06/teste-tiros.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/teste-tiros.html -------------------------------------------------------------------------------- /06/tiro.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/06/tiro.js -------------------------------------------------------------------------------- /07/animacao-definitivo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/animacao-definitivo.js -------------------------------------------------------------------------------- /07/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/animacao.js -------------------------------------------------------------------------------- /07/colisor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/colisor.js -------------------------------------------------------------------------------- /07/fundo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/fundo.js -------------------------------------------------------------------------------- /07/img/fundo-espaco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/img/fundo-espaco.png -------------------------------------------------------------------------------- /07/img/fundo-estrelas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/img/fundo-estrelas.png -------------------------------------------------------------------------------- /07/img/fundo-nuvens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/img/fundo-nuvens.png -------------------------------------------------------------------------------- /07/img/nave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/img/nave.png -------------------------------------------------------------------------------- /07/img/ovni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/img/ovni.png -------------------------------------------------------------------------------- /07/nave.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/nave.js -------------------------------------------------------------------------------- /07/ovni.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/ovni.js -------------------------------------------------------------------------------- /07/teclado.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/teclado.js -------------------------------------------------------------------------------- /07/teste-bug.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/teste-bug.html -------------------------------------------------------------------------------- /07/teste-colisao-inimigos.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/teste-colisao-inimigos.html -------------------------------------------------------------------------------- /07/teste-inimigos-e-fundo.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/teste-inimigos-e-fundo.html -------------------------------------------------------------------------------- /07/teste-inimigos.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/teste-inimigos.html -------------------------------------------------------------------------------- /07/tiro.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/07/tiro.js -------------------------------------------------------------------------------- /08/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/animacao.js -------------------------------------------------------------------------------- /08/colisor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/colisor.js -------------------------------------------------------------------------------- /08/explosao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/explosao.js -------------------------------------------------------------------------------- /08/fundo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/fundo.js -------------------------------------------------------------------------------- /08/img/botao-jogar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/botao-jogar.png -------------------------------------------------------------------------------- /08/img/explosao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/explosao.png -------------------------------------------------------------------------------- /08/img/fundo-espaco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/fundo-espaco.png -------------------------------------------------------------------------------- /08/img/fundo-estrelas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/fundo-estrelas.png -------------------------------------------------------------------------------- /08/img/fundo-nuvens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/fundo-nuvens.png -------------------------------------------------------------------------------- /08/img/nave-spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/nave-spritesheet.png -------------------------------------------------------------------------------- /08/img/nave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/nave.png -------------------------------------------------------------------------------- /08/img/ovni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/img/ovni.png -------------------------------------------------------------------------------- /08/jogo-definitivo.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/jogo-definitivo.html -------------------------------------------------------------------------------- /08/nave.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/nave.js -------------------------------------------------------------------------------- /08/ovni.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/ovni.js -------------------------------------------------------------------------------- /08/painel.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/painel.js -------------------------------------------------------------------------------- /08/snd/explosao.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/snd/explosao.mp3 -------------------------------------------------------------------------------- /08/snd/musica-acao.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/snd/musica-acao.mp3 -------------------------------------------------------------------------------- /08/snd/tiro.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/snd/tiro.mp3 -------------------------------------------------------------------------------- /08/spritesheet.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/spritesheet.js -------------------------------------------------------------------------------- /08/teclado.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/teclado.js -------------------------------------------------------------------------------- /08/tiro.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/08/tiro.js -------------------------------------------------------------------------------- /09/animacao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/animacao.js -------------------------------------------------------------------------------- /09/colisor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/colisor.js -------------------------------------------------------------------------------- /09/explosao.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/explosao.js -------------------------------------------------------------------------------- /09/fundo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/fundo.js -------------------------------------------------------------------------------- /09/img/botao-jogar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/botao-jogar.png -------------------------------------------------------------------------------- /09/img/explosao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/explosao.png -------------------------------------------------------------------------------- /09/img/fundo-espaco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/fundo-espaco.png -------------------------------------------------------------------------------- /09/img/fundo-estrelas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/fundo-estrelas.png -------------------------------------------------------------------------------- /09/img/fundo-nuvens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/fundo-nuvens.png -------------------------------------------------------------------------------- /09/img/nave-spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/nave-spritesheet.png -------------------------------------------------------------------------------- /09/img/nave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/nave.png -------------------------------------------------------------------------------- /09/img/ovni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/img/ovni.png -------------------------------------------------------------------------------- /09/jogo-definitivo.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/jogo-definitivo.html -------------------------------------------------------------------------------- /09/nave.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/nave.js -------------------------------------------------------------------------------- /09/ovni.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/ovni.js -------------------------------------------------------------------------------- /09/painel.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/painel.js -------------------------------------------------------------------------------- /09/snd/explosao.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/snd/explosao.mp3 -------------------------------------------------------------------------------- /09/snd/musica-acao.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/snd/musica-acao.mp3 -------------------------------------------------------------------------------- /09/snd/tiro.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/snd/tiro.mp3 -------------------------------------------------------------------------------- /09/spritesheet.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/spritesheet.js -------------------------------------------------------------------------------- /09/teclado.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/teclado.js -------------------------------------------------------------------------------- /09/tiro.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/09/tiro.js -------------------------------------------------------------------------------- /License-EN.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/License-EN.txt -------------------------------------------------------------------------------- /Licença-PT.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdyKnopfler/games-js/HEAD/Licença-PT.txt --------------------------------------------------------------------------------