2
0
mirror of https://github.com/koreader/koreader synced 2024-11-13 19:11:25 +00:00
Commit Graph

238 Commits

Author SHA1 Message Date
NiLuJe
ababbd7aad
Enhanced visual feedback around tar & zsync! (#4194)
* Move Kindle scripts to FBInk
* Proper progress bars around tar invocations
* Spinner during zsync processing
2018-09-06 01:35:48 +02:00
NiLuJe
0924b57877
Tweak/unbreak my CPUFreq experiment (#4119)
* Only switch to ondemand when we actually can, and when it's better than the current governor...
  This potentially leaves Mk.5 in the lurch, but there's no perfect solution there :/.

* Switch to UI for the unmark event of navigation hints markers
Might help on non-REAGL devices, and doesn't hurt there (re #3983).

* Switch SQLite DBs to WAL
Sounds nice in theory, behaves fine in practice.
2018-07-29 03:53:57 +02:00
NiLuJe
b509e54a2a
CPUFreq shenanigans on Kobo (#4114)
* Switch to ondemand CPUFreq governor on Kobo

My H2O boots with the userspace (!!) governor...
Note that the hardware appears to blissfully ignore any of this, because
the stats still show the CPU changing state on its own...
2018-07-28 16:09:58 +02:00
NiLuJe
60a6d5f542
Tweak KUAL extension (#4109)
The update option was broken
2018-07-25 20:37:30 +02:00
NiLuJe
6835c18ee6
Re-exec startup script on Kindle/Kobo when an OTA update is processed on startup (#4062)
So that we may properly pickup potential updates to the startup script
itself.
2018-07-07 22:27:38 +02:00
NiLuJe
4ffd959df4
Handle OTA updates during the restart loop on Kobo/Kindle (#4049)
* Handle OTA updates during the restart loop on Kobo/Kindle

So we can actually process OTA updates without ever truly exiting
KOReader (i.e., via the "Restart KOReader" menu entry) ;).
2018-07-04 19:25:55 +02:00
NiLuJe
8089d916a5
Visual feedback around tar/zsync on Kobo during OTA updates (#4043)
* With a bonus version normalizer fix.
  * And a zsync bump/fix to avoid softlocks with OpenStack HTTP frontends (also, pull those from the OTA mirror list).
2018-07-03 23:16:45 +02:00
NiLuJe
2d44baa561
Fix Android nightlies (#4038)
* Also, bonus KOA2 fix (third time's the charm!)
    Fix #3695
2018-07-02 00:23:18 +02:00
NiLuJe
e2a0929c51
Better KOA2 support (#4037)
* Better KOA2 support
    * Fix FL
    * Add physical pageturn keys
    * Add accelerometer support
* Possibly better NaturalLight handling on the Clara
* Fix WiFi module name used in some(?) Mk7 Kobos
* A bunch of kodev fixes
2018-07-01 17:35:12 +02:00
NiLuJe
2f3d1c80dd
Minimal KOA2 support (#4016)
* Minimal KOA2 support
(Touch, Screen, Battery). Hopefully :).
2018-06-23 18:08:11 -04:00
NiLuJe
18db509325 Assorted bag of fixes (#4014)
* Link to the WiKi, it's a bit more explainy ;).

* More WiFi trickery for some HW revs

* Fix Rev2 detection under KSM

That's to future-proof it, the other end of this hasn't made it into
current KSM build yet.

* Resync nickel.sh w/ current rcS

We don't have CPU, but we have PLATFORM, which is based on CPU, so,
that'll do :).

* Go back to using rmmod instead of modprobe -r

Functionally identical on current FW, will potentially avoid getting
outsmarted by modprobe if Kobo ever deigns shipping an actually usable
Linux system one day...

* Don't crash if screensavers directory doesn't exist

c.f., https://www.mobileread.com/forums/showpost.php?p=3706979&postcount=2919
2018-06-16 23:05:20 +02:00
NiLuJe
5871132c25
UI Behavior tweaks (#3983)
* Switch all initial highlights to "fast" update

i.e., everything that does an invert
Plus a few other things that refresh small UI elements onTap
Re #3130

* Tweak refreshtype for a number of widgets:
  * Fix iconbutton dimen
  * Make touchmenu flash on close & initial menu popup. Full-screen on close.
  * Use flashing updates when opening/closing dictionary popup. Full-screen on close.
  * Switch FileManager to partial.
    It's mostly text, and we want flash promotion there.
  * Make configdialog & menu flash on exit
  * Make FLWidget flash on close
  * virtualkeyboard: flash on layout change & popup.
  * Potentially not that great workaround to ensure we actually see the
highlights in the FM's chevrons
  * Flash when closing BookStatus Widget
  * Optimize away a quirk of the dual "fast" update in touchmenu

* Promote updates to flashing slightly more agressively.

* Document what each refreshtype actually does.

With a few guidelines on their optimal usecases.

* Switch remaining scheduleIn(0.0) to nextTick()

* Tighter scheduling timers

Shaving a hundred ms off UI callbacks...

* Cache FFI C Library namespace

* Ask MuPDF to convert pixmaps to BGR on Kobo

Fix #3949

* Mention koxtoolchain in the README

re #3972

* Kindle: Handle *all* fonts via EXT_FONT_DIR instead of bind mounts insanity

* Make black flashes in UI elements user-configurable

(All or nothing).

* Jot down some random KOA2 sysfs path
2018-06-02 12:10:55 -04:00
NiLuJe
0dbdd2f61f
Try to inhibit USBMS on Kindles (#3957)
re: #3955
2018-05-18 12:54:44 -04:00
NiLuJe
68c1246575
A round of Kindle fixes (#3955)
* Refresh Kindle model ID routines

* Pickup current OTA packages

We stopped shipping files w/ the full .tar.gz extension a looooong time
ago.

* And actually generally handle current packages properly

* Kindle screensaver handling experiment

WIP, because there's a fair bit of insanity left in there.
Namely, USBMS is anathema. We simply shouldn't do that, at all,
but the system allows us to do it and basically shoot ourselves in the
head one way or another.

* Don't try to handle the insanity that would be USBMS on Kindles

* Yay, one less thing to worry about :).

* Okay, that should be much saner...

Since the whole deal w/ letting the WM handle stuff was for SO, restrict
that to SO devices.
The other concern was USBMS, but we can't support it.

* Reword that

* And move that comment inside the branch, like its counterpart
2018-05-16 17:26:27 -04:00
NiLuJe
e3b7524d9c Another round of Kobo Fixes (#3939)
* Trim unneeded stuff from startup script

I was somehow convinced I'd already done that...
While we're there, explain why we need to siphon those specific vars

* Fix a stray eth0

-> $INTERFACE

* Be very very sure we have INTERFACE set in our env

re #3936

* Make getFirmwareVersion less fragile on Kobo

Not that we actually use it right now, but, still. :D

* Use the same syntax as the PRODUCT check

* Actually implement getProductId

Instead of a stray c/p ^^

* Properly identify the Rev2/Mark7 variants of existing devices

Namely, the H2O² and Aura SE
Not that the H2O²r2 support is still broken, this just allows us to
implement it cleanyl without breaking handling of the original H2O²

re #3925

* Tweak sleeps a bit around Kobo WiFi modules...

See if that jog things up (re #3936)

* Try harder not to suspend with WiFi on on Kobos

Because otherwise, things go boom. (re #3936)
2018-05-10 12:26:07 +02:00
mezzarobba
a3e16b3920 [fix] make wifi control work with my Kobo Touch N905 (#3920) 2018-05-01 14:49:37 +02:00
NiLuJe
3f92525ec7 Fix WiFi on Kobo (#3891)
Regression after bdb82d09c1
TL;DR: That thing is race-y as hell.

The more I play with Kobos, the more it feels like the whole thing's
held together by pieces of fraying strings...
2018-04-18 09:09:58 +02:00
NiLuJe
a36407080b Don't use a square icon on Kobo (#3889)
We ship it for use with fmon, and that means it gets processed by
Nickel, which expects an optimal AR of 0.75
2018-04-18 00:32:40 +02:00
Frans de Jonge
88dee4194d
[feat] SDL2: add window icon (new logo) (#3884)
Also update Ubuntu Touch icon

Fixes #2000, fixes #3858
2018-04-15 23:39:42 +02:00
Frans de Jonge
975a5834d7
[Android] Update icon to new logo (#3882)
Includes
https://github.com/koreader/android-luajit-launcher/pull/83

References
koreader/koreader-icons#1
koreader/koreader#3881
koreader/koreader#3858
koreader/koreader#2000
2018-04-15 22:49:20 +02:00
NiLuJe
bdb82d09c1 [chore] A round of Kobo specific script cleanup (#3876)
* Flag those scripts as executable in git

Somewhat irrelevant because we'll end up living on a FAT32 drive, but,
still.

* Cleanup Kobo startup script

Support KFMon >= 0.9.5

Don't siphon PRODUCT from nickel, it's exported by rcS, so fmon/KFMon
already inherit it.
Siphon NICKEL_HOME, on the off-chance nickel fails to figure that one
out for itself on restart.
Siphon LANG (This may be a terrible idea, rcS sets LANG to en_US.UTF-8,
while we set LC_ALL to en_US.UTF-8, but I don't know if nickel itself
ever updates LANG, since I have mine set to en_US also ;)).
My secret hope if that everything's working as it should and this ensures
we default to Nickel's locale on fresh installs?

Remove the extra sync on startup, both @Baskerville's fmon and KFMon are
smart enough not to do anything overly stupid, and recent FW versions
have a slightly more resilient DB anyway (rollback journal -> WAL).
This effectively shaves over a second off our startup time.

* Slimmed down the nickel restart script.

Based on current rcS
Scrapped a bucketload of irrelevant & legacy crap, since we're never
bootstrapping nickel, only restarting it.

* Update Kobo install instrcutions.

Point to KSM09, @Baskerville's fmon, and KFMon.
Deprecate legacy fmon, and as such, stop shipping a useless KoboRoot
tarball.
2018-04-15 15:05:45 +02:00
Frans de Jonge
c16cfa0e59
[chore] platform/appimage/AppRun: remove debug flag (#3868)
Output is a bit verbose otherwise, see https://github.com/koreader/koreader/issues/3853#issuecomment-381098701
2018-04-13 18:18:18 +02:00
Frans de Jonge
88dad166f2
[fix] AppImage: use $XDG_DOCUMENTS_DIR if available (#3865)
Fall back to `pwd` otherwise.

Fixes #3861.
2018-04-12 16:06:03 +02:00
probonopd
3585067796 [fix] Add Categories= key to koreader.desktop (#3854) 2018-04-10 15:06:32 +02:00
Frans de Jonge
ab712f1a29
[feat] Build AppImage (#3850)
References #1417.
2018-04-08 22:39:52 +02:00
Frans de Jonge
6c3ace9940
[Android] Makefile: only use VERSION, not REVISION (#3811)
Fixes always reinstalling resource package.

See https://github.com/koreader/koreader/pull/3723#issuecomment-376508917
2018-03-29 16:59:13 +02:00
Frans de Jonge
4c1c8b8c2e
[Android] bump for setFullscreen() without delay as well (#3721) 2018-03-05 15:55:17 +01:00
Frans de Jonge
857e88147f
[Kindle] Add preliminary support for Kindle Oasis 2 (#3698)
Screen refresh may still be broken.

References #3695.
2018-02-27 12:28:37 +01:00
Frans de Jonge
aadb81eb48
[feat] Add Android clipboard definition (#3479)
References https://github.com/koreader/koreader/issues/3441
2018-02-16 21:44:10 +01:00
Frans de Jonge
e928276d73
[Android] Update luajit-launcher 7z to 18.00 (#3617)
See https://github.com/koreader/android-luajit-launcher/pull/79
2018-01-19 11:27:56 +01:00
Frans de Jonge
51f2fa1845
[fix, Android] android-luajit-launcher: update 7z URL/commit hash (#3604)
Fixes Android nightly builds, see https://github.com/koreader/koreader/issues/3100#issuecomment-357499189
2018-01-14 15:59:30 +01:00
Huang Xin
a44b39fda6
[build] Darwin build of Android port (#3520) 2017-11-28 02:23:54 +08:00
poire-z
af48c7c2b7 Android: Change screenOrientation to sensorPortrait (#3474) 2017-11-08 22:27:05 +01:00
Frans de Jonge
575fc82081 Bump android-luajit-launcher 2017-10-28 12:07:44 +02:00
Frans de Jonge
8b36566c6a [Android] Bump luajit-launcher (more lib loading debug info) (#3401) 2017-10-22 15:28:31 +00:00
Frans de Jonge
e0bc0a1649 Bump android-luajit-launcher (contains x86 nightly build fix) (#3384) 2017-10-20 19:46:46 +00:00
Huang Xin
c22b8393d7 [android] fix hide nav bar on activity create (#3357) 2017-10-14 23:42:55 +08:00
Frans de Jonge
b4bb32254a kodev: Add $ANDROID_ARCH to enable x86 build (#3353)
You'll still have to call it with `ANDROID_ARCH=x86 ./kodev build/release/run android`.

Don't forget to `./mk-luajit.sh clean` in luajit-launcher when changing architectures.

* Bump android-luajit-launcher
  This includes the fix for Android 8. Fixes #3126.
* Bump base
2017-10-13 21:43:58 +02:00
Frans de Jonge
ac7119c433 [fix] Android screen blackout on first light change (#3303) 2017-10-05 17:13:11 +02:00
Frans de Jonge
94c0e01b7f [fix, Android] restore patch.lua and fix odd anonymous function issue
See https://github.com/koreader/koreader/issues/3214#issuecomment-332218408 and https://github.com/koreader/koreader/issues/3118#issuecomment-332633481
2017-09-27 21:45:07 +02:00
Huang Xin
a4e1a3ba5e reflect changes in koreader/android-luajit-launcher#62 (#3254) 2017-09-24 05:58:34 +08:00
Frans de Jonge
87cf2864d9 Bump Android stuff (#3251)
https://github.com/koreader/koreader-base/pull/516
https://github.com/koreader/android-luajit-launcher/pull/62
2017-09-23 21:16:10 +02:00
Frans de Jonge
4360837e3b [Android] Update to NDK 15 (#3233)
Also improve SDK installation for ease of setting up development system.

This also puts in place most of the missing pieces to finish the intent in #3064.
2017-09-17 16:04:43 +02:00
Frans de Jonge
110c882bba Bump android-luajit-launcher (fixes nightly build) (#3229) 2017-09-17 09:10:25 +02:00
Frans de Jonge
70e6aa9093 Bump android-luajit-launcher (#3227)
Part of the spirit of #3064. Making it easier to test different things.
2017-09-16 18:25:39 +02:00
Frans de Jonge
abaa699080 Bump android-luajit-launcher
* Sync LuaJIT with koreader-base at v2.1.0-beta2 https://github.com/koreader/android-luajit-launcher/pull/58
2017-08-21 16:26:22 +02:00
Frans de Jonge
06d7eea507 [Kindle] Add support for Kindle PW3 "manga" model
Model number either `0LK` or `0LL`

See discussion in https://www.mobileread.com/forums/showthread.php?p=3565878#post3565878
2017-08-11 00:05:32 +02:00
Frans de Jonge
fd7382514e Bump luajit-launcher
Fixes #3038

Also includes "Fullscreen status bar height" https://github.com/koreader/android-luajit-launcher/pull/56
2017-08-04 10:53:12 +02:00
Frans de Jonge
f95c52f680 Bump luajit-launcher
Fixes #3006
2017-07-18 15:56:53 +02:00
Frans de Jonge
6870bc2996 Bump luajit-launcher
Includes
* Android fullscreen mode (fa9dd61)
* add lib file name without suffix as fallback (c139b54)
2017-06-11 15:47:57 +02:00
Hzj_jie
30378eb2a8 Add restart koreader function and ensure FlushSettings event can be delivered to all widgets (#2772) 2017-05-16 02:11:11 -07:00
Frans de Jonge
1850ebca0d (chore) koreader.sh: remove 32-bit workaround
Final fix for #2502.
2017-04-24 01:31:08 -07:00
Qingping Hou
bdd0392a45 ota(fix): use gun tar in ubuntu touch and pocketbook 2017-04-24 08:29:47 +02:00
Qingping Hou
d1cc3bd6c2 ota(fix): always purge ota update files 2017-04-23 08:25:28 +02:00
a-kohout
870c4d3859 Update koreader.sh; fixes #2791
tar fails to apply permissions on fat32 filesystem. thus mv doesn't get executed and consequently OTA package gets applied on every launch.
2017-04-22 16:27:37 -07:00
Frans de Jonge
0eec5b5174 Simplify koreader.sh
`-C "${KOREADER_DIR}"` isn't needed, see https://github.com/koreader/koreader/issues/2752#issuecomment-293698136.
2017-04-12 22:37:06 +02:00
Frans de Jonge
5de8310aa6 Kobo (koreader.sh): install OTA update in working directory
Thanks to @a-kohout

Fixes #2752
2017-04-12 01:49:23 -07:00
Frans de Jonge
e8c01274f4 Travis: enforce shellscript coding style
* enormous coding style update

* update luajit-launcher

All changes are formatting only except for:

* new more correct pushd/popd style
	* keeps useful indentation
	* prevents execution of commands when pushd failed (cf. https://github.com/koalaman/shellcheck/wiki/SC2164 and https://github.com/koalaman/shellcheck/issues/863)

```
pushd some_dir && {
    command1
    command2
} || exit
popd
```
2017-04-11 15:30:23 +02:00
Frans de Jonge
9d39f11f59 Travis: speed up by caching base and running luacheck earlier (#2741)
* Travis: speed up by caching base and running luacheck earlier
* ignore bin and install for git status change detection
* skip coverage except on official master branch. It adds 3 whole minutes and does nothing to prevent regressions
* also cache ~/.luarocks. It evens out but would generally prevent remote timeout shenenigans
* remove base cache dir before caching with verbose remove to see what's going on
* more inclusive shell code quality analysis
* fixed more shellcheck issues
* better shellcheck/shfmt debugging info
2017-04-11 11:23:42 +02:00
Frans de Jonge
e5bcdee85e Add ShellCheck and shfmt shell code quality analysis (#2712)
* Add ShellCheck and shfmt shell code quality analysis

* kobo/koreader.sh: remove useless $PREFIX

* kobo/koreader.sh: fix rotation issue caused by #2731

* Travis: speed up (caching Luarocks should shave a minute off install process)
2017-04-09 10:42:16 +02:00
pazos
3a75b6deab use fullpath for reboot 2017-04-06 23:30:00 -07:00
pazos
31b246574b Kobo framebuffer: workaround to support +4.0FW 2017-04-06 23:30:00 -07:00
Qingping Hou
c34e04e081 wifi(fix): use -D wext for kobo wpa_supplicant 2017-02-27 11:08:57 +01:00
Qingping Hou
6b50a2783b kobo(fix): load wifi module by ENV
Aura One uses 8189fs instead of dhd module
2017-02-27 11:08:57 +01:00
Martín Fernández
79fd02e020 Kobo: remove useless error messages from ntx_hwconfig 2017-02-20 18:02:11 -08:00
Qingping Hou
f95ad00b9e feat: add logger module & rewrite kobo suspend script in lua 2017-01-02 19:52:09 -08:00
poire-z
65881738b5 disable-wifi.sh: decreased sleep duration 2016-12-14 11:39:46 -08:00
Qingping Hou
744115de9f crash.log(fix): obviously I suck at counting zeros 2016-12-10 16:06:51 -08:00
poire-z
08a92de179 Fix: avoid system hang when disabling wifi (#2394) 2016-12-04 12:03:11 -08:00
cibersheep
922cd0fecf Update manifest.json
- Update to current framework

- "name": should match: «hooks name».«nickname»
2016-12-03 15:21:20 -08:00
cibersheep
14155c3662 Policy_version version bump 2016-12-03 15:20:43 -08:00
Qingping Hou
b7cdf103e3 chore: fix luacheck error & add comment to release-ip.sh 2016-11-19 13:11:23 -08:00
Hzj_jie
8e5f294902 Return correct result from koreader.sh 2016-11-11 22:41:46 -08:00
Qingping Hou
efae2ed16f network(fix): automaticallly obtain IP if network is already authenticated 2016-11-06 23:56:29 -08:00
Qingping Hou
705d3e4cb4 doc(minor): document alternative usb plug event source for kobo 2016-10-17 23:45:47 -07:00
Qingping Hou
0ed95406a4 log(fix): do not pipe stdout to /dev/null during crash log rotation 2016-10-16 01:29:02 -07:00
Qingping Hou
5309a0a47f misc: rotate crash.log for kobo/kindle/pocketbook 2016-10-14 20:37:54 -07:00
Qingping Hou
3d79d44381 build: fix android and pocketbook builds 2016-10-09 23:28:16 -07:00
Qingping Hou
cc4e510194 bump koreader base for android build tweaks 2016-10-09 16:35:45 -07:00
Qingping Hou
c716fef0e3 minor: change wording in restore-wifi-sync script 2016-10-08 15:53:02 -07:00
Hzj_jie
52bcf87643 always release ip before obtaining a new one 2016-09-24 01:10:45 -07:00
Hzj_jie
da2c57f93a Automatically connect WIFI after Kobo has been resumed (#2215)
* Add bash scripts to control WIFI / IP, so we can share them with frontend/device/kobo/device.lua.

* add test cases
2016-09-01 00:05:40 -07:00
NiLuJe
2013a66fdd Some more Kobo suspend tweaks...
Disable wakeup_count handling, that's often causing more harm than
anything else...
Nickel doesn't even use it, that should have been a hint ;).

Make the logging slightly less confusing.
Add commented out debug features (dumping relevant dmesg output).

Re #2188
2016-07-31 19:01:15 +02:00
NiLuJe
0f184e30ed Tweak nickel restart script
Also restart sickel...
2016-07-31 18:13:16 +02:00
NiLuJe
207af74527 Support the White Kindle PW3 & the Kindle Oasis.
Also attempts to support the new Kindle Basic, pending confirmation.
2016-07-09 03:16:08 +02:00
chrox
41f2fe85b7 fix #2119 by updating libSDL2.so and fix Evernote Plugin 2016-07-05 22:16:42 +08:00
chrox
687b6df4f2 add support of screen brightness settings for Android
and use standrad Android API to query battery level and charging status
This should fix #2025, fix #1759 and fix #1415.
2016-06-24 02:05:20 +08:00
NiLuJe
892e3c0f1e Kobo startup script tweak.
When using KFMon, make the reboot on exit user-configurable.
The user can now choose to try to restart Nickel directly, like with
fmon.
For now, we still do a full reboot by default.
2016-05-15 20:52:46 +02:00
Frans de Jonge
8643d38a68 Removed some bashisms 2016-05-06 18:51:10 +02:00
NiLuJe
e90f1018db Make the KFMon chekc actually accurate...
Sleep does wonder for your brain!
2016-05-01 15:11:47 +02:00
NiLuJe
b406e3591f Update Kobo startup script for KFMon
Takes care of some potentially critical stuff ;p
2016-05-01 05:59:50 +02:00
NiLuJe
66b40955c6 Tweak the timing of the previous commit a bit
On those FW, we can get an up-to-date status bar, instead of the one
from our fb dump ;).
2016-04-12 17:09:21 +02:00
NiLuJe
a3536e28a6 Bypass a few unneeded usleep when possible
If awesome is stopped, it won't cause any trouble ;).
2016-04-12 16:17:17 +02:00
NiLuJe
879b593455 Refresh the UI properly on exit on more Kindle FW
This broadens the fix applied to FW >= 5.6.5 to the whole range of FW
5.x, because it appears to be needed on some FW 5.3.7.x versions...

Fix #1924
2016-04-12 16:17:17 +02:00
chrox
f3e0d44cc4 disable jit on some modules on android
to make koreader on Android  more stable

and with these opt params:
```
require("jit.opt").start("sizemcode=64","maxmcode=64", "hotloop=10000")
```

The strategy here is that we only use precious mcode memory (jitting)
on deep loops like the several blitting methods in blitbuffer.lua and
the pixel-copying methods in mupdf.lua. So that a small amount of mcode
memory (64KB) allocated when koreader is launched in the android.lua
is enough for the program and it won't need to jit other parts of lua
code and thus won't allocate mcode memory any more which by our
observation will be harder and harder as we run koreader.
2016-04-07 23:43:58 +08:00
Qingping Hou
ff273158af bump luajit-launcher 2016-03-21 01:11:55 -07:00
Qingping Hou
dceaa01250 minor: redirect all output to crash.log 2016-03-17 21:55:46 -07:00
Qingping Hou
8621720d19 bump base and luajitlauncher 2016-03-16 22:57:17 -07:00
Frans de Jonge
b8b0684e30 Add a comment with 'from_nickel', fixes #1889 2016-03-15 18:12:01 +01:00
Qingping Hou
55fa046d49 android: set android log tag to KOReader 2016-03-13 19:49:13 -07:00