├── .github
└── workflows
│ ├── generate_changelog.yml
│ └── npm-publish.yml
├── .gitignore
├── .npmignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── demo.gif
├── esbuild.js
├── package-lock.json
├── package.json
├── src
├── bin.js
├── index.js
├── lib
│ ├── bin.js
│ ├── colors.js
│ ├── http.js
│ ├── livereload.js
│ ├── mime.json
│ ├── params.json
│ ├── table.js
│ └── watch.js
└── plugins
│ └── rollup.js
└── test
├── public
├── assets
│ └── style.css
├── index.html
└── subdir
│ └── index.html
└── test.js
/.github/workflows/generate_changelog.yml:
--------------------------------------------------------------------------------
1 | name: Generate Changelog
2 |
3 | on:
4 | push:
5 | branches: [ main, master]
6 |
7 | jobs:
8 | changelog:
9 | name: Update Changelog
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout code
13 | uses: actions/checkout@v2
14 | with:
15 | fetch-depth: 0
16 | - name: Update Changelog
17 | uses: AlexxNB/chalogen@master
18 | with:
19 | title: Derver changelog
20 | - name: Commit Changelog to repository
21 | uses: stefanzweifel/git-auto-commit-action@v4
22 | with:
23 | commit_message: 'docs(Changelog): Update Changelog'
24 | file_pattern: CHANGELOG.md
--------------------------------------------------------------------------------
/.github/workflows/npm-publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish on NPM
2 |
3 | on:
4 | push:
5 | paths:
6 | - '.github/workflows/npm-publish.yml'
7 | - 'package.json'
8 |
9 | jobs:
10 | publish-npm:
11 | runs-on: ubuntu-18.04
12 | steps:
13 | - uses: actions/checkout@v1
14 | - name: Setup Node
15 | uses: actions/setup-node@v1
16 | with:
17 | node-version: 15
18 | registry-url: https://registry.npmjs.org/
19 | - name: Installing NPM deps
20 | run: npm install
21 | - name: Build modules
22 | run: npm run build
23 | - name: Publishing on NPM
24 | run: npm publish
25 | env:
26 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | bin
3 | dist
4 | *-plugin-cjs.js
5 | *-plugin-esm.js
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | src
2 | esbuild.js
3 | test
4 | demo.gif
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Derver changelog
2 |
3 | ## unreleased
4 |
5 | ### Other
6 |
7 | - Merge branch 'main' of github.com:AlexxNB/derver [`6f8d7d97`](https://github.com/AlexxNB/derver/commit/6f8d7d9750ee830e0e08bd2e84d6b0854beef340)
8 |
9 | ## 0.5.3 - 2021-11-11
10 |
11 | ### Other
12 |
13 | - add node path [`1dcd969c`](https://github.com/AlexxNB/derver/commit/1dcd969c3594fddb38ef9033ffc0591ea661b44d)
14 | - Merge branch 'main' of github.com:AlexxNB/derver [`04ddf9fd`](https://github.com/AlexxNB/derver/commit/04ddf9fd2570970f3ea7299ad194ed40c05541fe)
15 |
16 | ## 0.5.2 - 2021-11-06
17 |
18 | ### Features
19 |
20 | - Preserve scroll position on reload [`483cc95a`](https://github.com/AlexxNB/derver/commit/483cc95ac5a9877976c104cd9ef79ba9eb6f3113)
21 |
22 | ### Other
23 |
24 | - Merge branch 'main' of github.com:AlexxNB/derver [`e26d23c7`](https://github.com/AlexxNB/derver/commit/e26d23c79a01ae5cd2b08dace8a406bcd3be5633)
25 |
26 | ## 0.5.1 - 2021-11-01
27 |
28 | ### Bug Fixes
29 |
30 | - 🐛 Add exports for main and module also [`efaccc30`](https://github.com/AlexxNB/derver/commit/efaccc307a062ae5394edebfe46f458771636c76)
31 |
32 | ### Other
33 |
34 | - Merge branch 'main' of github.com:AlexxNB/derver [`6cb79cb4`](https://github.com/AlexxNB/derver/commit/6cb79cb444efa9aba36fce0fcfa20ddebde62040)
35 |
36 | ## 0.4.20 - 2021-10-30
37 |
38 | ### Other
39 |
40 | - make rollup-plugin universal fo cjs and esm consumers [`48f130b6`](https://github.com/AlexxNB/derver/commit/48f130b6a6fbfcdbe7ad5b678afcb7905917f1a0)
41 | - Merge branch 'main' of github.com:AlexxNB/derver into main [`3779af12`](https://github.com/AlexxNB/derver/commit/3779af128dd0a67bf42ec5926834ba2afbc04159)
42 |
43 | ## 0.4.19 - 2021-09-01
44 |
45 | ### Features
46 |
47 | - Add options to prevent console trashing [`6883c207`](https://github.com/AlexxNB/derver/commit/6883c207d93c82638000a73f3696d23e5bb88a44)
48 |
49 | ## 0.4.18 - 2021-09-01
50 |
51 | ### Features
52 |
53 | - Ability to run only middlewares when dir option is false [`1c3c5bc1`](https://github.com/AlexxNB/derver/commit/1c3c5bc1a813369fca2338b9398f01e8e9a48bfb)
54 |
55 | ### Other
56 |
57 | - Merge branch 'main' of github.com:AlexxNB/derver into main [`082778e8`](https://github.com/AlexxNB/derver/commit/082778e8fc04c59de3eaca59dc6bd6ab3475f7bd)
58 |
59 | ## 0.4.17 - 2021-06-28
60 |
61 | ### Features
62 |
63 | - Add JSON handling in middlewares [`f967e600`](https://github.com/AlexxNB/derver/commit/f967e600240397155148ae9a0ca23754ebb7e81c)
64 |
65 | ### Other
66 |
67 | - Merge branch 'main' of github.com:AlexxNB/derver into main [`554a0eb8`](https://github.com/AlexxNB/derver/commit/554a0eb89f1c7407316dfb76016cb943a53de207)
68 |
69 | ## 0.4.16 - 2021-06-12
70 |
71 | ### Documentation
72 |
73 | - 📝 Fix some mistakes [`cbc6d30e`](https://github.com/AlexxNB/derver/commit/cbc6d30eb5f5bc61190df6e8238a4c003ecda927)
74 |
75 | ### Other
76 |
77 | - Merge branch 'main' of github.com:AlexxNB/derver into main [`0b76ccdf`](https://github.com/AlexxNB/derver/commit/0b76ccdfda9bdef2440b089706e860ce8a10ccce)
78 | - update dapendencies [`21174900`](https://github.com/AlexxNB/derver/commit/21174900c30c804640dbd97bc2b07664374e50db)
79 |
80 | ## 0.4.15 - 2021-05-02
81 |
82 | ### Features
83 |
84 | - Allow nested index fallbaks in SPA mode [`16e52070`](https://github.com/AlexxNB/derver/commit/16e52070e992cd252171099aeba12bcf0d419d7d)
85 |
86 | *If there is some sub directory contents index.html then unexistent URL with first part matched this subdirectory will fallback to this index file instead root one.*
87 |
88 | ### Bug Fixes
89 |
90 | - 🐛 Last param from URL contents also a query part [`10c775ec`](https://github.com/AlexxNB/derver/commit/10c775ec9bd4968564d21212b9db77886ec4c11d)
91 |
92 | ## 0.4.14 - 2021-03-20
93 |
94 | ### Bug Fixes
95 |
96 | - 🐛 Livereload doesn't work when no watchers, but uses remote. ([#1](https://github.com/AlexxNB/derver/issues/1)) [`dc79b251`](https://github.com/AlexxNB/derver/commit/dc79b251f1d518dc6c0a22a25cdae558f2e6ed84)
97 |
98 | *fix [#1](https://github.com/AlexxNB/derver/issues/1)*
99 |
100 | ## 0.4.13 - 2021-03-10
101 |
102 | ### Other
103 |
104 | - fix 404 with query add usful data to request object [`226450e5`](https://github.com/AlexxNB/derver/commit/226450e5460c3db28951a2b38622a1f46aaf8c16)
105 |
106 | ## 0.4.12 - 2021-01-22
107 |
108 | ### Other
109 |
110 | - dartheme for error modal [`a3e6214f`](https://github.com/AlexxNB/derver/commit/a3e6214fa548fa4ce23e3f26c42265a055605df3)
111 |
112 | ## 0.4.11 - 2021-01-21
113 |
114 | ### Other
115 |
116 | - show modal when server down [`0c780542`](https://github.com/AlexxNB/derver/commit/0c7805429bf4e12cdcc9e5cdd7f01de14caea92e)
117 |
118 | ## 0.4.10 - 2021-01-21
119 |
120 | ### Other
121 |
122 | - get remote config in each request [`fa781f69`](https://github.com/AlexxNB/derver/commit/fa781f69d81089f4b482f141e6668c16e4830ea5)
123 |
124 | ## 0.4.9 - 2021-01-21
125 |
126 | ### Other
127 |
128 | - add remote server ID option [`809f22df`](https://github.com/AlexxNB/derver/commit/809f22dfd920e36767a8225fc7108b510abad760)
129 |
130 | ## 0.4.8 - 2021-01-21
131 |
132 | ### Other
133 |
134 | - add remote control [`a815b00b`](https://github.com/AlexxNB/derver/commit/a815b00be5c735d3944047719fa3eeacafa0d2be)
135 |
136 | ## 0.4.7 - 2021-01-16
137 |
138 | ### Other
139 |
140 | - fix nesting [`9a79fc26`](https://github.com/AlexxNB/derver/commit/9a79fc2644f868f6a7b7a6b7ea06d8613e356500)
141 |
142 | ## 0.4.6 - 2021-01-16
143 |
144 | ### Other
145 |
146 | - add nested middlewares [`ab208b25`](https://github.com/AlexxNB/derver/commit/ab208b256f0f3fac59228ce03f30516af731e9bf)
147 |
148 | ## 0.4.5 - 2021-01-13
149 |
150 | ### Other
151 |
152 | - fix middlewares wrong order [`fcbea885`](https://github.com/AlexxNB/derver/commit/fcbea885d696956f1c88cbd37d1e8f3c70374733)
153 |
154 | ## 0.4.4 - 2021-01-13
155 |
156 | ### Other
157 |
158 | - fix chaining [`7b16b249`](https://github.com/AlexxNB/derver/commit/7b16b2498e469bab07c382910e773735c3cd6bd9)
159 |
160 | ## 0.4.3 - 2021-01-12
161 |
162 | ### Other
163 |
164 | - debounce watch log [`b79943de`](https://github.com/AlexxNB/derver/commit/b79943deb4939be8ac2c6bdac7c3b686f48db6bc)
165 |
166 | ## 0.4.2 - 2021-01-12
167 |
168 | ### Other
169 |
170 | - close watchers on exit [`701aa4e9`](https://github.com/AlexxNB/derver/commit/701aa4e9623a1ba43c4ba9d74a1bebadf91c2afa)
171 |
172 | ## 0.4.1 - 2021-01-12
173 |
174 | ### Other
175 |
176 | - stop server on process exit [`91802948`](https://github.com/AlexxNB/derver/commit/9180294806ff3e8c352c403ab005aa6cc3676471)
177 |
178 | ## 0.4.0 - 2021-01-12
179 |
180 | ### Other
181 |
182 | - add middlewares [`d80449e6`](https://github.com/AlexxNB/derver/commit/d80449e6387ae79f4e648e0b8015de859edbaad0)
183 |
184 | ## 0.3.0 - 2020-11-18
185 |
186 | ### Other
187 |
188 | - fix livereload url [`4b2179df`](https://github.com/AlexxNB/derver/commit/4b2179df512959e03d2c63b518bb99e6380bfdb6)
189 | - use node-watch instead fs.watch [`fb4260b7`](https://github.com/AlexxNB/derver/commit/fb4260b780c5f74c22b924f4d76a31f779e467cf)
190 |
191 | ## 0.2.2 - 2020-11-14
192 |
193 | ### Other
194 |
195 | - add rollup plugin [`9617f935`](https://github.com/AlexxNB/derver/commit/9617f935eb6dbbf1f82938929e134768eb26b8fe)
196 |
197 | ## 0.2.1 - 2020-11-07
198 |
199 | ### Other
200 |
201 | - fix livereload [`c9206ceb`](https://github.com/AlexxNB/derver/commit/c9206ceb803e50c21afaca6c1b8c3424a9a5fdd9)
202 |
203 | ## 0.2.0 - 2020-11-06
204 |
205 | ### Other
206 |
207 | - fix dist size [`384563d5`](https://github.com/AlexxNB/derver/commit/384563d53b4b326db17d267199da2168d88751f5)
208 | - add production mode [`54053370`](https://github.com/AlexxNB/derver/commit/540533701fc53fdd7eeb6c2a96e5194fece808da)
209 | - add server header [`595bd82f`](https://github.com/AlexxNB/derver/commit/595bd82fd9159b791f2687bd317147a7b2af449b)
210 | - add spa mode [`a4b8d98b`](https://github.com/AlexxNB/derver/commit/a4b8d98b0485e4fab7332285abe1616731fa541a)
211 | - add cache control [`257d06cc`](https://github.com/AlexxNB/derver/commit/257d06cc8ed4955d940cebc6a0a45a86a743a9ae)
212 | - add compression support [`0c727c3d`](https://github.com/AlexxNB/derver/commit/0c727c3d436d44d422ec52df4fe7b199ca9a0f58)
213 | - refactor middlewares [`1d1c893d`](https://github.com/AlexxNB/derver/commit/1d1c893dc4ccf3fb320f9ae97a3f1d6b1e101658)
214 |
215 | ## 0.1.6 - 2020-11-05
216 |
217 | ### Other
218 |
219 | - fix URL [`b6563bb2`](https://github.com/AlexxNB/derver/commit/b6563bb27d856233c8705f3b86c49b96996daa64)
220 |
221 | ## 0.1.5 - 2020-11-05
222 |
223 | ### Other
224 |
225 | - add gif [`a2ecbc68`](https://github.com/AlexxNB/derver/commit/a2ecbc68168fa9aad603ceda9e8b581b2bc4ab63)
226 |
227 | ## 0.1.4 - 2020-11-05
228 |
229 | ### Other
230 |
231 | - fix readme [`eea9c9a0`](https://github.com/AlexxNB/derver/commit/eea9c9a0e24cb3489d914e65e18c6e3032840e7b)
232 | - add error modal [`1a76777d`](https://github.com/AlexxNB/derver/commit/1a76777de9d163b00dafcb432962fb1a33163659)
233 |
234 | ## 0.1.3 - 2020-11-03
235 |
236 | ### Other
237 |
238 | - add livereload.console method [`dd9b5d05`](https://github.com/AlexxNB/derver/commit/dd9b5d05a120f897bbd05d876a8e9dd7f463cace)
239 |
240 | ## 0.1.2 - 2020-11-03
241 |
242 | ### Other
243 |
244 | - fix bin path [`3373db20`](https://github.com/AlexxNB/derver/commit/3373db202f34f5396171edd5cdcb00d151c03d96)
245 |
246 | ## 0.1.1 - 2020-11-03
247 |
248 | ### Other
249 |
250 | - fix repo [`b8415e5e`](https://github.com/AlexxNB/derver/commit/b8415e5e3a70963a65dc7c5a138cbe20d9c916ab)
251 | - fix formatting [`e38ff2e4`](https://github.com/AlexxNB/derver/commit/e38ff2e479710bb7b44af108e85fa7e4cb1d5bb3)
252 | - add publish workflow [`12e75eee`](https://github.com/AlexxNB/derver/commit/12e75eeeaf7bc6199648e94d725031ecdb0e2b4a)
253 | - fix [`a8cdb039`](https://github.com/AlexxNB/derver/commit/a8cdb0398a317f5a5980a755691974a1fa59a89d)
254 | - add readme [`43e5601c`](https://github.com/AlexxNB/derver/commit/43e5601cd49e1867658aa80e0b3dec9e70992201)
255 | - add bin [`8906e54b`](https://github.com/AlexxNB/derver/commit/8906e54b6e81bd76602480e9ee6dba383273f7c8)
256 | - autoreconnection for livereload [`77274ee1`](https://github.com/AlexxNB/derver/commit/77274ee16f4db4e19204663fed03dfa2fa515b55)
257 | - make onwatch asyncable [`0748ba69`](https://github.com/AlexxNB/derver/commit/0748ba697b4cfb25d80a2b951afa70504e9a896c)
258 | - add onwatch property [`e339482a`](https://github.com/AlexxNB/derver/commit/e339482a92c282ca44a71466f89e74bfee03ede4)
259 | - more beutiful output [`fe069db4`](https://github.com/AlexxNB/derver/commit/fe069db42e7bf9a75c19ea3b6715dfc1fba9857c)
260 | - colorful output [`bd123a2a`](https://github.com/AlexxNB/derver/commit/bd123a2a7ece834d37f58784df348c2df9936999)
261 | - made liverload [`77bbbb2f`](https://github.com/AlexxNB/derver/commit/77bbbb2f238765f359e222f1b892dc8edb8643cb)
262 | - add js injector [`c2105994`](https://github.com/AlexxNB/derver/commit/c21059946193bfe6dbaaaa200c8746e914453b2e)
263 | - rearrange config [`25c4192f`](https://github.com/AlexxNB/derver/commit/25c4192ff318d1d286de546dd2b6950eefbf9517)
264 | - make lib [`af79434a`](https://github.com/AlexxNB/derver/commit/af79434a1e5a6b1fa5e83cce5a40924988f8564e)
265 | - add debouncer [`8e0827c4`](https://github.com/AlexxNB/derver/commit/8e0827c4029a506ba39828eb05918acbfd6d43d4)
266 | - add watcher [`61de3da7`](https://github.com/AlexxNB/derver/commit/61de3da7e64d19d0dacf7589c38c339db13cb6a8)
267 | - initial commit [`1efced54`](https://github.com/AlexxNB/derver/commit/1efced541bc5948407d41f0473b3747cd956a396)
268 | - Initial commit [`5b9824df`](https://github.com/AlexxNB/derver/commit/5b9824df0e5e9d00b26bfc291e6270561f09fe67)
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Alexey Schebelev
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Derver
2 |
3 | Tiny Development Server for your web-applications with livereload and watchers
4 |
5 |
6 |
23 |
Lorem ipsum vitae bibendum fusce porta risus ut proin duis ligula auctor congue cursus vivamus eros odio proin porta pharetra. Nam, ut amet ligula, metus lorem pharetra proin orci nulla ligula porta sem massa tellus molestie curabitur sodales molestie in at metus cursus quisque. Leo ultricies maecenas: metus, nibh sagittis sit metus pellentesque bibendum at cursus — ipsum, sagittis, nec metus sem, orci leo orci ut elementum adipiscing orci. Maecenas, auctor amet, mattis massa congue a vivamus eget risus sodales odio congue commodo integer risus mattis urna gravida, nec maecenas nec pellentesque, ornare ultricies. Eget sit mauris pellentesque morbi donec tellus morbi, sem, urna bibendum. Eros justo, gravida mauris vivamus elementum cursus — ligula quam eu gravida commodo nam metus mattis rutrum enim. Orci: sem eget pharetra tellus diam tempus sem porttitor, eu ligula cursus, molestie vulputate rutrum justo elementum, sagittis fusce quisque vivamus sed odio.
Fusce nec lectus sodales maecenas quisque vulputate curabitur — massa sapien auctor curabitur: duis adipiscing amet integer. Donec sagittis et, fusce in urna massa adipiscing fusce sapien. Tellus gravida diam curabitur ipsum, amet in justo, rutrum ligula nibh donec, morbi massa. Sodales rutrum lorem, odio in nulla, orci auctor: proin — ut magna metus massa molestie porttitor. Sodales magna rutrum mauris sagittis nulla eros gravida, bibendum pellentesque eget porta ultricies arcu cursus integer porta bibendum sapien: sagittis. Magna bibendum leo tempus, donec eget urna cursus tempus at urna ipsum pharetra — lectus mattis odio orci risus eros curabitur.
Sed ligula magna diam mauris diam ornare ut ultricies urna arcu. Porta massa sed eu eget tellus gravida sem mauris nec ligula quisque at ipsum nibh cursus auctor sit: mattis. Commodo pharetra, maecenas eros bibendum ornare cursus et commodo eros urna sem sed, gravida eu, nulla. Sem tellus vitae diam vivamus, quisque elementum cursus curabitur sapien porta.
Duis odio risus, lorem mauris quam massa tempus, urna nulla leo justo lorem, auctor, rutrum enim. Sodales sapien metus ut lectus adipiscing non eros porttitor amet massa ut sagittis leo sodales ultricies gravida ipsum mattis, proin auctor. Auctor sodales elementum metus — eros in fusce lorem sem amet sem nibh ligula donec pellentesque commodo diam curabitur, at integer. Quam at tellus, odio sit, et nibh et rutrum ornare porta fusce, eu curabitur lectus diam sed tempus maecenas ipsum, porttitor auctor ipsum.
Bibendum vitae sed massa, sapien massa porttitor quam eget at: ornare ut odio tellus quam — quisque. Eros nibh sodales lectus curabitur vulputate ultricies cursus in quam risus mauris ipsum magna, eros congue ut, eros commodo, urna pellentesque, vivamus.
24 |
Lorem ipsum vitae bibendum fusce porta risus ut proin duis ligula auctor congue cursus vivamus eros odio proin porta pharetra. Nam, ut amet ligula, metus lorem pharetra proin orci nulla ligula porta sem massa tellus molestie curabitur sodales molestie in at metus cursus quisque. Leo ultricies maecenas: metus, nibh sagittis sit metus pellentesque bibendum at cursus — ipsum, sagittis, nec metus sem, orci leo orci ut elementum adipiscing orci. Maecenas, auctor amet, mattis massa congue a vivamus eget risus sodales odio congue commodo integer risus mattis urna gravida, nec maecenas nec pellentesque, ornare ultricies. Eget sit mauris pellentesque morbi donec tellus morbi, sem, urna bibendum. Eros justo, gravida mauris vivamus elementum cursus — ligula quam eu gravida commodo nam metus mattis rutrum enim. Orci: sem eget pharetra tellus diam tempus sem porttitor, eu ligula cursus, molestie vulputate rutrum justo elementum, sagittis fusce quisque vivamus sed odio.
Fusce nec lectus sodales maecenas quisque vulputate curabitur — massa sapien auctor curabitur: duis adipiscing amet integer. Donec sagittis et, fusce in urna massa adipiscing fusce sapien. Tellus gravida diam curabitur ipsum, amet in justo, rutrum ligula nibh donec, morbi massa. Sodales rutrum lorem, odio in nulla, orci auctor: proin — ut magna metus massa molestie porttitor. Sodales magna rutrum mauris sagittis nulla eros gravida, bibendum pellentesque eget porta ultricies arcu cursus integer porta bibendum sapien: sagittis. Magna bibendum leo tempus, donec eget urna cursus tempus at urna ipsum pharetra — lectus mattis odio orci risus eros curabitur.
Sed ligula magna diam mauris diam ornare ut ultricies urna arcu. Porta massa sed eu eget tellus gravida sem mauris nec ligula quisque at ipsum nibh cursus auctor sit: mattis. Commodo pharetra, maecenas eros bibendum ornare cursus et commodo eros urna sem sed, gravida eu, nulla. Sem tellus vitae diam vivamus, quisque elementum cursus curabitur sapien porta.
Duis odio risus, lorem mauris quam massa tempus, urna nulla leo justo lorem, auctor, rutrum enim. Sodales sapien metus ut lectus adipiscing non eros porttitor amet massa ut sagittis leo sodales ultricies gravida ipsum mattis, proin auctor. Auctor sodales elementum metus — eros in fusce lorem sem amet sem nibh ligula donec pellentesque commodo diam curabitur, at integer. Quam at tellus, odio sit, et nibh et rutrum ornare porta fusce, eu curabitur lectus diam sed tempus maecenas ipsum, porttitor auctor ipsum.
Bibendum vitae sed massa, sapien massa porttitor quam eget at: ornare ut odio tellus quam — quisque. Eros nibh sodales lectus curabitur vulputate ultricies cursus in quam risus mauris ipsum magna, eros congue ut, eros commodo, urna pellentesque, vivamus.
25 |
Lorem ipsum vitae bibendum fusce porta risus ut proin duis ligula auctor congue cursus vivamus eros odio proin porta pharetra. Nam, ut amet ligula, metus lorem pharetra proin orci nulla ligula porta sem massa tellus molestie curabitur sodales molestie in at metus cursus quisque. Leo ultricies maecenas: metus, nibh sagittis sit metus pellentesque bibendum at cursus — ipsum, sagittis, nec metus sem, orci leo orci ut elementum adipiscing orci. Maecenas, auctor amet, mattis massa congue a vivamus eget risus sodales odio congue commodo integer risus mattis urna gravida, nec maecenas nec pellentesque, ornare ultricies. Eget sit mauris pellentesque morbi donec tellus morbi, sem, urna bibendum. Eros justo, gravida mauris vivamus elementum cursus — ligula quam eu gravida commodo nam metus mattis rutrum enim. Orci: sem eget pharetra tellus diam tempus sem porttitor, eu ligula cursus, molestie vulputate rutrum justo elementum, sagittis fusce quisque vivamus sed odio.
Fusce nec lectus sodales maecenas quisque vulputate curabitur — massa sapien auctor curabitur: duis adipiscing amet integer. Donec sagittis et, fusce in urna massa adipiscing fusce sapien. Tellus gravida diam curabitur ipsum, amet in justo, rutrum ligula nibh donec, morbi massa. Sodales rutrum lorem, odio in nulla, orci auctor: proin — ut magna metus massa molestie porttitor. Sodales magna rutrum mauris sagittis nulla eros gravida, bibendum pellentesque eget porta ultricies arcu cursus integer porta bibendum sapien: sagittis. Magna bibendum leo tempus, donec eget urna cursus tempus at urna ipsum pharetra — lectus mattis odio orci risus eros curabitur.
Sed ligula magna diam mauris diam ornare ut ultricies urna arcu. Porta massa sed eu eget tellus gravida sem mauris nec ligula quisque at ipsum nibh cursus auctor sit: mattis. Commodo pharetra, maecenas eros bibendum ornare cursus et commodo eros urna sem sed, gravida eu, nulla. Sem tellus vitae diam vivamus, quisque elementum cursus curabitur sapien porta.
Duis odio risus, lorem mauris quam massa tempus, urna nulla leo justo lorem, auctor, rutrum enim. Sodales sapien metus ut lectus adipiscing non eros porttitor amet massa ut sagittis leo sodales ultricies gravida ipsum mattis, proin auctor. Auctor sodales elementum metus — eros in fusce lorem sem amet sem nibh ligula donec pellentesque commodo diam curabitur, at integer. Quam at tellus, odio sit, et nibh et rutrum ornare porta fusce, eu curabitur lectus diam sed tempus maecenas ipsum, porttitor auctor ipsum.
Bibendum vitae sed massa, sapien massa porttitor quam eget at: ornare ut odio tellus quam — quisque. Eros nibh sodales lectus curabitur vulputate ultricies cursus in quam risus mauris ipsum magna, eros congue ut, eros commodo, urna pellentesque, vivamus.
26 |
Lorem ipsum vitae bibendum fusce porta risus ut proin duis ligula auctor congue cursus vivamus eros odio proin porta pharetra. Nam, ut amet ligula, metus lorem pharetra proin orci nulla ligula porta sem massa tellus molestie curabitur sodales molestie in at metus cursus quisque. Leo ultricies maecenas: metus, nibh sagittis sit metus pellentesque bibendum at cursus — ipsum, sagittis, nec metus sem, orci leo orci ut elementum adipiscing orci. Maecenas, auctor amet, mattis massa congue a vivamus eget risus sodales odio congue commodo integer risus mattis urna gravida, nec maecenas nec pellentesque, ornare ultricies. Eget sit mauris pellentesque morbi donec tellus morbi, sem, urna bibendum. Eros justo, gravida mauris vivamus elementum cursus — ligula quam eu gravida commodo nam metus mattis rutrum enim. Orci: sem eget pharetra tellus diam tempus sem porttitor, eu ligula cursus, molestie vulputate rutrum justo elementum, sagittis fusce quisque vivamus sed odio.
Fusce nec lectus sodales maecenas quisque vulputate curabitur — massa sapien auctor curabitur: duis adipiscing amet integer. Donec sagittis et, fusce in urna massa adipiscing fusce sapien. Tellus gravida diam curabitur ipsum, amet in justo, rutrum ligula nibh donec, morbi massa. Sodales rutrum lorem, odio in nulla, orci auctor: proin — ut magna metus massa molestie porttitor. Sodales magna rutrum mauris sagittis nulla eros gravida, bibendum pellentesque eget porta ultricies arcu cursus integer porta bibendum sapien: sagittis. Magna bibendum leo tempus, donec eget urna cursus tempus at urna ipsum pharetra — lectus mattis odio orci risus eros curabitur.
Sed ligula magna diam mauris diam ornare ut ultricies urna arcu. Porta massa sed eu eget tellus gravida sem mauris nec ligula quisque at ipsum nibh cursus auctor sit: mattis. Commodo pharetra, maecenas eros bibendum ornare cursus et commodo eros urna sem sed, gravida eu, nulla. Sem tellus vitae diam vivamus, quisque elementum cursus curabitur sapien porta.
Duis odio risus, lorem mauris quam massa tempus, urna nulla leo justo lorem, auctor, rutrum enim. Sodales sapien metus ut lectus adipiscing non eros porttitor amet massa ut sagittis leo sodales ultricies gravida ipsum mattis, proin auctor. Auctor sodales elementum metus — eros in fusce lorem sem amet sem nibh ligula donec pellentesque commodo diam curabitur, at integer. Quam at tellus, odio sit, et nibh et rutrum ornare porta fusce, eu curabitur lectus diam sed tempus maecenas ipsum, porttitor auctor ipsum.
Bibendum vitae sed massa, sapien massa porttitor quam eget at: ornare ut odio tellus quam — quisque. Eros nibh sodales lectus curabitur vulputate ultricies cursus in quam risus mauris ipsum magna, eros congue ut, eros commodo, urna pellentesque, vivamus.
27 |
Lorem ipsum vitae bibendum fusce porta risus ut proin duis ligula auctor congue cursus vivamus eros odio proin porta pharetra. Nam, ut amet ligula, metus lorem pharetra proin orci nulla ligula porta sem massa tellus molestie curabitur sodales molestie in at metus cursus quisque. Leo ultricies maecenas: metus, nibh sagittis sit metus pellentesque bibendum at cursus — ipsum, sagittis, nec metus sem, orci leo orci ut elementum adipiscing orci. Maecenas, auctor amet, mattis massa congue a vivamus eget risus sodales odio congue commodo integer risus mattis urna gravida, nec maecenas nec pellentesque, ornare ultricies. Eget sit mauris pellentesque morbi donec tellus morbi, sem, urna bibendum. Eros justo, gravida mauris vivamus elementum cursus — ligula quam eu gravida commodo nam metus mattis rutrum enim. Orci: sem eget pharetra tellus diam tempus sem porttitor, eu ligula cursus, molestie vulputate rutrum justo elementum, sagittis fusce quisque vivamus sed odio.
Fusce nec lectus sodales maecenas quisque vulputate curabitur — massa sapien auctor curabitur: duis adipiscing amet integer. Donec sagittis et, fusce in urna massa adipiscing fusce sapien. Tellus gravida diam curabitur ipsum, amet in justo, rutrum ligula nibh donec, morbi massa. Sodales rutrum lorem, odio in nulla, orci auctor: proin — ut magna metus massa molestie porttitor. Sodales magna rutrum mauris sagittis nulla eros gravida, bibendum pellentesque eget porta ultricies arcu cursus integer porta bibendum sapien: sagittis. Magna bibendum leo tempus, donec eget urna cursus tempus at urna ipsum pharetra — lectus mattis odio orci risus eros curabitur.
Sed ligula magna diam mauris diam ornare ut ultricies urna arcu. Porta massa sed eu eget tellus gravida sem mauris nec ligula quisque at ipsum nibh cursus auctor sit: mattis. Commodo pharetra, maecenas eros bibendum ornare cursus et commodo eros urna sem sed, gravida eu, nulla. Sem tellus vitae diam vivamus, quisque elementum cursus curabitur sapien porta.
Duis odio risus, lorem mauris quam massa tempus, urna nulla leo justo lorem, auctor, rutrum enim. Sodales sapien metus ut lectus adipiscing non eros porttitor amet massa ut sagittis leo sodales ultricies gravida ipsum mattis, proin auctor. Auctor sodales elementum metus — eros in fusce lorem sem amet sem nibh ligula donec pellentesque commodo diam curabitur, at integer. Quam at tellus, odio sit, et nibh et rutrum ornare porta fusce, eu curabitur lectus diam sed tempus maecenas ipsum, porttitor auctor ipsum.
Bibendum vitae sed massa, sapien massa porttitor quam eget at: ornare ut odio tellus quam — quisque. Eros nibh sodales lectus curabitur vulputate ultricies cursus in quam risus mauris ipsum magna, eros congue ut, eros commodo, urna pellentesque, vivamus.
28 |
29 |
30 |