Compare commits

..

565 Commits

Author SHA1 Message Date
Olivier Gagnon
c87e9bdf84 v1.0.0 changes 2021-11-09 23:42:36 -05:00
Olivier Gagnon
b503b8374a notes.txt 2021-11-09 13:05:13 -05:00
Olivier Gagnon
fd740e0d0d Added Steam assets. 2021-11-09 12:58:32 -05:00
Olivier Gagnon
e690dad1ea tried docker but performance is abysmal 2021-11-09 00:06:51 -05:00
Olivier Gagnon
58d652da54 fix something about covenant sleeve purchases 2021-11-05 21:57:41 -04:00
Olivier Gagnon
eb6f016ac1 fix corp softcap 2021-11-05 21:01:23 -04:00
Olivier Gagnon
88b4a7d862 bugfix 2021-11-05 17:12:52 -04:00
Olivier Gagnon
f8917473f8 get rid of rollover rep 2021-11-05 16:09:19 -04:00
Olivier Gagnon
ec76c2ecca update ns2 doc 2021-11-05 15:43:38 -04:00
Olivier Gagnon
d83650c3bc speed up ns1 2021-11-05 14:32:21 -04:00
Olivier Gagnon
362d2eb51d Fix a few bugs and also added the concept of gang power multiplier 2021-11-05 13:20:52 -04:00
Olivier Gagnon
73d0f2074c formulas time in millis 2021-11-05 00:27:30 -04:00
Olivier Gagnon
5d37eecdd6 electron debug flag 2021-11-05 00:19:41 -04:00
Your Name
74739af031 ok 2021-11-05 00:14:11 -04:00
Olivier Gagnon
7b950bd7d9 update rtd a little. 2021-11-03 20:27:32 -04:00
Olivier Gagnon
14150d3e33 work on making the netscript api tighter 2021-11-03 20:19:52 -04:00
Olivier Gagnon
c5fb5155f3 work on making sure all the functions are accounted for 2021-11-03 18:16:10 -04:00
Olivier Gagnon
2578ea51c3 fix blade time 2021-11-03 13:43:03 -04:00
Olivier Gagnon
d82f3e7ad7 more doc 2021-11-03 00:33:14 -04:00
Olivier Gagnon
2b79871c02 doc 2021-11-03 00:27:21 -04:00
Olivier Gagnon
37845c57c0 migrate some of formulas 2021-11-02 22:58:40 -04:00
Olivier Gagnon
0bee743b47 v1.0.0 migration guide 2021-11-02 22:49:46 -04:00
Olivier Gagnon
b2bf3fc21f v1 api breaks 2021-11-02 22:11:22 -04:00
Olivier Gagnon
fcf29fa37c br in noodle bar 2021-11-02 20:34:03 -04:00
Olivier Gagnon
55d1dca7b7 Add noodle power. 2021-11-02 20:30:19 -04:00
Olivier Gagnon
3633134a69 doc changes 2021-11-02 20:10:30 -04:00
Olivier Gagnon
40cd679be5 few doc update 2021-11-02 17:48:02 -04:00
Olivier Gagnon
048ef0e69e Added recovery mode 2021-11-02 17:28:19 -04:00
Olivier Gagnon
fa44b38506 fix missing colors in infiltration 2021-11-02 16:20:32 -04:00
Olivier Gagnon
437d96edbe slashgame window cannot be at the end 2021-11-02 16:13:58 -04:00
Olivier Gagnon
d7c23b975c fix code not saving 2021-11-02 16:10:01 -04:00
Olivier Gagnon
a6642a1962 maybe fix rtd 2021-11-02 15:51:18 -04:00
Olivier Gagnon
9f7c42754b npm run doc work now 2021-11-02 14:42:41 -04:00
Olivier Gagnon
a81a9af1c7 doc changes 2021-11-02 14:32:54 -04:00
Olivier Gagnon
215932c59c fix doc 2021-11-01 23:31:01 -04:00
Olivier Gagnon
94137228e0 remove double server profiler from dark web 2021-11-01 11:41:59 -04:00
Olivier Gagnon
90090f8273 Employee salary no longer increase 2021-10-31 16:01:23 -04:00
Olivier Gagnon
9b0726ca9a documentation 2021-10-30 16:03:34 -04:00
Olivier Gagnon
01dcf3c64f Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-10-30 15:47:04 -04:00
Olivier Gagnon
feb0430aff work on doc 2021-10-30 15:46:34 -04:00
hydroflame
4b52fc81ed Merge pull request #1638 from Saynt-Garmo/dev
Programs grant int exp based on time
2021-10-30 12:47:28 -04:00
Olivier Gagnon
920b7325b4 City map use more letters than just X 2021-10-30 12:43:45 -04:00
Olivier Gagnon
d031a68fd2 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-10-30 12:34:19 -04:00
Olivier Gagnon
43fc5dfd48 work on doc 2021-10-30 12:34:14 -04:00
tyasuh.taeragan@gmail.com
afd34ef9ca Programs grant int exp based on time 2021-10-29 20:27:20 -04:00
hydroflame
c2ed41fae2 Merge pull request #1636 from Saynt-Garmo/dev
Args now stringified next to script names
2021-10-29 19:25:42 -04:00
tyasuh.taeragan@gmail.com
55a2f0cd9e Args now stringified next to script names 2021-10-29 18:01:51 -04:00
hydroflame
f7ca39714e Merge pull request #1635 from Saynt-Garmo/dev
Going Public Exploit Fix.
2021-10-29 17:18:20 -04:00
tyasuh.taeragan@gmail.com
c9b4675061 Going Public Exploit Fix. 2021-10-29 16:20:38 -04:00
Olivier Gagnon
f99c3fd0cd dont double log 2021-10-29 13:09:58 -04:00
Olivier Gagnon
d99d3fc222 dont run inf loop check on ns1 scripts 2021-10-29 01:23:15 -04:00
Olivier Gagnon
2926ee0fc0 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-10-28 23:04:40 -04:00
Olivier Gagnon
d1d0ccf345 added possible infinite loop checker 2021-10-28 23:04:26 -04:00
hydroflame
4498bca922 Merge pull request #1626 from Saynt-Garmo/dev
Invisible Black Text
2021-10-28 20:48:44 -04:00
tyasuh.taeragan@gmail.com
14b2f2ad4d Invisible Black Text 2021-10-28 20:45:09 -04:00
hydroflame
f64e0e0475 Merge pull request #1623 from Saynt-Garmo/dev
Number lvl upgrade corpo ui
2021-10-28 18:21:57 -04:00
tyasuh.taeragan@gmail.com
8d6f0a145e Number lvl upgrade corpo ui 2021-10-28 18:20:43 -04:00
Olivier Gagnon
a34d6e0dfa added button as editable color 2021-10-28 17:38:22 -04:00
Olivier Gagnon
ec49029dde revert formulas safeguard 2021-10-28 16:43:47 -04:00
Olivier Gagnon
3915fcaab4 Merge branch 'master' into dev 2021-10-28 16:42:03 -04:00
Olivier Gagnon
cc438cbabd revert safeguard 2021-10-28 16:41:37 -04:00
hydroflame
4b794bf554 Merge pull request #1615 from danielyxie/dev
safeguyard against Formulas.exe missing
2021-10-28 15:59:22 -04:00
Olivier Gagnon
ee5eaf9658 safeguyard against Formulas.exe missing 2021-10-28 15:59:04 -04:00
hydroflame
2c41877717 Merge pull request #1612 from danielyxie/dev
background primary and secondary are different colors, fix bug with growth security
2021-10-28 15:25:01 -04:00
Olivier Gagnon
dc88d9b478 minor tweak 2021-10-28 15:24:33 -04:00
Olivier Gagnon
f710c52bdc background primary/secondary and fix securtiy with grow 2021-10-28 15:22:55 -04:00
hydroflame
61a27c3a58 Merge pull request #1604 from danielyxie/dev
Real Estate takes up a little bit of room
2021-10-28 00:07:19 -04:00
Olivier Gagnon
cb6dfd1656 Real Estate takes a LITTLE bit of room 2021-10-28 00:06:57 -04:00
Olivier Gagnon
2e8cdc23d9 use NetscriptDefinitions as source of truth 2021-10-27 23:58:07 -04:00
hydroflame
f2c53bc556 Merge pull request #1603 from danielyxie/dev
Formulas.exe was added.
2021-10-27 23:43:05 -04:00
Olivier Gagnon
e892e16585 Formulas.exe 2021-10-27 23:41:47 -04:00
hydroflame
4fbcb1c4e9 Merge pull request #1602 from danielyxie/raw
netscript def is raw loaded
2021-10-27 23:19:31 -04:00
Olivier Gagnon
91877dc172 netscript def is raw loaded 2021-10-27 23:19:19 -04:00
hydroflame
71542dbe7f Merge pull request #1600 from danielyxie/dev
added ram cost for new functions.
2021-10-27 21:14:12 -04:00
Olivier Gagnon
d4849cf50f added ram cost for new functions. 2021-10-27 21:13:57 -04:00
hydroflame
a27aa2e30f Merge pull request #1599 from danielyxie/dev
added some funcions
2021-10-27 21:08:22 -04:00
Olivier Gagnon
53cb37a9fd added some funcions 2021-10-27 21:07:58 -04:00
hydroflame
366188e413 Merge pull request #1598 from danielyxie/dev
convert infiltration to use key instead of keyCode
2021-10-27 20:52:26 -04:00
Olivier Gagnon
b1328b02ce convert infiltration to use key instead of keyCode 2021-10-27 20:52:16 -04:00
hydroflame
804bc25283 Merge pull request #1596 from danielyxie/dev
fix autoc single letter flags
2021-10-27 19:21:40 -04:00
Olivier Gagnon
6835cbaa26 fix autoc single letter flags 2021-10-27 19:21:28 -04:00
hydroflame
a4d4ebe2a2 Merge pull request #1594 from danielyxie/dev
Fix ram miscalc and ls with tiemstamps
2021-10-27 19:10:38 -04:00
Olivier Gagnon
f92db3b8f8 fix ram miscalc 2021-10-27 19:10:15 -04:00
hydroflame
82d1560f52 Merge pull request #1591 from danielyxie/ram-miscalc
Ram miscalc
2021-10-27 18:55:33 -04:00
Olivier Gagnon
8ab9a27966 fix ram miscalc 2021-10-27 18:55:06 -04:00
Olivier Gagnon
4ce0b59310 maybe ram miscalc? 2021-10-27 18:25:22 -04:00
hydroflame
565aaba8ee Merge pull request #1589 from danielyxie/dev
fix static ram miscalc for stock market
2021-10-27 17:35:15 -04:00
Olivier Gagnon
a7632aed29 fix static ram miscalc for stock market 2021-10-27 17:35:02 -04:00
hydroflame
3414eb8306 Merge pull request #1588 from danielyxie/dev
Fix static ram miscalc
2021-10-27 16:17:19 -04:00
Olivier Gagnon
49d807c9a9 fix static ram calc 2021-10-27 16:17:02 -04:00
Olivier Gagnon
9f14f2b863 comment 2021-10-27 15:56:04 -04:00
hydroflame
02bdb41768 Merge pull request #1587 from danielyxie/dev
fix Alter Reality
2021-10-27 15:55:25 -04:00
Olivier Gagnon
c9565a2263 fix Alter Reality 2021-10-27 15:55:11 -04:00
hydroflame
288987a93d Merge pull request #1586 from danielyxie/dev
v0.58.0 - Road to Steam
2021-10-27 15:24:21 -04:00
Olivier Gagnon
97ec193aac add more changelog 2021-10-27 15:23:52 -04:00
Olivier Gagnon
dc09b2a286 v0.58.0 2021-10-27 15:19:53 -04:00
Olivier Gagnon
8f097ebb32 v0.58.0 2021-10-27 15:16:16 -04:00
hydroflame
76ffecc7bb Merge pull request #1585 from danielyxie/dev
remove memory leak
2021-10-27 14:29:24 -04:00
Olivier Gagnon
b255318a20 remove memory leak 2021-10-27 14:29:13 -04:00
hydroflame
daddf5eace Merge pull request #1581 from danielyxie/dev
Money tracked more precisely.
2021-10-27 14:19:05 -04:00
Olivier Gagnon
48988e228e track money more precisely. 2021-10-27 14:18:33 -04:00
Olivier Gagnon
9f6767062b money is readonly 2021-10-27 13:28:36 -04:00
hydroflame
623031c8ad Merge pull request #1580 from danielyxie/dev
fix gang earnings
2021-10-27 11:06:07 -04:00
Olivier Gagnon
150b8600e4 fix gang earnings 2021-10-27 11:04:28 -04:00
hydroflame
e680730450 Merge pull request #1579 from danielyxie/dev
Gang changes
2021-10-26 23:04:56 -04:00
Olivier Gagnon
e49dda0b35 build 2021-10-26 23:03:30 -04:00
Olivier Gagnon
738152d614 New sf -1 and changes to gang to rely more on territory 2021-10-26 23:02:46 -04:00
hydroflame
87f78cbc6f Merge pull request #1577 from danielyxie/dev
few fixes
2021-10-26 22:25:45 -04:00
Olivier Gagnon
c1448cfe65 few fixes 2021-10-26 22:25:30 -04:00
hydroflame
c7cf9c501b Merge pull request #1576 from danielyxie/dev
Fix rep transfer on new job
2021-10-26 22:03:50 -04:00
Olivier Gagnon
7733ee0375 Fix rep transfer on new job 2021-10-26 22:03:34 -04:00
Olivier Gagnon
504ee46950 terminal colors 2021-10-26 20:26:05 -04:00
hydroflame
b2f09e4880 Merge pull request #1574 from danielyxie/dev
revert incite violence effect
2021-10-26 19:55:48 -04:00
Olivier Gagnon
6865fe6463 revert incite violence effect 2021-10-26 19:55:34 -04:00
hydroflame
f3d162e5cd Merge pull request #1573 from danielyxie/dev
fix bug in corp
2021-10-26 17:45:41 -04:00
Olivier Gagnon
f242bb5107 fix bug in corp 2021-10-26 17:43:35 -04:00
hydroflame
52b5dd801f Merge pull request #1572 from danielyxie/dev
Added kill all scripts button
2021-10-26 15:51:08 -04:00
Olivier Gagnon
ba72fd7fb5 Added kill all scripts button 2021-10-26 15:50:55 -04:00
hydroflame
00dd4cbc35 Merge pull request #1571 from danielyxie/dev
fix some issues with badges
2021-10-25 11:17:52 -04:00
Olivier Gagnon
f915ba61a9 fix some issues with badges 2021-10-25 11:17:41 -04:00
hydroflame
e35de9ee3a Merge pull request #1566 from danielyxie/dev
fix sleeve in netscript def
2021-10-24 12:19:11 -04:00
Olivier Gagnon
65ac7ff6e3 fix sleeve in netscript def 2021-10-24 12:19:01 -04:00
hydroflame
3b6057798d Merge pull request #1565 from danielyxie/dev
no longer remove badges because apparently lmao everything is bugges
2021-10-24 11:14:38 -04:00
Olivier Gagnon
f044dc6603 no longer remove badges because apparently lmao everything is bugges 2021-10-24 11:14:21 -04:00
hydroflame
ddb86ebfba Merge pull request #1562 from danielyxie/dev
Fix a few bugs
2021-10-23 16:04:09 -04:00
Olivier Gagnon
c34d53bc14 Added recent scripts subpage of active scripts 2021-10-23 16:04:00 -04:00
Olivier Gagnon
6d39fda3fa fix a few bugs 2021-10-23 15:22:58 -04:00
Olivier Gagnon
0afb2e5f5d remove comments 2021-10-23 14:40:57 -04:00
Olivier Gagnon
a0039d9667 beautify using monaco 2021-10-23 14:40:46 -04:00
Olivier Gagnon
148611dd4f Merge branch 'dev' of github.com:danielyxie/bitburner into dev
t push
2021-10-23 14:36:13 -04:00
Olivier Gagnon
f5b23262f6 fix react error 2021-10-23 14:36:07 -04:00
hydroflame
74331f6399 Merge pull request #1560 from Saynt-Garmo/dev
Hacknet Core Bonus applies on new core bought.
2021-10-23 14:16:50 -04:00
tyasuh.taeragan@gmail.com
82c85b381c Hacknet Core Bonus applies on new core bought. 2021-10-23 11:42:18 -04:00
Olivier Gagnon
9493768c0b fmt 2021-10-23 10:09:43 -04:00
Olivier Gagnon
eec75b0840 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-10-23 10:08:11 -04:00
Olivier Gagnon
9982951650 move air 2021-10-23 10:08:06 -04:00
hydroflame
bbb69952e8 Merge pull request #1559 from Saynt-Garmo/dev
Toasts and Typos.
2021-10-23 10:07:39 -04:00
tyasuh.taeragan@gmail.com
2e7f164b5f Prettified 2021-10-22 16:35:05 -04:00
Olivier Gagnon
63939509e5 Chaos has a bigger effect and Incite Violence has diminishing return 2021-10-22 15:54:14 -04:00
Saynt-Garmo
9dcd74462c Merge branch 'danielyxie:dev' into dev 2021-10-22 15:42:01 -04:00
tyasuh.taeragan@gmail.com
b843958110 Typo correction, Toasts to Noodle Bar, Hopsitlized Functions 2021-10-22 15:32:44 -04:00
tyasuh.taeragan@gmail.com
4f7199c0bd Toasts for Noodles Eaten, Hospitalized. 2021-10-22 15:30:13 -04:00
Olivier Gagnon
a2aa5aa9f3 Merge branch 'dev' of github.com:danielyxie/bitburner into dev
t push
2021-10-22 15:21:15 -04:00
Olivier Gagnon
dce11f525a fix a few bug 2021-10-22 15:21:10 -04:00
hydroflame
5e4934615f Merge pull request #1554 from CalvinTrop/dev
Added "solarish-dark" and "solarish-light" themes to script editor based on Solarized
2021-10-22 14:30:52 -04:00
hydroflame
93c5841ecb Merge pull request #1555 from Snarling/netscriptfunctions-streamlining
Some NetscriptFunctions fixes/streamlining
2021-10-22 14:30:37 -04:00
Snarling
2867a15b95 Re-add cautionary tale for editing imported scripts 2021-10-19 20:25:37 -04:00
Snarling
14c41d2aab Add script editor documentation for getServer 2021-10-19 10:27:53 -04:00
Snarling
d035a4099f Streamlining for NetscriptFunctions
* Functions that used GetServer and then threw an error on null now use safeGetServer to do that for them.
* Parameter names for ip have been changed to hostname.
* Functionality of getPurchasedServers(false) to return an array of IPs was restored (it was broken by the change to hostnames as primary key).
* Dynamic ram message was updated to omit the part about modifying imported scripts, since this is no longer an issue.
* Dynamic ram violation samples were updated so that they would actually avoid using the variable name 'scan' (which would not subvert ram calculations).
* Included a fix for getServer to default to script's current server if no hostname is specified (per doc page).
2021-10-19 10:13:19 -04:00
CalvinTrop
010d3bfaef Merge branch 'danielyxie:dev' into dev 2021-10-18 17:00:38 -07:00
Jeff Baars
ab60b411ca Bracket highlighting per Solarized example js images 2021-10-18 16:58:23 -07:00
Jeff Baars
fd9d8d5c8a Added solarish-dark and solarish-light themes to code editor based on Solarized: https://ethanschoonover.com/solarized/ 2021-10-18 16:20:41 -07:00
Olivier Gagnon
ffc8133fb8 some doc 2021-10-18 19:12:41 -04:00
Olivier Gagnon
a358c270f6 fix corp equation 2021-10-18 18:55:28 -04:00
Jeff Baars
7103601403 Added Solarized dark and light themes to code editor. 2021-10-18 13:41:26 -07:00
Olivier Gagnon
7ef4df414f fix sleeve task selector not getting the right task when loading the screen 2021-10-18 15:01:06 -04:00
hydroflame
c9a0592d23 Merge pull request #1552 from danielyxie/dev
fix sleeve criming
2021-10-18 14:59:41 -04:00
Olivier Gagnon
e52eff7771 fix sleeve criming 2021-10-18 14:59:18 -04:00
hydroflame
2ffb435598 Merge pull request #1550 from danielyxie/dev
Throw error when trying to pass non-string/number to other scripts
2021-10-18 14:30:04 -04:00
Olivier Gagnon
c4f59d4129 throw error when trying to pass non-string or number to other scripts 2021-10-18 14:29:43 -04:00
Olivier Gagnon
0419118fb1 fix missing table body 2021-10-18 14:15:43 -04:00
hydroflame
ab48c7062f Merge pull request #1547 from Snarling/tutorial-text-fixes
Fix some minor tutorial issues
2021-10-18 14:14:00 -04:00
hydroflame
2444305625 Merge pull request #1546 from Snarling/char-overview-overhaul
Character Overview Overhaul
2021-10-18 14:13:52 -04:00
hydroflame
55504d600d Merge pull request #1544 from Snarling/patch-3
Reduce repetitive code sections (bladeburner general actions)
2021-10-18 14:13:43 -04:00
Snarling
f915799fdc Reduce size of visibility-toggle Fab
Current fab is oversized, reduce size to further reduce click footprint of visibility toggle.
2021-10-18 05:45:13 -04:00
Snarling
5be4fb7aae Fix some minor tutorial issues
Changed example prompt to show n00dles for "hack" and "home" commands when connected to n00dles, fixed one missing capitalization
2021-10-18 04:12:45 -04:00
Snarling
61770ea717 Character Overview Overhaul
* Moved hardcoded styles from the hardcoded container div into a class, and assigned that class to a Mui component.
* Otherwise removed excess layered components
* Visibility toggle area no longer occupies the whole width of the overview area. This was blocking input near the top right (noticeable in corp).
2021-10-18 03:14:33 -04:00
Snarling
6bfec83d91 Update GeneralActions.tsx 2021-10-18 00:02:23 -04:00
Snarling
f105002847 Reduce repetitive code sections
Iteratively define general actions instead of defining each individually.
Remove anonymous function that automatically runs, placing code into main section of file so that it still automatically runs.
(untested - I don't have a local copy set up yet to test these changes on)
2021-10-17 20:02:22 -04:00
hydroflame
9383ae7be6 Merge pull request #1543 from danielyxie/dev
fix Incite Violence chaos increase
2021-10-17 19:44:52 -04:00
Olivier Gagnon
cfa10ab206 fix Incite Violence chaos increase 2021-10-17 19:44:43 -04:00
hydroflame
925ed98c05 Merge pull request #1541 from danielyxie/dev
disable marketta1 is 2 is available.
2021-10-17 18:20:37 -04:00
Olivier Gagnon
1b22f28bd8 disable marketta1 is 2 is available. 2021-10-17 18:20:23 -04:00
hydroflame
ba563db5fe Merge pull request #1540 from danielyxie/dev
Some bugfixes
2021-10-17 14:31:43 -04:00
Olivier Gagnon
7bda726e5f build bugfixed 2021-10-17 14:31:21 -04:00
hydroflame
6068b4a5cb Merge pull request #1539 from Tyasuh/dev
Typo Fix
2021-10-17 14:29:53 -04:00
tyasuh.taeragan@gmail.com
d3ab0353f7 Typo Fix 2021-10-17 09:15:10 -04:00
hydroflame
372fc1d006 Merge pull request #1536 from Tyasuh/dev
Corp UI Buyback Shares
2021-10-17 01:23:04 -04:00
tyasuh.taeragan@gmail.com
850200c98d Corp UI Buyback Shares 2021-10-17 01:21:25 -04:00
hydroflame
faf0809a04 Merge pull request #1534 from Tyasuh/dev
Issue 1522
2021-10-16 23:53:34 -04:00
hydroflame
41adad3991 Merge branch 'dev' into dev 2021-10-16 23:53:29 -04:00
tyasuh.taeragan@gmail.com
da02f8862a Commented Changes 2021-10-16 23:47:11 -04:00
tyasuh.taeragan@gmail.com
2ed961c0d2 #1522 Adressed and Corrected. 2021-10-16 23:09:35 -04:00
hydroflame
5f82c616a2 Merge pull request #1533 from danielyxie/dev
v0.57.0
2021-10-16 22:38:36 -04:00
Olivier Gagnon
c7c582e9fa update doc 2021-10-16 22:36:49 -04:00
Olivier Gagnon
c96c7e3d2e v0.57.0 2021-10-16 22:32:48 -04:00
hydroflame
961904d177 Merge pull request #1528 from danielyxie/dev
fix bug with workForFaction
2021-10-16 15:43:53 -04:00
Olivier Gagnon
84a1d27b9a fix bug with workForFaction 2021-10-16 15:43:28 -04:00
hydroflame
bb95cda256 Merge pull request #1527 from danielyxie/dev
Fix working for the CIA #1526
2021-10-16 12:20:08 -04:00
Olivier Gagnon
99c75baea0 Fix working for the CIA 2021-10-16 12:19:53 -04:00
hydroflame
13a3a136dc Merge pull request #1523 from danielyxie/dev
more improvements.
2021-10-15 21:30:01 -04:00
Olivier Gagnon
371d41b7c3 added placeholder for filename 2021-10-15 21:28:17 -04:00
Olivier Gagnon
02b085cc75 script editor now saves on server that opened the file and displays server name 2021-10-15 21:27:02 -04:00
Olivier Gagnon
e38bfc70cf remove unused export 2021-10-15 21:04:17 -04:00
Olivier Gagnon
52a96b94f9 fix cancel penalty for company servers 2021-10-15 21:03:25 -04:00
Olivier Gagnon
73b9cae203 logbox title isn't infinitely long anymore 2021-10-15 20:59:16 -04:00
hydroflame
de0d876638 Merge pull request #1521 from danielyxie/dev
fix exploit that enabled IPC
2021-10-15 20:50:31 -04:00
Olivier Gagnon
30588a885b make succes toast brighter 2021-10-15 20:50:16 -04:00
Olivier Gagnon
45c46ce2a0 fix exploit that enabled IPC 2021-10-15 19:13:05 -04:00
hydroflame
845887a7b8 Merge pull request #1520 from danielyxie/dev
Fix blade not being able to start Incite Violence
2021-10-15 19:08:31 -04:00
Olivier Gagnon
58650c5895 Fix blade not being able to start Incite Violence 2021-10-15 19:08:21 -04:00
hydroflame
88997f564b Merge pull request #1518 from danielyxie/dev
Incite Violence doubles chaos
2021-10-15 19:04:57 -04:00
Olivier Gagnon
09f621e342 Incite Violence doubles chaos 2021-10-15 19:04:44 -04:00
hydroflame
b6157e6851 Merge pull request #1517 from danielyxie/dev
improve monokai again
2021-10-15 18:58:55 -04:00
Olivier Gagnon
762e7f127c improve monokai again 2021-10-15 18:58:10 -04:00
hydroflame
85c33fc0b5 Merge pull request #1516 from danielyxie/dev
Fixed folder adding space during autocomplete.
2021-10-15 18:33:46 -04:00
Olivier Gagnon
d6ea9c55b1 fixed folder adding space in autocom 2021-10-15 18:33:27 -04:00
Olivier Gagnon
34fa906013 save some text editor notes 2021-10-15 18:27:02 -04:00
hydroflame
d4086bf467 Merge pull request #1515 from danielyxie/dev
improve monokai by making the language a superset of javascript
2021-10-15 18:25:37 -04:00
Olivier Gagnon
80d197652d improve monokai by making the language a superset of javascript 2021-10-15 18:25:22 -04:00
tyasuh.taeragan@gmail.com
12f61677e3 Issues 1508 and 1506 2021-10-15 17:26:26 -04:00
hydroflame
57ab4a029e Merge pull request #1512 from danielyxie/dev
Improve text editor height
2021-10-15 16:16:30 -04:00
Olivier Gagnon
b5a8ed1d9d improve script editor display 2021-10-15 16:16:11 -04:00
Olivier Gagnon
e047653ed7 improve text editor scaling 2021-10-15 16:14:27 -04:00
hydroflame
f3d9cd9964 Merge pull request #1511 from danielyxie/dev
script editor save button more often on screen.
2021-10-15 15:48:41 -04:00
Olivier Gagnon
f645d08a50 small screen script editor 2021-10-15 15:47:17 -04:00
Olivier Gagnon
515f9e5d4b fixed layer til the end of time 2021-10-15 14:16:30 -04:00
Olivier Gagnon
5e9143371a comment 2021-10-15 14:05:56 -04:00
Olivier Gagnon
536b8360cf small improvement to lgobox layer 2021-10-15 14:04:42 -04:00
hydroflame
2e203d46ff Merge pull request #1505 from danielyxie/dev
logbox layer on click
2021-10-15 13:59:51 -04:00
Olivier Gagnon
8b59260bd3 logbox layer on click 2021-10-15 13:59:42 -04:00
hydroflame
3d0c76b81b Merge pull request #1504 from danielyxie/dev
@hydroflame logbox window z index fix
2021-10-15 13:49:25 -04:00
Olivier Gagnon
3bd05ea398 logbox window z index fix 2021-10-15 13:49:03 -04:00
Olivier Gagnon
79a6c7eb7b logbox uses class to identify drag handle instead of id. 2021-10-15 13:24:00 -04:00
hydroflame
4ae5811afa Merge pull request #1503 from danielyxie/dev
doc typo
2021-10-15 13:19:25 -04:00
Olivier Gagnon
1d302a0320 doc typo 2021-10-15 13:19:00 -04:00
hydroflame
b0fc197f2c Merge pull request #1502 from danielyxie/dev
Autocomplete feature.
2021-10-15 13:15:56 -04:00
Olivier Gagnon
d35bac1ace Build autocomplete 2021-10-15 13:15:42 -04:00
hydroflame
e99ffcfe2b Merge pull request #1501 from danielyxie/autocomplete
Autocomplete
2021-10-15 13:13:04 -04:00
Olivier Gagnon
c1d4ced331 autocomplete 2021-10-15 13:12:18 -04:00
Olivier Gagnon
6b0e5416c4 wtf 2021-10-15 12:47:43 -04:00
Olivier Gagnon
745fb4fdf6 Merge branch 'dev' into autocomplete 2021-10-15 00:22:15 -04:00
hydroflame
19b7242dd7 Merge pull request #1497 from danielyxie/dev
fix blade leaving bitverse
2021-10-14 23:58:15 -04:00
Olivier Gagnon
af816dbc7e fix blade leaving bitverse 2021-10-14 23:57:41 -04:00
hydroflame
d02e9ecc8d Merge pull request #1496 from danielyxie/dev
fix incite violence
2021-10-14 23:39:47 -04:00
Olivier Gagnon
89fa79c4de fix incite violence 2021-10-14 23:39:30 -04:00
hydroflame
8a72647e3b Merge pull request #1495 from danielyxie/dev
reduce time and effect of incite violence
2021-10-14 23:14:08 -04:00
Olivier Gagnon
8819042c0f reduce time and effect of incite violence 2021-10-14 23:13:56 -04:00
Olivier Gagnon
7417ff8a10 tmp 2021-10-14 23:11:31 -04:00
hydroflame
7232735de6 Merge pull request #1492 from danielyxie/dev
Added Incite Violence bladeburner action
2021-10-14 23:03:58 -04:00
Olivier Gagnon
e6a4456d81 Added Incite Violence bladeburner action 2021-10-14 23:01:04 -04:00
Olivier Gagnon
4603216aa0 autocomplete 2021-10-14 22:36:28 -04:00
hydroflame
1c92e0cffa Merge pull request #1491 from danielyxie/dev
Added atExit
2021-10-14 20:13:43 -04:00
Olivier Gagnon
3fddb3c9f2 added atExit 2021-10-14 20:13:26 -04:00
Olivier Gagnon
fe6473f426 gotoLocation sing function 2021-10-14 19:43:19 -04:00
Olivier Gagnon
89a6bf175d nuke half the dependencies because they were unused. 2021-10-14 19:31:17 -04:00
Olivier Gagnon
6b114fab7d remove unused stuff 2021-10-14 18:45:50 -04:00
Olivier Gagnon
542b2d6b8a improve market ta ui 2021-10-14 18:05:17 -04:00
Olivier Gagnon
139ccd11ff typo 2021-10-14 17:38:06 -04:00
hydroflame
af8a7ac27a Merge pull request #1490 from danielyxie/dev
fix blade raid issue
2021-10-14 17:35:54 -04:00
Olivier Gagnon
38d915372f fix blade raid issue 2021-10-14 17:35:22 -04:00
hydroflame
f8a82c9a00 Merge pull request #1488 from danielyxie/dev
revert dynamic ram miscalc
2021-10-14 17:20:27 -04:00
Olivier Gagnon
dda6235591 revert dynamic ram miscalc 2021-10-14 17:20:13 -04:00
hydroflame
418c09e5ba Merge pull request #1487 from danielyxie/dev
upgrade home cores
2021-10-14 15:30:41 -04:00
Olivier Gagnon
3d97f2d770 build new function 2021-10-14 15:30:26 -04:00
hydroflame
f60af97e74 Merge pull request #1485 from Tyasuh/dev
upgradeHomeCores
2021-10-14 15:28:58 -04:00
tyasuh.taeragan@gmail.com
db9c3193f7 Commented Fixes 2021-10-14 15:20:05 -04:00
Olivier Gagnon
c556408208 fix parent not being updated when children ram cost increase. 2021-10-14 14:50:57 -04:00
tyasuh.taeragan@gmail.com
f6ffe5b5be Corrective Revisions 2021-10-14 14:35:57 -04:00
hydroflame
44ca83e95e Merge pull request #1486 from danielyxie/dev
fix completed black op being invisible.
2021-10-14 13:57:39 -04:00
Olivier Gagnon
cc056ceef4 fix completed black op being invisible. 2021-10-14 13:57:26 -04:00
tyasuh.taeragan@gmail.com
cee716bbb0 Typo Corrections 2021-10-14 12:22:35 -04:00
tyasuh.taeragan@gmail.com
737d9e027f upgradeHomeCores 2021-10-14 12:01:42 -04:00
hydroflame
c7deb895ba Merge pull request #1484 from danielyxie/dev
Split some netscript functions
2021-10-14 03:24:03 -04:00
Olivier Gagnon
63e467986e build 2021-10-14 03:23:02 -04:00
Olivier Gagnon
d3fc6a9d48 split NetscriptFunctions 2021-10-14 03:22:02 -04:00
Olivier Gagnon
e245c2d3a7 fixed a few things 2021-10-14 02:07:05 -04:00
hydroflame
4a0e7cb9f8 Merge pull request #1483 from danielyxie/dev
Added toast function
2021-10-13 17:26:17 -04:00
Olivier Gagnon
3f1d4875e7 Added toast function 2021-10-13 17:25:58 -04:00
hydroflame
921a1517df Merge pull request #1481 from danielyxie/improve
fix mathjax
2021-10-13 15:58:19 -04:00
Olivier Gagnon
c4e17c3fb3 fix mathjax 2021-10-13 15:57:15 -04:00
hydroflame
2f673b0767 Merge pull request #1479 from danielyxie/improve
fix package dependency issue
2021-10-13 15:48:45 -04:00
Olivier Gagnon
b7823f46e4 change location of home cores cost formula 2021-10-13 15:48:34 -04:00
Olivier Gagnon
e2c8fed307 figured out new mathjax 2021-10-13 02:42:43 -04:00
Olivier Gagnon
e436d7f3a0 up to date omg 2021-10-13 02:27:55 -04:00
Olivier Gagnon
a5a28db47f asd 2021-10-13 02:15:29 -04:00
Olivier Gagnon
c66a8b5974 update pl 2021-10-12 21:45:16 -04:00
hydroflame
31e5f4447c Merge pull request #1476 from danielyxie/dev
reduce code of ENM core
2021-10-12 20:23:39 -04:00
Olivier Gagnon
3c2a237140 reduce code of ENM core 2021-10-12 20:23:21 -04:00
hydroflame
59b10c1b2c Merge pull request #1473 from danielyxie/dev
Added alert function
2021-10-12 20:22:21 -04:00
Olivier Gagnon
0dbeac52ac Added alert function 2021-10-12 20:02:37 -04:00
hydroflame
0380a069ec Merge pull request #1471 from danielyxie/dev
Fix blade corp gang equal 0
2021-10-12 19:23:46 -04:00
Olivier Gagnon
6543e73f6f Fix blade corp gang equal 0 2021-10-12 19:23:36 -04:00
hydroflame
8dad3e7ea0 Merge pull request #1469 from danielyxie/dev
Add blade action in character overview
2021-10-12 16:07:02 -04:00
Olivier Gagnon
85aa67ac26 blade action in ui 2021-10-12 16:06:32 -04:00
Olivier Gagnon
bf75cf80b8 rm console log 2021-10-12 14:22:57 -04:00
hydroflame
30b719669f Merge pull request #1468 from danielyxie/dev
load monokai
2021-10-12 10:56:33 -04:00
Olivier Gagnon
a90575aea9 load monokai 2021-10-12 10:56:19 -04:00
hydroflame
ac7c9451a8 Merge pull request #1467 from danielyxie/dev
dont update int when you dont have it
2021-10-12 10:29:56 -04:00
Olivier Gagnon
a0baab6f6c dont update int when you dont have it 2021-10-12 10:29:41 -04:00
hydroflame
4c0d96f572 Merge pull request #1466 from danielyxie/dev
v0.56.0
2021-10-12 00:29:45 -04:00
Olivier Gagnon
83137a2364 v0.56.0 2021-10-12 00:29:16 -04:00
Olivier Gagnon
78d9c25671 fix error message with wrong reviver, refactor part of player 2021-10-11 23:14:15 -04:00
Olivier Gagnon
56c8a23631 corp MAXMPPROD is now case insensitive 2021-10-11 22:54:28 -04:00
Olivier Gagnon
1d4cf45a92 fix issue with corp export popup 2021-10-11 22:48:34 -04:00
Olivier Gagnon
b1e37acaa1 added autocomplete for scp 2021-10-11 22:35:00 -04:00
Olivier Gagnon
65ee49fb92 Added cp command 2021-10-11 22:34:04 -04:00
Olivier Gagnon
6a795a7c50 neuroflux doesnt appear in gangs 2021-10-11 19:00:14 -04:00
Olivier Gagnon
ae33a23db4 remove Neuroflux from specila factions 2021-10-11 18:56:51 -04:00
Olivier Gagnon
faad0ae8a7 Try to make an error message more helpful 2021-10-11 18:47:05 -04:00
Olivier Gagnon
1ff7f4bcd4 table pagination text no longer black 2021-10-11 18:30:46 -04:00
Olivier Gagnon
1335ca8e01 Impossible to buy real estate with negative money 2021-10-11 18:22:57 -04:00
Olivier Gagnon
8e07cc999d change GB to TBPBEB 2021-10-11 18:14:10 -04:00
Olivier Gagnon
06775b20fa saving file now saves game 2021-10-11 17:57:17 -04:00
Olivier Gagnon
30554560da softcap hacknet max moneyt upgrade 2021-10-11 17:43:48 -04:00
Olivier Gagnon
ac3a6b9a6f setToCommitCrime sleeve works with rough crime name 2021-10-11 17:12:08 -04:00
Olivier Gagnon
b126bd01ee ram check is debounced 2021-10-11 16:59:37 -04:00
Olivier Gagnon
8f13363466 prettier 2021-10-11 16:38:50 -04:00
Olivier Gagnon
828c9c2de6 improve contributing.md 2021-10-11 16:28:01 -04:00
hydroflame
c460458587 Merge pull request #1461 from danielyxie/dev
document learn js and make getServer not require sf5
2021-10-11 16:18:17 -04:00
Olivier Gagnon
dd61fd6efb document learn js and make getServer not require sf5 2021-10-11 16:18:05 -04:00
hydroflame
944360f846 Merge pull request #1460 from danielyxie/dev
few bugfix
2021-10-11 14:27:21 -04:00
Olivier Gagnon
010f43e5d4 few bugfix 2021-10-11 14:26:44 -04:00
hydroflame
0cf1c86d3e Merge pull request #1458 from danielyxie/dev
fix int not calculating
2021-10-11 13:31:20 -04:00
Olivier Gagnon
3d36982a56 fix disableLog not disabling blade functions 2021-10-11 13:31:12 -04:00
Olivier Gagnon
3fd26bea9b fix int not calculating 2021-10-11 13:18:37 -04:00
hydroflame
615f40cebb Merge pull request #1455 from danielyxie/dev
VScode def in netscript
2021-10-10 13:53:35 -04:00
Olivier Gagnon
e9ba4ae9a2 added vscode module def in netscript 2021-10-10 13:52:56 -04:00
Olivier Gagnon
12b192ab43 prerawloader 2021-10-10 13:23:36 -04:00
Olivier Gagnon
cdbbc657e2 nano new ns2 file starts with param 2021-10-09 23:21:22 -04:00
Olivier Gagnon
995a0b11d9 build fix for duplicate autocomplete 2021-10-09 23:07:18 -04:00
hydroflame
684e5aca4d Merge pull request #1452 from danielyxie/dev
build fix for duplicate autocomplete
2021-10-09 22:59:23 -04:00
Olivier Gagnon
06df10d2f9 build fix for duplicate autocomplete 2021-10-09 22:59:06 -04:00
hydroflame
3e98c8a6eb Merge pull request #1450 from danielyxie/dev
Added kindof monokai to monaco
2021-10-09 19:00:50 -04:00
Olivier Gagnon
01d15176ac Added kindof monokai to monaco 2021-10-09 19:00:27 -04:00
hydroflame
c82fa9dc38 Merge pull request #1449 from danielyxie/dev
fix ram miscalc
2021-10-09 15:08:02 -04:00
Olivier Gagnon
f9afff57b2 fix ram miscalc 2021-10-09 15:07:42 -04:00
hydroflame
45f266afa4 Merge pull request #1448 from danielyxie/dev
Fix sleeve consuming too much time, fix blade join
2021-10-09 14:31:42 -04:00
Olivier Gagnon
2bf47c60df fix sleeve consuming too much time at once. 2021-10-09 14:31:06 -04:00
Olivier Gagnon
752534bc4d fix joinBladeburner 2021-10-09 12:49:53 -04:00
hydroflame
d7600878be Merge pull request #1447 from danielyxie/dev
increase the price of Wilson to stop feedback loop
2021-10-09 02:25:04 -04:00
Olivier Gagnon
3346f3539c increase the price of Wilson to stop feedback loop 2021-10-09 02:24:31 -04:00
hydroflame
2d342b17c3 Merge pull request #1446 from danielyxie/dev
fix server ram recalc
2021-10-08 23:46:18 -04:00
Olivier Gagnon
bbf3a1d19a fix server ram recalc 2021-10-08 23:45:54 -04:00
hydroflame
e974afd92c Merge pull request #1445 from danielyxie/dev
patch time compression
2021-10-08 15:31:44 -04:00
Olivier Gagnon
a2599f19d7 patch time compression 2021-10-08 15:31:32 -04:00
hydroflame
09e1ee8f6d Merge pull request #1444 from danielyxie/dev
write can be awaited in order to wait for the ram calculation to go t…
2021-10-08 14:06:06 -04:00
Olivier Gagnon
8e4722c5e7 write can be awaited in order to wait for the ram calculation to go through 2021-10-08 14:05:47 -04:00
hydroflame
c674618890 Merge pull request #1442 from danielyxie/dev
blade getCurrentAction says type general
2021-10-08 13:17:43 -04:00
Olivier Gagnon
e91c183d37 blade getCurrentAction says type general 2021-10-08 13:17:27 -04:00
hydroflame
d05afc64b0 Merge pull request #1440 from danielyxie/dev
growthanalyze allows cores argument
2021-10-08 12:10:48 -04:00
Olivier Gagnon
2ed29e10b3 build cores 2021-10-08 12:10:28 -04:00
Olivier Gagnon
effa9f15af growthanalyze has core argument 2021-10-08 12:09:44 -04:00
hydroflame
24a0e955fd Merge pull request #1439 from danielyxie/dev
Change highlight color
2021-10-08 02:06:11 -04:00
Olivier Gagnon
35ebb06761 change highlight color 2021-10-08 02:05:53 -04:00
Olivier Gagnon
5d21bd7840 more theme 2021-10-08 02:04:12 -04:00
hydroflame
7b815a8085 Merge pull request #1438 from danielyxie/dev
more theme
2021-10-08 01:57:37 -04:00
Olivier Gagnon
815b04037c more theme 2021-10-08 01:49:12 -04:00
hydroflame
e385a84219 Merge pull request #1437 from danielyxie/dev
Change rdt theme to match game sorta
2021-10-08 01:39:52 -04:00
Olivier Gagnon
3cd0ae51e7 Change rdt theme to match game sorta 2021-10-08 01:39:40 -04:00
hydroflame
36cc26009c Merge pull request #1436 from danielyxie/dev
trying dark theme 2
2021-10-08 00:59:51 -04:00
Olivier Gagnon
ed57a8c4f4 trying dark theme 2 2021-10-08 00:59:36 -04:00
hydroflame
243f13d1d4 Merge pull request #1435 from danielyxie/dev
Tried to change the theme
2021-10-08 00:56:01 -04:00
Olivier Gagnon
0f7ad063ca thing to know if rrdt has reloaded 2021-10-08 00:55:55 -04:00
Olivier Gagnon
809f9117b8 thing to know if rrdt has reloaded 2021-10-08 00:55:40 -04:00
Olivier Gagnon
38e165100f Tried to change the theme 2021-10-08 00:55:06 -04:00
hydroflame
58d969f01e Merge pull request #1434 from danielyxie/dev
Script editor filename fix
2021-10-08 00:22:50 -04:00
Olivier Gagnon
7db1164a1a build script editor filename issue 2021-10-08 00:22:32 -04:00
Olivier Gagnon
3ca7c49ce8 Fixed Script Editor last filename not keeping proper track 2021-10-08 00:21:30 -04:00
Olivier Gagnon
ec3037f8c6 readded font 2021-10-07 23:53:44 -04:00
hydroflame
06b706beca Merge pull request #1433 from danielyxie/dev
Convert everything to hostname as primary
2021-10-07 17:56:19 -04:00
Olivier Gagnon
7d0536a4d2 finish convert to hostname 2021-10-07 17:55:49 -04:00
Olivier Gagnon
2958034ad4 more ip conversion 2021-10-07 17:04:32 -04:00
Olivier Gagnon
a7dfb1a537 more convertion from ip to hostname 2021-10-07 16:56:01 -04:00
Olivier Gagnon
be29481689 unexport AllServers 2021-10-07 16:04:04 -04:00
hydroflame
8c0f65785a Merge pull request #1432 from danielyxie/dev
improve logbox
2021-10-07 15:12:21 -04:00
Olivier Gagnon
1d488565c6 build logbox 2021-10-07 15:11:58 -04:00
Olivier Gagnon
42890843fb Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-10-07 15:08:27 -04:00
hydroflame
cdfd094d1c Merge pull request #1431 from danielyxie/dev
Improve logbox behavior
2021-10-07 15:03:12 -04:00
Olivier Gagnon
c06aff3437 Improve logbox behavior 2021-10-07 15:02:54 -04:00
hydroflame
123f071c12 Merge pull request #1427 from Tyasuh/dev
Corpo Typo Fixes
2021-10-07 13:55:15 -04:00
tyasuh.taeragan@gmail.com
0edd4ffdf1 Corpo Typo Fixes 2021-10-07 13:46:33 -04:00
hydroflame
f2589a0ade Merge pull request #1426 from danielyxie/dev
revert growthAnalyze stuff because it causes errors
2021-10-06 19:41:54 -04:00
Olivier Gagnon
b1d1de9118 revert growthAnalyze stuff because it causes errors 2021-10-06 19:41:36 -04:00
hydroflame
997c746d78 Merge pull request #1424 from danielyxie/dev
corp bonus time consumes faster
2021-10-06 02:35:56 -04:00
Olivier Gagnon
83a84c6d38 corp bonus time consumes faster 2021-10-06 01:59:41 -04:00
hydroflame
3a0b3612bf Merge pull request #1423 from danielyxie/dev
fix netscript port read not correctly converting ns1 objects
2021-10-05 16:38:16 -04:00
Olivier Gagnon
75a2742911 fix netscript port read not correctly converting ns1 objects 2021-10-05 16:37:54 -04:00
hydroflame
3891d0fae1 Merge pull request #1422 from danielyxie/dev
fix bug with hacknet servers and grow
2021-10-05 15:23:44 -04:00
Olivier Gagnon
a420a87eba fix bug with hacknet servers and grow 2021-10-05 15:23:30 -04:00
hydroflame
1b26d38a44 Merge pull request #1421 from danielyxie/dev
made log box resize a tad better
2021-10-05 01:45:35 -04:00
Olivier Gagnon
f579ee398b made log box resize a tad better 2021-10-05 01:44:46 -04:00
hydroflame
28e42b448d Merge pull request #1420 from danielyxie/dev
log boxes are resizable
2021-10-05 01:30:43 -04:00
Olivier Gagnon
4901c84d34 remove some unused css 2021-10-05 01:30:37 -04:00
Olivier Gagnon
227fbd7060 made log box resizable 2021-10-05 01:23:20 -04:00
Olivier Gagnon
70796e7674 use react-draggable 2021-10-05 00:59:40 -04:00
Olivier Gagnon
bb0bdb776b extracted some of the Netscript functions into their own file. 2021-10-04 22:25:21 -04:00
hydroflame
aab88931ff Merge pull request #1419 from danielyxie/dev
Added font size to text editor
2021-10-04 21:07:10 -04:00
Olivier Gagnon
48b839d68c Added font size to text editor 2021-10-04 21:06:55 -04:00
hydroflame
1d71254777 Merge pull request #1418 from danielyxie/dev
grow, weaken, time compression
2021-10-04 19:58:57 -04:00
Olivier Gagnon
c47a5bc8cc added grow, weaken, and time compression 2021-10-04 19:58:34 -04:00
Olivier Gagnon
33ea31be87 convert autocomplete to tooltip 2021-10-04 17:52:20 -04:00
hydroflame
1604aad151 Merge pull request #1416 from danielyxie/dev
fix corp ui text fields now clearing on city change
2021-10-04 13:49:53 -04:00
Olivier Gagnon
27fc90c87a fix corp ui text fields now clearing on city change 2021-10-04 13:49:27 -04:00
hydroflame
1c06dbbbc8 Merge pull request #1414 from danielyxie/dev
cat now accepts newline
2021-10-04 13:15:20 -04:00
Olivier Gagnon
d58e2df9c7 cat now accepts newline 2021-10-04 13:15:04 -04:00
hydroflame
15df0361e8 Merge pull request #1412 from danielyxie/dev
fix logbox newlines and corp researching multiple times
2021-10-04 12:37:35 -04:00
Olivier Gagnon
c989e6713f fix logbox newlines and corp researching multiple times 2021-10-04 12:37:19 -04:00
hydroflame
80ec07afee Merge pull request #1411 from danielyxie/dev
some bug fix
2021-10-03 21:37:25 -04:00
Olivier Gagnon
d21382e96e remove debug log 2021-10-03 21:37:05 -04:00
Olivier Gagnon
81fd2c1236 remove log 2021-10-03 21:34:56 -04:00
hydroflame
bdb10217db Merge pull request #1409 from BartKoppelmans/patch-3
Removed console warning for Sleeves
2021-10-03 21:34:21 -04:00
Olivier Gagnon
ab2ffb112f fix some bugs 2021-10-03 21:33:48 -04:00
Bart Koppelmans
ee0532eba7 Removed console warning for Sleeves 2021-10-03 20:29:20 +02:00
hydroflame
4b95545f61 Merge pull request #1406 from danielyxie/dev
research tree
2021-10-02 00:26:07 -04:00
Olivier Gagnon
1a749505e7 build research tree 2021-10-02 00:25:50 -04:00
Olivier Gagnon
fae6e6d22f fix research tree, kinda 2021-10-02 00:24:50 -04:00
Olivier Gagnon
826357e8b8 change SF9 to seem more appealing 2021-10-01 23:20:44 -04:00
hydroflame
8e5abe4878 Merge pull request #1405 from danielyxie/dev
Fix growth miscalc
2021-10-01 23:03:58 -04:00
Olivier Gagnon
94550dbaee forgot about grwothAnalyze 2021-10-01 23:03:37 -04:00
Olivier Gagnon
83c159e901 fix miscalculation in growth formulas 2021-10-01 23:02:09 -04:00
hydroflame
60a1a8694c Merge pull request #1404 from danielyxie/dev
fixed prompt
2021-10-01 22:53:43 -04:00
Olivier Gagnon
3f5b412547 fixed prompt 2021-10-01 22:53:23 -04:00
Olivier Gagnon
1fdb5c33c7 fix sleeves not being able to work at volhaven 2021-10-01 22:42:31 -04:00
hydroflame
f5e5319eac Merge pull request #1400 from danielyxie/dev
fixed log boxes
2021-10-01 22:32:10 -04:00
Olivier Gagnon
665d25650a fixed log boxes 2021-10-01 22:31:58 -04:00
hydroflame
d17a39e891 Merge pull request #1399 from danielyxie/dev
fix infil
2021-10-01 22:27:45 -04:00
Olivier Gagnon
447731c5f3 fix infil 2021-10-01 22:27:32 -04:00
hydroflame
8ee3f80436 Merge pull request #1398 from danielyxie/dev
fix autolink wrong font
2021-10-01 16:42:21 -04:00
Olivier Gagnon
cc02701e97 fix autolink wrong font 2021-10-01 16:42:07 -04:00
hydroflame
744f0751f0 Merge pull request #1397 from danielyxie/dev
v0.55.0
2021-10-01 16:22:57 -04:00
Olivier Gagnon
50cf362b3b v0.55.0 2021-10-01 16:22:33 -04:00
hydroflame
7785801764 Merge pull request #1396 from danielyxie/dev
Gang in mui
2021-10-01 15:40:15 -04:00
Olivier Gagnon
5ba7b2796d build gang in mui 2021-10-01 15:39:56 -04:00
Olivier Gagnon
9cbb525da3 remove hacking missions 2021-10-01 15:26:12 -04:00
Olivier Gagnon
0ae8b72188 100% mui I think 2021-10-01 15:19:37 -04:00
hydroflame
3cd54603fa Merge pull request #1393 from danielyxie/dev
More Mui
2021-10-01 13:40:37 -04:00
Olivier Gagnon
1e641468f7 build the little mui conversions 2021-10-01 13:40:16 -04:00
Olivier Gagnon
3187bb990d Everything except Gang is Muified 2021-10-01 13:36:59 -04:00
Olivier Gagnon
4e8bb96f3f removing some of the classes 2021-10-01 13:08:37 -04:00
Olivier Gagnon
97c04a1037 logbox manager, alert manager and fix bitverse colors 2021-10-01 10:39:09 -04:00
Olivier Gagnon
62cd8ffcc6 pre-dialogbox-convert 2021-10-01 01:00:50 -04:00
Olivier Gagnon
0d9caac455 mui-fy some modals 2021-09-30 20:06:40 -04:00
Olivier Gagnon
f701cbffa7 lint 2021-09-30 18:57:44 -04:00
Olivier Gagnon
73d0dd98f2 stock market in Mui 2021-09-30 18:56:09 -04:00
hydroflame
d4a28cd0b4 Merge pull request #1392 from danielyxie/dev
Corporations in Mui
2021-09-30 17:24:32 -04:00
Olivier Gagnon
c05be66c60 corp in mui 2021-09-30 17:24:08 -04:00
Olivier Gagnon
b0e4a2a775 finalize corp in mui 2021-09-30 17:02:07 -04:00
Olivier Gagnon
86ddc940aa convert some corp to mui 2021-09-30 15:12:06 -04:00
Olivier Gagnon
510fcedf90 convert some corp to mui 2021-09-30 13:51:55 -04:00
Olivier Gagnon
5cce1c255c convert some corp to mui 2021-09-29 19:05:25 -04:00
Olivier Gagnon
854239ceb1 convert some corp to mui 2021-09-29 17:41:19 -04:00
hydroflame
31a23befa6 Merge pull request #1391 from danielyxie/dev
disable full rerender in factions
2021-09-29 10:33:57 -04:00
Olivier Gagnon
73834d03cd faction dont rerender 2021-09-29 10:33:21 -04:00
Olivier Gagnon
cefd499ff6 use tabs for corp 2021-09-29 01:54:17 -04:00
Olivier Gagnon
c5713fa6d8 learned and implemented default props 2021-09-29 01:49:22 -04:00
hydroflame
af02fe992a Merge pull request #1389 from danielyxie/dev
More Mui work
2021-09-28 20:49:48 -04:00
Olivier Gagnon
b0739f8942 fix bad scritp not dying properly 2021-09-28 20:48:44 -04:00
Olivier Gagnon
a6d7f93111 work on corp mui 2021-09-28 19:38:51 -04:00
Olivier Gagnon
86678b6290 convert blade to mui 2021-09-27 17:09:48 -04:00
Olivier Gagnon
498a204c88 rm unused log 2021-09-26 21:38:21 -04:00
Olivier Gagnon
d6584386ff set disabled color 2021-09-26 21:37:22 -04:00
Olivier Gagnon
b5abbbc240 hacknet nodes in mui 2021-09-26 21:26:25 -04:00
Olivier Gagnon
514b467e27 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-09-26 21:22:13 -04:00
Olivier Gagnon
1fc2e6fd2a added unfocus aug 2021-09-26 21:11:49 -04:00
hydroflame
b758807ba1 Merge pull request #1384 from vmesecher/dev
Fixes Corporation bribe uninentionally affect Bladeburners under cert…
2021-09-26 20:59:12 -04:00
Olivier Gagnon
14e6dd0158 sleeves to mui 2021-09-26 20:55:38 -04:00
vmesecher
ce578206eb Fixes Corporation bribe uninentionally affect Bladeburners under certain circumstances. Also contains small lint fixes found by running npm run lint. 2021-09-25 15:43:30 -07:00
Olivier Gagnon
3289f76cd0 safeguards 2021-09-25 17:29:51 -04:00
Olivier Gagnon
3aacab504b convert casino to mui 2021-09-25 15:42:37 -04:00
Olivier Gagnon
6d179be018 buttons should have typograaphy as child 2021-09-25 15:41:00 -04:00
Olivier Gagnon
86da356478 convert most of the city to mui 2021-09-25 15:34:12 -04:00
Olivier Gagnon
c0e1706128 rm the top level utils folder 2021-09-25 14:45:12 -04:00
Olivier Gagnon
06f716c0fa moved a bunch of files 2021-09-25 14:42:57 -04:00
Olivier Gagnon
07bc697477 remove uneeded part of the tutorial 2021-09-25 14:21:34 -04:00
Olivier Gagnon
60a91cd9f7 index.html is empty now 2021-09-25 14:14:50 -04:00
Olivier Gagnon
97624395c1 convert game saved to snackbar, index.html is nearly empty now 2021-09-25 14:10:32 -04:00
Olivier Gagnon
d49fea4cbc convert unclickable inside the react tree 2021-09-25 14:00:38 -04:00
Olivier Gagnon
125e9484f7 Work on hacknet to mui 2021-09-25 13:52:26 -04:00
Olivier Gagnon
ef17f0d617 ui 2021-09-25 13:31:42 -04:00
hydroflame
1762277540 Merge pull request #1381 from danielyxie/dev
fix getNodeStats error
2021-09-25 13:03:27 -04:00
Olivier Gagnon
f7aa393a8f fix getNodeStats error 2021-09-25 13:03:09 -04:00
hydroflame
b7f1572288 Merge pull request #1380 from danielyxie/dev
all typescript
2021-09-25 11:24:13 -04:00
Olivier Gagnon
7fb2b8b590 fix tooltips 2021-09-25 11:23:56 -04:00
Olivier Gagnon
cba40c71b2 mui stuff 2021-09-25 03:09:27 -04:00
Olivier Gagnon
4254cc2807 small improvements to augmentation page. 2021-09-25 02:42:21 -04:00
Olivier Gagnon
8b15adda8a lint 2021-09-25 02:36:49 -04:00
Olivier Gagnon
b0f20c8c8f lint 2021-09-25 01:26:03 -04:00
Olivier Gagnon
5c6c472b64 Augmentations in mui 2021-09-25 01:06:17 -04:00
Olivier Gagnon
5170c0e004 create script in mui 2021-09-24 23:36:28 -04:00
Olivier Gagnon
fe18c55173 removed some unused files. 2021-09-24 23:09:18 -04:00
Olivier Gagnon
69c9b20e68 sleeve ui says bonus time and sleeves cant consume all bonus time at once. 2021-09-24 23:02:27 -04:00
Olivier Gagnon
2d45784102 theme editor now allows import/export 2021-09-24 22:54:25 -04:00
Olivier Gagnon
65cb519801 fix infiltration keybinding 2021-09-24 22:15:19 -04:00
Olivier Gagnon
76e6cb4ecc forgot one ts in utils 2021-09-24 22:04:30 -04:00
hydroflame
7b6f9293c7 Merge pull request #1379 from danielyxie/netscript-functions-ts
all typescript
2021-09-24 21:50:09 -04:00
Olivier Gagnon
dc2bf871cf all typescript 2021-09-24 21:49:49 -04:00
hydroflame
19970f25df Merge pull request #1377 from danielyxie/dev
imrpove terminal performance
2021-09-24 19:13:06 -04:00
Olivier Gagnon
1d349c25f7 imrpove terminal performance 2021-09-24 19:12:53 -04:00
hydroflame
b5c105b6fe Merge pull request #1376 from danielyxie/dev
Almost everything in typescript.
2021-09-24 19:10:30 -04:00
Olivier Gagnon
5484c64a95 build script not dying 2021-09-24 19:10:20 -04:00
Olivier Gagnon
ec33fb411c fix scripts not dying 2021-09-24 19:09:19 -04:00
Olivier Gagnon
2a966d0726 build the typescript conversion 2021-09-24 18:43:30 -04:00
Olivier Gagnon
29143999a6 move JSInterpreter 2021-09-24 18:42:13 -04:00
Olivier Gagnon
a32b8eabe3 SaveObject in ts 2021-09-24 18:40:17 -04:00
Olivier Gagnon
43723a3fbb engine in ts 2021-09-24 18:29:25 -04:00
Olivier Gagnon
ad75fa5ebc convert to ts 2021-09-24 18:13:20 -04:00
Olivier Gagnon
4abc1df840 convert to ts 2021-09-24 17:56:30 -04:00
Olivier Gagnon
da488e586b convert to ts 2021-09-24 17:16:14 -04:00
Olivier Gagnon
413333c919 convert to ts 2021-09-24 17:07:53 -04:00
Olivier Gagnon
4f219a3214 convert to ts 2021-09-24 16:37:42 -04:00
Olivier Gagnon
2e05f14c0d convert to ts 2021-09-24 16:34:21 -04:00
Olivier Gagnon
47f54a11c3 ts convertion 2021-09-24 16:02:38 -04:00
Olivier Gagnon
b8faa9dc0b convert player to ts 2021-09-23 18:47:43 -04:00
Olivier Gagnon
8fd6b2e7da convert some files to ts 2021-09-23 13:30:13 -04:00
Olivier Gagnon
cdd9c174e7 electron always dev tools 2021-09-23 13:15:27 -04:00
hydroflame
6ba64612e0 Merge pull request #1369 from danielyxie/dev
Refresh theme on load
2021-09-22 13:43:59 -04:00
Olivier Gagnon
e6291a09a0 refresh theme on load 2021-09-22 13:43:23 -04:00
hydroflame
9ccfca3c72 Merge pull request #1368 from MartinFournier/theme-load-at-startup
Load theme from settings during game load (#1364)
2021-09-22 13:40:27 -04:00
Martin Fournier
346024af45 Load theme from settings during game load (#1364) 2021-09-22 13:33:41 -04:00
Olivier Gagnon
66a2adaeb4 update prettier 2021-09-22 12:56:55 -04:00
hydroflame
701e165920 Merge pull request #1367 from danielyxie/dev
fix donation
2021-09-22 12:49:43 -04:00
Olivier Gagnon
c1945ab12e fix donation 2021-09-22 12:49:29 -04:00
hydroflame
9172b8031e Merge pull request #1366 from danielyxie/dev
fix messge problem
2021-09-22 12:38:26 -04:00
Olivier Gagnon
3a7c64872a fix messge problem 2021-09-22 12:38:13 -04:00
hydroflame
03d01a7e69 Merge pull request #1362 from danielyxie/dev
Theme editor with color picker
2021-09-22 12:06:30 -04:00
Olivier Gagnon
06edf5b70c theme editor with color picker 2021-09-22 12:06:03 -04:00
hydroflame
d2008e86b4 Merge pull request #1361 from MartinFournier/theme-color-picker
Add material-ui-color picker in theme editor
2021-09-22 12:03:44 -04:00
Martin Fournier
32d1affb50 Add material-ui-color picker in theme editor 2021-09-22 12:00:00 -04:00
hydroflame
b1119f623f Merge pull request #1359 from danielyxie/dev
few bugfix
2021-09-22 11:32:17 -04:00
Olivier Gagnon
558b671206 few bugfix 2021-09-22 11:32:04 -04:00
hydroflame
1ba0332c53 Merge pull request #1356 from danielyxie/dev
can buy trp
2021-09-22 11:00:31 -04:00
Olivier Gagnon
a954259e25 can buy trp 2021-09-22 10:59:58 -04:00
Olivier Gagnon
64c7831c81 convert milestones to mui 2021-09-22 03:33:15 -04:00
Olivier Gagnon
61dd393bb5 convert tutorial screen to mui 2021-09-22 03:30:06 -04:00
Olivier Gagnon
28aca06208 convert work in progress to mui 2021-09-22 03:25:12 -04:00
Olivier Gagnon
c79fa240e1 Factions have a property explaining if they should keep on install 2021-09-22 03:09:37 -04:00
Olivier Gagnon
e1741778f9 add new sort option 2021-09-22 02:56:15 -04:00
hydroflame
46d9ad8419 Merge pull request #1351 from danielyxie/dev
Theme editor
2021-09-22 02:20:56 -04:00
Olivier Gagnon
80560ce9f6 build theme editor 2021-09-22 02:20:29 -04:00
Olivier Gagnon
f9a4eadb71 removed some of fconf 2021-09-22 01:36:17 -04:00
Olivier Gagnon
96f0879230 fix bug with nano 2021-09-22 01:10:29 -04:00
Olivier Gagnon
9c40cf6f28 fix infiltration timer 2021-09-22 01:03:25 -04:00
Olivier Gagnon
55901f0574 Let player copy terminal 2021-09-22 00:57:37 -04:00
Olivier Gagnon
43f0746be7 fix ls not working on dir 2021-09-22 00:48:13 -04:00
Olivier Gagnon
8eeed583c2 corp research show research points 2021-09-22 00:42:45 -04:00
Olivier Gagnon
dc518e7032 asdf 2021-09-21 20:39:25 -04:00
hydroflame
4e82293afb Merge pull request #1348 from danielyxie/dev
Build a bunch of fixes
2021-09-21 20:30:32 -04:00
Olivier Gagnon
0c932dd4d1 build bunch of fixes 2021-09-21 20:30:00 -04:00
Olivier Gagnon
c94ec2f170 remove message from covenant when you're maxed sleeves 2021-09-21 18:04:47 -04:00
Olivier Gagnon
6111c50eb1 updatedco 2021-09-21 17:47:27 -04:00
Olivier Gagnon
8977f299e5 respect disable ascii art 2021-09-21 17:46:01 -04:00
Olivier Gagnon
2a8b1c2116 Fix corp not moving 2021-09-21 17:38:51 -04:00
Olivier Gagnon
9a6b185141 few fixes 2021-09-21 17:36:42 -04:00
Olivier Gagnon
501ce70702 re-add back button from faction to factions 2021-09-21 17:13:35 -04:00
Olivier Gagnon
9b94692942 fix faction screen size 2021-09-21 17:12:16 -04:00
Olivier Gagnon
06880c68e1 fix casino infinite loop 2021-09-21 16:58:20 -04:00
Olivier Gagnon
637f88efcd add bug report button 2021-09-21 16:50:33 -04:00
Olivier Gagnon
57a5c8b0b4 add difficulty to bitnode screen 2021-09-21 16:49:38 -04:00
Olivier Gagnon
c3ac16f330 electron open pages in external browser 2021-09-21 13:32:06 -04:00
Olivier Gagnon
c564de40b3 add f5f8 to electron 2021-09-21 13:29:16 -04:00
Olivier Gagnon
1b26d25a53 aug screen popup 2021-09-21 13:21:25 -04:00
Olivier Gagnon
7aa2d00460 fix aug page 2021-09-21 13:08:05 -04:00
Olivier Gagnon
ffa9600302 active scritp production typo and add new page size 2021-09-21 11:50:48 -04:00
hydroflame
db35fde42e Merge pull request #1307 from Nolshine/improve_gang_ascend_modal
improve gang ascend modal
2021-09-21 11:04:23 -04:00
hydroflame
d73040fdc5 Merge pull request #1319 from Nolshine/fix_missing_onclick_for_bulk_purchase
fix 'confirm bulk purchase' button missing onclick
2021-09-21 11:03:39 -04:00
hydroflame
a38df2e613 Merge pull request #1318 from Nolshine/visibility_icons
implement visibility icon toggling
2021-09-21 11:03:25 -04:00
hydroflame
b931ab5566 Merge pull request #1323 from Nolshine/documentation_1273
amend deprecation warning warning on getAugmentationCost's doc
2021-09-21 11:03:11 -04:00
Nolshine
4e44e784c6 amend warning on getAugmentationCost doc
now directs players to use the desired functions
2021-09-21 14:11:51 +01:00
Nolshine
aa4451b12d fix 'confirm bulk purchase' button missing onclick 2021-09-21 12:22:04 +01:00
Nolshine
2a52f6fa2b implement visibility icon toggling 2021-09-21 07:07:47 +01:00
Olivier Gagnon
8b7723338b change electron so it works. 2021-09-20 22:30:11 -04:00
Olivier Gagnon
9e62438b43 Rework faction augs menu 2021-09-20 20:42:13 -04:00
hydroflame
e379288536 Merge pull request #1313 from danielyxie/dev
0.54 again
2021-09-20 17:29:17 -04:00
Nolshine
a9c57e23a5 improve gang ascend modal 2021-09-20 06:47:13 +01:00
1431 changed files with 94339 additions and 62589 deletions

View File

@@ -3,4 +3,5 @@ doc/build/
dist/
tests/*.bundle.*
src/ThirdParty/*
src/JSInterpreter.js
src/JSInterpreter.js
main.bundle.js

View File

@@ -99,7 +99,6 @@ module.exports = {
"no-catch-shadow": ["error"],
"no-class-assign": ["error"],
"no-compare-neg-zero": ["error"],
"no-cond-assign": ["off", "except-parens"],
"no-confusing-arrow": ["error"],
"no-console": ["off"],
"no-const-assign": ["error"],

View File

@@ -84,6 +84,43 @@ changes are okay to contribute:
- Changes that directly affect the game's balance
- New gameplay mechanics
### How to setup fork properly
Fork and clone the repo
```
# This will add the game original code as a repo in your local copy
$ git remote add danielyxie git@github.com:danielyxie/bitburner.git
# You can verify you did this right by doing the following command
$ git remote show
danielyxie
origin
# Then download all the branches from the game. (there might be more branches)
$ git fetch danielyxie
From github.com:danielyxie/bitburner
* [new branch] dev -> danielyxie/dev
* [new branch] master -> danielyxie/master
# Makes sure you always start from `danielyxie/dev` to avoid merge conflicts.
```
### Running locally.
Install
- `npm` (maybe via `nvm`)
- Github Desktop (windows only)
- Visual Studio code (optional)
Inside the root of the repo run
`npm install` to install all the dependencies
`npm run start:dev` to launch the game in dev mode.
After that you can open any browser and naviguate to `localhost:8000` and play the game.
Saving a file will reload the game automatically.
#### Submitting a Pull Request
When submitting a pull request with your code contributions, please abide by

View File

@@ -1,35 +0,0 @@
FROM node:15.14.0 AS base
WORKDIR /app
# Scripts used in the npm preinstall hook
COPY scripts/engines-check.js scripts/semver.js scripts/
# Adding our dependencies and install before adding the rest of the files
# This prevents reinstallation of npm packages for every subsequent code modification
ENV npm_config_update_notifier=false
COPY package.json package-lock.json ./
RUN npm ci --loglevel=error --no-audit --no-fund && npm rebuild node-sass
# Adding all the remaining source files
COPY . .
# We need more than the default 512MB otherwise webpack will throw 'heap out of memory' exceptions
# https://nodejs.org/api/cli.html#cli_max_old_space_size_size_in_megabytes
ENV NODE_OPTIONS=--max-old-space-size=1536
FROM base AS dev
# This is the main development build using the file watcher if you mount volumes
USER node
EXPOSE 8000
CMD npm run start:container
FROM base AS prod-dist
# We'll simply build the production dist files here to later reuse in a simple webserver
RUN npm run build
FROM nginx:1.20.0-alpine AS prod
WORKDIR /usr/share/nginx/html
COPY --from=prod-dist /app/dist ./dist
COPY --from=prod-dist /app/index.html /app/favicon.ico /app/license.txt ./
EXPOSE 80

364
api-extractor.json Normal file
View File

@@ -0,0 +1,364 @@
/**
* Config file for API Extractor. For more info, please visit: https://api-extractor.com
*/
{
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
/**
* Optionally specifies another JSON config file that this file extends from. This provides a way for
* standard settings to be shared across multiple projects.
*
* If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains
* the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be
* resolved using NodeJS require().
*
* SUPPORTED TOKENS: none
* DEFAULT VALUE: ""
*/
// "extends": "./shared/api-extractor-base.json"
// "extends": "my-package/include/api-extractor-base.json"
/**
* Determines the "<projectFolder>" token that can be used with other config file settings. The project folder
* typically contains the tsconfig.json and package.json config files, but the path is user-defined.
*
* The path is resolved relative to the folder of the config file that contains the setting.
*
* The default value for "projectFolder" is the token "<lookup>", which means the folder is determined by traversing
* parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder
* that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error
* will be reported.
*
* SUPPORTED TOKENS: <lookup>
* DEFAULT VALUE: "<lookup>"
*/
// "projectFolder": "..",
/**
* (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor
* analyzes the symbols exported by this module.
*
* The file extension must be ".d.ts" and not ".ts".
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
*/
"mainEntryPointFilePath": "src/ScriptEditor/NetscriptDefinitions.d.ts",
/**
* A list of NPM package names whose exports should be treated as part of this package.
*
* For example, suppose that Webpack is used to generate a distributed bundle for the project "library1",
* and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part
* of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly
* imports library2. To avoid this, we can specify:
*
* "bundledPackages": [ "library2" ],
*
* This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been
* local files for library1.
*/
"bundledPackages": [],
/**
* Determines how the TypeScript compiler engine will be invoked by API Extractor.
*/
"compiler": {
/**
* Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project.
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* Note: This setting will be ignored if "overrideTsconfig" is used.
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/tsconfig.json"
*/
// "tsconfigFilePath": "<projectFolder>/tsconfig.json",
/**
* Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk.
* The object must conform to the TypeScript tsconfig schema:
*
* http://json.schemastore.org/tsconfig
*
* If omitted, then the tsconfig.json file will be read from the "projectFolder".
*
* DEFAULT VALUE: no overrideTsconfig section
*/
// "overrideTsconfig": {
// . . .
// }
/**
* This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended
* and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when
* dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses
* for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck.
*
* DEFAULT VALUE: false
*/
// "skipLibCheck": true,
},
/**
* Configures how the API report file (*.api.md) will be generated.
*/
"apiReport": {
/**
* (REQUIRED) Whether to generate an API report.
*/
"enabled": true,
/**
* The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce
* a full file path.
*
* The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/".
*
* SUPPORTED TOKENS: <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<unscopedPackageName>.api.md"
*/
// "reportFileName": "markdown/bitburner.api.md"
/**
* Specifies the folder where the API report file is written. The file name portion is determined by
* the "reportFileName" setting.
*
* The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy,
* e.g. for an API review.
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/etc/"
*/
"reportFolder": "markdown/",
/**
* Specifies the folder where the temporary report file is written. The file name portion is determined by
* the "reportFileName" setting.
*
* After the temporary file is written to disk, it is compared with the file in the "reportFolder".
* If they are different, a production build will fail.
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/temp/"
*/
"reportTempFolder": "markdown/"
},
/**
* Configures how the doc model file (*.api.json) will be generated.
*/
"docModel": {
/**
* (REQUIRED) Whether to generate a doc model file.
*/
"enabled": true,
/**
* The output path for the doc model file. The file extension should be ".api.json".
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/temp/<unscopedPackageName>.api.json"
*/
"apiJsonFilePath": "input/bitburner.api.json"
},
/**
* Configures how the .d.ts rollup file will be generated.
*/
"dtsRollup": {
/**
* (REQUIRED) Whether to generate the .d.ts rollup file.
*/
"enabled": true
/**
* Specifies the output path for a .d.ts rollup file to be generated without any trimming.
* This file will include all declarations that are exported by the main entry point.
*
* If the path is an empty string, then this file will not be written.
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/dist/<unscopedPackageName>.d.ts"
*/
// "untrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>.d.ts",
/**
* Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release.
* This file will include only declarations that are marked as "@public" or "@beta".
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: ""
*/
// "betaTrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>-beta.d.ts",
/**
* Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release.
* This file will include only declarations that are marked as "@public".
*
* If the path is an empty string, then this file will not be written.
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: ""
*/
// "publicTrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>-public.d.ts",
/**
* When a declaration is trimmed, by default it will be replaced by a code comment such as
* "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the
* declaration completely.
*
* DEFAULT VALUE: false
*/
// "omitTrimmingComments": true
},
/**
* Configures how the tsdoc-metadata.json file will be generated.
*/
"tsdocMetadata": {
/**
* Whether to generate the tsdoc-metadata.json file.
*
* DEFAULT VALUE: true
*/
// "enabled": true,
/**
* Specifies where the TSDoc metadata file should be written.
*
* The path is resolved relative to the folder of the config file that contains the setting; to change this,
* prepend a folder token such as "<projectFolder>".
*
* The default value is "<lookup>", which causes the path to be automatically inferred from the "tsdocMetadata",
* "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup
* falls back to "tsdoc-metadata.json" in the package folder.
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<lookup>"
*/
// "tsdocMetadataFilePath": "<projectFolder>/dist/tsdoc-metadata.json"
},
/**
* Specifies what type of newlines API Extractor should use when writing output files. By default, the output files
* will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead.
* To use the OS's default newline kind, specify "os".
*
* DEFAULT VALUE: "crlf"
*/
// "newlineKind": "crlf",
/**
* Configures how API Extractor reports error and warning messages produced during analysis.
*
* There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages.
*/
"messages": {
/**
* Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing
* the input .d.ts files.
*
* TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551"
*
* DEFAULT VALUE: A single "default" entry with logLevel=warning.
*/
"compilerMessageReporting": {
/**
* Configures the default routing for messages that don't match an explicit rule in this table.
*/
"default": {
/**
* Specifies whether the message should be written to the the tool's output log. Note that
* the "addToApiReportFile" property may supersede this option.
*
* Possible values: "error", "warning", "none"
*
* Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail
* and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes
* the "--local" option), the warning is displayed but the build will not fail.
*
* DEFAULT VALUE: "warning"
*/
"logLevel": "warning"
/**
* When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md),
* then the message will be written inside that file; otherwise, the message is instead logged according to
* the "logLevel" option.
*
* DEFAULT VALUE: false
*/
// "addToApiReportFile": false
}
// "TS2551": {
// "logLevel": "warning",
// "addToApiReportFile": true
// },
//
// . . .
},
/**
* Configures handling of messages reported by API Extractor during its analysis.
*
* API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag"
*
* DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings
*/
"extractorMessageReporting": {
"default": {
"logLevel": "warning"
// "addToApiReportFile": false
}
// "ae-extra-release-tag": {
// "logLevel": "warning",
// "addToApiReportFile": true
// },
//
// . . .
},
/**
* Configures handling of messages reported by the TSDoc parser when analyzing code comments.
*
* TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text"
*
* DEFAULT VALUE: A single "default" entry with logLevel=warning.
*/
"tsdocMessageReporting": {
"default": {
"logLevel": "warning"
// "addToApiReportFile": false
}
// "tsdoc-link-tag-unescaped-text": {
// "logLevel": "warning",
// "addToApiReportFile": true
// },
//
// . . .
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,215 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="600"
height="900"
viewBox="0 0 158.75 238.12501"
version="1.1"
id="svg2976"
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
sodipodi:docname="Library_Capsule.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2978"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="0.79118979"
inkscape:cx="254.67973"
inkscape:cy="454.37897"
inkscape:window-width="2088"
inkscape:window-height="1267"
inkscape:window-x="360"
inkscape:window-y="102"
inkscape:window-maximized="0"
inkscape:current-layer="layer5">
<inkscape:grid
type="xygrid"
id="grid3037" />
</sodipodi:namedview>
<defs
id="defs2973">
<rect
x="180"
y="70"
width="250"
height="90"
id="rect4063" />
</defs>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="background">
<rect
style="fill:#000000;stroke-width:0.141;fill-opacity:1"
id="rect4362"
width="158.75"
height="238.125"
x="0"
y="0" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:18.9804px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#002000;fill-opacity:1;stroke-width:0.254201"
x="9.5800972"
y="138.17438"
id="text7802"><tspan
sodipodi:role="line"
id="tspan7800"
style="fill:#002000;fill-opacity:1;stroke-width:0.254201"
x="9.5800972"
y="138.17438">while(true) {</tspan><tspan
sodipodi:role="line"
style="fill:#002000;fill-opacity:1;stroke-width:0.254201"
x="9.5800972"
y="161.89987"
id="tspan8504"> hack();</tspan><tspan
sodipodi:role="line"
style="fill:#002000;fill-opacity:1;stroke-width:0.254201"
x="9.5800972"
y="185.62538"
id="tspan8506">}</tspan></text>
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3107"
transform="matrix(2.0753566,0,0,2.0753566,20.050652,10.368115)">
<g
id="layer4"
inkscape:label="background" />
<g
inkscape:label="Layer 1"
id="layer1-5"
style="display:inline">
<g
id="g898"
transform="matrix(1.3592638,0,0,1.3592638,-3.4563747,-7.7397592)">
<g
id="layer2"
inkscape:label="background"
style="display:inline">
<text
xml:space="preserve"
transform="scale(0.26458333)"
id="text4061"
style="font-weight:bold;font-size:74.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';white-space:pre;shape-inside:url(#rect4063);fill:#003d00;fill-opacity:1"><tspan
x="180"
y="228.1207"
id="tspan8996"><tspan
dx="0 52.208359 25.520844 33.979187 52.208359 53.229187 37.187515 53.229202 49.583344"
id="tspan8994">bitburner</tspan></tspan></text>
</g>
<g
id="layer3"
inkscape:label="bin" />
<g
inkscape:label="Layer 1"
id="layer1-3">
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,11.666445 v 18.489861 l -2.465312,3.697972 v 3.697972 l 2.465312,2.465316 v 1.232656"
id="path1456"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,30.156306 2.465316,3.697972 v 3.697972 l -2.465316,2.465316"
id="path1524"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17.40941,41.250222 v -8.6286 l 2.465311,-3.697972 v -4.930628 l 3.697973,-6.163289"
id="path3458"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.735982,41.250222 v -8.6286 L 27.270666,28.92365 v -4.930628 l -3.697972,-6.163289"
id="path3460"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.478778,37.55225 v -8.6286 l 1.232661,-1.232656 1.232654,-1.232661 2.465317,-2.465311 h 2.465311"
id="path3619"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 34.66661,37.55225 v -8.6286 l -1.232655,-1.232656 -1.232656,-1.232661 -2.465317,-2.465311 h -2.465316"
id="path3621"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 17.40941,32.621622 H 12.478778"
id="path3623"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.119652,32.005292 h 4.930633"
id="path3625" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 26.03801,21.527705 1.232656,-1.232656 v -7.395944"
id="path3670"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21.107382,21.527705 19.874721,20.295049 V 12.899105"
id="path3672"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 32.201299,41.250222 2.465311,-2.465311 v -2.465317 l 3.697973,-3.697972 V 16.597077"
id="path4789"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 14.944093,41.250222 12.478778,38.784911 V 36.319594 L 8.7808056,32.621622 V 16.597077"
id="path5224"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 16.176749,25.225677 V 14.131761"
id="path20342"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30.968638,25.225677 V 14.131761"
id="path20410"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 8.7808056,26.458333 12.478778,22.760361 V 15.364417"
id="path20544"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 38.364583,26.458333 34.66661,22.760361 v -7.395944"
id="path20546"
sodipodi:nodetypes="ccc" />
</g>
</g>
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:24.8803px;line-height:1.25;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.333217"
x="13.494555"
y="227.75381"
id="text5034"><tspan
sodipodi:role="line"
id="tspan5032"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.333217"
x="13.494555"
y="227.75381">bitburner</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 KiB

View File

@@ -0,0 +1,291 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="3840"
height="1240"
viewBox="0 0 1016 328.08334"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
sodipodi:docname="Library_Hero.svg"
inkscape:export-filename="/Users/hydroflame/bitburner/assets/Steam/Library/Library_Hero.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
width="3840px"
height="1240px"
inkscape:zoom="0.27972783"
inkscape:cx="1497.8845"
inkscape:cy="227.00637"
inkscape:window-width="2581"
inkscape:window-height="1257"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:current-layer="layer2">
<inkscape:grid
type="xygrid"
id="grid1511" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<rect
style="fill:#000000;fill-opacity:1;stroke-width:0.141"
id="rect1535"
width="1016"
height="328.08334"
x="0"
y="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<text
xml:space="preserve"
style="font-weight:bold;font-size:16.5183px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-515.34589"
id="text2640"><tspan
sodipodi:role="line"
id="tspan2638"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-515.34589">getSymbols(); getPrice(); getAskPrice(); getBidPrice(); getPosition(); getMaxShares(); getPurchaseCost(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-494.69803"
id="tspan2642">getSaleGain(); buy(); sell(); short(); sellShort(); placeOrder(); cancelOrder(); getOrders(); getVolatility(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-474.05017"
id="tspan2644">getForecast(); purchase(); SMarketData(); purchase(); SMarketDataTixApi(); universityCourse(); gymWorkout(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-453.40228"
id="tspan2646">travelToCity(); purchaseTor(); purchaseProgram(); isBusy(); stopAction(); upgradeHomeRam(); upgradeHomeCores(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-432.75443"
id="tspan2648">getUpgradeHomeRamCost(); getUpgradeHomeCoresCost(); workForCompany(); applyToCompany(); getCompanyRep(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-412.10654"
id="tspan2650">getCompanyFavor(); getCompanyFavorGain(); checkFactionInvitations(); joinFaction(); workForFaction(); getFactionRep(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-391.45868"
id="tspan2652">getFactionFavor(); getFactionFavorGain(); donateToFaction(); createProgram(); commitCrime(); getCrimeChance(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-370.81079"
id="tspan2654">getCrimeStats(); getOwnedAugmentations(); getOwnedSourceFiles(); getAugmentationsFromFaction(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-350.16293"
id="tspan2656">getAugmentationPrereq(); getAugmentationCost(); getAugmentationPrice(); getAugmentationRepReq(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-329.51505"
id="tspan2658">purchaseAugmentation(); getAugmentationStats(); installAugmentations(); getStats(); getCharacterInformation(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-308.86716"
id="tspan2660">hospitalize(); softReset(); goToLocation(); getCurrentServer(); connect(); manualHack(); installBackdoor(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-288.2193"
id="tspan2662">numNodes(); maxNumNodes(); purchaseNode(); getPurchaseNodeCost(); getNodeStats(); upgradeLevel(); upgradeRam(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-267.57141"
id="tspan2664">upgradeCore(); upgradeCache(); getLevelUpgradeCost(); getRamUpgradeCost(); getCoreUpgradeCost(); getCacheUpgradeCost(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-246.92355"
id="tspan2666">numHashes(); hashCapacity(); hashCost(); spendHashes(); getHashUpgradeLevel(); getStudyMult(); getTrainingMult(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-226.27568"
id="tspan2668">getContractNames(); getOperationNames(); getBlackOpNames(); getGeneralActionNames(); getSkillNames(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-205.62781"
id="tspan2670">startAction(); stopBladeburnerAction(); getCurrentAction(); getActionTime(); getActionEstimatedSuccessChance(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-184.97993"
id="tspan2672">getActionRepGain(); getActionCountRemaining(); getActionMaxLevel(); getActionCurrentLevel(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-164.33206"
id="tspan2674">getActionAutolevel(); setActionAutolevel(); setActionLevel(); getRank(); getBlackOpRank(); getSkillPoints(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-143.68419"
id="tspan2676">getSkillLevel(); getSkillUpgradeCost(); upgradeSkill(); getTeamSize(); setTeamSize(); getCityEstimatedPopulation(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-123.03631"
id="tspan2678">getCityCommunities(); getCityChaos(); getCity(); switchCity(); getStamina(); joinBladeburnerFaction(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-102.38844"
id="tspan2680">joinBladeburnerDivision(); getBonusTime(); attempt(); getContractType(); getDescription(); getData(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-81.740562"
id="tspan2682">getNumTriesRemaining(); createGang(); inGang(); getMemberNames(); getGangInformation(); getOtherGangInformation(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-61.092686"
id="tspan2684">getMemberInformation(); canRecruitMember(); recruitMember(); getTaskNames(); setMemberTask(); getTaskStats(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-40.444809"
id="tspan2686">getEquipmentNames(); getEquipmentCost(); getEquipmentType(); getEquipmentStats(); purchaseEquipment(); ascendMember(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="-19.796938"
id="tspan2688">setTerritoryWarfare(); getChanceToWinClash(); getBonusTime(); getNumSleeves(); getSleeveStats(); getInformation(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="0.85093534"
id="tspan2690">getTask(); setToShockRecovery(); setToSynchronize(); setToCommitCrime(); setToFactionWork(); setToCompanyWork(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="21.498816"
id="tspan2692">setToUniversityCourse(); setToGymWorkout(); travel(); getSleeveAugmentations(); getSleevePurchasableAugs(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="42.14669"
id="tspan2694">purchaseSleeveAug(); calculateSkill(); calculateExp(); hackChance(); hackExp(); hackPercent(); growPercent(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="62.794563"
id="tspan2696">hackTime(); growTime(); weakenTime(); moneyGainRate(); levelUpgradeCost(); ramUpgradeCost(); coreUpgradeCost(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="83.442436"
id="tspan2698">hacknetNodeCost(); constants(); hashGainRate(); levelUpgradeCost(); ramUpgradeCost(); coreUpgradeCost(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="104.09031"
id="tspan2700">cacheUpgradeCost(); hashUpgradeCost(); hacknetServerCost(); constants(); readonly(); hack(); grow(); weaken(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="124.73818"
id="tspan2702">weakenAnalyze(); hackAnalyzeThreads(); hackAnalyze(); hackAnalyzeSecurity(); hackAnalyzeChance(); growthAnalyze(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="145.38605"
id="tspan2704">growthAnalyzeSecurity(); sleep(); asleep(); print(); tprint(); tprintf(); clearLog(); disableLog(); enableLog(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="166.03394"
id="tspan2706">isLogEnabled(); getScriptLogs(); tail(); scan(); nuke(); brutessh(); ftpcrack(); relaysmtp(); httpworm(); sqlinject(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="186.68179"
id="tspan2708">run(); exec(); spawn(); kill(); killall(); exit(); scp(); ls(); ps(); hasRootAccess(); getHostname(); getHackingLevel(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="207.32968"
id="tspan2710">getHackingMultipliers(); getHacknetMultipliers(); getServer(); getServerMoneyAvailable(); getServerMaxMoney(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="227.97754"
id="tspan2712">getServerGrowth(); getServerSecurityLevel(); getServerMinSecurityLevel(); getServerBaseSecurityLevel(); getServerRam(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="248.62543"
id="tspan2714">getServerMaxRam(); getServerUsedRam(); getServerRequiredHackingLevel(); getServerNumPortsRequired(); serverExists(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="269.27328"
id="tspan2716">fileExists(); isRunning(); getRunningScript(); getPurchasedServerCost(); purchaseServer(); deleteServer(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="289.92117"
id="tspan2718">getPurchasedServers(); getPurchasedServerLimit(); getPurchasedServerMaxRam(); write(); tryWrite(); read(); peek(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="310.56903"
id="tspan2720">clear(); clearPort(); writePort(); readPort(); getPortHandle(); rm(); scriptRunning(); scriptKill(); getScriptName(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="331.21692"
id="tspan2722">getScriptRam(); getHackTime(); getGrowTime(); getWeakenTime(); getScriptIncome(); getScriptExpGain(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="351.86478"
id="tspan2724">getTimeSinceLastAug(); sprintf(); vsprintf(); nFormat(); tFormat(); prompt(); alert(); toast(); wget(); </tspan><tspan
sodipodi:role="line"
style="fill:#008000;fill-opacity:1;stroke-width:0.221227"
x="-6.3549523"
y="372.51266"
id="tspan2726">getFavorToDonate(); getBitNodeMultipliers(); getPlayer(); atExit(); flags(); </tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -0,0 +1,217 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="460"
height="215"
viewBox="0 0 121.70833 56.885418"
version="1.1"
id="svg845"
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
sodipodi:docname="Header_Capsule.svg"
inkscape:export-filename="/Users/hydroflame/bitburner/assets/Steam/Store/Header_Capsule.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview847"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2"
inkscape:cx="74.5"
inkscape:cy="147"
inkscape:window-width="2713"
inkscape:window-height="1264"
inkscape:window-x="411"
inkscape:window-y="75"
inkscape:window-maximized="0"
inkscape:current-layer="layer3">
<inkscape:grid
type="xygrid"
id="grid1265" />
</sodipodi:namedview>
<defs
id="defs842">
<rect
x="180"
y="70"
width="250"
height="90"
id="rect4063" />
</defs>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background"
style="display:inline">
<rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="rect1128"
width="121.70833"
height="56.885414"
x="0"
y="0" />
<text
xml:space="preserve"
transform="scale(0.26458333)"
id="text4061"
style="font-weight:bold;font-size:74.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';white-space:pre;shape-inside:url(#rect4063);fill:#003d00;fill-opacity:1"><tspan
x="180"
y="228.1207"
id="tspan10130"><tspan
dx="0 52.208359 25.520844 33.979187 52.208359 53.229187 37.187515 53.229202 49.583344"
id="tspan10128">bitburner</tspan></tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="bin">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.85919px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="2.4310479"
id="text17320"
transform="scale(0.80030898,1.2495174)"><tspan
sodipodi:role="line"
id="tspan17318"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="2.4310479">01001000 01100001 01110010 01110110 01100101</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="9.8454628"
id="tspan26146">01110011 01110100 00100000 01110100 01101000</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="17.259878"
id="tspan26532">01100101 00100000 01110000 01101111 01110111</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="24.674294"
id="tspan26870">01100101 01110010 00100000 01101111 01100110</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="32.088707"
id="tspan27256">00100000 01110100 01101000 01100101 00100000</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="39.503124"
id="tspan27606">01101110 01101111 01101111 01100100 01101100</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console Bold';fill:#202020;fill-opacity:1;stroke-width:0.078471"
x="-1.7902181"
y="46.917538"
id="tspan28160">01100101 01110011 00101110 00101110 00101110</tspan></text>
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,11.666445 v 18.489861 l -2.465312,3.697972 v 3.697972 l 2.465312,2.465316 v 1.232656"
id="path1456"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,30.156306 2.465316,3.697972 v 3.697972 l -2.465316,2.465316"
id="path1524"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17.40941,41.250222 v -8.6286 l 2.465311,-3.697972 v -4.930628 l 3.697973,-6.163289"
id="path3458"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.735982,41.250222 v -8.6286 L 27.270666,28.92365 v -4.930628 l -3.697972,-6.163289"
id="path3460"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.478778,37.55225 v -8.6286 l 1.232661,-1.232656 1.232654,-1.232661 2.465317,-2.465311 h 2.465311"
id="path3619"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 34.66661,37.55225 v -8.6286 l -1.232655,-1.232656 -1.232656,-1.232661 -2.465317,-2.465311 h -2.465316"
id="path3621"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 17.40941,32.621622 H 12.478778"
id="path3623"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.119652,32.005292 h 4.930633"
id="path3625" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 26.03801,21.527705 1.232656,-1.232656 v -7.395944"
id="path3670"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21.107382,21.527705 19.874721,20.295049 V 12.899105"
id="path3672"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 32.201299,41.250222 2.465311,-2.465311 v -2.465317 l 3.697973,-3.697972 V 16.597077"
id="path4789"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 14.944093,41.250222 12.478778,38.784911 V 36.319594 L 8.7808056,32.621622 V 16.597077"
id="path5224"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 16.176749,25.225677 V 14.131761"
id="path20342"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30.968638,25.225677 V 14.131761"
id="path20410"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 8.7808056,26.458333 12.478778,22.760361 V 15.364417"
id="path20544"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 38.364583,26.458333 34.66661,22.760361 v -7.395944"
id="path20546"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.47px;line-height:1.25;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console';fill:#00ff00;fill-opacity:1;stroke-width:0.180402"
x="44.335251"
y="33.835377"
id="text12822"><tspan
sodipodi:role="line"
id="tspan12820"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console';fill:#00ff00;fill-opacity:1;stroke-width:0.180402"
x="44.335251"
y="33.835377">bitburner</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="374"
height="448"
viewBox="0 0 98.954164 118.53334"
version="1.1"
id="svg8188"
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
sodipodi:docname="Hero_Capsule.svg"
inkscape:export-filename="/Users/hydroflame/bitburner/assets/Steam/Store/Hero_Capsule.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview8190"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
width="374px"
inkscape:zoom="1.1189113"
inkscape:cx="150.14595"
inkscape:cy="145.67732"
inkscape:window-width="2803"
inkscape:window-height="1258"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:current-layer="layer5">
<inkscape:grid
type="xygrid"
id="grid8249" />
</sodipodi:namedview>
<defs
id="defs8185">
<rect
x="180"
y="70"
width="250"
height="90"
id="rect4063" />
</defs>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:0.141;fill-opacity:1"
id="rect9260"
width="98.95417"
height="118.53333"
x="0"
y="0" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:4.91179px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="8.2027788"
id="text11139"><tspan
sodipodi:role="line"
id="tspan11137"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="8.2027788">export async function main(ns) {</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="14.342516"
id="tspan11141"> while(sec &gt; minSec) {</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="20.482254"
id="tspan12886"> weaken('n00dles');</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="26.62199"
id="tspan12888"> }</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="32.761726"
id="tspan12890" /><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="38.901466"
id="tspan12892"> while(money &lt; maxMoney) {</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="45.041203"
id="tspan12894"> grow('n00dles');</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="51.180939"
id="tspan12896"> }</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="57.320679"
id="tspan13852" /><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="63.460415"
id="tspan11143"> hack('n00dles');</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="69.600151"
id="tspan13864"></tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="75.739891"
id="tspan13866"
dx="0 0 0 0 0.11823248"> tprint(&quot;I'm in&quot;);</tspan><tspan
sodipodi:role="line"
style="fill:#004000;fill-opacity:1;stroke-width:0.0657826"
x="3.401886"
y="81.879623"
id="tspan13862">}</tspan></text>
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8594"
transform="matrix(0.83214383,0,0,0.83214383,-2.3892723,78.955939)">
<g
id="layer2"
inkscape:label="background"
style="display:inline">
<text
xml:space="preserve"
transform="scale(0.26458333)"
id="text4061"
style="font-weight:bold;font-size:74.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';white-space:pre;shape-inside:url(#rect4063);fill:#003d00;fill-opacity:1"><tspan
x="180"
y="228.1207"
id="tspan14798"><tspan
dx="0 52.208359 25.520844 33.979187 52.208359 53.229187 37.187515 53.229202 49.583344"
id="tspan14796">bitburner</tspan></tspan></text>
</g>
<g
id="layer3"
inkscape:label="bin" />
<g
inkscape:label="Layer 1"
id="layer1-1">
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,11.666445 v 18.489861 l -2.465312,3.697972 v 3.697972 l 2.465312,2.465316 v 1.232656"
id="path1456"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,30.156306 2.465316,3.697972 v 3.697972 l -2.465316,2.465316"
id="path1524"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17.40941,41.250222 v -8.6286 l 2.465311,-3.697972 v -4.930628 l 3.697973,-6.163289"
id="path3458"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.735982,41.250222 v -8.6286 L 27.270666,28.92365 v -4.930628 l -3.697972,-6.163289"
id="path3460"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.478778,37.55225 v -8.6286 l 1.232661,-1.232656 1.232654,-1.232661 2.465317,-2.465311 h 2.465311"
id="path3619"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 34.66661,37.55225 v -8.6286 l -1.232655,-1.232656 -1.232656,-1.232661 -2.465317,-2.465311 h -2.465316"
id="path3621"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 17.40941,32.621622 H 12.478778"
id="path3623"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.119652,32.005292 h 4.930633"
id="path3625" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 26.03801,21.527705 1.232656,-1.232656 v -7.395944"
id="path3670"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21.107382,21.527705 19.874721,20.295049 V 12.899105"
id="path3672"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 32.201299,41.250222 2.465311,-2.465311 v -2.465317 l 3.697973,-3.697972 V 16.597077"
id="path4789"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 14.944093,41.250222 12.478778,38.784911 V 36.319594 L 8.7808056,32.621622 V 16.597077"
id="path5224"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 16.176749,25.225677 V 14.131761"
id="path20342"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30.968638,25.225677 V 14.131761"
id="path20410"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 8.7808056,26.458333 12.478778,22.760361 V 15.364417"
id="path20544"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 38.364583,26.458333 34.66661,22.760361 v -7.395944"
id="path20546"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.47px;line-height:1.25;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console';fill:#00ff00;fill-opacity:1;stroke-width:0.180402"
x="44.335251"
y="33.835377"
id="text12822"><tspan
sodipodi:role="line"
id="tspan12820"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console';fill:#00ff00;fill-opacity:1;stroke-width:0.180402"
x="44.335251"
y="33.835377">bitburner</tspan></text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="616"
height="353"
viewBox="0 0 162.98333 93.397919"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
sodipodi:docname="Main_Capsule.svg"
inkscape:export-filename="/Users/hydroflame/bitburner/assets/Steam/Store/Main_Capsule.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
width="616px"
inkscape:zoom="2.2378227"
inkscape:cx="304.98395"
inkscape:cy="106.57681"
inkscape:window-width="2368"
inkscape:window-height="1281"
inkscape:window-x="608"
inkscape:window-y="29"
inkscape:window-maximized="0"
inkscape:current-layer="layer4">
<inkscape:grid
type="xygrid"
id="grid824" />
</sodipodi:namedview>
<defs
id="defs2">
<rect
x="180"
y="70"
width="250"
height="90"
id="rect4063" />
</defs>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:0.264583;fill-opacity:1"
id="rect1361"
width="162.98334"
height="93.397919"
x="0"
y="0" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:10.5573px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#004000;fill-opacity:1;stroke-width:0.141;stroke-miterlimit:4;stroke-dasharray:none"
x="4.023602"
y="87.453094"
id="text2184"><tspan
sodipodi:role="line"
id="tspan2182"
style="fill:#004000;fill-opacity:1;stroke-width:0.141;stroke-miterlimit:4;stroke-dasharray:none"
x="4.023602"
y="87.453094">[home ~/]&gt; run main.js</tspan></text>
<path
style="fill:none;fill-opacity:1;stroke:#004000;stroke-width:0.265;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 5.2916666,89.958332 H 160.07291"
id="path4659" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<g
id="g898"
transform="matrix(1.3592638,0,0,1.3592638,-3.4563747,-7.7397592)">
<g
id="layer2"
inkscape:label="background"
style="display:inline">
<text
xml:space="preserve"
transform="scale(0.26458333)"
id="text4061"
style="font-weight:bold;font-size:74.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';white-space:pre;shape-inside:url(#rect4063);fill:#003d00;fill-opacity:1"><tspan
x="180"
y="228.1207"
id="tspan8183"><tspan
dx="0 52.208359 25.520844 33.979187 52.208359 53.229187 37.187515 53.229202 49.583344"
id="tspan8181">bitburner</tspan></tspan></text>
</g>
<g
id="layer3"
inkscape:label="bin" />
<g
inkscape:label="Layer 1"
id="layer1-3">
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,11.666445 v 18.489861 l -2.465312,3.697972 v 3.697972 l 2.465312,2.465316 v 1.232656"
id="path1456"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.572694,30.156306 2.465316,3.697972 v 3.697972 l -2.465316,2.465316"
id="path1524"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17.40941,41.250222 v -8.6286 l 2.465311,-3.697972 v -4.930628 l 3.697973,-6.163289"
id="path3458"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.735982,41.250222 v -8.6286 L 27.270666,28.92365 v -4.930628 l -3.697972,-6.163289"
id="path3460"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.478778,37.55225 v -8.6286 l 1.232661,-1.232656 1.232654,-1.232661 2.465317,-2.465311 h 2.465311"
id="path3619"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 34.66661,37.55225 v -8.6286 l -1.232655,-1.232656 -1.232656,-1.232661 -2.465317,-2.465311 h -2.465316"
id="path3621"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 17.40941,32.621622 H 12.478778"
id="path3623"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.00646;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.119652,32.005292 h 4.930633"
id="path3625" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 26.03801,21.527705 1.232656,-1.232656 v -7.395944"
id="path3670"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21.107382,21.527705 19.874721,20.295049 V 12.899105"
id="path3672"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 32.201299,41.250222 2.465311,-2.465311 v -2.465317 l 3.697973,-3.697972 V 16.597077"
id="path4789"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 14.944093,41.250222 12.478778,38.784911 V 36.319594 L 8.7808056,32.621622 V 16.597077"
id="path5224"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 16.176749,25.225677 V 14.131761"
id="path20342"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.30743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30.968638,25.225677 V 14.131761"
id="path20410"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 8.7808056,26.458333 12.478778,22.760361 V 15.364417"
id="path20544"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:1.23266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 38.364583,26.458333 34.66661,22.760361 v -7.395944"
id="path20546"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.47px;line-height:1.25;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console';fill:#00ff00;fill-opacity:1;stroke-width:0.180402"
x="44.335251"
y="33.835377"
id="text12822"><tspan
sodipodi:role="line"
id="tspan12820"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Lucida Console';-inkscape-font-specification:'Lucida Console';fill:#00ff00;fill-opacity:1;stroke-width:0.180402"
x="44.335251"
y="33.835377">bitburner</tspan></text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 54 KiB

777
assets/Steam/logo.svg Normal file
View File

@@ -0,0 +1,777 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 8.4666665 8.4666669"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
sodipodi:docname="bb.svg"
inkscape:export-filename="/Users/hydroflame/Desktop/bb128x128.png"
inkscape:export-xdpi="384.00003"
inkscape:export-ydpi="384.00003"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="11.313709"
inkscape:cx="-15.291184"
inkscape:cy="12.904699"
inkscape:window-width="2533"
inkscape:window-height="1176"
inkscape:window-x="316"
inkscape:window-y="81"
inkscape:window-maximized="0"
inkscape:current-layer="layer3">
<inkscape:grid
type="xygrid"
id="grid34424" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="background"
style="display:none">
<image
width="9.315053"
height="7.1195869"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlIAAAHGCAYAAAC/wGW7AAABQmlDQ1BJQ0MgUHJvZmlsZQAAKJFj
YGASSCwoyGFhYGDIzSspCnJ3UoiIjFJgf8rAxSDOwMmgxmCZmFxc4BgQ4ANUwgCjUcG3awyMIPqy
LsisoJzUgH1tRbJrYj9zhM61NsNUjwK4UlKLk4H0HyBOTi4oKmFgYEwAspXLSwpA7BYgW6QI6Cgg
ewaInQ5hrwGxkyDsA2A1IUHOQPYVIFsgOSMxBch+AmTrJCGJpyOxofaCAKdjcmqRQoSxCQG3kgxK
UitKQLRzfkFlUWZ6RomCIzCEUhU885L1dBSMDIwMGRhA4Q1R/VkMHI6MYqcQYvlWDAwWJxgYmKci
xJJeMDBsv8nAIMmNEFPZwsDAH8/AsK23ILEoEe4Axm8sxWnGRhA2TxEDA+uP//8/yzIwsO9iYPhb
9P//77n///9dAjQfaN6BQgA4TF4ddYy9vAAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4
OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4w
Ij4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJk
Zi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAg
ICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAg
ICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTk0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAg
ICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQ1NDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAg
IDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgooJ8wJAABAAElE
QVR4Aex9C4AdRZluzzBJSCDhFfKCGHlENivcwIAEs6CL8ohoQFkuIC6IWVDCey8oKruCrpIV8AFG
ooA3GkUIEkBAQlAMXBUBGVhQCSwvo7DJQIIg0UBec7+vz+lMz5nz6D5dXV3d/f3JN91dXfX/f33V
Xae6qrq6Y/yEMX1en4f/+IftS72rvOOO+4i3bNkyTyIGxIAYEANiQAyIATHQmIHO8KmO8IH2xYAY
EANiQAyIATEgBpoy0MWzfpeUv63Efesuk7yNmzZWDvRXDIgBMSAGxIAYEANioC4DfkPK89gX1ef/
Zayf3n2X19PTUzeBAsWAGBADYkAMiAExIAYqDAwY2sMUKYkYEANiQAyIATEgBsRARAZCDSnNkIrI
maKJATEgBsSAGBADYsBnoDq0V+mLUlNKV4UYEANiQAyIATEgBqIz0ImpUZgbVWlCaWgvOnGKKQbE
gBgQA2JADIiBzs0zzMGFeqR0QYgBMSAGxIAYEANiIDoDoTlSSKSWVHTmFFMMiAExIAbEgBgoPQNd
HNrzh/Q0rlf6i0EEiAExIAbEgBgQA/EY8If2/I4o/FFbKh55ii0GxIAYEANiQAyUmwF/aC9Y2Vwj
e+W+GJR7MSAGxIAYEANiIB4D/vIHfGsvaEzFS67YYkAMFJ6B4cjhu4E9gQerWIetRAyIATEgBjx/
+YOABw3tBUxoKwbEgM/Azvh7EzATWAEcASwBpgASMSAGxIAY8Lr4pl5ftQWloT1dEWJADAxg4BIc
3Ql8MxT6Qex/DfgAsCEUrl0xIAbEQAkZ8OdIBQ0o9UiV8ApQlsVAIwY4lDcGmFcT4VYcrwb2qQnX
oRgQA2KghAxosnkJC11ZFgORGJiKWHcBm+rEvhlh+9cJV5AYEANioGQMDFyQs2SZV3bFgBhowsBO
OPdCg/O9CN+9wTkFiwExIAZKxEB1aK8yuKehvRKVvLIqBloxsBwRJjWINAHhTzY4p2AxIAbEQIkY
0NBeiQpbWRUDsRjoQezDgGF1Uh2PsIfqhCtIDIgBMVAyBvp7pNQdVbKiV3bFQAsGnsF5NqYuB7iW
VCAXYIdDfo8GAdqKATEgBsrLQP+39jC6FyyDUF46lHMxIAYGMHARji4EbgeeB8YCHPI7D5CIATEg
BsRAZR2p4CN7lZlSYkUMiAExUGVgPbYXA9sAuwJPA2sAiRgQA2JADPgMdIkHMSAGxEBLBl5DDA3l
taRJEcSAGCgfA/4cKT/bmCOlaVLluwCUYzEgBsSAGBADYqB9BqqTzaGgg58ulogBMSAGxIAYEANi
QAxEZcD/aHGlJ0r9UVFJUzwxIAbEgBgQA2JADJCBznA3lJpSuijEgBgQA2JADIgBMRCdgf6hvehp
FFMMeN4iiyRwDaMZwPnAQcBQIG3hx3qPA84B+PFeid0yd5XvLK7FLGyS/3HANa4WhPwSA+4w4Dek
+qrTzDVHyp2Ccd6TkZY83Bl2bgJmAiuAI4AlwBQgLTkAiq8HJgOrATbgbgW2B8ostsrcVY6zuBaz
sBnwPwQ7ZS/zgAttxUATBvzlDzjNnI0pDe01YUqnsmHgEpi9E/hmyPwHsf814APAhlC4id1RUPIl
4DNA8AmUH2D/smrYJ7GVlJMB29ciWc7CZjlLV7kWA20z0L/8QdsqlFAMpMQAh9Q4xDavRj97h9hT
tE9NuInDD0MJG1BBIyrQ+UXsdAM2hhUDm9q6w0AW12IWNt1hXJ6IgdwwMKAhpaG93JRbORydimze
BWyqk92bEbZ/nfCkQXtDwaI6Srgg5eNAmkOKdcwqyBEGsrgWs7BZS/fG2gAdiwExUMvAgDlSGtqr
pUfHmTKwE6y/0MCDXoTv3uBckuAdkXhlAwUMT8NmA3MKdoiBLK7FLGw6RLlcEQN5YaDaI1Xpi1KP
VF6KrSR+Lkc+JzXI6wSEP9ngXJJgTmin7nrCH7an6p1QWOEZyOJazMJm4QtSGRQD5hkYMLSnHinz
BEtjAgZ6kPYwYFgdHccjrHYeU51osYN+jRQn1kk1GmF7AWk03uqYU5BjDGRxLWZh0zHa5Y4YyAMD
oYaU+qPyUGCl8vEZ5JY/JpcDXEsnkAuwwyG/R4MAg9sboWtX4KMhnXyT7+vAtwDTbwmGzGjXYQay
uBazsOlwEcg1MeAqA10Vxyp9UWpKuVpMJfbrIuT9QuB24HlgLMAhj/OANIQNJTai5gJckJNDfeOB
O4CFgKS8DNi+Fsl0FjbLW8LKuRhoi4EuLh6ldaTa4k6JbDCwHkYuBrYB2FP0NLAGSFNWQTmHDscB
nHz+e6Dem4MIlpSIgSyuxSxslqhIlVUxYIKBLv9be2hMUdQjVeFBfyMwsDZCHJNRuPxAGkN5zXzk
W3qN3uBrlq6o52yXuas8ZnEtZmGTvbNvuloI8ksMuMNAaI4UnFJLyp2Scd2To1x3UP4ZZ0BlbpxS
pxVyWHuW0x7KOTHgBAP+0J7fIVXtlXLCKzkhBsSAGBADYkAMiIEcMNDJXii/Iwp/1JbKQYnJRfMM
DOyXNa9fGsWAGBADYqCwDPg/IcHnijWyV9hyVsYaMXAoTlza6KTCxUAbDCxAml3bSKckYkAM5JIB
vyHFt/YklhjgekgzgPOBg4C8fgR3EXy3LWnYPAOZuMF2RnJqLw3+c0pFU7eX4OyZTWO0d9I2/3xr
9Zr2XM08FT92zuVLzgH48WeJGEiRgc7weJ6G9lJkmqp3Bm4CZgKcyHkEwEp3CpA3GZmBw6ZtTkMe
+FHWhzPISx5NmuY/jxxE8Zkf1J4KcP0xk2Kb/yFw3rZNE3wdACXXA5OB1QAfWm8FtgckYiAFBvzl
D/qqLSj1S6XAcFjlJTi4E/hmKPCD2P8a8AGArxtL7DFwFkzNs2dOlkrCAJeJYGPqVOALJcmzK9nk
Vwi+BHwGCD4h9QPsX1YN+yS2EjFgmIHq0F5Fq3qkDLMbVsfuZXY31/5w80mJT037ABJ7DLAXcDRw
jz2TslQiBq5DXg8GtitRnl3I6ofhBBtQQSMq8OmL2OkG8jqVIsiHtk4y4DekNNncQtmwq/8uoN4K
2Xx63d+CDzLRz8DZ2OX8Dz099HOiPXMMvApVbKSfZE5lJpo49J0n2RvOLqrjMBc0fRzI4zSKOtlR
kFsM+A0pt1wqqDc7IV8vNMhbL8J3b3BOweYZmAiVnD9xm3nV0igGNjNwLfaOBIZvDtFO2gzwk06N
vkbAcNWzaZdAKfVXh/Yqs6P0cJ7iNbAcuic10D8B4U82OKdg8wzMhkpORuV3zCRiIC0G+MP9KHBM
WgakdxADfImH9Wk94cPsU/VOKEwMJGNAQ3vJ+IueugdRDwOG1UlyPMJqx/TrRFOQAQY4L4pv6y00
oEsqxEArBq5ChBMB9f23YsrM+V9X+a7Vxvt+L0APrLXM6NgAA/09UuqOMkBnExXP4BwbU5cD4a7+
C3DMIT8+uUrSZ2AWTCwG1qRvShbEgPccOGBv9PvFhRUGboSVXYGPhqzxTb6vA98C9GZ0iBjtmmKg
/1t7GN0LlkEwpVx6ahi4CMcXArcDzwNjAVay5wGS9BlghXo4cGz6pmRBDGxmYC72uPQJ73tJugyw
ocRGFDk/DuBQH9fzugNQLzRIkKTBgL+OVPDmEtpSkjQZ4Jyci4FtAD41PQ2oZwQkWJKjYed+YLUl
ezIjBsjAYwDv8+kArz9JugysgnpOlxgHcPL574F6b0sjWCIGTDDQZUKJdMRkgK/i5n0ob23MPJuI
ntTmfXDiFhOOlFRHUv5LSpuf7fPxty8hAbb5Z+/Omwl9zjI5J/s3eoMvS79ku3AMdIyfMKbPH9LD
H97nL/Wu8rq7u72eHk7okYgBMSAGxIAYEANiQAw0YsDvkeKQXl8HPl2sSVKNeFK4GHCfAS7q+o4W
bvL1EqLVpNsnEGdpC106LQbEgBgQA17/ZPPE/c5iUwyIgUwYYMOIc0D+BnB+SDNht/NQgPP1msnr
zU7qnBgQA2JADAQMDJhsnnQIP1CqrRgQA5YYOBR2+CYi5+D8rgpsJGJADIgBMWCHAT7LenpbrwXZ
Y3D+OOAcgB8fNiGLTCjJQAfXwJoB8If7IIC9G7bEJGcmdbXKf5qcnQHjN7RywNB5m5ylcc8ZoiGy
Gr41dk3k2K0jiv/WHIVjmOI/zfs37K/2c8uA35DSR4ublN8BOHc9wG+zrQbYgLgV2B5IIiOTJM4o
7c6wexMwE+D6LEcAS4ApgA0xyZlJXc3yniZn02CYH5V9uJkDBs/Z4iyte84gFZFUDUEsk5yZ1NUs
A+K/n500799+K9rLOwN8a2/8+DF948bv2Dd23I6Yc97Rt++++3KUTxgFDu4B9q/h4jIcE0k4ujth
+iS22027AD6fUeP3B3F8F+DPtqs5166dRulMcmZSVyN/GZ4mZz+A/kNS5jycNxucpXnPhfNiY38i
yuYGg+Uj/uPVuSb4T/P+tXENyka8a6ZNvvweqbw3BlPz/8PQzG/g1X4H74sI6wZsDmvBXKbCIU0O
t8yr8YK9c6uBfWrCdVgZBk6LM/YCjgbuKRjRuueyLVDx38+/6rx+LrTXlIEBDSnNlarham8cL6oJ
4yEX1HwcsDWkRZtZy1Q4cBdQb4XgmxG+f9YOOmg/Tc7ORn45/4bPW0WSot1zHHrNk4j//tJK8/7t
t6K9AjAwYI5U0erkxOXDzws0WhmX4bsntpAfBTvB1RcauNuL8DJx0YCGQcFpcTYRljhn77ZBFvMf
oHsu2zIU//38p3X/9lvQXkEYqPZIVfqi1CNVU6qcUD2hJiw45E32VHBQgu1y5HFSg3ySoycbnCtz
cFqczQapfAFifQHJ1T2XbaGK/37+07p/+y1oryAMDBjaU49UTan+Gscn1oTxkHNT9gLK1HjoQX4P
A4YBtXI8AmrnkdXGKeNxGpzx2uPbegsLSqjuuWwLVvz385/G/duvXXsFYiDUkFJ/1KByvREhuwIf
DZ0Zhf2vA98CWn1mI5Qs97vPIAesWC4HhodycwH2OeT3aChMuxUG0uBsFlQvBtYUlGTdc9kWrPjv
5z+N+7dfu/YKxEBXJS+Vvig1pWpKlg0lNqLmAscBK4DxwB1AUXsEkLWGchHOXAjcDjwPjAXY/X0e
IKnPgEnO2Ig/HDi2vqlChOqey7YYxf9A/k3evwM166hADPir/+BzxXj5J1iWs0C5M5GVVVDCoatx
ACdi/h6o9+YaggsvnJNzMbANwJ66p4Gi9owga0bEJGdHw6P7gdVGPHNXie65bMtG/Pfzb/L+7deq
vYIxMOBbe+qRalK6fEuv0Rt8TZI1PLW24Rn3T3D5hyyG8kxyZlJXlBIzwdl9MHRLFGMpxbHNmel7
LiVaGqpl786bDc/GPyH+43Fmkn8T92887xU7Rwx0cGVzrkUT9Ef1rlzldXd3ez09nBAjEQNiQAyI
ATEgBsSAGGjEgD+0h3ZU8Rb2a5RjhYsBMSAGxIAYEANiwBADnZgexf/+H79BZUix1IiB3DAQenfV
KZ9d9cspkuSMGBADYiBbBvyqOhjW0xypbAtD1jNg4FDYvDQDu1FM8u1IviUqGczANAR9ZXCwEyEL
4MWuTngiJ8SAGLDAgN+Q4lt7hRS+aXeNoZyZ1EWXFhnyKys1Wfifhs0zQOANlkiM4/+74dPrAJfc
cEXi+J+2z4/AwFSAn8txTZbAoTNTcMo2/6brvBQoaarStP8m+Z8Dz6c09V4nc8RAJyeaBxLaDYLy
vR0C90cayoJJXXTJlF+GshdbTRb+m7bJXg1+VPbh2LlvL0Ec/9nA4/plLkkc/9P2m6+lcy232Wkb
akP/zUjDRp7p3kTb/Juu89qgMlES0/6b5H8r5GxEotwpsUMM+HOkggZUQfulHKJbrjjFwFnwZp5T
HlWc4Y/wlsAvHfTNJZeuhzNsDI92ySn4shZgY+pUx/ySO2JADKTCQHVor6I7aFClYklKxYBLDLBb
nT/A97jkVNWXs7H9toN+ueYSF4O9C5jlmmPw5zrgYGA7B32TS2JADBhlwG9IFXqyOYduTIlJXaZ8
kp72GGBjhfPnXHt62A0+TQQWA5LWDMxHFH42Z1TrqFZjvAprbKSfZNWqeWN5r/Py7r/5EpXGFBjw
G1Ip6JVKMeAuA2yoTAZuc9BFzo36HlDWzxDFLRJ+zuRB4Pi4CS3EvxY2jgSGW7AlE2JADGTGQHVo
rzI7yrWH88xYkeFiM8AJypxfwwnLLgknJ3N+1M0uOZUDX66Cj/yQ81DHfOUnbh4FjnHML7kjBsSA
UQaKP7RnlC4pyz0DnBfFCcoLHczJx+ETG1GcrCyJzsALiLoMYO+Pa8JG3omA+v5dKxn5IwaMMdDf
I6XuKGOkSpHDDMyCb5x/xInKLgknJb8L4CRlSXwGvokkpwCuvXr8HHxaDrwfkIgBMVBIBvx1pPw2
FCogtaUKWcbKVMDAKOxwYvL8IMChLScl/xzgJGVJfAaeRJKXgUPiJ009xVxYOC11KzIgBsRARgz4
60gFtl17mAv80lYMGGHgaGi5H1htRJs5JV1QxWEpTk6WtM/AN5D0E+0nTy3lY9DMHtDpqVmQYjEg
BjJkgFV4cWUDsvamoeyZ1EWX8j4PJgv/k9q8D7zfYuh6aEdNI/95bZ0D9Laj1GKaRv5bdKGpqYdw
1tXvJp4P35J2+dvm33Sd17TwUjhp2n+T/L+B/Jr6bUqBOqmMx0DH+Alj+vp4g+MPNy/1rvK6u7u9
np6eeJoUWwyIATEgBsSAGBADJWPA75HikF5fBz5d7LeoSsaAsptvBj4E9ye0yMJfcP77LeLodLEY
4FphUd7iuwfxOL/KlgyDoZOBVmMBTyDOUkAiBsSA8wx0sRuKPVHBX+c9loNiIMwAG0mt1g96PZzA
kX2+L7vJEV+K5EbAK4d1uFhnKzE5XNPKFs9vBP4MtJqQ6uI1S/8lYkAMDGKgy7+hKy2pxEP4g7Qr
QAykzQB7FPImh8Jhvj3IeTMScwyMhar5wBHACiDqWmHsJeLcuaOAtBdpZQPvRkAiBsRAYRioriPl
SH742Y5TgX8Bdjbg0zjo4PfUTIhJXfRnkQmnoOMA4Fzgg4DND6Sa8h9uRxYTNofD2gyAjZiDgFa9
WYhiXPgZmBuMa01foQn+0/TyFCi/uw0DnPS7HJjZRlqbSWzzb7rOa8WVy/U/fTfJ/xzom9KKkAjn
s6r/I7hWpih+Q8qJjxazATUP2BLg/IGrgS8DSWQIEo9MoiCU1qQuqk3qF5+iuQjhpwCuPcRK6Gbg
nwAbktT/dnxMapON85uAmQB7LNhzsQQwUaFBTSSZhlgc3nk4Umy3IiXlP83cbAvlhwAL2jRyJdKx
Ieay2ObfdJ3XjNtTcdLl+p++m+R/K+gbQaVtStb1f5tuFzUZmywY3evAsF7QnMogq1Nh8zjgRIA/
cBQ+sXOCMLvbfwxIBjIwC4e8GY8H1lVP3Yrtd4CHgD9Vw7TpZ+AS7N4JsAEaCHvyvgZ8AOCwS9py
FgzwB0NiloGPQN29wCttql1WTXswtkvb1KFk7TGg+j8+b6r/43OWYgq/RypF/dFU/yui8ccsaEQx
1WvA54ETeCAZwACbv8cCFwJBI4oRngZ+BBzDA8kABvbE0RigthHDxudqYB8gbWHP12jgnrQNlUw/
n8652Cp7sZPIXCQ+M4kCpW2LAdX/8WhT/R+PLwuxBzSkWr1Ikpo/HHJZXEd7D8LYnTrAyzrxmgVx
GMWUmNSVxKeJSNwLvFhHCYf39q0TXvYgPvXeBdR7U46c7W+BoLNhg3P2qi93WLBYDhN8cHgcCD+I
tZPzB5CIP1K6f/rZs1Hn5aX+72cl2z3V/9nyX8e630QJBvUyqd+DRlK9Hzg6vBYYX8fzMgeRj5UN
COCPCSeJSgYysBMOXxgYtPmIjdLdNx+ls8PKj/PYbktHfWm1sv44CWBvkglhjyWHXyV2GFD9H59n
1f/xOUs5RfUyrvRFZdIjFTSg+CRYT4Yj8H/qnShxGBsEExrkv1mDoUGSUgQvRy4nNcgpuXyywTlT
wbOh6HpgvSmF0uMzMAN/2TP7rCE++PIBf6jY6JWkz4Dq//gcq/6Pz1nKKYLnAd9MJj1StPwUUO9t
s4MQ/mcgM8dg20XhRPLtgd3qOHciwjgkKhnIADk5DOB8mlrhhH1O0E9LOC9qGrAwLQMl1nsa8n6F
wfyzrpkPcIkKiR0GVP/H41n1fzy+LMQONaQy6Y+qZHEONh8H9gvleFfsfwb4YihMuxUGWNl/FbgS
4NNzIIdi5wBgQRCg7WYGnsEeG1OXA+zlDOQC7PAJ79EgIIXtLOhcDKxJQXeZVU5H5t8AHjNMwi3Q
txfQqNfXsLnSq1P9H+8SUP0fjy8LsbsqNlgyrb9aUImbwl/+kJ0DsHHwKrAOGAV8GVgGSAYzwNf4
twR+CHDYaiSwETgdeA2QDGbgIgRdCNwOPA+MBcjdeUBawuv4cIBvWUrMMsBeo/BSFqa0vwlFiwD2
dn3OlFLpaciA6v+G1DQ8ofq/ITVZnPC/tZf5OlLM+e8ADr1wuIrtuucASXMGbsbpO4A9gF7gJUDS
mAHOT7oY2AZgj+fTQNq9REfDxv3AakBijgFe89sB95lTOUDTdTji0hi8VvRgMoCaVA5U/8enVfV/
fM5SSjHgW3sZDu71Z8/UpFFq5AKLfLo0ISZ10Z+1JpyCDvbe/daQrjhqTPmfhU3+MD4ax3CCuPyh
vyVBepeSZlHmjfL/Mk7MbnTSQDivkXMB3l+uiG3+Tdd5UXh0tf6n7yb555C0id+mrOr/KGVZojgd
4yeM8Vc/CJZA6F25yuvu7vZ6enpKRIOyKgbEgBgQA2JADIiB+Az4Q3v+DCn/T3wFSiEGCsMAF+V8
R4vcdOI8waf1ZvIETi5tFkHncsPARHh6ZARvVyBO+OWPeklYz94AvFLvpMLEgBjIIwP+0F4Hbu4+
jOv1qTGVxzKUz6YY+BsUrWqhjPfIUKDRelAcH2ec14E8ChuJwdo+efTfpM8BF2w0t7ouaJfDgUO4
00T4QgghEQNioDAM+G/tBcN6TsyRKgy1ykjuGOCEV6JdGYuE84Ej2lWQcbq8+2+aPr7deQrAnqaF
hpVPg75jgTTfGDXsstSJATFQnwE+c3l8a88ZmQlPZhnyZhz0XOOgLrrE16tNyRwommJKWUQ9Jv2P
aNIoZ1FtxonHH9274yRwLG4r/22W+RhwcxxwDrBnBjy9GzbZq8hGVBryCJROBThsGFVs8k+fTNaf
UfM4ExFdrP/pv0n+TdbZJnVFLSfFG8BAZ3jVcI5IZC7D4cFIQ16wm91FXcyeKb+oaytgBHcsikn/
o7qdhc2ovm2LiIcAC6ImcCxeFP9t8X8AuLkemAysBs4HuBQBV/O3JVyjam6Kxjg0zF6u2TFs2OI/
cMlk/RnobLV1tf6n3yb5N1lnm9TVqnx0vi4DneyMChpQDvVL1XVWgWLAWQY+As/uBfI6idgV/0eB
wy8BnwG+CPwAOBl4GmCYDWFPERe7/WXKxthY5BDf6JTtSL0YEAOpMlAd2qvYCBpUqVqUcjFQNAaG
IUNcePPqnGbMJf8/DA4fqiJMJxtV3QAn+qctZ8PAt9M2Av1rgLsAU0NZFlyWCTEgBgYz4DekCj3Z
3OQbMiZ1DS4LheSVgWPg+OPAipxmwCX/9waHi+rwyDfiyPGUOudMBvHLCpy3tNik0ia65uPc4QB7
4lyUvNd5efffxWtCPg1iwG9IDQpVgBgQA9EY4B10EjA3WnTnYrnm/45gaGUDlhi+e4NzpoI5N+p7
gK0lILiswoPA8YBEDIiBXDLgN6SCt/Y0tJfLMpTTWTIwA8ZfBJ7N0okEtl3zn716ExrkZyeEP9Xg
nIng8VDC+VE3m1AWQ8dViMulEGwMW8ZwS1HFgBiIxoDfkCr00F40HhRLDLTHwGlIdkV7SZ1I5Zr/
vwYrJ9ZhZjTC9gKerHPOVNDHoYiNqLWmFEbU8wLiLQOOjBhf0cSAGHCKgf4eKXVHOVUwciYHDEyH
j28Aj+XA13ouuuj/jXB0V+CjIYc5f+jrwLeAVp/mCSWLtbsdYr8LuC5WKnORvwlVpwB6ddocp9Ik
Biwx0P+tPS6DoMaUJdplphAMcD4NfwDzKi76z4YSG1Gcc3YcwKE+DrndASwE0hLOc/s58GpaBlro
ZU/by8AhwE9bxNVpMSAGnGLA/9ZesJCUHoacKhs54zIDe8A59mLc57KTTXxz2X9OwD4eGAdw8vnv
gTQnf3dBP4fVTgCylG/A+KcANaSyLAXZFgOxGWAV4pasgzum5ijw6fZNQ9kzqYsumcojdb0BmMon
9UURk/5Hscc4Wdhs5Bt7D2Y3OpmD8Hb8t83/SvBIpC28t/kpmt60DbXQz/WzLm0Sxzb/puu8Jlnb
fMrV+p8OmuTfZJ1tUtfmgtBOHAY6xk8Y0+cP6eEPR/Ze6l3ldXd3ez09PXH0KK4YEANiQAyIATEg
BkrHQHWyOfLdESyCUDoOlGExIAbEgBgQA2JADLTFgP/R4socc800b4tBJSoHA5xAmOdJhHn33/RV
5j9CmlYqfZkwoLLMhHYZ7WfA/2hxcKimVMBExtsFsL9rxj7I/EAGPo/DowYG5eoo7/6bJPtQKGs2
F8mkLelKlwGVZbr8SnskBvy2fKIH7QNg51zggwDfYkoqM6FgVlIl1fTjsL3GQV2tXFqCCGe2ihQ6
Pwf7U0LHNnbrfQ8tLbvDoXgGcD5wEGB7BegdqnaXYptHMeW/zTJPk2cu+3BDmgYM687q+jdZf0al
JG79b7MsTV7/JutsU7omo5BOBf4F2DlqgSkeGfAbUm2tbD4MqbmGDl/X5dorLASuCvxPQBJhpTEy
iYJQ2iGO6gq5WHeXPPJTFVw/J4pshUgjokQ0GMdUGbVyiTf0TQAr2BXAEQAbmjYbjh+DvbuA14A8
iin/bZV5mhxPg3J+yPbhNI0Y1J3l9W+y/oxKSZz633ZZmrz+TdbZJnSxATUP2BLgu/xXA18GJJEY
8Jc/4DRzNqZiDe2x14gFeDzAV1YptwLfAR4C/gRI2mOAr9myMcWL+wvtqShMqkuQkzuB8MKX7P38
GvABgK9opylbQ/n7gA+naSRF3Xn33zQ1Z0EhfzDyIllf/y7zlLeydJVLPrQfB/DTTHxYpbDH9vsA
pzP8GJA0ZcDvkWoao95JNr/4kc0LgaARxXhPAz8CjuGBJBED1yH1wYCJ4dJEjmSYeE/YHgPU/vCx
wb4a2AdIW3id88HgpbQNpaQ/7/6bpIW9mKOBe0wqTVGXC9d/itlLpDpvZZkosykn/lfo54Np0Iii
udeAzwMn8EDSioEBDamOVrGD8xOx0wu8GASEtuxJ2Td0nPXuRoMOmNTVyi0Ol7LC56cryip8UuKQ
Wr1VrXmd7Z8yMUOgnxVJbUMuZbPG1Ofdf2NEVBWdjS3nTMbqejftRAx9WV//dNVmnReDGi9vZRkn
b7bjcvh4cR2jPQgbCQxoJdSJp6CBc6Qi1y+cu7OyAXts1XKSoiQ5A9dCxZHA8OSqcqlhJ3j9QgPP
2ZDfvcE5U8EzoYi9rH80pdCynrz7b5KuiVA2GbjNpNKUdWV9/aecvbbV57Es285sygmDRlK9h1Wa
XgtEnaubsqsuq6/SWOmLitwjxR+3CQ2y1ezmb5BEwQ0YYGP1UaCsQ6XLkfdJDbjh9fdkg3Omgk+B
oitNKctAT979N0nZbCi7HlhvUmnKurK+/lPOXtvq81iWbWc25YRBA6qrgR0+xP9Pg3MK3sxA0B71
AyL3SHEi+fbAbpv19O+ciF12CUrMMHAV1JDTASVlRrXzWngdHQYMq+MpX3Lg3KW05L1Q/AqwLC0D
KevNu/8m6eG8qGnAQpNKLejK8vq3kL22TOS1LNvKrKVET8FOvbftD0L4n4HIDQNL/jpoJvTzHLk/
qkLsV5EbPq2Hu/0OxfEBwAJAYoaB56CGT6bvN6MuV1qegbf8Mbkc4JNRIBdgh72i7K1LS06H4m+k
pdyC3rz7b5KiWVC2GFhjUqkFXVle/xay15aJvJZlW5m1lGgO7Hwc2C9kb1fsfwb4YihMuw0ZqHbo
VZqcMZpSlVfSuebEDwH+0I8ENgKswDnjX2KOgblQdQlwuzmVudF0ETy9sJr357EdC/B6Ow9IS/aF
4i2AB9MykLLevPtvkp5RUHY4wLcX8yhZXP+u8pT3snSVVz6UngOwc4QvOa0DyPWXgWWApCUDXey2
a2sdKaq+GbgD2APoBV4CJOYZeAwq+TQ9HbjfvHqnNXJOy8XANgCfkp4GyEWachqUz0vTQMq68+6/
SXqOhjLeM6tNKrWoK4vr32L2YpnKe1nGyqzlyL+DvcMATtdBm8DjSIgkMgNd/odYSRwkVo9UJUml
9frb4MDAlq3htQb0UMUG4E0HdbXj0vlIVC2nQcnfQIipfA5S3iDAVBk1UD8omL2caQ7lhQ1egQNW
LHmVtPy3XeYm+L8PSm4xoShjHTav/yCrJuvPQGerbbP6P+uyNHn9m6yzTep6tlUB6Xw9BjrGTxjj
L2kerGveu3KV193d7fX0cHKKRAyIATEgBsSAGBADYqARA/7Qnt/R0ai3o1FKhYsBMWCHgYkwc2QE
U/cgzpMR4imKGBADYkAMGGPAH9rrQCOqD+N6fWpMGSM2M0WdsBysDZKZEzJshIGgLDnEsiqCRpND
DxHMKYoYEANiQAxUvvOMqTeVFlRbc6TEojsMjIUr84Ej3HFJniRg4HakPQVYASxMoEdJxYDLDAyD
c5zHdhTAyfUSMZAzBvjM67+1l8jvOUg9JZGG/sQzsTur/zDR3jikviaRhv7EUXTxExSnAv8C7Nyf
1Noef3TvtmRtkSU7YTMmbA6HwhkAJ+8fBAwFXJR3w6nXATaiXBET/JvOywFQeC7wQWA708oT6BuD
tMcB5wD8+LAJsc1/lDrPRL74osxyYKYJZTF1xLl+TPJv8jfTpC6Wganf35hFkefoneE3wdoe2dsK
FIwwRAN/6EYa0jXEoi42oOYBXFurC7ga+DJgS7aFoUOABZYMmiqjOO4mtcnG7U0AKws2UNhztwQw
9RAAVcbkDGiaa0ybGUVJ+TfjRUXLMGy+CXwK4No3fIjhciz/BGQt/HG+HqBPqwE22m8F+DWIJGKb
f5P1Z6t8c3FnPgjaknauH5P8m/zNNKnL5O+vrbJ0wI4/RyqYG6WhvTZLZCrS8enzRIA/0JQbgO8D
7K7+MZC2fAQG7gVeSdtQjvVfAt/vBPgDHAh7Mr4GfADgXCQXhNcTG+S/dMEZR33gUzN/QI4H+Mo8
hY2V7wAPAX8CspBRMPol4DMA/aD8ALgMYNgnAclgBpYhiHXXwcDSwaeNh7h6/RjPqBTaYKCTRoIG
VNs9UjY8ddnGv8I5/hgHjSj6ynVfPg+cwIOUhU9XXKyOvWCS+gxweIXDLew1DAt/fNlrsE84MOP9
s2H/2xn74LL5Ljh3LHAhEDSi6O/TwI+AY3iQkXwYdtmAChpRgRtfxE434OpQcuBnllv2wJ5pwQGX
rx8L2ZcJ8wz4DalCTzbfaJC0Rro4ZLS4jp0ehLE72Ge5znlTQfzheBwIN+RM6S6KHvby3AXUe6Px
ZoTv70hGubLwRKDe9eSIi5m7QX56gRfreMKy3LdOuK2gvWFoUR1jfLDiPeriMHIddzcHNarzNkcw
uPMAdLGRk3b5uXz9GKRTquwxkPZPvL2cZGUpYLDeDzR9WguMT9E52j8J4NOcpDEDO+HUCw1O80d5
9wbnbAefAYPfAxpdT7b9cdEe76eVDRzjw8S4BudsBO8II418Y7gr15kNLtqxwR7js9pJGCONy9dP
jGwoqjsM+M0AfmuPoqG9Ngom+MHjk1Q94eS9/6l3wlDYDOjhk/mzhvQVVc1yZGxSg8xNQPiTDc7Z
DGYFz54z9qpIGjPABjHLrJ40azDXi286jA25Zr49ZdpgwfQtQX54H0xOMV8uXz8pZluq02PAb0gV
emgvPe76NbNyrPe20EEI/zOQZgv1NOi/ApA0Z4DDrIcBnE9WK5ywXDunpTaOjeOPwwgbUezFlDRm
gBPJtwc4DForJyKAZZ2V/BqG6UOtjEbAXoALDfZa31w6Zl05H2DPbFri8vWTVp6lN1UG+nuk0vyx
TzULDiifAx/4I7hfyJddsf8Z4IuhMNO706HwDeAx04oLqO8Z5Ik/sJcD7CUM5ALs8An10SAgo+12
sPsu4LqM7OfJLOuqrwJXAuy9CORQ7BwALAgCMtjeCJu89z8asj0K+18HvgW48mZoyD3ndm+BR2x0
NurZS+qwy9dP0rwpfSYM9H9rD6N7wTIImXiSZ6P8IT4HYOX+KrAOYOX5ZWAZkJbwqS38Kn9adoqi
9yJkhG963Q48D4wFOOR3HpC1cJ7bzwFeP5LWDHAZiy2BHwIsw5HARuB0gBO7sxI2lNiI4pzF4wAO
9bGxdwewEJC0ZuBNRFkEsLf9c62jtxXD1eunrcwoUdYM+OtIBUNPaEtJ2mXgd0jIoSMON/CJ5zkg
TdkDytmLcV+aRgqmez3yczGwDcBeg6eBNUDW0gUHjgROyNqRnNm/Gf6ygcJ7oRd4CXBBVsGJ44Fx
ACef/x7YBEiiM8Ce2VsB3qtpNYxdvX6is6SYjjDAKjy5vAEVfIowIezNWWtCEXTw6dCUX1F1PWvI
91ZqXkaE2a0ipXjeVBnFcdGUTVbMj8YxnHJcXlvs0WRjwGUxxb/JPLK++K1JhQZ1rYQuwpTY5j9q
nWcqf2E9vEfPBVi+aUqc68ck/yZ/M03qMvn7m2a5Oaa7Y/yEMX3+kB7+sCPlpd5VXnd3t9fTwwkl
EjEgBsSAGBADYkAMiIFGDHTyhD+k1xEsgtAoqsLFgBgQA2JADIgBMSAGwgz4Hy1mT1S67+iHTTq+
7zctHfSRrV3bk9hc5cLB4ontkriNTZkSiIG2Gcii/mzbWSXMGwOd4R/nSoMqb1kw6O9Y6OLk1bSE
b4cd3abyzyPdUW2mbTcZ327jG0cSswzwNf1L21CZ5Pppw5zTSabBu6847WGxncuC/yTXf5r15zAU
Nd8CHFLsIlfuGjPQP7TXOE7rM3MQZUrraJFizESsWZFito7Et2auaR1tc4xTsHf35iPzOz+Gyk8A
cXsjdkCag4ClgC15Nwy9DqywZTCCHb4SbUpM6op7/XPZihvayEi7108bpuomMclZXQMxAh9B3KnA
xBhpbEeNW/+08q/s/Ld7/addf/KFpuXAzFYFGDoft84IJR20a1IX82Dq93eQo8UN8H/SE69svhUI
GmGIpOHQM9KQLj4hRNW1LeIeAiwwZLuemmcQ+CIwo97JJmEfw7m7AL7JYkv4Yz/XlrGIdqKWZRR1
JnXFuf75JM/1jh6O4mRNnHavnxo1bR+a5KxtJ6oJuZTFQmB2UkUppo9T/0Rxo+z8t3v926g/uTgs
H8SjSpw6o5VOk7pM/v628rtA5/2GVDDNvNRDex9Bqd4LvJJy6X4D+k+LYWNrxH0fMD9GmqRR+aS/
JfDLpIqUfhADZyFk3qDQ6AFxr5/omvMX83q4zIbp6Py5XgiPs+A/7vVvq/5chhLlb8fBhShZZSIm
A35DKmaa4kUfhixx7tLVFrL2KGxwrY7pEW0di3gPATYXGzwb9r4d0T9Fi87AFETlj/490ZMMihn3
+hmkoEABa5AX9tTOKlCe8pSVLPiPe/3brD/novDOzFMByldTDAxoSHWY0uqSHg6jtJJjEOFxYEWr
iIbO87MuHDprJRwaOAFI0oPRykbtea7Mznkni2tP6DgxA2ygcs5e0q7fqNdPYodzoIA9tYcDoxz1
NUr946jrkdzKgv+o17/t+vMBMNYF7BuJOUUqEAN+QyqYI5W0fs8lL2TgJIBPE7ZkKQxtB+zZwuBM
nH8a+GOLeCZPs4H3PUCftDDJaqVxOhkqbzOgNur1Y8CU8ypWwcMHgeOd97SYDmbBf9TrP4v6kw+9
HL6XlIqBao9UpS+qkD1SrYqTE79fBJ5tFdHweQ4jtrrhOHmRkxhtCZc64Pyom20ZLJGd2cgr55Rw
krQJiXL9mLCTBx1XwUkO4QzNg7MF9DEL/qNc/7brTxbtEoD1KB+aJKVhoNqQquS3lD1SnPh9RQbl
fQdschhtUgPb70X4KwAnMdqSj8MQG1FrbRksiZ3RyOc0YKHB/La6fgyacl7VC/CQ98mRzntaTAez
4L/V9Z9F/cnS5Y/ofCDK1A3GlxSCgVBDqoT9UdNRhm8Aj2VQlvwg6HXA6Q1sM5xvqNgSDjW+C6BP
ErMMzIK6xcAag2pbXT8GTeVCFefNsAeihNWYE+Vjm/9W17/t+jNcCLfgYC9gQjhQ+0VmoNqQYjO6
r3x1EJ8aWAFkJT+C4f2AMTUOcLLiFgDnftgSzhP7OfCqLYMlsTMK+eRkaD6lmpZG149pO3nQ9ySc
fBk4JA/OFtDHLPhvdP1nUX+Gi/RNHCwCONohKQUD/rf2SrmO1B4oX/bC3JdhObOH4ifAyTU+8Aac
VxOW5mEXlHNY5No0jZRUN5fVuB9YnUL+G10/KZjKhUr24H4iF54W00nb/De6/m3Xn/VKkz37BwHb
1DupsKIx0OV3Q7FDCtJ2rziHx9gKNyHroGStCUXQwe7fRn7x6ZUTgLMWTprcpcYJztn6XU1Ymofk
6RygN00jBnSbui7oikldza5/NtTZ1Z+W1Lt+0rJlkrM0fHwISi9NQ3GbOpvVP+2oFP+DWat3/duu
Pwd7VfkKxbk4wd+zetKszqgXv1mYSV301/XrrBkXGZ3rGD9hjL/6QbAEQu/KVV53d7fX09OTkUsy
KwbEgBgQA2JADIiBfDDQxbcM/A6paq9UPtyWl04ysD+8ekcLzzgrj+DTejN5AieXNougc2JADHgf
AgcTWvDA+y3KunD3IN6TLXTptBgQA4MY8If2OtiYwrhenxpTgwhSQAQGgor6b4jLBfqaCa8xrvfT
aj2l15sp0TkxIAZ8Bv6Cv63Wz+KcjSh1u4Z0ynNRBXV2eXKcak45zRj3WOUu4/1mXBZA48XAc8Y1
S6ELDBwKJ/hW2vkA53XZnNsFc6lI3q/ZvPtvslDPg7LnAa6PVkRhL5Jp0fVjmlG39IXrbLc8y603
nfQ8eGsvlVwsgdYzY2ieibizYsRvFJVLChwHcBL1no0iZRjO12NtyjgY43feTMsZUHiDaaUW9DXj
P+41Owf+TrHgc1QTcf1vpXc4IswA2Fjmm0itekAQxRn5MTzhm3x+TWfZq7TuubSzYfr6Cfxtds8F
cUxuXeX/AGSSE9E/CGxnIMNx65+81tkGqEpLhb/8QaA8Su9vEDfylk+CU4HxEVOw0h4ZMW6jaLxQ
rwcmA6sB/gDcCmwPuCJJ8xg3H0OQwLTNadC5EXg4rjMOxG/GRdxrdivkZ4QDeQpciOt/kK7edmcE
3gTMBFYARwD8oXWp4Qh3GsozOPMiwIagbUnjnrORB5PXT9jfZvdcOJ6pfdf4H4aMcd3CTwGvApMB
cv1PQBKJU//kuc5OwlHKaTu55kHQgEplaI/j7rxYTk05J4H6Udj5EvAZ4IvAD4CTAX78l2EScwyc
BVXzzKlzRpPta9Z0xk36fwmcuxPgU+x1AO8hvl7+NcCfGICt68L1jbi2kCQaAyavn2gWyxGLIy1s
9BwPfBe4DPg4wFGTiYANKWqdbYO7JjaqQ3uVGEGDqkn89k6xAj4YMNGN2cqDDyMC15MhwsJGVTeQ
p2GJsP+u7bNHYjSQxhwNF/Jq85pNI78m/OeQOIfIaxvL7N1dDewD5EEehZNcH2d6Hpx1xEcT148j
WXHCDT50HAtcCPBaDIQP+D8CjgkCUtwWvc5OkbpWqv2GVKqTzekBuzH5g8vPkKQte8PAojpGXkPY
40BehiTqZCFxEIfhTMnZUMQ5V6m1vk052qYem9dsmy42TWbCfw7J3wXUe3Wevcz7N/XArZMcUmGv
mm0xec/Z9N3E9WPT30a2XOF/IhzsBV6s4yjvpX3rhJsOKnqdbZqvGPrsTcG8Fl4dCQyP4V07UXdE
opUNEjJ89wbnFBydAVYKk4HboifJZUxb12xa5CT1fyc49kID5/ijkKd7aSn8ZY+4iy+eNKA48+Ck
10/mGXDIgfHwpdHvEucejkvZ17LU2SnT2Eh9dWivMjsq1c4FXkTsYk+7C5MXZaMF6vjD8BQgScbA
bCS/HlifTI3zqW1ds2kRkdT/5XBsUgPneI892eCcq8FXwzHOEZFEYyDp9RPNSjli8YGk2e9SowcW
U+yUpc42xVdMPXaG9gKnrsLOiUCa/WC/rtoIbAZbzufZC8hb5R/478qWPE4DFrriUMp+2Lhm08xC
Ev974NhhwLA6Dh6PsNp5iHWiORV0B7zZDWjUOHTKWUecSXL9OJIFJ9z4E7zgW+O8/mqFv4m819KS
stXZafHYRG9/j1Sq3VFVD7goJ59y39/Eo6SnboSCXYGPhhSNwv7XgW8BG0Lh2o3PwCwkWQysiZ80
lylsXLNpEpPE/2fgGCv4y4HhIScvwD6foNnDnCfhvc9J1KfnyemMfU1y/WTsulPm+fv6VeBKgMN8
gRyKnQOABUFACtuy1dkpUNhKZf+39jC6Z+UTMXPhEl+pvr2Va22eZ2XJRhTtHAdwqI8X7h1AWXpR
kNVUhA3Sw4FjU9HurtK0r9m0c57E/4vg3IUA79fngbEAH4bOA/IofEPqx8AY4KU8ZiADn5NcPxm4
66zJO+HZlsAPAd5DI4GNABv2fBkqDSlrnZ0Gl010+t/aC968QlsqfXkMJtYA04H7UzK3Cno59DAO
4OTz3wObAEkyBo5GcpbZ6mRqcpfaxjWbJilJ/Oc8uIuBbQD29D4N8P7Nq9D3nwAnA5cCktYMJLl+
WmsvV4ybkd07gD2AXiDtxnxZ62xQa1O6bBrbbOt87LGrs56sQ+DaeifaCONkScJFMZXHqHljT92b
USM3iHcfwm9pcC5vwXH5b3bNvoHMJ+U2bf6a+R/F9muIlLehvEb54qTzXRqdNBhu4p4z6E4iVUmv
HxqPe88lchiJXeWfv3G/TZq5UPpm9U+R6uxQll3b7Rg/YUyfP6SHP2zbvNS7yuvu7vZ6etKc/eYa
DfJHDIgBMSAGxIAYEAPxGfB7pDik19eBTxdbmSQV30mlSJGBD0H3hBb6/4Lz328RR6fFQB4ZiHL9
dyJjUaYG3IN4T+aRhBg+8w3Ok4FWYxlPIM5SQCIGSsBA/2TzhmNtJWChSFmMWukHeWYjaWhw0GD7
eoNwBYuBvDIQ3CdRrn//STNCRm0PXUVwyXgUTo7+M0BOmonqjGbs6FzBGBgw2bzRtKWC5bm42RmL
rM0HjoiRRT5FS8rHwDRkmW9f5vXtuyQlxlfO+fYp5/3o+o/HJOcd3RgvScvY7OXi3MujgKIv8tuS
DEXIIwN8Lmv5cGE1YzNhbZYhi3xr7xpDukyrWWRaIfSdAtydgt4iqjTJ/xwQNCVnJD0Cf6cCE2P4
bZKzGGaNR+U3924wrnWwQpfrn8HeZhfCFzWWA6z7TYrL/JusM0zqMsl/iXT5DanUP1och1Au/Dcy
ToImcYcY1NXETFunTOUxML4tdg4BFgQB2jZlwCT/W8HSiKbW3DvJJ3+uqzY7hmsmOYth1mhU9sRx
eOpho1rrK3O5/qnvcXahV8I0HwRNisv8m6wzTOoyyX+JdFV7pCoD3hray3HJfwS+3wu8kuM8yHW7
DFwPc2xYjLZrNlNrZ8H6vEw9kPF6DCxDIOuug+udVJgYcJsBvyHltovyriUDwxDjaIDr40jEQFQG
1iDiXcCsqAlyHo/Dr2w0al6UmwU5F26d6aZr8koMNGNgQEOq1YsYzRQ5e47d+EWXY5DBx4EVRc+o
8mecAb6ccDgwyrhm9xSeDZc4Z9Jm13sZ6h9TJf0AFHFZhX1NKYQe8W+QTKlqxIDfkArmSNmsXxo5
pPCYDLAETwL4NCcRA3EZ4OeUHgSOj5swZ/Enwt/JwG0587ts7nLYlcOvEjGQIwaqPVKVvqhC9kjl
qDDacnUGUr0IPNtWaiUSA553FUjgUgit1hPLM1ecVM85YZxkL3GXgSVwbTzARq9EDOSEgQFDe+qR
ykmphd08DQdXhAO0LwZiMvAC4nOy75Ex0+UlOudFTQMW5sXhEvvJH6H5AJeokIiBnDAQakipPyon
Zdbv5nTsvgE81h+kPTHQFgPfRCq+fl7EamAW8rUYWANI3GeAi3PuBbT6dJX7OZGHJWGg2pDiY0Bf
IevQQpcjn9r4AygRA0kZeBIKXgYOSarIsfScRM/J9OzlkOSDAS7QuQhgb7tEDOSAgU6+wYLPFfuu
sjklyQkDe8DP7YD7cuKv3HSfgW/AxU+472YsD7ksyP3A6lipFDlrBq6DAwcB22TtiOyLgdYMDPjW
nhO9+uvg9NrWjkeKwe9C8enGRUmaR/YecAKtpD0GkvIftsrhVVevs7CfrfYfQoRLm0QyyVkTM0ZP
8UGDQ0VZiMv1TxZ8xLH5GiKfC/D3oF1xmX+TdYZJXe1yXfJ0HeMnjPFXPwiWQOhducrr7u72enp6
Sk6Nsi8GxIAYEANiQAyIgeYMdHFozx/S07hec6ZsnN0fRt7RwhDL6QbglRbxdFoMiAExUAQGuAZY
lDdK70E8zvWTiAHLDPhDex1sTGFcr0+NKcv0V81xyv8m4G8AF0hsJhtxkpCIATEwmIHgXhp8Jr2Q
LGymlxv3NHOIrlW9SK/zOPQcle1g3o1+o6MyZjUeF+RHj1SldIKysupBHGPnIfLzwM1xEjke91D4
x7eKzgd+VwU2kgwZWADbFwPPZeiDTMdnYCySzAeOiJ+07RTh+7dtJUrYlIEVOBtnDbAi3r+fBweP
ALc2ZUonM2KAz1Kb39rLyIfoZn+MqHyryPc6QrJxiMNva7ksXMKAQ3USdxhYAlfifDx1DuJPccf9
1DzhK+kuC9fButuyg7p/LRMewVzc+zeCSuNR4tQZO8D6QcBS415IoSEG/OUPAl2VfqngyMHtM/Dp
RWBGRN+GIN7IiHGziDYNRjlM93AWxmWzIQPs8ZwKjG8YY+CJrXA4YmBQIY9cvpe2BeNcA4u9EbZE
968tpuPZiXv/xtNuJnacOuNjMHkXwDcZJU4y0MklpIIGlPNDe6SQa90UZaG2s5CXecyUxCkG1sIb
VsanOuWVnGnGwEdw8l7glWaRDJ/T/WuYUEPqinT/bg1O3gdwyFriLAPVob2Kf0GDyllv6dijANcW
mc6DHAuHgvgNsHtynIciu34dMncwwEVPJW4zMAzuceHNqy26qfvXItltmCrK/cuPiXN9t5fa4EBJ
rDHgN6RyM9k8oIWfReHchCji6htuZ8N5zt/KRes1CtEFi/Mq8sNG7kkFy1cRs3MMMvU4sMJi5nT/
WiS7DVNFuH85NeUEQKMWbVwAdpNEnbZt16tW1pYiAnsK9mwV0dHzE+HXZOA2R/2TWxUGrsXmSGC4
CHGWAdZgbOzOteih7l+LZCcwlff7dyby/jTwxwQcKKkVBvyGVC6/tcdufM5RyKPMhtPXA+vz6HyJ
fF6JvHIomT0eEjcZ4IsnLwLPWnRP969FshOYyvv9y7dQr0yQfyW1xoDfkMrd0B7puQPYDZjEgxzJ
aPg6DViYI5/L7OpVyPyJgH+nlJkIR/POF0+usOib7l+LZBswldf7973IO1+cWGaAA6lInYH+Hqm8
zdXharecUHh66hyZNTAL6hYDa8yqlbaUGOCinMuB96ekX2rbZ4AvnPCDrY+1ryJ2St2/sSnLNEFe
71/+rvENdUkuGPDXkfLbUKFlEHLhOZ38EbAfMIYHOZBR8PFwYH4OfJWL/QzMxS57PiRuMcAXTvji
iS3R/WuLabN28nb/7ovsbwE8aJYGaUuPAX8dqUB9LtaRCpzllr06PwFOBvIgfEX7fmB1HpyVj5sZ
YI8HrzX2gEjcYGAPuMEXTu6z6I7uX4tkGzSVdJsC7QAAQABJREFUt/uXD216U8/gBZC+qq70TaRs
gZPOd2lgg8N/bzY4l0UwK/1bsjAsm4kZOB8aGg1/c3jJpesscWYbKFjbIDyL4JdhlJO+bYruX5ts
m7XV7P41aymatmZ1xhVQ8btoahTLDQY6xk8Y09fHHwj84eal3lVed3e319PT44aH8kIMiAExIAbE
gBgQA44yUJ1sDu86gkUQHPVUbokBMSAGxIAYEANiwDEG+iebNxy3cMxjuSMGxED5GOhAlgmJGBAD
YsAxBgZMNm80BcQxn511pxP9e3vv7XnveAeWHfL7+px1VY6JgXwx8Hm4e1S+XJa37jPAr7BwOcK8
vPjtPqPl9LB/aK+I+R+HTPF7dhbkk5/EfGNMIHwUK2E/hI9MbsBE9//8TwuGZSJ7BubAhSnZu5G6
B4tSt1DfwA4IPghYWv+00dCZ0DbLqEYpc5ABNqD4rsI64BmgF/gvwNpXx8pSZ4DTMojfkMrlyuZR
Sod3y8goEZPFufhiz7v0Us/rgr3f422LRx6p6LvgAixgvjCZbqXOAQNbwccROfAzqYsW7qW6Ln4M
oXcBr9U9azZwONRllU+zOZG2Jgx8Aee46PkfALZprgWmAr8FuIxT6lKWOiN1It0wUO2Rqkw+0NBe
/EJ5y1s876KLKune9S480eyFGxF34pQpnrdpo+cde6znHXhgfL1KIQbEABjYGngfMF9siAEzDHA5
uE8DDwD7AJ8FTgX2Byg/BIb6e/ojBqIx4DekokVVrHoMfOhDldCf/czzfvGL/hhPPYVRRT7mQP75
nytb/RUDYiAmA3gQ8TBU7r0UM52ii4EGDBxcDcdsDO/VUJzfYJ9V9tuASaFw7YqBVgwMaEhV+qVa
JcnZefQKpSnvfndF+89/PtjKT++uhL397YPPKUQMiIEWDHBo/gRAqzy3IEqn4zCAd4F8ebJOooer
YWpI1SFHQQ0Z8BtSwRypvobRdKIRAy9Vn5RH1plXMYLj4JD16ypb/RUDYiAGAzMR92ngjzHSKKoY
aMHAy9Xz9YbvhlXPleFDBS1o0ukYDFR7pCp9UYXskYpBRjtRg+G8D35wcOoT+DQNeQRv8knEgBiI
ycApiH9lzDSKLgZaMPB49fyBdeIFK2wsr3NOQWKgEQMDhvbUI9WIpsbhS5ZgqYP1lcnln/lMfzw2
ombM8L+843372/3h2hMDYiACA+9FnFeAZRHiKooYiMHAPdW4X8eWa0gFMgs77wHuA/4UBGorBiIw
EGpIqT8qAl+Doqxa5XnnnFsJvuQSz1u50vNefMHzrruuEva972F0gsMTEjEgBqIzcDqifiN6dMUU
A1EZeAIR+dbeeOAZ4LsAG1ffAShnAepU8KnQn4gMVBtSvGz69AWGiKTVRrvqKs/71Kcqyx2MHet5
E3aq9ERddpnnfexjtbF1LAbEQFMGuJDPFsCDTWPppBhom4GvIuUZ1dQfxZY9UY8BWL3GX0sKG4kY
iMxAF5ve/FwxJ5yrFR6Zt0ER2Wj6ylcqa0h1deE3AD8CmzYNiqYAMSAGWjFwGiLoTb1WLOl8AgYw
G8NfkJPLHUwC/gL0AhIx0A4DXX43VLUFVbjBvQ2g5M12aGkvDRtOv/lNe2mVKscMvAHfLV5nmTG1
1pLlK2AHXwjIRPiGra18ZpJBGQ0zwOLOZOZFWeqMMNkF3u8YP2GM3xUV9Ef1rlzldXd3ez09PQXO
trImBsSAGBADYkAMiIHkDPhDe36HlMb1krMpDWJADIgBMSAGxECpGOjk0J4/pIc/akuVquyVWTEg
BsSAGBADYiAhA/5be8GwXvZzpOjBzsBbgOy9ScitkosBMSAGxIAYSI2BzqFDve2m/J231Xgu5iDJ
igG/IcW39rIXrMDX9Rw+u42l0IYu97whf0ZbKlhntk3vxiHdNW2mbTfZTCSc1W5ipcslA3Pg9ZRc
eh7P6UXxoucytu7fXBZbIqezuH8T2mQD6m2fOs878FdLvb0WfMfb97abvAPvvdsbvR/XDpHYZqAz
PJ6X2dBexxFoPP3M8zrfimXC8U2IDVhLgDLkVjSm+C50m8KPno5sM227yYZnYLNdX5XODANbQc0I
M6qc1mL7XsqCDN2/WbCerc0s7t+ENve6/D+9cf/7aG/TuvXea/c/4P112VNe51ZbeX8/70pvzD9M
z5bPElr3lz/oq7agsumX2h4Npp9UqF+3O7bPVvY3fQXh+EjdECwos24Jwp6vhOuvGBADYkAMiIGS
MjDuvQd727xzmrfxL697D//vE7w3X+G3lDxv7EEHent89cve2/7zP7xVhx3hbVpbhjVZ3LgIqkN7
FWey6ZHaq2J8PRftrzai/BAsj7bh/Mq5jndWtvorBsSAGBADYqDEDOxwyHv83D/35a9sbkQxoPcX
v6z0TG25pbftLruWmCH7WfcbUplONu+oNqT60PtUK32/r4ZMrj0T/Xhj9KiKKQbEgBgQA2LAZQa2
nlKZkPna448PcvP1x3/rh42YzNEdiS0G/IaULWP17VS6Jb2OLeuc5iQnChf0l4gBMSAGxIAYKDcD
G/7CD9pg1suwYYOI4CR0yqY3uHS6xBYDfkMqeGsvk6G9vqcqee04fHCeO/6xGvbk4HMKEQNiQAyI
ATFQMgb++mTl93D79xw8KOfbvesf/LC/PROeJjMomgIMM5D90J6HhtSmP2Dpg9ORtcNC2cNrnEPw
9l7fa8CvQuHaFQNiQAyIATFQTgZeXrzEz/jOH/8Xfw2pgIXJ557lDdlhB2/DK696rz6nl7MCXmxs
u2iEPVJ9wat7NqwOsLEGk8pPxPIHvwBwgWy8GWfxteEtjq3E2nAutph4LhEDYkAMiAExUHIGVj/6
mLd6yU+9HQ4/1F9Dai16n7q229ZvRJGap//tc+h8yGR8qbQl468j5VOOtQ+yo/6XWOLgEDiwAg2o
oyuNKPZErcd+33dLWzjKuBgQA2JADIiBWgaWfeESr/emW/zg4bvv5jeiNv31r94Ts8/2Xv5NT210
HafMgL+OVNCCymYdqSCH96DhtBMOJgJbAH8AsmvawbhEDIgBMSAGxIBzDGxat8576suXe09f+Q1v
211389a9+qq35sX/cc7PsjjkD+25k1k2nP5ozh2MEHpvmlMXSdM6xFobKaYiFYUBviBj+zrLgrsy
XNe6f7O4srK1mcX9a8gmF9185fdPZMufrHsd4yeMqUyPwpgqmzEv9a7yuru7vZ4edQ/q+hADYkAM
iAExIAbEQDMGqssfIEpHsAhCs+g6JwbEgBgQA2JADIgBMRAw0D/ZXPORAk60FQPtM+A/mrSfPPOU
efc/cwLlgBgQA2VjoBMrH2wWTe3eTIV2xEB8BsYiyR3xkzmTol3/ucDynUDwIQJnMhTRkbz7HzGb
iiYGxEA6DPQP7aWjP77WmUgyK36yuinGIfSaumfSCzTpf3peSnMaDJwCpXenodiSznb950T75QCv
/TxK3v3PI+cu+TwHzlQ+X2fPK5M2Teqyx0ChLPkNqUw/WlxL53AEjKwNbPOYT8imdEV1waT/UW0q
XvYMbAsXsBSatyB7V9ryIKn/V8IqG2J5lbz7n1feXfB7KzgxwrIjJm2a1GWZhqKYq/ZIVcb3NLRX
lGJVPqwz8BFYvBeofoPbuv2kBpP6v6ya94OTOpJR+rz7nxFtMisGxIDn+Q0pESEGxEACBjjHBovw
e1cn0JFlUlP+z0UmzswyIwlt593/hNlXcjEgBtpjYEBDKjTvvD1tLqba6KJT8qlQDByD3DwOrMhp
rkz5/wDy3wXge+O5lLz7n0vS5bQYyD8DfkMqmCOlob38F6hyYJkB3kEnAezNyKOY9n8eSDgrj0RU
fc67/zmmXq6LgbwyUO2RqvRFFbJHKq8lI7/zwcAMuPki8Gw+3B3kpWn/l8DCeGDyIEv5CMi7//lg
WV6KgUIxUG1IVfKkHqlCla0yY4OB02DkChuGUrJh2n9WIvOBM1LyN221efc/bX6kXwyIgUEMhBpS
6o8axI4CxEAzBqbjJD8++lizSA6fS8v/W5DnvYAJDue9mWt5979Z3nRODIgB4wxUG1J8DOsLL3Ju
3JAUioHCMcBel2/mOFdp+c8FLhcB7O3Ko+Td/zxyLp/FQI4Z8L+1F3yumM0piRgQAxEY2ANxtgPu
ixDXxShp+38dMn0QsI2LmY/gU979j5BFRREDYsAMAwO+tefE4N46ZGytmcx5G6CHT5c2xaT/Nv2W
rXgMvIzos+MlcSp22v6/htyeC/B+yKPk3f88cp6Vzxyet/07YdKmSV1ZlUHO7XaMnzDGX/0gWAKh
d+Uqr7u72+vp6cl51uS+GBADYkAMiAExIAbSZaALU6P4v/onXWPSLgbEgBgQA2JADIiBIjHgD+35
Q3r4ozlSRSpa5cUoA7xJnBj7bjNXefe/zWwrmRgoBAO6f50uRv+tvWBYz/nfifPAJb9pJhEDthn4
PAwelbZR3oE7A28BDN+NVvxvwU8K9+8QmNwNGNPCtJHT06DlK0Y0SYkYiMeAC/dvPI9LFdtvSAVv
7Tmf8x/Dw08AodWvmvo8DmevaRrD/MmZUDnLvFppzJCBHWCbb6AtTdOH9+I7dc953tA/Acs9b8if
0ZYy1HKz4n8EbuLev01UsgHFuf6cy/4M0Av8F7AnkJo8As1TgYmpWZDiLBiYA6NTLBuOY9OV+9cy
RXky5y9/EDjs/NAea8wXAX7WIoqwth0ZJaLBOMMzsGnQfamqw8DHEHYXwDe50pCOI9B4+hkeEN7q
eRuuBC6rWBlyKxpTBhZjStv/qJzEvX+b6P0Czl0F/AHgb9K1ANs4vwX2BVKR9dC6EJidinYpzYqB
rWB4hGXjcWy6cv9apihP5vw5UkEDqiMPnn8DThr4bclDVuWjAwxsDR/eB8xPy5ft0fv0k4rydbt7
3qZzgE953vo9MGlxBc7xK7q7tG88df9jumbg/p0Ok58GHgD2AT4LnArsD1B+CAz191L4cz10cohv
dAq6pVIM1DLg2v1b65+OfQaqQ3sVNoIGldPcPArv2J/P2lQiBtJm4FgYeAh4KS1De1UUr2fTIPzl
4170TJ1fOdfxzvaNp+5/TNcM3L8HV01+EttXQ+Z/g332TL0NmBQKN7q7BtrYO6nhe6O0SlkDBly7
fxu4WfZgvyGVm8nmQWnxsxxnBActthtbnNdpMdCIAQ4NnwCwUygt6ag2pPrYwqiRvt9XAybXnIh4
aMP/iK4MiBbn/h2QsHLwjmrYk3XOPVwNS60hRf3snTwcGMUDiRhIiQFX79+UsptntX5DKncZWAqP
twP2zJ3ncjhPDPDFgaeBP6bp9CsV5R1b1jHCmpTCyTltiBX/2/Ar4f37ctVkveG7YdVzqS5UvQpG
HgSOrxrTRgykwYCr928aec25Tr8hFby115enzFwNZ8/Kk8PyNXcMnAKPMfc7Vel7qqK+g10cNdLx
j9WAen0vNXHrHdrwv57dKGEJ7t/Hq/oPrGPnqGrY8jrnjAZdBW0cdqnXmjNqSMpKy4DL929pC6V+
xvM5tMe83AHsBkzigUQMGGbgvdDHzqJlhvUOUoeG1KY/YOmD03HmsNBZvHs25DJMOMergn2/CoVH
3LXmf0R/aqMluH/vqer6OrasAgKZhZ33APcBfwoC09q+AMW8No5My4D0lpoB1+/fUhfO4Mz390jl
qjsKGdkAXAfw90ciBkwzwOuKb5ilLpi9vOHEipWhSzxvi0XAQvR0VGf7bDgX5zDxPK5Y8z+uY9X4
Ce7fJ6Di08B44BnguwAbV98BKOyotlKdca4Xew06AIkYMMmA6/evybwWQJe/jpRf6aAysFL5mCTt
R1C2HzDGpFLpKj0D6AzytgA4D8aK/BJvoh6CG3AF7B4NYMyIPVHrsd/33fgeWPc/vot+igT371eh
4Iyq2Y9iy56ox4C9gN8CVoQjri8DKDqJGDDGQF7uX2MZzr8ifx2pIBu5e7DCw7z3E+DkIAfaigED
DHCdsjTf1KvrIvpU1u+EBtUkYFfs422KvlvqxmwZmIn/Lb0aHCHB/cvp91cBnFzO5Q7GAXsDvwOs
yjdg7RNWLcpY0RnIy/1b9HKIkb+uGHHdjMpJq7s0cI3DB282OJdW8DooXpuWcum1wsAVsGL9F5k5
Y5/wH7mTTDLzvw23m92/EdTxduOLlZnJQ7B8aWbWZdgEA29Aie3fiWY283T/muC/ADo6xk8Y09fH
+ht/uHmpd5XX3d3t9fT0FCB7yoIYEANiQAyIATEgBtJjoDrZHAY6gkUQ0jMmzWJADIgBMSAGxIAY
KBID/ZPN8zfVvEjloLxkyYD/OGHZgSxsWs6izIkBMRCBAdUFEUhyO8qAyeYc2iuELEAudi1ETpSJ
tBk4FAZsz3HJwmbaPLqq/zw4hpcfrYrqH6t059rYWHh/R65zIOfBgN8Wzt3beq2KDsvxeGe2ipTS
+ZnQOysl3VJrngG+Q3+DebVNNZqwuaiphWKc5Kt41yTMyo+Rnm/V+TVdQl1Rk2dZ/0T1UfH6GZiD
3Sn9h1b3ToG1u61alLEUGPCrl9x9tLgVETcjwlRgfKuIKZwfDp0jU9ArleYZmAaVG4Hq2pfmDdTR
aMpmGa6xIeAvaT65YueLwIw6ZZFWUJb1T1p5KrLerZC5ERlkcFvY5BpkCzKwLZNGGfAbUsE088IM
7XH5AVZmpxrlSsqKxsBZyNA8y5nKwqblLDpnjms9cW0eW6L6xxbT+bbzEbh/L/BKvrMh7+12eNvl
+zqYOxjYzq5ZWcsJA+zKHw3w2yK2JAubtvLmsp1H4RwXnJpu0UnVPxbJzqEpriTLuXtX59B3uTyI
gQEzBwo1V+pV5JU/kicNyrMCxIDnnQ0SOP/GZjdsFjbzXtYcejUh/C4e56bZEtU/tpjOp51j4Pbj
wIp8ui+vBzIwYI6Uzd+UgW6kdHQt9B4JcN6SRAwEDEzEzmTgtiDAwjYLmxaylRsTS+Epe6f3tOix
6h+LZOfIFH91+YA/N0c+y9WmDFR7pCp9UYXqkWK2VwLs1mfrXyIGAgZmY+d6YH0QYGGbhU0L2cqV
CQ6jcI6aLVH9Y4vpfNnhiw8vAs/my21525iBAUN7heuRYr75ZdMTgQE55QlJKRngvCi+ObfQYu6z
sGkxe7kxdQc83Q2YZNFj1T8Wyc6JKb74wO/pSQrDQKh5Ubj+qEohPYfNcuD9hSkzZSQJA7OQeDGw
JomSmGmzsBnTxVJE50fMOQn8dIu5Vf1jkewcmOILD/xg8WM58FUuRmag2pBiX1SfV9CmVGUsmk8B
knIzMArZPxyYb5GGLGxazF7uTP0IHu8HjLHo+VzYUv1jkXCHTfGFB774ICkUA/639gq3jlRtEbH1
zx4Im68/1/qg4+wZ4OvG9wOrLbqShU2L2cudKdYDPwFOtui56h+LZDtsag/4th1wn8M+yrW2GOjy
u6Gqk6MK2yNFas4Hqvlsi6moidYhIhfkk7jHACuwWyy7lZbNMlxjHIp7M4Xy4qTzXVLQ20ylrfqn
mQ86V58BDrWlcZ3VWnsZAXzpRFI4BjrGTxjjfyEm+ExM78pVXnd3t9fT01O4zCpDYkAMiAExIAbE
gBgwyUAXe2n8jhobvTUmPZcuMSAGxIAYEANiQAxkzEAnh/bw3/+jtlTGpSHzYkAMiAExkB0DoffY
EzthUldiZ6QgTQb8og6G9fwGVZrWXNLNtYS+YsihYdBzJzDEkD7n1WwND98G8JW0JsJouzc5r1Ni
QAxkwwDniG3TyvRoROAnAEpSsY1FVu9oxUmM87cj7vgY8RU1twx00XO+tRc0pnKbk7iOP4IEXwL4
6Y4/xU1cE58TFZcDM4Gba87VO5yCwF1rTrA78P8B+wJsgFCeAJ4HDgKCNsuT1f0J2HKNmmVAWP4R
B1sBfFOI3/s6ENgCCGQldtqe/rYDFja92PO6zgy0ed7GG4BzcdzbH0ZO/wMYCWwEmJ+vAT8FKKxc
uv29/j8vYJc+JxWWwY7A/02qKEb6OYi7AKgtixgqYkddhBT/FDtVvhKMg7u8jk616Hberh8+xB0M
hO/xv+D4AaDeyv3/jHC+Sfo3gEtAPAv8H2AtsFnQeNpiHvDezSHe+n/HHJDLcBxzVva7kSSoz6jt
r8CDQGBvEvb3BP4M8I3asOyFg7cAfwReAfYGKHyhh3VJuB7hiwl3A6xHA2HdV9tYZL6XBhFqtqfg
mDpMCPP9OrDChDLpcJ0Bf45U4GT4GgzCCrtlJbMQmA181kAur4SOrwBRGlI7I97Uqk3ecE8BLwIP
AW8HPgwsBlYBzwN/D3QDrDj+s7pl24WV0gwgEDbO2Dh8DbgAYGW1D3AEQH2UDwKsnK4BbgIiC1pn
XbejIfVONI5+iQrr52iB74fK9niEIRPrWeutrmh7FzY/AviaOWUSQHv3AJuAbYEDAFZ0rBApzDMf
gL8A1FaoCIoswxFzZOTYZiKCGm+EGVWRtdjOY2THDEYcAl2285m364f+si75ABDc46wnLgIWArzv
AtkaO4x7KsBblUMQlwJHAozry0R0QP0G59AC4UNS3zO4vz+EMLRoN+4F4H4f0FqpJmu0eTtOUP/T
ABsV2wH/BvAe/xwwFjgH4D10DBA0PPiI/xWA+WOdR/kowEbUowDrEur6X8Bh1WNUSQMaj6w3WadQ
3geQn9eApUCtsE46BDD1cHIGdPE3QVIOBvjW3rjxxI5948bt2NfR0dG377779iH3xcfWyOM9wGhD
ef0B9BwcU9c3EX9qTZq7a45ZFgcBl4TCGWcBcGAojOevBC4PhTFtrb6dEPYLYFxNvGZl3nF+nze0
r8/rvBTXRWf/tdFxVjX8iv6wenpuhq29QvbGYH9R6JhppgNLa8Lq6WoWdizSn5NQRzP99c6R830t
26wt03p+5T1sIji9wTKveb1+loAnDiwEZb4D9nmP7xIKC86Ft6w/WI8EYVssrtzPHUf2h3nD+7wt
FlbDjw6Fh9IF6etteX/sE4o7DPt3AjOqYddg+w3gguoxdfAcw8LX+WwcnwDU2rgVYcxvbXj4OKwn
HB7sn4H0F7XQEcRttWV9fpshXa1s6XzzcrfETycuPv/BhFt6VCpZg9zeBcwylOu50HOmIV1R1PBp
k93RFDxAevsDi3jQQtj7xSfEyS3ihU93HlU52jQHW3YrVaXv27hw8Bi5xUeDkMHbqQjicNt/Dz41
ICToiWJeJGJADLTPAHucfgewl7qRjMKJjwA9QQR0WW2BLu6N9+Gevi0IxHYtwtiNBOlg105CeRPp
WU+xlz2QH2DnUIA9UBTWydf6e+n/GQYTRwNXGzJ1NvSgWpSUhwG/IRXMj2JPb+lkPnJ8OMBKJak8
AAXskt43qaKI6X+BeOOASQArgnsB1HktZSfEYBr02kcTZGqLA9F++i9E/3NNEvS1b/pVZSgAj4UD
5EQc3Q1cBZwHsAJtJBx2+CzwJ4Dd7xIxQAY2iobYDLAO4hD+24Bf10nNYWg2ZDjUxXpvHuDLWyub
PlYstVKtLDr3rj0R/5iNpfcAbOgF8hfsYETRHwb8O2yHAo8BNuQYGHkcwPNgYtkNGjA6unmYNbFC
KcgDA7zlyi2rkP0HAQ79m3giYaV0FnAyUCtsZ6yuDUx4/H2kPxXYDzgFmADUCpvL/6cauAu2UwA+
MUWuODbgCZWtm+BxEbsDhLUeBfHCcj0OHgaOBT4N/AsQboexEch5VEMAzpFYCpwLSMSAGIjHAJ+C
eS/xXh8JvACcBnByda0w7BPAPgAfcD4A3AxsftKpd5/zJoX0vVHZxv3Lnq+DgdHAvkAPcDsQlu/g
4ArgCeC7QDvCXzTmP1zPNNNDvk4CTm8WKcY5zo36HhDqtI+RWlFzygAvIwzt8S7EPeL/LeGfq5Dn
Y4GgPZCEgiVIPB6YXKOEFF9XExbn0C+pOgl+jLB3Ay8CrDwbyX/jBHEjwLxyG0c23YdKeg+k2KUm
FWpGTjbf9AeEs7EVErarlgGfBx4DjgDCshIHRwH05xFgd2AdIBEDYiAeA6y82Qs1E+DD1XZAzXMN
QvqFD5A/Bf4ZYCOC9ZP/6jE2nWxZDWNASPikBunjjdqGsH5i/bMU4APVZwH6HJZncMAG0DTgzvCJ
0L7vZ+i4dpdufqo2sMnxDJyjb882iRP1FOv9qYDfKI2aSPGKwID/81zqoT2WIhsg/ME/kgcJhZXD
fIBPJrVSrxLg3KHahzw+zexWk3hPHLPyq5U1CDgTuKj2ROiY+u6o4hfYvhI6F3V306JKzC2uwnbb
aio8uXZ+uTKst/Ga5prYaGI7rFZY2b8KnAU8AXwOkIgBMRCfgfVIQnwLuBT4JtDq4fCv1Tj+LY2n
mA3fqzwwdXwaJ4KnN7QQuq7GMWTTTZVt3L/3IgHrIDbemj3wXYjzrDvhyiD5I0IOrAkdguPtAQ4N
UujyFv5e/58RdcKCs+y1uyI4SLj9ONKzEbU2oR4lzx0D/p3i90jVPh3kLisJHWalcwpQr7ETV/Ut
SLAXMKEmIXvM3xEKYxc3K4Hap6GlCDsX2Bqg7Ax8CLibB3WEvT3NKqc6SWIH9f0Q81VQC3Iy6hC0
eDqvQeX6KDCr0hvVRwIhfJBlZRjO+1txfDzAirSZzMHJPYH9m0XSOTEgBloy8DPEYL0QfqBj7wt7
rII6jvcqH2BWAOwJomy6AD1Fr+Eevxj39i9xn+OpcAieMjvfjkbW9xGBT2IpynLo/m0D/b9COOsH
1q2BnImdZ4D11QBuGWen6jE3JwP/zZ0amY5jPsSSp6SyHRS8C7guqSKlzyMD/d/aw82Fl9vLK08i
6y8DhwA/TUjDm0i/CODTTtDDQm7ZhX45wF4kxtkROA/YAITlqziYCywGngc4efEa4HcAZQGwFcCG
1fUA6jpfvou/k4Au4FTgJwDPBXGx67+lSP2xBU5u/DAuki9APzLSdUpFw8YbEX429lH5UpivVQB9
XA2wst4BYDvrIYDybuDfATYsmYdLgHsBVoLk62vA/wWCfGFXIgbEQB0GRiPsB8DWwJIqvoIt5VKA
PSS7AmcB7PHF7ev3YLPxtBvwP8A5wGbpxX2IJxn2PHNBTq4bR1mPG7OPCmPKDYjPRg3aYf6LA7R3
MhAI527+HcD6jv7RTwp9ej/AumseMBtgzzXrS7jm19Ws51hn8Fwgv8HO1QDrnxeBUcBG4BNArZyB
gOrzX+2p2McnIcXPAfooKR8DpV5HClUDSrwf+2P/ptBx+Fzc/W2gh2sicVub9q0I45pKXE+l9lz4
mOtbcf2VejrC8azvj4LfU4Btmvu/M3z/e2AEYMvHvK4DFJefVuvixNXnYnyuI3WdxWuHHJTh+uH9
yPpnQitud8R9uwcw1N79G+U65OP/nsCuQHjtrHDaIM5uDeLsgXCuZRVO0+4+bXE9wrGG9LXrh9KZ
Kc82eGSbXhIwwB6TNh66guQDtuyg4fDcugGhlYM/1AmrF8SeHcI54YSEYFJCE+deaHIurVPke21a
yhvo5fAAe+Jsiu082sxbYIs9tbZ5LcP18zfw2mj4LODe376Mv4Rjwusi6J1v5FqrOMxWuCerkZ4o
4bTFHjR05knKyUAHe6T8IT38YXPupd5VXnd3t9fT01NORpRrMSAGxIAYEANiQAxEZKCT8fy5hx3B
IggRUyqaGBADYkAMiAExIAZKzkAnu6HYExX8LTkfyr4YEANiQAyIgeYM+F0QzaPobHkY6Nz8Kizy
XGlQlSfzkXLKtz92jRRTkcSAGBADYqDoDByKDJqaS1t0rkqSv/6hvZJkOHY2+UrxmTFSzUTcWRHi
L4oQx+UorvoflX+T3M6BsikmFUbQ5Sr/EVyPHGUcYnLZD5tSlusnCqdZ8B/Fr6hxovof9/7lsglc
1kEiBqoM+A2p0q9s3uxy4DosU4HxzSKFzg3H/sjQcaPdKHEapXUh3FX/o/JvksOtoGyESYURdLnK
fwTXI0cZgpi281mW6ydKIWTBfxS/osaJ6n+c+3cajHNdqoejOqF4ZWCg2iPlTzfX0F69Eudr5mxM
nVrvpMLEgBgQA2KgNAychZzOK01uldGIDPgNqYhxyxvtOmT9YICfAZCIATEgBsRA+Rjg8D1Xkr+n
fFlXjpszMKAhVemXap6glGe57D9vHn4GQCIGxIA9BjiMIsmOgbzzb9L/s1EMnLOnt7Kyux4dtTxg
jpSujyaldC3OHQlwDoVEDIgBMSAGysPARGR1MnBbebKsnEZnoNojVemLUo9UE+JW4tyjwDFN4uiU
GBADYkAMFI+B2cjS9QA/kiwRAzUMDBjaU49UDTu1h/zq+InAANZqI+lYDIgBMSAGCsMA50Xxbb2F
hcmRMmKYgVCTQP1RLbl9DjGWA+9vGVMRxIAYEANioAgMzEImFgNripAZ5SENBqoNKfZF9YUXOU/D
VjF0zkU2TitGVpQLMSAGxIAYaMLAKJw7HJjfJI5OlZ4B/1t7weeKNbQX4Xp4DHH4ZDI9QlxFEQNi
QAyIgfwycDRcvx9Ynd8syPP0Gejyu6GqLSgN7kUk/HzEa9TqXIdzXMSzlUSJ00pHludd9T8q/ya5
ewPK3jSpMIIuV/mP4HrkKBsQ0zavZbl+ohRCFvxH8StqnKj+N7t/74OxW6IaVLyyMtAxfsIY/wsx
wWdieleu8rq7u72enp6ycqJ8iwExIAbEgBgQA2IgEgNd7FnxO1ca9bBEUqNIYkAMiAExIAbEgBgo
HwOdHNrzh/TwR22p8l0AyrEYEAMlZyD07nbJmdDSNqW/ANojwL+FgmE9v0HVnp5ypxqG7N8J8Gvj
Es9bABJ2FRFiQAw4z8Ch8PBS57204+BYmLnDjilZKRYDfkMqeGuvWFmzmBtOiF0OzIxhc1GMuHmL
ugQOn5mR0yyDWZZtz4E9ftDUphT5+gl4HIcdftvMppTl+gk4PQM7NwQHBdvGvX5OQf7vLhgHyo4V
BvzlDwJLGtoLmGhjeyXS8EaMKiOjRsxhvJvh81RgfAa+81uItrndCjZHWM6r7Txazp5vjj28tvNZ
luuHBE8D+FHfh3lQQIlz/WyL/B8CsDddIgZiMuDPkQoaUBrai8leOPoyHLwCHBwOLOk+X81nY+rU
kuZf2RYDeWDgLDg5Lw+OWvDxI7BxL8A6XCIGYjJQHdqrpAoaVDF1KHrAAFc9z2pIK/DBle11cISN
yu1ccUh+iAExsJkBDkWPBu7ZHFLeHc5x5cKbV5eXAuU8GQN+Q0qTzZORuDn1A9jrAvbdHFLenVeR
dVbSJ5WXAuXcAAMcepKYZ+BsqOT8s6I/PUe5fo4BD48DKwCJGGiDAb8h1UY6JWnEALvK2WUu8bxr
QcKRAOedSMSAGHCDgYlwYzJwmxvuZOoFfwH5sMfRBIkYaJOB6tBeZXZU0R9O2uQoXjK+scZJ1qyo
yi4rQcCjAJ/4JGJADLjBwGy4cT2w3g13MvViBqy/CDybqRcynnMGNLRnugDZGp0P8LViieddBRJO
BNT3qatBDGTPAOdFTQMWZu+KEx6cBi+ucMITOZFjBvp7pNQdZa4Y+ZHLvYAJ5lTmVtNz8Hw58P7c
5kCOi4HiMDALWVkMrClOltrOyXSk5AeLH2tbgxKKAZ8Bfx0pvw2F0T21pQxdFW9CzyKATzuSyvwD
caErQQxky8AomD8cYI+5pDJq8E0RIQaSM+CvIxWoqcyUCo60TcQAX/8/CNgmkZZiJOYTH5+A+QQo
EQNiIBsG+Ir//cDqbMw7ZXUPeMOlWe5zyis5k1MG+LK+JA0GXoPSc4F1DZSvbRBe1ODzkTEbXZ7k
2za3HB5gL6RNsZ1Hm3kLbG3Ajm1ei3z9sNHAaQdlkWbXz8sggZPuJWLAAAMd4yeM6evjDxz+cPNS
7yqvu7vb6+npMaBeKsSAGBADYkAMiAExUFwG/B4pDun1deDTxX6LqriZVc4cYGAYfDgZaNUX+gTi
LAUkYkAMNGbgQzg1ofFp/8xf8Pf7LeLotBgQA20z0MVuKPZEBX/b1qSEYiAKAxsR6c9Aqwl5r0dR
ZjFO4G/lZrFouASm+O7wphLk02QWA87YSBraQrFr91ILd1M5rfs3FVqltMJAl/+DVv1x0G9EypfF
edD/PHBzynZcVs95CzfGcNAVzj4Pnx8Bbo3he1ZRF8DwxQCXnnBdDoWDfJOMc+hcF1euxTBn97hO
miP+5en+dYQyuRGdAT7XtOwciK5OMZsy8GOc/QTgs940pk4GDMTlbCYSzgoSG9ruAD18A3OpIX1p
q1kCA3n5eDYXrr0hbUIM6Y97LUY1OwcRp0SNjHh54ixGtlKLmrf7NzUipDgtBvyfdH20OC16a/Q+
g2N+jmBGTbgOGzMQl7PhUDWysbq2znwMqe4CXmsrtf1E7PGcCoy3bzqWxWmIzaHeh2Olyi5y3Gsx
qqdbIeKIiJHzxlnEbKUaLW/3b6pkSHkaDFR7pDp83RraS4PiGp3fwLEWp6whpcVhlpxtDd/eB8xv
4aNLp7k0AhtTp7rkVB1fzkLYvDrhLgdleS2SlzxylmV55vH+zZIv2W6LAQ0ytUVbgkSPIi3Xqpme
QEfZkmbJ2bEg+yHgpZyRfh38PRjYzlG/OZQ1GsjbHJ8sr8W8cpblJZjX+zdLzmQ7NgMDGlKVfqnY
OpQgLgP8LAHnOUiiM5AFZ0Pg3glA3npNyOqrABspJ/HAQTkbPl0D5LEbPItrkUWYZ87ov23J8/1r
myvZS8TAgDlSeazTEuU+q8RLYZg9BXtm5UAO7WbBGSeuPw38MYd80eVrgSMBzhtzSSbCmcnAbS45
FcOXLK7FvHMWg15jUfN+/xojQorSZqDaI1Xpi1KPVNp0h/RfjX3Od5BEZ8A2Z6fAtSuju+dczJXw
iENRxzjm2Wz4cz2w3jG/4rhj+1osAmdx+DURN+/3rwkOpMMKAwOG9tQjZYXzipE7sNkNmGTRZt5N
2eTsvSDrFWBZzkm7Cv6fCAy40zPME+dFTQMWZuiDCdM2r8WicGaC96g6inL/Rs2v4mXKQKh6VX+U
1ZLYAGucEHy6Vav5NmaTM5YL39DKu3BRzuXA+x3JyCz4sRhY44g/7bph81osCmftct1OuqLcv+3k
XWmsM1BtSLEvqk8Lc9qm/0cwuB8wxrbhHNuzwdm+4GcL4MEc8xR2fS4OXFhyYxT84Crm88PO5Xjf
xrVYNM5sFHfR7l8bnMlGIgY6+dYMPlfsK2FzSmKRAT6V/wQ42aLNvJuywRkbHXl8U69R2T6GE+Rt
eqMIlsKPhp37gdWW7KVtxsa1WDTO0i4T6i/a/WuDM9lIxMCAb+1pcC8Rl+0l5qTVXdpLWtpUzThb
B1bWJmTmCqT/XUIdriU/Hw5l/aR0H3y4xTViEvrT7FqMqvoNRHyzQeQictYgq8aCi3j/GiNHitJg
oGP8hDH+F2KCz8T0rlzldXd3ez09PWnYk04xIAbEgBgQA2JADBSGgS4+pfoPqlk/rRaGUmVEDIgB
MSAGxIAYKAsDnZwehf/+H7WlylLsyucABkLvrg4I14EYEANiQAyIgRYM+D8hwbCe36BqkUCnbTIw
Gsa4BDS/dSBJhYFDofXSVDS3oZR34M7AWwDdjVEI5J2xG+DUi68L4NCuUbxXnPYYcLLU28uKUhWC
Ab8hFby1V4gcFSITk/H6/c88b+jLwH8DmEHd8W/I2bBC5C7VTPCzELNiWDgDcW+IET+1qFhBsAuL
Pg39E7Acbec/o8yPSs3aAMVzcDRlQEj7B3H5b9MSf0q52DffLXgG6AX+C3Diq0tL4MiZQFQxyX9U
m7mMh1LvQKmzPhyKUh+KUu/i0v1OlHouGZXTZhjwlz8IVGloL2Aiyy0+qjXkN2hI4Yd1I37hN3zR
8zb9HmH/gTA+6qqnomnpDMfZkU1j9J/kCtsbgYf7gzLZ6zgCPwpoOHe+FeWNb9JsuKzixpBbUdx8
lztl2Qr6RxiyEYf/BCa/gLRctP0PANsh1wJTgd8CXEYoU7kZ1unM+IhemOQ/oslcRutEqQ9BqW/6
A+4RlPoGlHrn3rh3nCj1XFIqp80w4M+RChpQ+ok2Q2oiLVtcjR/PbfAdsqPwI/9hVBr/jgrjHdi/
EQ2pY3HuQ4nUK3GIgbOwn/l6Udvjx4GLiUHW7Y7yPgf4FMp/D7wFsgLn6OAu/mn9qTAwHZtPAw8A
+wCfBU4F9gcoPwSG+nsZ/eHyG2xM0SmJIQZQ6l0o9U2/Rn2IUt+EUt8EgtdVS73rOtjJtNQN5VNq
8shAJ50OGlBBgyqPGSmGz1ujsTQDjab78CN6WyhLqJk3/lvluON9oXDtts3AFKTkFLR72tZgKOFe
FT3r2TR4NqSzFz8YXPwJ0vHOylZ/fQYOrvLwSWxfDXGCfly/Z+pt2E4KhWeyy991OrpdJtaLZ7Sj
Wuob8JBRW+p+zxQePLIv9eLxrhxFYsBvSGmyeSSuLER6a8VG3y/q2HqmEsaubElyBs6GimuArJ8e
OqoNqb5HB+epD0O6vkwefK7EIeif9eXJOhwEo7SZN6TYwmMj/aQ6TiooPgOd+1XT1Cn1PmdKPX6+
lKIQDPgNqULkpBCZeLOaC040qZUhlYC+N2pP6DguAxORgG2TcKdfXB3G4r9S0dSxZR2N1TL31tc5
V96gl6tZrzeQM6x6LriTMmWJE7eOBOrdzpk6lkPjfauqTjtf6jkkVy4nZaA6tNfh68n64TxpZvKf
fnklC50fwDb4SQhyVX0i63skCNC2XQZmI+H1gAvtk76nKrnoOHxwbjr+sRpW5yl8cOzShDxezemB
dXKMmYW+VO+kOjEsBq2ELXY0HmPRZlFN9VVLveMfBuewk61VihOlXnFFf0vFgIb2nCrudZgX8z28
ibIH5sV8Gp4FHYbjMdHy6oqnm25yyuPcOTMaHk8DFrriORpSm/6A8j0dDh0Wcgrvng25DEOPrwG/
CoVrN5jW9nVQsVuIjlnYfw9wH/CnUHimu1fB+olAcCtn6kyOjff9rOJ81xXYhkq9A6Xuv+HsVKnn
mGi53g4D/u3tryOl7qh2+DOfZtMFlR/PIRfjx/WXqIDn4wd1GbZvRyPr+7D3C/M2y6QR9a63GFjj
SqbhyAb+0kKGLsGPwiIArbyh1XkfG87FiV7/tP5UGHgCGz5m4PHCX0Pqu9iycfUdgMKXMZ2pzrA0
mN9R8n56JmmfAdSBfCGjA6XONaQ6v4v7BI2rIdVS3+hUqbefTaXMJQP+OlJ+pdPhUOWTSypNOY0f
zfV4pXcjfho634nG1MmoPLZB2Ocqr/uaMlNGPaOQaY6goW3qlqDBvO4Q3IAr8ONwNHBspTG9Hvt9
33XLVUe8+Sr8OKPqy0exfQ/wGMCp+1xVyCmZC29Oc8qjfDrTh1JfXy31LpQ6e6I2/RfuHSdLPZ8c
y+u2GOjy1z7wW1L4vW5LhRKZZ+C/0ZDCD+vGHaF6e+B5AMN+kmQMoF3i3Q+sTqYmndRoOK/fCaon
AlsAfwCqNyb2JAMZ4PQ2jppdC0wC/gI422/HFh57QKcDvP4kbTKAUu9Dqa/LRam3mUclyyMDXXl0
ujw+v4ysEpLIDLC9ubZBbE6juKXBOSeC2XD6o31P3oDJNw2Zbca/IRNhNTT3dDjA1f3z4VijdrFJ
/l3Nv1G/clPqRnMtZe4y0DF+wpj/396ZANlR1GF8F4LILUI0CWBCUG6MbBRKCox4gQoIalGIIJSK
AsoheAFqKR6IhVqgYGmUSywFggqIcqgE8NYVFUQElHCoBIMnAnK4ft+86dreyVxvd3Yzb9/vX/Xt
zHT39Pz71z0zPd2z80ZGfILrjxf3L18xMDQ0NDA8PNxer/EMAhCAAAQgAAEItIBA+rK5PBnkp4tb
UB+4AAEIQAACEIBADxEYfdm8cNy5h0qDqxCAAAQgAAEIQGAKCSQ/WhyOVzSFH+JZQgACEIAABCAA
AQiMEhid2hsNY60tBGbJkcVtcaZH/Nhbfr6xR3zNc3NV+H+KHNkmz5lxhPW6/+Mo8oR3aZL/hJ3p
kQwu6RE/cbMvCCQdKX60uKV17Z9aW6+lvrXVrbV6nNmq8H8dMVu7oQrtdf8bwtBVNk3y7+rAPZyY
62IPV970cz0dkep8QYqpvelXwZQIAhCAAAQgAIHJI5B0pCYve3KGAAQgAAEIQAAC05fAmI4UXzZv
YUU/0UKfcAkCEIAABCAAgYTAmHekmNqjVUAAAhCAAAQgAIH6BNIRqc5YFCNS9cGREgIQgAAEIAAB
CIyZ2mNEigYBAQhAAAIQgAAE6hOIOlKMR9XHRkoIQAACEIAABCAwMDCjA6EzFkVXiiYBAQhAAAIQ
gAAE6hNIfmsv/FwxU3v1wZESAhCAAAQgAAEIjPmtPUakWtYgHpc//22ZT21351E5+HDbnSzxb1X4
/4j8aaqd9br/JVUzaVFN8p80J1uWcS+f4y1DiTsTJzA4e87Tkl+ICT8Ts/y+FQNDQ0MDw8PDE8+d
HCAAAQhAAAIQgMA0JjBjQPN5yZQe83rTuJopGgQgAAEIQAACk0EgmdpLpvT0h77UZCAmTwhAAAIQ
6JpA9D/lXe/LDhCYQgJJUw3TerwjNYXkJ3qonZXBJyeaSUv231x+bNASX3rBDZ+1W0np/9z2gsvj
8nFd7fXMce3Zvzs9TUWfM02Kf7nKMXualIViTGsCyaXY/7UXOlPTurTTqXC/VGE+Km0m3VOjYLsq
Tbaz8pDCfi45bnXJ9mPJL3IukkLYT7S+o7Sm5Ffn7pOC+WbntB7OvD4NjPNzkNPnvXJ3kMJfLdkP
3wD+IB0nhRdJt9H6fCm232ijrLx7K36mdHa8U2Y9L9/g/0KldZlst0h3SrtJ60u2WyWv+2b1R+l3
Umwv1MY60q+leyWzCflpdeA/0k+lUEaHxVbmv8/Wk6XtpH9LZnaFdLoULFvPfvnbdfyPkCBneYrC
zpeyZclJWhlU5H8e86K6dJv+sLSe9IRkfp+WrpHyrMz/Kv5zleH20t+lH2Uy30Hbz5DulkYkp7WF
9ryt1v0QYLtfMufYsnXhOLf1a+NEWi/yvxtmbqNHSfbTvB6UTpLukIIt0kpZW3yK4neR/ER9lfS4
FGxTrSyQ3H5vl54j2dy+XC/u8AxJNu93tWRfguWVxfHXS/Y1a/bVbfwv2Qi2IdA+Ask7UsGtuN2H
MJYtJfCY/LpQOkI6sYaPvuhvnKZ7uZbfkf4p+Wa2h+T4pZI7AG4Ivmg+X3pAukl6keSLmy98J0jB
XqWVI6XfSz+TvO+O0iskH8O2r+Qb0mJpiWTzBd3HOEzyMXzx/oS0j+Ry2Xzxfo3kC/wvpNUkH8sX
82OlP0tZW0sB62UDM9vhpuBgl8m+/0my/+6kvE6y7yukO6VtJd8kZksfT5c+vv3YUwo2Xyvu3Jrr
eyR3pJyfy+Sbj28KG0rvk3zT/oCUtTL/nZdZmYlvVmZ4kfRN6S7JZl9dJ3dL7nCuLdkX1+G7JO+X
tXUU4HRNWJH/Zl63Ll+gtBdLV6QOzdXSbed70v/SsHhR5r+ZlfF/uuKPkZzHa6Vw43an9ZOSy+M6
t71D+qXktjgsuU27rb9MOkv6uRSb6yLvnLs2TqT1Iv+7YfZi5eP25I6+bT/J5TrKG6lVsXAbeL00
L00f+HvzJOnZ0mWS2+AhkjtRN0quF7drx5uFt78vPSYFc1kWpBuLtIzPubyO1NuU5ow0PQsItJ2A
/2tv1mxr5sisWTNHBgcHRxYuXDgiv1HbGayrOvqetHGXdXV1Jv0CbZ+ZCXPZT5T2TMOfpeUFko+3
YRrmNN+WPiPtG4U5PHuMTRR2gzQrky5mvKvizs/E763td2fCvO1jxvuG9f0VfkxBXEgTL11ulz8O
y/ruuN2kj0XpnMa+2uewr+PPkE6LwhznsB2jsDW1bm6Bbdjfy279P0H7HC7FeZyq7V2iMH8t7iLp
gCgsTm//FhbExenqrJf5321dxsf7uvzbocDHKv+r+C9Wvm5P74nyd904LG4Lru95URr79yTpykxY
7HdYj/MJYWFZ5v94ma0ln3y+hWOEZRWLQ7SPy31JtO/TtW7/l0iz0/AjtDwwXQ95e/lNaaOc8DhN
3jkXx/t8vKwijzg96yvXM0ymlImf8ZPBAC99ZKyHCPhJ7krpjVPks59A/bS5f3q8nbX00+mydLts
4RGf26VnFSRaX+F+GvaTfpUtUYK5VYmmIH6xjvHm9DgbaLmTdEm6Xbb4b5rOo1wTMY+Q7S5lR0Ky
eXoU51Jpq2xEC7br1KVHMmZKtzXkbx7/C5T3SyWPQNl8Tn0xWWvfnypmvqofKPmcq7I8Fr/SToPS
9unOB2vpUU+3o6mwo3WQz0/FgTgGBJohkHSkwvtRPnewHiNwjvzdQ3JHZCrMx/MUjVuOOxFfkurY
Jkrkzs8dmcSeTnDn4zuSy/A5qczcefiQ5A7kqrYb5MAsyeV6tbRUeliqMt+sXyTdXJWwIN4dC0+7
+IZqblWdT6c/RPLNsE1WVZe+gV8tedrseMk3/SYsj/+/lLE7pPtIW0tPkn4ttc2qmJ0mh5dKB0nH
SFWWx8L7nC29VTIHT19fKE2FbaGDbCa5XWMQ6BECfhMA62UCK+T8T6UDpC9kCuLaXU/6eyZ8Ipt/
0c5/kHxjfoZ0nbRQypo7WselgZtruY30ecn7x/aQNnzB3lHyzXIv6etSbA5bJD05lUcKzpO6tY20
wwPd7lSR/suKP0x6ruSO5Rwpzzzatru0sWRe7vxcLo3HfIM/XHqh5M7GVdItUmwna8MdD3dOvfyI
1IaOQTd1+VX5/Atpf+m90puk8bblOvy/pPxPl8zyXGk8NhnnXDfMPiinfa4dLR0rnSBlrQ4LP6h4
f5/nv5LGe950e8753Sif21M1+qVDYRCYKAHf7jSKO5jkMzLR3Nh/1RA4S4f1zcZPj7H55v7uOKBk
PWkJmfhOs8gEatMdNnca/JRa1mhuU7x1kWT/vMyzFQq8RvJT9JFS9rh+On2V5GP6gj5b6vZC6zy/
Io3X8vg4r0sld/I8jXKvVGSON4trJXcITpTK2Cm61O5RrDtxp0pH5aT8kMLMzMdx2deQ2mDd1OXj
cvh3ksviTuArpPFaHf53KHN31HaWvl1wILOMLbvdzTkX51O23g2zB5WRR9beIG0rbS5lrQ4Ls/+G
dKj0RSnPsmXPpnH8V7KBJds+rxdI2Qepkl2IgkAbCPj5SdfzzhW96rxog8P4kEPAN3DfcPaRlkTx
vvmvHm17de2cMI8SbSm5NfgCGsxPtu7gZO1GBbxP8qhKkbmj862iyILw/yjcncGnSL6hBXtCK/br
Tum10tckl/UyqRvLa+B+9+aRTCb2fQvJI2/BtteKO3xZ843r7VLVE/tSpTG3pm25Mpybk2lgdoPi
DpHOk26Xlkmr0oJf3dblfXJ6qwk4vlT71uF/ktKtLz0qZc0dkF0k+x5sa638M2xoWfeci3apXB0P
sxHl6nPomVLsrw+2VKrD4gKlu1m6Vcra3QrYS4o7Smto+6mSp0mD1T3nnP4tkjtRD3sDg0DvEEie
s5MRKZ94WO8SOFOuv1mKL1yPadsdgE2kYIdq5bawkS7v1/If0kFS2H9Xrc+SbpHy7FoFxhfMvDRl
YXsqcm8pHG9NrXtkxZ063wCKzDe4o6VjJE8bdGNrKfHzoh08xeYLf9xhcrTL5mmNdb0h21TaT7ra
Gznm0ZJ7c8KbDjpcGS6IMnX53yt9NwrLW7Vvn5I+nhe5CsPy6tLtwJ2ZOZFf87R+gNRtxzzKovbq
XUp5U0HqKxR+sOTzwmZf3ynF7aLuOef9x2N5zPwQdIQU2qvz3V2aL5U97DhdmbmDeF1Bgh8q3NeW
HaL4t2v9DskMgtU95zbUDi+Q4o5ZyIMlBFpOYPS39nRDG6Ez1fLqKnHvVsX9VXqJdE2azkP8X5DO
l/4k+UnbT7dvlbLmi+A50kHSCmlj6V3Sg+n657T0RdE3DYe78+A0F0jrSG4790juCDkfh4UbzJVa
9408NnfQTuQouO8AAAYaSURBVJZ8XO/jEaA/S+4gBTtOK/tKapvJy9mernCnzx2Dy6Qlkjs89qXK
7N+R0mmSy+T3hmZKx0uPS7HZ189KnlK5U9pMWizdLNnMM5Tvq1p3eW3nSnOlGdJhkvf5mrSJtJ1k
9i7jodJ47Lfa6VTJvv9b2ly6XjpDCmbfHL6T5PowM9sV0oGS62I/aaqf+rupS7c/l+MBaU3JHcYz
pZ9J3VoVf/u1teT6dpt0Z97mdvhKyfXstu+Oyg+kb0gXS3dJ7lDdKIX612oyrVb3nHP6MqvLbJky
mS9dKvk8nyPZ3iH9LVnr/KlisUjJ3pSmf42WltvJbtL7JbM4V3K4H7yOl86S/iq5zT8mmVOwEa3U
PefcTr8vOV8MAr1GgO9IJV0An/K9r51UBn/rJVsWd5e3l7aQ/BH7bHy8PS9N6+/jxOGTtb62juPv
A81p6Hhl3zEKZXAZfUx/zymE5S39fS5//2mDinR5+443rI7//k6Pv7Xz1Ib8KvuOUbflqON/3Tw3
Vfm2ldxGyvZp0v+y44S4deWP20XZN9G6Oeea8t/fC9tS8nmePCJrGXyerGUo53wdq+zaMk/xReec
8/D36fy9qsnyk3xhO4ltwM8R2HQh4Cf2T+QUxiMuYTQlJ3pM0LIxW5O/8ZAOcVODh3lUeVWNtiyr
eTyPjFhTaXX890iN1ZQ9oow8ytWE1fG/7nHurZmwSf/rHPJBJfJIVJl1c8415f//5NBtZU5NQlzd
ci4rObbz8Ajg8pI0REGgxQQGPSKVTOnpj7us9y9fMTA0NDQwPDzcYrdxDQIQgAAEIAABCKx6AqvZ
Bb+CMjAYPoLgDQwCEIAABCAAAQhAoIqAZ9WTkajwt2oH4iEAAQhAAAIQgAAEOgRW6wxHdTY8tYdB
AAIQgAAEIAABCNQjMDq1Vy89qSAAAQhAAAIQgAAEUgJJR4ovm9MeIAABCEAAAhCAQPcE0hGp5HXz
9F2p7jNhDwhAAAIQgAAEINCPBJKOVD8WnDJDAAIQgAAEIACBiRIY05HqjEtNNEv2hwAEIAABCEAA
Av1BYMw7UvzXXn9UOqWEAAQgAAEIQKAZAumIVGcsihGpZqCSCwQgAAEIQAAC/UFgzNQeI1L9UemU
EgIQgAAEIACBZghEHSnGo5pBSi4QgAAEIAABCPQLgRmdgnbGouhK9Uu1U04IQAACEIAABJogkPzW
Xvi5Yqb2mkBKHhCAAAQgAAEI9AuBMb+1x4hUv1Q75YQABCAAAQhAoAkC0TtSyo6eVBNMyQMCEIAA
BCAAgT4hMMO/C5NM6TGv1ydVTjEhAAEIQAACEGiKQDK1lwxE6Q99qaawkg8EIAABCEAAAv1AIJna
G0m7UMzs9UOVU0YIQAACEIAABJoikHSkwn/tNZUp+UAAAhCAAAQgAIF+IJB8/iAUlKm9QIIlBCAA
AQhAAAIQqCaQvCMVOlBM7VUDIwUEIAABCEAAAhAIBNKpvc5m6FCFSJYQgAAEIAABCEAAAsUEeNm8
mA0xEIAABCAAAQhAoJRA0pEqTUEkBCAAAQhAAAIQgEAugTH/tcfUXi4jAiEAAQhAAAIQgEAuAab2
crEQCAEIQAACEIAABKoJjI5IMRxVTYsUEIAABCAAAQhAICKQfEcq6UPxEzERFlYhAAEIQAACEIBA
NYHkO1IhGd+RCiRYQgACEIAABCAAgWoC/NdeNSNSQAACEIAABCAAgVwCox0pze/xmlQuIwIhAAEI
QAACEIBALoH0ZXPFDfLTxbmECIQABCAAAQhAAAIFBEZfNmc8qgARwRCAAAQgAAEIQCCfwJiXzZna
y4dEKAQgAAEIQAACEMgjMDq1lxdLGAQgAAEIQAACEIBAIYGkIzWSTuvx+YNCTkRAAAIQgAAEIACB
lQikI1KdLhRTeyvxIQACEIAABCAAAQgUEkg6UoWxREAAAhCAAAQgAAEIFBIY05Fiaq+QExEQgAAE
IAABCEBgJQJj3pFiam8lPgRAAAIQgAAEIACBQgLpiFRnLIoRqUJOREAAAhCAAAQgAIGVCIyZ2mNE
aiU+BEAAAhCAAAQgAIFCAlFHivGoQkpEQAACEIAABCAAgRwC/wdCnECMFb2yeAAAAABJRU5ErkJg
gg==
"
id="image1256"
x="0"
y="0.52916664"
style="display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="black"
style="display:inline">
<rect
style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect17167"
width="8.4666662"
height="8.4666662"
x="0"
y="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="icon"
style="display:inline">
<path
style="fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.2333333,1.0583333 v 3.96875 l -0.5291666,0.79375 v 0.79375 L 4.2333333,7.14375 v 0.2645834"
id="path1456"
sodipodi:nodetypes="cccccc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 4.2333333,5.0270833 4.7625,5.8208333 v 0.79375 L 4.2333333,7.14375"
id="path1524"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 2.9104166,7.4083332 V 5.5562499 l 0.5291667,-0.79375 V 3.7041666 l 0.79375,-1.3229167"
id="path3458"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 5.5562499,7.4083332 V 5.5562499 L 5.0270833,4.7624999 V 3.7041666 L 4.2333334,2.3812499"
id="path3460"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 1.8520833,6.6145833 V 4.7625 L 2.1166666,4.4979166 2.38125,4.2333333 2.9104167,3.7041667 l 0.5291666,-10e-8"
id="path3619"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 6.6145835,6.6145832 -1e-7,-1.8520833 L 6.35,4.4979166 6.0854167,4.2333332 5.5562501,3.7041666 H 5.0270833"
id="path3621"
sodipodi:nodetypes="cccccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:0.216031;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 2.9104166,5.55625 H 1.8520832"
id="path3623"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:0.216031;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 5.4239583,5.4239583 H 6.4822916"
id="path3625" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 4.7625,3.175 5.0270834,2.9104167 v -1.5875"
id="path3670"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 3.7041666,3.175 3.4395832,2.9104167 v -1.5875"
id="path3672"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 6.0854167,7.4083333 6.6145833,6.8791667 V 6.35 l 0.79375,-0.79375 V 2.1166667"
id="path4789"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 2.38125,7.4083333 1.8520833,6.8791666 V 6.35 L 1.0583333,5.55625 V 2.1166666"
id="path5224"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.280633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 2.6458333,3.96875 V 1.5875"
id="path20342"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.280633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 5.8208333,3.96875 V 1.5875"
id="path20410"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 1.0583333,4.2333333 0.79375,-0.79375 v -1.5875"
id="path20544"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 7.4083332,4.2333333 -0.7937499,-0.79375 -10e-8,-1.5875"
id="path20546"
sodipodi:nodetypes="ccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 54 KiB

1
assets/Steam/notes.txt Normal file
View File

@@ -0,0 +1 @@
https://partner.steamgames.com/doc/store/assets

View File

@@ -1,61 +0,0 @@
@mixin animation($property) {
-webkit-animation: $property;
-moz-animation: $property;
-ms-animation: $property;
-o-animation: $property;
animation: $property;
}
@mixin borderRadius($property) {
-webkit-border-radius: $property;
-moz-border-radius: $property;
border-radius: $property;
}
@mixin boxShadow($value) {
-webkit-box-shadow: $value;
-moz-box-shadow: $value;
box-shadow: $value;
}
@mixin keyframes($animationName) {
@-webkit-keyframes #{$animationName} {
$browser: "-webkit-" !global;
@content;
}
@-moz-keyframes #{$animationName} {
$browser: "-moz-" !global;
@content;
}
@-ms-keyframes #{$animationName} {
$browser: "-ms-" !global;
@content;
}
@-o-keyframes #{$animationName} {
$browser: "-o-" !global;
@content;
}
@keyframes #{$animationName} {
$browser: "" !global;
@content;
}
}
@mixin transform($property) {
-webkit-transform: $property;
-moz-transform: $property;
-ms-transform: $property;
-o-transform: $property;
transform: $property;
}
@mixin userSelect($value) {
-webkit-user-select: $value;
-moz-user-select: $value;
-ms-user-select: $value;
user-select: $value;
}

View File

@@ -1,15 +0,0 @@
@import "theme";
* {
font-size: $defaultFontSize;
font-family: $fontFamily;
}
*,
*:before,
*:after {
margin: 0;
padding: 0;
box-sizing: border-box;
vertical-align: middle;
}

View File

@@ -1,18 +0,0 @@
$fontFamily: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace,
"Times New Roman";
$defaultFontSize: 16px;
/* COLORS */
$hacker-green: #adff2f;
$success-green: #3adb76;
$alert-red: #ff2929;
$money-gold: #ffd700;
$light-yellow: #faffdf;
/* Attributes */
$my-stat-hp-color: #dd3434;
$my-stat-money-color: $money-gold;
$my-stat-hack-color: $hacker-green;
$my-stat-physical: $light-yellow;
$my-stat-cha-color: #a671d1;
$my-stat-int-color: #6495ed;

View File

@@ -1,24 +0,0 @@
/**
* Styling for the Augmentations UI. This is the page that displays all of the
* player's owned and purchased Augmentations and Source-Files. It also allows
* the player to install Augmentations
*/
@import "theme";
.augmentations-content {
> p {
font-size: $defaultFontSize * 0.875;
}
}
.augmentations-list {
button,
div {
color: var(--my-font-color);
text-decoration: none;
}
button {
padding: 4px;
}
}

View File

@@ -1,135 +0,0 @@
@import "theme";
.bladeburner-container {
a,
div,
p,
pre,
td {
font-size: $defaultFontSize * 0.8125;
}
}
.bladeburner-action {
border: 1px solid #fff;
margin: 7px;
padding: 7px;
white-space: pre-wrap;
pre {
white-space: pre-wrap;
}
}
/* Whatever action is currently active */
.bladeburner-active-action {
border: 4px solid #fff;
}
/* Action & Skills panel navigation button */
%bladeburner-nav-button {
border: 1px solid #fff;
margin: 2px;
padding: 2px;
color: #fff;
}
.bladeburner-nav-button {
@extend %bladeburner-nav-button;
&:hover {
background-color: #3d4044;
}
}
.bladeburner-nav-button-inactive {
@extend %bladeburner-nav-button;
text-decoration: none;
background-color: #555;
cursor: default;
pointer-events: none;
}
/* Checkbox for (de)selecting autoleveling */
.bbcheckbox {
position: relative;
display: inline;
label {
width: 20px;
height: 20px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
background: black;
border-width: 1px;
border-color: white;
border-style: solid;
&:after {
content: "";
width: 9px;
height: 5px;
position: absolute;
top: 5px;
left: 5px;
border: 3px solid white;
border-top: none;
border-right: none;
opacity: 0;
transform: rotate(-45deg);
}
}
input[type="checkbox"] {
margin: 3px;
visibility: hidden;
&:checked + label:after {
opacity: 1;
}
}
}
/* Bladeburner Console */
.bladeburner-console-div {
display: inline-block;
width: 40%;
border: 1px solid #fff;
overflow: auto;
height: 100%;
position: absolute;
}
.bladeburner-console-table {
height: auto;
overflow: auto;
table-layout: fixed;
width: 100%;
}
.bladeburner-console-input-row {
transition: height 1s;
width: 100%;
}
.bladeburner-console-input-cell {
display: flex;
}
.bladeburner-console-input {
display: inline-block;
padding: 0 !important;
margin: 0 !important;
border: 0;
background-color: var(--my-background-color);
font-size: $defaultFontSize * 0.8125;
outline: none;
color: var(--my-font-color);
flex: 1 1 auto;
}
.bladeburner-console-line {
word-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-moz-hyphens: auto;
}

View File

@@ -1,112 +0,0 @@
@import "mixins";
@import "theme";
@import "styles";
/**
* Styling for all buttons
*
* Includes <button> elements as well as classes that are used
* for formatting buttons
*/
/* Remove default <button> styling */
button {
border: none;
background-color: transparent;
}
.a-link-button,
.std-button {
@extend .noselect;
text-decoration: none;
background-color: #555;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #333;
&:hover {
background-color: #666;
}
&:active {
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
}
}
.a-link-button-inactive,
.std-button-disabled,
.std-button:disabled {
text-decoration: none;
background-color: #333;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #333;
cursor: default;
-moz-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
&:hover {
.tooltiptext,
.tooltiptexthigh,
.tooltiptextleft {
visibility: visible;
}
}
&:active {
pointer-events: none;
}
}
.a-link-button-bought,
.std-button-bought {
@extend .noselect;
text-decoration: none;
background-color: #0a0;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #0a0;
cursor: default;
&:hover {
.tooltiptext,
.tooltiptexthigh,
.tooltiptextleft {
visibility: visible;
}
}
&:active {
pointer-events: none;
}
}
/**
* This is a button that is meant to be used on accordions (accordion-header and accordion-panel classes)
* It has a black background so it does not clash with the default accordion coloring
*/
.accordion-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
font-size: $defaultFontSize;
font-weight: bold;
margin: 4px;
padding: 4px;
background-color: #000;
&:hover,
&:active {
color: #fff;
text-decoration: none;
cursor: pointer;
}
/* TODO focus selector? */
}

View File

@@ -1,24 +0,0 @@
.casino-card {
padding: 10px;
border: solid 1px #808080;
background-color: white;
display: inline-block;
border-radius: 10px;
font-size: 18.5px;
text-align: center;
margin: 3px;
font-weight: bold;
}
.casino-card .value {
font-size: 20px;
font-family: sans-serif;
}
.casino-card.red {
color: red;
}
.casino-card.black {
color: black;
}

View File

@@ -1,12 +0,0 @@
@import "mixins";
@import "theme";
/**
* Styling for the Character Overview Panel (top-right panel)
*/
#character-overview {
position: fixed;
top: 0;
right: 0;
}

View File

@@ -1,168 +0,0 @@
@import "mixins";
@import "theme";
/**
* Styling for Corporations
* The names/labels refer to "Company Management", which was the old name
* for the mechanic before it got changed to avoid confusion with normal
* companies
*/
.cmpy-mgmt-container p,
.cmpy-mgmt-container a,
.cmpy-mgmt-container div,
.cmpy-mgmt-container br {
font-size: $defaultFontSize * 0.8125;
}
/* Header tabs */
.cmpy-mgmt-header-tab {
display: inline-block;
color: #fff;
background-color: #555;
border: 1px solid #fff;
padding: 4px;
}
.cmpy-mgmt-header-tab:hover {
background-color: #666;
}
.cmpy-mgmt-header-tab.current {
background-color: #777;
}
/* Switch between Cities */
.cmpy-mgmt-city-tab {
display: inline-block;
color: #fff;
background-color: #555;
border: 1px solid #fff;
padding: 4px;
}
.cmpy-mgmt-city-tab:hover {
background-color: #666;
}
.cmpy-mgmt-city-tab.current {
background-color: #777;
}
/* Panels */
#cmpy-mgmt-panel {
height: 90%;
}
.cmpy-mgmt-industry-left-panel,
.cmpy-mgmt-industry-right-panel {
display: inline-block;
height: 100%;
overflow-y: auto;
overflow-x: auto;
overflow: visible;
top: 10px;
width: 45%;
vertical-align: top;
margin-top: 10px;
}
.cmpy-mgmt-industry-overview-panel {
border: 1px solid #fff;
color: var(--my-font-color);
display: inline-block;
padding: 3px;
width: 100%;
}
.cmpy-mgmt-employee-panel {
border: 1px solid #fff;
display: block;
padding: 3px;
width: 100%;
}
.cmpy-mgmt-warehouse-panel {
border: 1px solid #fff;
display: inline-block;
padding: 3px;
width: 100%;
}
/* Hiring new employees */
.cmpy-mgmt-find-employee-option {
border: 1px solid #fff;
margin: 6px;
}
.cmpy-mgmt-find-employee-option:hover {
background-color: #3d4044;
}
/* Warehouse */
.cmpy-mgmt-warehouse-material-div {
padding: 2px;
border: 1px solid #fff;
}
.cmpy-mgmt-warehouse-product-div {
padding: 2px;
border: 1px solid #fff;
}
/* Exporting materials/products */
.cmpy-mgmt-existing-export {
border: 1px solid #fff;
border-radius: 25px;
margin: 4px;
padding: 4px;
}
.cmpy-mgmt-existing-export:hover {
background-color: #333;
}
/* Corporation Upgrades */
.cmpy-mgmt-upgrade-container {
border: 1px solid #fff;
width: 60%;
margin: 4px;
}
.cmpy-mgmt-upgrade-header {
margin: 6px;
padding: 6px;
}
.cmpy-mgmt-upgrade-div {
text-align: left;
display: inline-block;
border: 1px solid #fff;
margin: 2px;
padding: 6px;
border-radius: 25px;
font-size: $defaultFontSize * 0.75;
color: var(--my-font-color);
}
.cmpy-mgmt-upgrade-div:hover {
background-color: #333;
}
/* Industry Upgrades */
.industry-purchases-and-upgrades-header {
font-size: 14px;
margin: 2px;
padding: 2px;
}
/* Advertising */
.cmpy-mgmt-advertising-info {
font-size: $defaultFontSize * 0.75;
}
/* Research */
#corporation-research-popup-box-content {
overflow-x: auto !important;
overflow-y: auto !important;
}

View File

@@ -1,32 +0,0 @@
.add-exp-button {
margin-right: 0;
}
.remove-exp-button {
margin-left: 0;
}
.exp-input {
margin: 5px 0 5px 0;
padding: 2px 5px;
}
.text-center {
margin: auto;
text-align: center;
vertical-align: middle;
}
.touch-right {
margin-right: 0;
}
.touch-left {
margin-left: 0;
}
.touch-sides {
margin-left: 0;
margin-right: 0;
}

View File

@@ -1,19 +0,0 @@
/* Styling for the game options/settings
*
* Styling for the actual Game Options popup box can be found in popupboxes.scss
* This stylesheet is for everything inside the Game Options pop-up box
*/
@import "theme";
#game-options-right-panel {
a {
display: block;
width: 46%;
}
button {
display: inline-block;
width: 46%;
}
}

View File

@@ -1,46 +0,0 @@
@import "mixins";
@import "theme";
/**
* Styling for the Gang mechanic UI (BitNode-2)
*/
.gang-container {
p,
pre {
font-size: $defaultFontSize * 0.9375;
}
select {
background-color: black;
color: white;
}
}
#gang-management-subpage > p {
padding: 4px;
}
.gang-member-info-div {
background-color: #555;
display: inline;
float: left;
width: 30%;
}
/**
* Showing owned upgrades in the Equipment Box
*/
.gang-owned-upgrades-div {
display: inline-block;
margin-left: 6px;
width: 75%;
}
.gang-owned-upgrade {
border: 1px solid white;
font-size: 12px;
margin: 1px;
padding: 1px;
}

3413
css/grid.min.css vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,69 +0,0 @@
@import "mixins";
@import "theme";
/**
* Styling for the Hacknet Nodes UI Page
*/
.hacknet-general-info {
margin: 10px;
}
#hacknet-nodes-container li {
float: left;
overflow: hidden;
white-space: nowrap;
&.hacknet-node {
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
@include boxShadow($boxShadowArgs);
margin: 6px;
padding: 7px;
width: 35vw;
border: 2px solid var(--my-highlight-color);
}
}
#hacknet-nodes-list {
list-style: none;
width: 82vw;
}
#hacknet-nodes-money {
margin: 10px;
float: left;
}
#hacknet-nodes-money-multipliers-div {
display: inline-block;
width: 70vw;
}
#hacknet-nodes-multipliers {
float: right;
}
#hacknet-nodes-purchase-button {
display: inline-block;
}
.hacknet-node-container {
display: inline-table;
.row {
display: table-row;
height: 30px;
p {
display: table-cell;
}
}
.upgradable-info {
display: inline-block;
margin: 0 4px; /* Don't want the vertical margin/padding, just left & right */
padding: 0 4px;
width: $defaultFontSize * 4;
}
}

View File

@@ -1,61 +0,0 @@
@import "theme";
.blinking-cursor {
font-weight: 100;
color: #2e3d48;
-webkit-animation: 1s cursorblink step-end infinite;
-moz-animation: 1s cursorblink step-end infinite;
-ms-animation: 1s cursorblink step-end infinite;
-o-animation: 1s cursorblink step-end infinite;
animation: 1s cursorblink step-end infinite;
}
@keyframes cursorblink {
from,
to {
color: transparent;
}
50% {
color: $hacker-green;
}
}
@-moz-keyframes cursorblink {
from,
to {
color: transparent;
}
50% {
color: $hacker-green;
}
}
@-webkit-keyframes cursorblink {
from,
to {
color: transparent;
}
50% {
color: $hacker-green;
}
}
@-ms-keyframes cursorblink {
from,
to {
color: transparent;
}
50% {
color: $hacker-green;
}
}
@-o-keyframes cursorblink {
from,
to {
color: transparent;
}
50% {
color: $hacker-green;
}
}

View File

@@ -1,90 +0,0 @@
@import "mixins";
@import "theme";
/* interactivetutorial.css */
#interactive-tutorial-wrapper {
position: relative;
}
#interactive-tutorial-container {
display: none;
position: fixed; /* Stay in place */
right: 0;
top: 0;
height: 450px;
padding: 10px;
border: 5px solid #fff;
width: 23%;
overflow: hidden;
background-color: #444; /* Fallback color */
color: #fff;
> strong {
background-color: #444;
}
}
#interactive-tutorial-text {
padding: 4px;
margin: 4px;
color: #fff;
background-color: #444;
font-size: $defaultFontSize * 0.875;
max-height: 350px;
overflow-y: auto;
}
#interactive-tutorial-exit,
#interactive-tutorial-next,
#interactive-tutorial-back {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
font-size: $defaultFontSize * 1.125;
font-weight: bold;
background-color: #000;
&:hover,
&:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
}
#interactive-tutorial-exit {
position: absolute;
bottom: 0;
left: 0;
padding: 4px;
}
#interactive-tutorial-back {
float: left;
padding: 4px;
}
#interactive-tutorial-next {
float: right;
padding: 4px;
}
.interactive-tutorial-command {
background-color: #000;
color: $hacker-green;
white-space: nowrap;
}
.interactive-tutorial-code {
background-color: #272822;
color: white;
padding: 3px;
}
.interactive-tutorial-tab {
background-color: #555;
color: #e6e6e6;
padding: 3px;
box-shadow: 0 0 3px #000;
}

View File

@@ -1,111 +0,0 @@
@import "mixins";
@import "reset";
@import "theme";
@include keyframes(LOADERSPINNER) {
0% {
#{$browser}transform: translate(-50%, -50%) rotate(0deg);
}
100% {
#{$browser}transform: translate(-50%, -50%) rotate(360deg);
}
}
@include keyframes(LOADERLABEL) {
0% {
opacity: 1;
#{$browser}transform: translate(-50%, -50%) scale(1);
}
5% {
opacity: 0.5;
#{$browser}transform: translate(-50%, -50%) scale(0.5);
}
95% {
opacity: 0.5;
#{$browser}transform: translate(-50%, -50%) scale(0.5);
}
100% {
opacity: 1;
#{$browser}transform: translate(-50%, -50%) scale(1);
}
}
.loaderoverlay {
$spinnerBoxSize: 200px;
$themeColor: #0c0;
position: absolute;
width: 100%;
height: 100%;
background: #000;
color: $themeColor;
%spinnerBox {
border: 20px solid rgba(0, 0, 0, 0);
border-top-color: $themeColor;
border-bottom-color: $themeColor;
border-radius: 1000px;
position: absolute;
top: 50%;
left: 50%;
}
.loaderspinner:before,
.loaderspinner:after {
content: "";
}
.loaderspinner {
@extend %spinnerBox;
@include animation(LOADERSPINNER 5s linear infinite);
width: $spinnerBoxSize;
height: $spinnerBoxSize;
}
.loaderspinner:before {
@extend %spinnerBox;
@include animation(LOADERSPINNER 10s linear infinite);
width: $spinnerBoxSize * 0.8;
height: $spinnerBoxSize * 0.8;
}
.loaderspinner:after {
@extend %spinnerBox;
@include animation(LOADERSPINNER 5s linear infinite);
width: $spinnerBoxSize * 0.6;
height: $spinnerBoxSize * 0.6;
}
.loaderlabel {
@include animation(LOADERLABEL 5s linear infinite);
text-transform: uppercase;
font-family: sans-serif;
font-size: $defaultFontSize * 1.375;
font-weight: 700;
letter-spacing: 2px;
position: absolute;
top: 50%;
left: 50%;
}
}
.killAllMessage {
position: absolute;
top: 95%;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
-o-transform: translateX(-50%);
transform: translateX(-50%);
}
.killAllMessageWrapperHidden {
display: none;
}
.killAllMessageWrapperShow {
display: block;
}

View File

@@ -1,137 +0,0 @@
@import "mixins";
@import "theme";
/**
* Styling for the main navigation menu on the left-hand-side
*/
.mainmenu {
list-style-type: none;
margin: 0;
padding: 0;
width: 10%;
position: fixed;
height: 100%;
overflow: auto;
border: 0;
border-bottom: 1px solid #000;
border-radius: 0;
background-color: #333;
}
/* Default buttons */
.mainmenu > li a,
.mainmenu > li button {
display: block;
color: #e6e6e6;
background-color: #555;
padding: 12px 8px;
text-decoration: none;
cursor: pointer;
width: 100%;
text-align: left;
}
.mainmenu.classic > li a,
.mainmenu.classic > li button {
padding: 16px;
}
.mainmenu.compact > li a,
.mainmenu.compact > li button {
display: block;
color: #e6e6e6;
background-color: #555;
text-decoration: none;
cursor: pointer;
width: 100%;
text-align: left;
padding: 4px;
}
/* Hovering makes them lighter */
.mainmenu > li a:hover,
.mainmenu > li a:hover:not(.active),
.mainmenu > li a:focus {
background-color: #777;
color: #fff;
}
.mainmenu > li button:hover,
.mainmenu > li button:hover:not(.active) {
background-color: #777;
color: #fff;
}
/* Panel headers can become active, and they are "lighter" than the rest */
.mainmenu > li a.active,
.mainmenu > li button.active {
background-color: #777;
color: #fff;
}
.mainmenu > li a.active:hover,
.mainmenu > li button.active:hover {
background-color: #aaa;
}
.menu-header {
position: relative;
}
#hacking-menu-header-li,
#character-menu-header-li,
#world-menu-header-li,
#help-menu-header-li {
position: relative;
}
/* Accordion Outline */
.mainmenu-accordion-header,
.mainmenu-accordion-header-compact {
outline: 2px solid #fff !important;
}
.mainmenu-accordion-header-classic {
border: 2px solid #fff;
padding: 16px !important;
}
/* Plus and minus signs */
.mainmenu-accordion-header:after,
.mainmenu-accordion-header-compact:after {
content: "\02795";
float: right;
font-size: $defaultFontSize * 0.8125;
position: absolute;
bottom: 25%;
right: 3px;
color: transparent;
text-shadow: 0 0 0 #fff;
}
.mainmenu-accordion-header-classic:after {
content: "\02795";
float: right;
font-size: $defaultFontSize * 0.8125;
color: #fff;
margin-left: 5px;
}
.mainmenu-accordion-header.opened,
.mainmenu-accordion-header-classic.opened,
.mainmenu-accordion-header-compact.opened {
background-color: #222 !important;
&:after {
content: "\2796";
}
}
/* Slide down transition */
.mainmenu-accordion-panel {
transition: max-height 0.2s ease-out;
}

View File

@@ -1,128 +0,0 @@
@import "mixins";
@import "theme";
/* CSS for different main menu pages, such as character info, script editor, etc (but excluding
terminal which has its own page) */
#generic-react-container {
-ms-overflow-style: none; /* for Internet Explorer, Edge */
scrollbar-width: none; /* for Firefox */
flex-grow: 1;
}
#generic-react-container::-webkit-scrollbar {
display: none; /* for Chrome, Safari, and Opera */
}
#world-city-name,
#world-city-desc {
padding: 4px;
margin: 4px;
}
#create-program-page-text,
#create-program-list {
width: 70%;
}
.faction-work-div {
width: 70%;
height: 100%;
}
.faction-work-div-wrapper {
overflow: hidden;
border: 2px solid #333;
padding: 6px;
margin: 6px;
width: 70%;
}
.faction-container p,
.faction-container pre {
padding: 4px 6px;
margin: 4px 6px;
}
.faction-container pre {
width: 70%;
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
/* World */
#world-container li {
margin: 0 0 15px 0;
list-style-type: none;
}
/* Tutorial */
#tutorial-container {
position: fixed;
padding-top: 10px;
}
#tutorial-text {
width: 70%;
margin: 10px;
}
#tutorial-container a {
width: 50%;
}
/* Dev menu */
#dev-menu-container {
position: fixed;
padding-top: 10px;
}
#dev-menu-text {
width: 70%;
margin: 10px;
}
#dev-menu-container a {
width: 50%;
}
/* Location */
#location-container {
position: fixed;
padding: 6px;
overflow-x: hidden;
}
#location-container a {
display: inline-block;
width: 30%;
}
#location-slums-description {
width: 70%;
margin: 10px;
}
#location-return-to-world-button {
margin: 10px;
padding: 6px;
}
#location-container > * {
margin: 10px 5px 10px 5px;
}
#location-job-reputation,
#location-company-favor {
display: inline;
}
/* Infiltration */
#infiltration-container {
position: fixed;
margin: 5px;
width: 70%;
}

View File

@@ -1,3 +0,0 @@
.milestones-container {
width: 60%;
}

View File

@@ -1,119 +0,0 @@
@import "mixins";
@import "theme";
/* css for Missions */
/* Hacking missions */
#mission-container {
overflow: hidden;
}
.hack-mission-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-gap: 2.5%;
height: 90%;
position: absolute;
width: 100%;
overflow-y: auto;
padding-right: 10px;
&::-webkit-scrollbar {
display: none;
}
}
.hack-mission-node {
z-index: 5;
background-color: #808080;
align-self: center;
justify-self: center;
display: inline-block;
p {
@include userSelect(none);
margin-top: 8px;
color: #fff;
font-size: $defaultFontSize * 0.75;
text-align: center;
}
}
.hack-mission-player-node {
color: #fff;
background-color: #00f;
}
.hack-mission-player-node-active {
border: 2px solid #fff;
background-color: #66f;
}
.hack-mission-enemy-node {
color: #fff;
background-color: #f00;
}
.hack-mission-cpu-node {
@include borderRadius(50%);
width: 100%;
height: 100%;
}
.hack-mission-firewall-node {
width: 90%;
height: 100%;
}
.hack-mission-database-node {
@include transform(skew(20deg));
width: 100%;
height: 90%;
p {
@include transform(skew(-20deg));
@include userSelect(none);
color: #fff;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
text-align: center;
}
}
.hack-mission-transfer-node {
@include transform(skew(-20deg));
width: 100%;
height: 90%;
p {
@include transform(skew(20deg));
@include userSelect(none);
color: #fff;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
text-align: center;
}
}
.hack-mission-spam-node,
.hack-mission-shield-node {
height: 100%;
width: 100%;
}
/* Non-map related DOM elements */
/* Element at the top of the Hacking Mission page (intro page, start button, guide buttons, etc.) */
.hack-mission-header-element {
margin: 6px;
}
.hack-mission-action-buttons-container {
border: 2px solid #fff;
}

View File

@@ -1,244 +0,0 @@
@import "mixins";
@import "theme";
@import "styles";
/* Pop-up boxes */
.popup-box-container {
display: none; /* Initially hidden */
position: fixed; /* Stay in place */
z-index: 1300; /* Sit on top */
left: 0;
top: 0;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-color: rbga(var(--my-background-color), 0.4);
}
.popup-box-content {
background-color: var(--my-background-color);
padding: 12px;
border: 5px solid var(--my-highlight-color);
width: 70%;
max-height: 80%;
overflow-y: auto;
z-index: 11; /* Sit on top of the container */
color: var(--my-font-color);
}
.popup-box-input-div {
margin: 2px;
}
.popup-box-button,
.popup-box-button-inactive {
color: #aaa;
float: right;
font-size: $defaultFontSize;
font-weight: bold;
padding: 2px;
margin: 6px;
border: 1px solid #fff;
background-color: #000;
}
.popup-box-button:hover,
.popup-box-button:focus {
color: var(--my-font-color);
text-decoration: none;
cursor: pointer;
}
.popupbox-button-inactive {
pointer-events: none;
cursor: default;
}
#yes-no-text-input-box-input {
color: var(--my-font-color);
border: 1px solid #fff;
background-color: #000;
}
.dialog-box-container {
display: block;
position: absolute;
z-index: 10;
width: 50%;
height: auto;
max-height: 50%;
top: 40%;
left: 50%;
margin: -10% 0 0 -25%;
overflow: auto;
background-color: var(--my-background-color);
border: 5px solid var(--my-highlight-color);
}
.log-box-container {
display: flex;
flex-flow: column;
background-color: gray;
width: 50%;
position: fixed;
left: 50%;
top: 40%;
margin: -10% 0 0 -25%;
height: auto;
max-height: 50%;
z-index: 10;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
}
.log-box-header {
z-index: 1300;
background-color: #333;
border: 1px solid var(--my-highlight-color);
display: flex;
flex: row nowrap;
align-items: center;
justify-content: space-between;
}
.log-box-log-container {
overflow-y: auto;
}
.log-box-button {
color: #aaa;
font-size: $defaultFontSize;
font-weight: bold;
padding: 2px;
margin: 6px;
border: 1px solid #fff;
background-color: #000;
}
.log-box-button:hover,
.log-box-button:focus {
color: var(--my-font-color);
text-decoration: none;
cursor: pointer;
}
.dialog-box-content {
z-index: 2;
background-color: var(--my-background-color);
padding: 10px;
p span {
padding: 0;
margin: 0;
}
}
.dialog-box-close-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
@extend .noselect;
float: right;
color: #aaa;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
}
#log-box-close {
position: fixed;
right: 27%;
}
#log-box-kill-script {
right: 11%;
position: relative;
}
#log-box-close,
#log-box-kill-script {
float: right;
display: inline-block;
}
.dialog-box-close-button:hover,
.dialog-box-close-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
/* Faction invitation box */
#faction-invitation-box-container {
transition: opacity 400ms ease-in;
}
#faction-invitation-box-warning {
margin: 4px;
padding: 4px;
}
/* Infiltration-box */
#infiltration-box-sell,
#infiltration-box-faction {
display: block;
padding: 8px;
margin: 8px;
}
#infiltration-box-content span {
padding: 0;
margin: 0;
}
#infiltration-faction-select {
background-color: #000;
}
/* Game Options */
#game-options-container {
transition: opacity 400ms ease-in;
}
#game-options-content {
background-color: var(--my-background-color);
padding: 10px;
border: 5px solid var(--my-highlight-color);
color: var(--my-font-color);
width: 80%;
max-height: 80%;
overflow-y: auto;
}
#game-options-left-panel,
#game-options-right-panel {
display: inline-block;
width: 49%;
}
#game-options-close-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
float: right;
margin: 4px;
padding: 4px;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
}
#game-options-close-button:hover,
#game-options-close-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
#game-options-left-panel fieldset {
padding: 2px;
margin: 2px;
}
#import-game-file-selector {
display: none;
}

View File

@@ -1,34 +0,0 @@
@import "theme";
/**
* Styling for the Red Pill screen (the BitNode selection UI)
*/
#red-pill-container {
position: fixed;
}
.bitnode {
&.level-0 {
color: red;
}
&.level-1 {
color: yellow;
}
&.level-2 {
color: #48d1cc;
}
&.level-3 {
color: blue;
}
&.unimplemented {
color: gray;
}
&:hover {
color: #fff;
}
}

View File

@@ -1,28 +0,0 @@
/**
* Styling for the Re-Sleeving Page
*/
@import "theme";
.resleeve-elem {
border: 1px solid white;
margin: 4px;
width: 75%;
p {
font-size: $defaultFontSize * 0.8125;
}
}
.resleeve-panel {
display: inline-block;
margin: 0;
padding: 2px;
}
.resleeve-aug-selector {
font-size: $defaultFontSize * 0.8125;
option {
font-size: $defaultFontSize * 0.8125;
}
}

View File

@@ -1,92 +0,0 @@
@import "mixins";
@import "theme";
/**
* Styling for Script Editor (both Ace and CodeMirror)
*/
#script-editor-buttons-wrapper {
width: 100%;
padding-right: 0;
margin-right: 0;
}
.script-editor-wrapper {
height: 110vh;
width: 70%;
background: transparent;
}
#script-editor-filename-wrapper {
background-color: #555;
margin-right: 0;
padding-left: 6px;
width: 100%;
border: 2px solid var(--my-highlight-color);
}
#script-editor-filename-tag {
display: inline-block;
padding-top: 10px;
padding-bottom: 0;
float: center;
background-color: #555;
color: #fff;
}
#script-editor-filename {
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
@include boxShadow($boxShadowArgs);
background-color: #555;
border: 2px solid var(--my-highlight-color);
color: #fff;
display: inline-block;
float: center;
margin: 4px;
padding: 2px;
resize: none;
width: 60%;
}
#script-editor-status {
float: left;
color: #fff;
}
#script-editor-options-panel {
position: absolute;
right: 9%;
bottom: 15%;
border: 2px solid #fff;
width: 19%;
background-color: #444;
padding: 2px;
overflow: auto;
z-index: 1;
color: #fff;
max-height: 50%;
}
#script-editor-options-panel fieldset {
margin-top: 8px;
margin-bottom: 8px;
padding: 2px;
font-size: $defaultFontSize * 0.75;
input {
margin: 2px;
}
}
.editor-options-container {
display: flex;
flex-flow: column;
}
.editor-options-line {
display: flex;
flex: row nowrap;
align-items: center;
justify-content: start;
}

View File

@@ -1,25 +0,0 @@
/**
* Styling for the Sleeves Management page
*/
@import "theme";
.sleeve-elem {
border: 1px solid white;
margin: 4px;
display: block;
}
.sleeves-page-info {
display: "block";
width: 75%;
}
.sleeve-panel {
display: inline-block;
margin: 0;
padding: 2px;
select {
display: block;
}
}

View File

@@ -1,96 +0,0 @@
@import "theme";
.stock-market-container {
p {
font-size: $defaultFontSize * 0.8125;
}
a {
font-size: $defaultFontSize * 0.875;
}
}
.stock-market-info-and-purchases {
> h2 {
display: block;
margin-top: 10px;
margin-left: 10px;
}
> p {
display: block;
margin-left: 10px;
width: 70%;
}
> a,
> button {
margin: 10px;
}
}
#stock-market-list {
list-style: none;
li {
button {
font-size: $defaultFontSize;
}
}
}
#stock-market-watchlist-filter {
display: block;
margin: 5px 5px 5px 10px;
padding: 4px;
width: 50%;
}
.stock-market-input {
display: inline-block;
padding: 4px;
margin: 2px;
background-color: #000;
border: 1px solid #fff;
color: var(--my-font-color);
}
.stock-market-price-movement-warning {
border: 1px solid white;
color: red;
margin: 2px;
padding: 2px;
}
.stock-market-position-text {
color: #fff;
display: block;
p {
color: #fff;
display: inline-block;
margin: 4px;
}
h3 {
margin: 4px;
}
}
.stock-market-order-list {
overflow-y: auto;
max-height: 100px;
li {
color: #fff;
padding: 4px;
}
}
.stock-market-order-cancel-btn {
background-color: #000;
border: 1px solid #fff;
color: var(--my-font-color);
margin: 2px;
padding: 0;
}

View File

@@ -1,528 +0,0 @@
@import "mixins";
@import "theme";
@import "reset";
:root {
--my-font-color: #0c0;
--my-background-color: #000;
--my-highlight-color: #fff;
--my-prompt-color: #f92672;
}
body {
background-color: var(--my-background-color);
-ms-overflow-style: none; /* for Internet Explorer, Edge */
scrollbar-width: none; /* for Firefox */
}
body::-webkit-scrollbar {
display: none; /* for Chrome, Safari, and Opera */
}
p,
pre,
h2,
h3,
h4,
.text,
td {
color: var(--my-font-color);
}
h1 {
font-size: $defaultFontSize * 1.375;
color: var(--my-font-color);
}
ul {
padding: 2px;
list-style-type: none;
}
li {
list-style-type: none;
}
br {
@extend .noselect;
}
#entire-game-container {
background-color: transparent;
}
/* Disable border highlight on elements */
input:focus,
textarea:focus,
button:focus,
td:focus,
tr:focus {
outline: none;
}
/* Make html links ("a" elements) nice looking buttons with this class */
a:link,
a:visited {
color: #fff;
}
.dropdown {
color: #fff;
background-color: #000;
}
.text-input {
color: #fff;
background-color: #000;
border-style: solid;
border-width: 1px;
border-color: white;
}
/* Notification icon (for create program right now only) */
#create-program-tab {
position: relative;
}
#create-program-notification {
font-size: $defaultFontSize * 0.625;
position: absolute; /* Position the badge within the relatively positioned button */
top: 0;
right: 0;
}
#factions-tab {
position: relative;
}
#factions-notification {
font-size: $defaultFontSize * 0.625;
position: absolute; /* Position the badge within the relatively positioned button */
top: 0;
right: 0;
}
#augmentations-tab {
position: relative;
}
#augmentations-notification {
font-size: $defaultFontSize * 0.625;
position: absolute; /* Position the badge within the relatively positioned button */
top: 0;
right: 0;
}
.notification-on {
background-color: #fa3e3e;
color: #fff;
border-radius: 2px;
padding: 1px 3px;
font-size: $defaultFontSize * 0.625;
top: 0;
right: 0;
position: absolute;
}
.notification-off {
background-color: #333;
color: #333;
border-radius: 0;
padding: 0;
display: "none";
}
.notification {
position: relative;
display: inline-block;
}
.notification .badge {
position: absolute;
top: 0;
right: 0;
padding: 2px;
background: red;
color: white;
}
/* help tip. Question mark that opens popup with info/details */
.help-tip {
background-color: black;
border: 1px solid #fff;
border-radius: 5px;
color: #fff;
content: "?";
display: inline-block;
margin-left: 3px;
padding: 1px;
}
.help-tip-big {
content: "?";
padding: 3px;
margin-left: 3px;
color: #fff;
border: 1px solid #fff;
border-radius: 8px;
display: inline-block;
}
.help-tip:hover,
.help-tip-big:hover {
background-color: #888;
}
.help-tip:active,
.help-tip-big:active {
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
}
/* Flashing button (Red) */
@-webkit-keyframes glowing {
0% {
background-color: #b20000;
-webkit-box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
-webkit-box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
-webkit-box-shadow: 0 0 3px #b20000;
}
}
@-moz-keyframes glowing {
0% {
background-color: #b20000;
-moz-box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
-moz-box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
-moz-box-shadow: 0 0 3px #b20000;
}
}
@-o-keyframes glowing {
0% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
}
@keyframes glowing {
0% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
}
.flashing-button {
-webkit-animation: glowing 1500ms infinite;
-moz-animation: glowing 1500ms infinite;
-o-animation: glowing 1500ms infinite;
animation: glowing 1500ms infinite;
}
/* Blinking Cursor */
/* ----- blinking cursor animation ----- */
.typed-cursor {
opacity: 1;
-webkit-animation: blink 0.95s infinite;
-moz-animation: blink 0.95s infinite;
-ms-animation: blink 0.95s infinite;
-o-animation: blink 0.95s infinite;
animation: blink 0.95s infinite;
}
@-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-moz-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-ms-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-o-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Status text */
@-webkit-keyframes status-text {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.status-text {
z-index: 2;
-webkit-animation: status-text 3s 1;
}
#status-text-container {
background-color: transparent;
position: fixed;
top: 0;
left: 50%;
}
#status-text {
background-color: transparent;
bottom: 0;
color: #fff;
display: none;
font-size: $defaultFontSize * 1.25;
margin-right: 14px;
opacity: 0;
padding: 4px;
right: 0;
top: 0;
width: auto;
}
/* Scan analyze links from AutoLink */
.scan-analyze-link {
cursor: pointer;
color: #fff;
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
/* Accordion menus (Header with collapsible panel) */
.accordion-header {
background-color: #444;
color: #fff;
font-size: $defaultFontSize * 1.25;
margin: 6px 6px 0 6px;
padding: 4px 6px;
cursor: pointer;
width: 80%;
text-align: left;
border: none;
outline: none;
position: relative;
&.active,
&:hover {
background-color: #555;
}
&.active:hover {
background-color: #666;
}
&:after {
content: "\02795"; /* "plus" sign (+) */
font-size: $defaultFontSize * 0.875;
float: right;
color: transparent;
text-shadow: 0 0 0 #fff;
position: absolute;
bottom: 5px;
right: 6px;
}
&.active:after {
content: "\2796"; /* "minus" sign (-) */
}
}
.accordion-panel {
margin: 0 6px 6px 6px;
padding: 0 6px 6px 6px;
width: 75%;
margin-left: 5%;
display: none;
background-color: #555;
overflow-y: auto;
overflow-x: none;
div,
ul,
p,
ul > li {
background-color: #555;
}
}
/* override the global <span> styling */
#active-scripts-total-production-active,
#active-scripts-total-prod-aug-total,
#active-scripts-total-prod-aug-avg {
margin: 0;
padding: 0;
}
/* Helper Classes */
.hacker-green {
color: $hacker-green;
}
.money-gold {
color: $money-gold;
}
.light-yellow {
color: $light-yellow;
}
.unbuyable {
color: #66cfbc;
}
.failure {
color: $alert-red;
text-shadow: 0 0 0 $alert-red;
}
.success {
color: $success-green;
text-shadow: 0 0 0 $success-green;
}
.physical-yellow {
color: $my-stat-physical;
}
.charisma-purple {
color: $my-stat-cha-color;
}
.reputation {
color: $light-yellow;
}
.smallfont {
font-size: $defaultFontSize * 0.8125;
}
.samefont {
font-size: inherit;
}
.noscrollbar {
-ms-overflow-style: none; /* IE and Edge */
/* stylelint-disable-next-line property-no-unknown */
scrollbar-width: none; /* Firefox https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-width */
}
.noscrollbar::-webkit-scrollbar {
display: none;
}
input[type="checkbox"] {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
}
.optionCheckbox {
margin: 5px;
float: right;
}
.optionRange {
-webkit-appearance: none;
background: #777;
outline: none;
opacity: 0.7;
height: 10px;
-webkit-transition: 0.2s;
transition: opacity 0.2s;
margin: 3px;
}
.optionRange::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 10px;
height: 10px;
background: var(--my-font-color);
cursor: pointer;
}
.optionRange::-moz-range-thumb {
width: 10px;
height: 10px;
background: var(--my-font-color);
cursor: pointer;
}
.noselect {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}

View File

@@ -1,129 +0,0 @@
@import "theme";
/* Styling for tooltip-style elements */
/* Tool tips (when hovering over an element */
.tooltip {
display: inline-block;
position: relative;
.tooltiptext {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
pointer-events: none;
position: absolute;
z-index: 99;
}
/* Positioned to left of element rather than right */
.tooltiptextleft {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
top: 50%;
left: 50%;
transform: translate(-100%, -100%);
/* Backwards compatibility */
-webkit-transform: translate(-100%, -100%);
-moz-transform: translate(-100%, -100%);
-o-transform: translate(-100%, -100%);
-ms-transform: translate(-100%, -100%);
position: absolute;
z-index: 99;
}
/* Tooltip goes below cursor instead of above */
.tooltiptextlow {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
pointer-events: none;
position: absolute;
z-index: 99;
bottom: 25%;
}
}
/* Same thing as a normal tooltip except its a bit higher */
.tooltip .tooltiptexthigh {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
bottom: -25%;
position: absolute;
z-index: 99;
}
.tooltip:hover .tooltiptext,
.tooltip:hover .tooltiptexthigh,
.tooltip:hover .tooltiptextleft,
.tooltip:hover .tooltiptextlow {
visibility: visible;
}
.copy_tooltip {
position: relative;
display: inline-block;
}
.copy_tooltip_copied {
color: #fff;
transition: color 0.3s;
}
.copy_tooltip .copy_tooltip_text {
visibility: hidden;
font-size: 15px;
padding: 5px;
background-color: var(--my-background-color);
color: #fff;
text-align: center;
position: absolute;
z-index: 1;
top: 120%;
left: 5%;
opacity: 0;
border: 2px solid var(--my-highlight-color);
}
.copy_tooltip .copy_tooltip_text::after {
content: "";
position: absolute;
bottom: 100%;
left: 50%;
margin-left: -6px;
border-width: 8px;
border-style: solid;
border-color: transparent transparent white transparent;
}
.copy_tooltip .copy_tooltip_text_visible {
visibility: visible;
opacity: 1;
transition: opacity 0.3s;
}

View File

@@ -1,68 +0,0 @@
/* required LIB STYLES */
/* .Treant se automatski dodaje na svaki chart conatiner */
.Treant {
position: relative;
overflow: hidden;
padding: 0 !important;
}
.Treant > .node,
.Treant > .pseudo {
position: absolute;
display: block;
visibility: hidden;
}
.Treant.Treant-loaded .node,
.Treant.Treant-loaded .pseudo {
visibility: visible;
}
.Treant > .pseudo {
width: 0;
height: 0;
border: none;
padding: 0;
}
.Treant .collapse-switch {
width: 3px;
height: 3px;
display: block;
border: 1px solid black;
position: absolute;
top: 1px;
right: 1px;
cursor: pointer;
}
.Treant .collapsed .collapse-switch {
background-color: #868dee;
}
.Treant > .node img {
border: none;
float: left;
}
.Treant > .node {
cursor: pointer;
padding: 4px;
min-width: 60px;
text-align: center;
border: 2px solid #e8e8e3;
border-radius: 2px;
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
font-size: 12px;
}
.Treant > .researched {
background-color: #666;
font-size: 16px;
}
.Treant > .locked > div {
color: red;
pointer-events: none;
}
.Treant > .node > div {
font-size: 12px;
}
.Treant > .unlocked:hover {
background-color: #666;
}

View File

@@ -1,51 +0,0 @@
@import "mixins";
@import "theme";
/* Both Work in progress and BitNode stuff */
.generic-fullscreen-container {
color: var(--my-font-color);
width: 99%;
height: 100%;
overflow-y: hidden;
}
.generic-fullscreen-container-scroll {
height: 100%;
width: 100%;
overflow: auto;
padding-right: 20px;
}
#work-in-progress-container {
position: fixed;
}
#work-in-progress-text {
color: var(--my-font-color);
width: 70%;
margin: 10px;
}
.work-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
float: left;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
margin: 10px;
padding: 5px;
border: 3px solid #fff;
}
.work-button:hover,
.work-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
#cinematic-text-container {
position: fixed;
}

5014
dist/bitburner.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

147
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -2,8 +2,8 @@
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = python -msphinx
SPHINXOPTS =
SPHINXBUILD = python2.7 -msphinx
SOURCEDIR = source
BUILDDIR = build

View File

@@ -1,6 +1,6 @@
.. _gameplay_sourcefiles:
.. warning:: This page contains spoilers regarding the game's story/plot-line.
.. warning:: This page contains spoilers for the game
Source-Files
============
@@ -31,7 +31,7 @@ List of all Source-Files
| | * Each level of this Source-File opens up more of the Singularity Functions to use. |
+------------------------------------+-------------------------------------------------------------------------------------+
| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence`. |
| | * Unlocks :js:func:`getBitNodeMultipliers` and :js:func:`getServer` |
| | * Unlocks :js:func:`getBitNodeMultipliers` and start with Formulas.exe |
| | Netscript functions, as well as :ref:`netscriptformulas`. |
| | * Increases all of the player's hacking-related multipliers by 8%/12%/14%. |
+------------------------------------+-------------------------------------------------------------------------------------+

View File

@@ -27,6 +27,10 @@ to attempt infiltrations above mid-normal.
** Slash when his guard is down! **
Press space when the guard is attacking you.
There's 3 phase
The first is guarding, where attacking back will result in failure.
The 2nd is preparing, this informs you that in 250ms there will be an opening window to attack.
The 3rd is attack, during this phase you can press space to slash and kill the enemy.
** Close the brackets **

View File

@@ -3,8 +3,302 @@
Changelog
=========
v1.0.0 - 2021-11-10 Breaking the API :( (blame hydroflame)
-----------------------------------------------------------
** Announcement **
* Several API breaks have been implemented, a guide was written to help players migrate.
* Everyone gets 10 free neuroflux level.
** Netscript **
* Fix a bug that would cause RAM to not get recalculated.
* New function: hackAnalyzeSecurity
* New function: growthAnalyzeSecurity
* New function: weakenAnalyze
** Script Editor **
* Sometimes warn you about unawaited infinite loops.
* ns1 functions are now correctly colors in Monokai.
** Programs **
* Formulas.exe is a new program that lets you use the formulas API.
** Corporations **
* Real Estate takes up a tiny bit of room.
* Dividends are now taxes exponentially in certain bitnodes.
* UI displays how many level of each corporation upgrade.
* Fix exploit with going public.
* Employee salary no longer increase.
** Documentation **
* The documentation is now autogenerated into .md files.
It is usable but not yet linked to readthedocs. It's on github.
** Misc. **
* Favor is not internall floating point. Meaning I don't have to save an extra variable.
* Manually starting a Bladeburner action cancels unfocused action.
* Updated description of gang territory to be clearer.
* Hacknet expenses and profit are in different categories.
* Fixed favor equation.
* Toast messages aren't hidden behind work in progress screen.
* Fix bug that made infiltration checkmark look off by one.
* Fix some inconsistency with running files that start or don't start with /
* Can't tail the same window twice.
* Added recovery mode. Hopefully no one will ever have to use it.
* Fix readthedocs
* Programs now give int exp based on time not program.
* Many sing. functions now give int exp.
* Active Scripts page now displays some arguments next to script name.
* Fixed some invisible black text.
* Button colors can be edited.
* Added 2 new colors in the theme editor: background primary and background secondary.
* infiltration uses key instead of keycode so it should work better on non-american keyboards.
* nerf noodle bar.
v0.58.0 - 2021-10-27 Road to Steam (hydroflame & community)
-----------------------------------------------------------
** Announcement **
* To prepare for Steam we will fix some inconsistencies in the Netscript API. Ideally we can also write a
save file migration that will automatically convert all breaking changes in your scripts without any
player input.
** BREAKING (kindof) **
* All stock market functions are now under the 'stock' namespace, like 'hacknet'
However when you load your game with v0.58.0 for the first time it should automatically convert everything.
** SF -1 **
* new SF -1: Reality Alteration
** Gang **
* Ascension formula now better
* Karma requirement now much lower in most nodes
* Territory heavily penalizes gains
* T.R.P. not available outside BN2.
** Netscript **
* It is no longer possible to send anything but strings or numbers to other scripts. (prevents exploits)
* Improve code for some netscript functions (@omuretsu)
** Script Editor **
* Added Solarized light/dark as theme (@CalvinTrops)
* Fixed sleeve namespace smart autocomplete.
** Hacknet Servers **
* Cores affect grow/weaken like they do on home computer
** Infiltration **
* Slash game modified to be easier.
** Misc. **
* Fix typo in corp (@Saynt_Garmo)
* Fixed a bug where corp wouldn't let you buyback shares. (@Saynt_Garmo)
* Fixed a bug where sleeves couldn't perform some crimes. (@Saynt_Garmo)
* Hospitalization and Eating noodles are now toasts (@Saynt_Garmo)
* Fixed some repeated code (@omuretsu)
* Fixed Character Overview preventing clicks underneath it even when hidden. (@omuretsu)
* Fixed typo in tutorial. (@omuretsu)
* Create Programs and Factions invitation badges now dissapear when you open their respective pages.
* Add killall script in character overview.
* Fixed bug in corp that made last city production be the production for all cities for newly created product.
* Fix bug that allowed reputation to transfer to new jobs.
* Fixed memory leak with ns2.
* nerf noodle bar
v0.57.0 - 2021-10-16 It was too cheap! (hydroflame & community)
---------------------------------------------------------------
** BREAKING (kindof) **
* purchased server cost now scales exponentially past 2^10.
I'm going to actually explain this one: Currently the cost of a 2^20GB server is 57b
Most players can get that before their first install. In an effort to nerf good players
a softcap was added. This softcap is different for every BN.
** Script Editor **
* Added a theme that is close to monokai. Unfortunately a full monokai is impossible because
Monaco doesn't have a very good tokenizer.
* Opening a file and connecting to a new server will still save the file on the server that the file
was opened.
** Netscript **
* New function: alert, which creates a textbox.
* New function: toast, creates a notification in the bottom right.
* New function: upgradeHomeCores (@Saynt_Garmo)
* New function: atExit, allows you to set a callback for when the script closes.
* New kindof function: autocomplete, this allows you to tell the game what it should
autocomplete on the terminal.
** Augmentation **
* ENM Core (the Augmentation from The Black Hand with the highest rep cost) rep cost
reduced from 250 to 175. This will help new players transition from TBH to BitRunners more easily.
** Bladeburner **
* New general action: Incite Violence. This action adds other action counts but increases chaos.
** Misc. **
* Current bladeburner action is shown on the character overview.
* Fix blackop being #000 on #000.
* The last clicked Tail Box goes in front of the others.
* Fixed an issue where some values were loaded as 0 when they should be null.
* Implemented toasts.
* .msg are no longer saved in the text file.
* Tail boxes no longer display all the args, they use "..." after 30 characters.
* Fixed cancelation penalty bonus not being properly applied after the IP <-> hostname switch.
* Fixed an exploit where you could send non-strings or numbers to other scripts.
* Fixed issue when trying to work for a faction with a work type that doesn't exist while
already working for that faction.
* Fixed not being able to work for the CIA. (Don't ask)
* nerf noodle bar
v0.56.0 - 2021-10-11 Trimming the backlog (hydroflame & community)
------------------------------------------------------------------
** BREAKING **
* The 'write' function is now async. This helps when making scripts that write scripts.
** Terminal **
* 'grow' and 'weaken' have been added as terminal command. This should help player transition
from commands to scripts. The tutorial also talks about it.
* 'cp' command added
* Improved performance by rate limiting refresh.
** IP vs Hostname **
* The game now uses hostname as primary key for it's servers (yeah believe it or not IPs were
used until then). This has caused some issues with purchased servers (they couldn't be sold).
You might need to soft reset for the game to fully convert itself.
** Sleeve **
* Fixed bug where they couldn't train at Volhaven.
* No longer consume all bonus time at once, making it look buggy.
** SF9 **
* Now boosts hacknet production by 8/12/14%
** Hacknet Servers **
* production nerfed by 10%
* Max money increase gets weaker above 10t max money
** Corporation **
* Warehouse tooltip now also displays the amount of space taken by products.
* Changed research box completely to avoid dependency on Treant (Treant is a pita)
* All textbox should accept MAX/MP case insensitive.
* Fixed export popup not refreshing dropdowns correctly.
* Fixed product mku becoming zero
* Increased scaling of Wilson to avoid feedback loop.
* Can no longer get in debt by buying real estate
* Bonus time is consumed faster.
** Netscript **
* isBusy takes bitverse and infiltration into account
* hospitalize can't be called when in infiltration.
* setToCommitCrime now accepts crime rough name instead of perfect name.
* disableLog All now works for bladeburner functions.
* Fixed netscript port for ns1.
** Augmentation **
* Added augmentation to Ti Di Hui that removes penalty for being unfocused.
* Neuroflux no longer appears in special factions.
** Script Editor **
* Ram check is debounced instead of refreshed every second.
* Added the vscode extension documentation to the game (it doesn't work well, thought)
* Fixed issue where autocomplete list would grow forever
* Added semi-monokai as theme.
* Fixed issue where modifying filename would mess it up.
* Font size can be changed now.
** Infiltration **
* Fixed issue where game controls would become unfocused.
** Misc. **
* Fixed loader incorrectly assuming some null values are incorrect.
* installBackdoor trigger Bitverse sequence
* Some improvements to the theme editor
* Improved documentation about where to learn javascript.
* Added some instructions for contributors.
* Fixed typo in corporation sell shares modal (@Saynt_Garmo)
* Fixed pagination being black on black in Active Scripts
* Create Script tab renamed to Script Editor
* Fixed an issue where corp some textbox wouldn't update when changing city.
* Fixed an issue where hacknet online time was always 0.
* Netscript function prompt fixed.
* Fixed miscalculation in growth.
* Script with syntax errors will try to be a tad more helpful.
* Corporations can no longer bribe bladeburners.
* Augmentation Graphene Branchiblade renamed to Brachi, like the rest of them.
* All ram is displayed in GB/TB/PB now.
* Game now saves when saving a file, this can be turned off.
* Several improvement to log window.
* Bladeburner current action returns General type instead of the name of the action.
* Bladeburner travel and Sleeve travel respect disable ASCII.
* Tutorial fits on small screens.
* Import is much slower but more consistent now.
* Fix intelligence not updating properly.
* Added SF -1: Time Compression
* ReadTheDoc theme now matches the game.
* Logbox should wrap text better
* Logbox behavior should feel better.
* Fix font for AutoLink.exe
* nerf noodle bar
v0.55.0 - 2021-09-20 Material UI (hydroflame & community)
---------------------------------------------------------
** Global **
* The game is now 100% in typescript, react, and Material-UI
** Misc. **
* Corporations can no longer bribe special factions
* Infiltration can no longer lose focus of the keyboard.
* Fix terminal line limit
* Added theme editor
* Theme applies on game load (@Nolshine)
* Sleeves no longer consume all bonus time for some actions
* Fix a bug where the autocomlete list would get duplicates
* Fix tutorial not scaling properly on small screens
* Import should be more consistent
* Typo with 'help' command
* Fix infinite loop in casino
* nerf noodle bar
v0.54.0 - 2021-09-20 One big react node (hydroflame & community)
-------------------------------------------
----------------------------------------------------------------
** UI **
@@ -48,7 +342,7 @@ v0.54.0 - 2021-09-20 One big react node (hydroflame & community)
* nerf noodle bar
v0.53.0 - 2021-09-09 Way too many things. (hydroflame & community)
-------------------------------------------
------------------------------------------------------------------
** Dev? **
@@ -127,7 +421,7 @@ v0.53.0 - 2021-09-09 Way too many things. (hydroflame & community)
* nerf noodle bar
v0.52.9 - 2021-08-27 Less lag! (hydroflame & community)
-------------------------------------------
-------------------------------------------------------
** Active Scripts page **
@@ -158,7 +452,7 @@ v0.52.9 - 2021-08-27 Less lag! (hydroflame & community)
* nerf noodle bar
v0.52.8 - 2021-08-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
-------------------------------------------
-----------------------------------------------------------------------
** Script editor **
@@ -178,7 +472,7 @@ v0.52.8 - 2021-08-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
* nerf noodle bar
v0.52.7 - 2021-08-21 Fixing the previous patch tbh (hydroflame)
-------------------------------------------
---------------------------------------------------------------
** Netscript **
@@ -206,7 +500,7 @@ v0.52.7 - 2021-08-21 Fixing the previous patch tbh (hydroflame)
* nerf noodle bar
v0.52.6 - 2021-08-21 Logboxes and VS-code (hydroflame)
-------------------------------------------
------------------------------------------------------
** Text Editor **
@@ -228,7 +522,7 @@ v0.52.6 - 2021-08-21 Logboxes and VS-code (hydroflame)
* nerf noodle bar
v0.52.5 - 2021-08-19 CPU cores are useful!? (hydroflame)
-------------------------------------------
--------------------------------------------------------
** Terminal **
@@ -254,7 +548,7 @@ v0.52.5 - 2021-08-19 CPU cores are useful!? (hydroflame)
* nerf noodle bar
v0.52.4 - 2021-08-19 Bladeburner in React (hydroflame)
-------------------------------------------
------------------------------------------------------
** Bladeburner **
@@ -276,7 +570,7 @@ v0.52.4 - 2021-08-19 Bladeburner in React (hydroflame)
* nerf noodle bar
v0.52.3 - 2021-08-15 Gangs were OP (hydroflame)
-------------------------------------------
-----------------------------------------------
** Gang **
@@ -299,7 +593,7 @@ v0.52.3 - 2021-08-15 Gangs were OP (hydroflame)
* nerf noodle bar
v0.52.2 - 2021-08-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
-------------------------------------------
--------------------------------------------------------------------
** Source-Files **
@@ -317,19 +611,17 @@ v0.52.2 - 2021-08-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
* nerf noodle bar
v0.52.1 - 2021-08-10 bugfixing (hydroflame & community)
-------------------------------------------
-------------------------------------------------------
**Misc.**
** Misc. **
* Fix game crash/corruption when quitting a job while working for it unfocused.
* Fix typo in corporation Market Data.
* Fix typo in docs for hackPercent.
* The tutorial encourages the players to connect to home before creating `n00dles.script`
* The dark web `buy` command now accepts `-1` (one) and `--list` instead of just
`-l`. Helps some confused players.
* The dark web `buy` command now accepts `-1` (one) and `--list` instead of just `-l`. Helps some confused players.
* Character overview screen no longer hidden on the corporation screen.
* Infiltration difficulty display is now more explicit (It's a big arrow instead
of just one word.)
* Infiltration difficulty display is now more explicit (It's a big arrow instead of just one word.)
* Fix wrong ram value in tutorial. (@MageKing17)
* Plenty of augmentation description cleanup (@Kwazygloo)
* Plenty of typo/description fixed (@MageKing17)
@@ -432,7 +724,7 @@ v0.51.10 - 2021-05-31 Focus Mark, Focus! (hydroflame)
* nerf noodle bar
v0.51.9 - 2021-05-17 offline progress and exports! (hydroflame & community)
---------------------------------------------------------------
---------------------------------------------------------------------------
**Alias**
@@ -487,7 +779,7 @@ v0.51.9 - 2021-05-17 offline progress and exports! (hydroflame & community)
v0.51.8 - 2021-05-07 It was there all along (hydroflame & community)
--------------------------------------------------------
--------------------------------------------------------------------
**Servers**
@@ -544,7 +836,7 @@ v0.51.8 - 2021-05-07 It was there all along (hydroflame & community)
* nerf noodle bar
v0.51.7 - 2021-04-28 n00dles (hydroflame & community)
-----------------------------------------
-----------------------------------------------------
**Tutorial servers**
@@ -603,7 +895,7 @@ v0.51.7 - 2021-04-28 n00dles (hydroflame & community)
v0.51.6 - 2021-04-28 Backdoor! (hydroflame & community)
------------------------------------------
-------------------------------------------------------
**Backdoor**

View File

@@ -64,9 +64,9 @@ documentation_title = '{0} Documentation'.format(project)
# built documents.
#
# The short X.Y version.
version = '0.54'
version = '0.58'
# The full version, including alpha/beta/rc tags.
release = '0.54.0'
release = '0.58.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -189,3 +189,4 @@ intersphinx_mapping = {'https://docs.python.org/': None}
def setup(app):
print("Initializing (setup())");
app.add_stylesheet('maxwidthoverride.css')
app.add_stylesheet('dark_theme.css')

View File

@@ -24,11 +24,11 @@ secrets that you've been searching for.
Basic Gameplay <basicgameplay>
Advanced Gameplay <advancedgameplay>
Keyboard Shortcuts <shortcuts>
Script Editors <scripteditors>
Game Frozen or Stuck? <gamefrozen>
Guides & Tips <guidesandtips>
Tools & Resources <toolsandresources>
Changelog <changelog>
v1.0.0 script migration guide <v1.0.0_migration.rst>
Donate <https://paypal.me/danielyxie>
Indices and tables

View File

@@ -0,0 +1,18 @@
atExit() Netscript Function
============================
.. js:function:: atExit(f)
:RAM cost: 0 GB
:param function f: function to call when the script dies.
Runs when the script dies.
Example:
.. code-block:: javascript
function onDeath() {
console.log('I died!!!')
}
atExit(onDeath);

View File

@@ -0,0 +1,39 @@
autocomplete() Netscript Function
============================
.. warning:: This feature is not officially supported yet and the API might change. It is also only supported in ns2
.. js:function:: autocomplete(data, args)
:RAM cost: 0 GB
:param Object data: general data about the game you might want to autocomplete.
:param string[] args: current arguments. Minus `run script.ns`
data is an object with the following properties::
{
servers: list of all servers in the game.
txts: list of all text files on the current server.
scripts: list of all scripts on the current server.
flags: the same flags function as passed with ns. Calling this function adds all the flags as autocomplete arguments
}
This function is special as it must be declared as a top level function like `main`.
Example:
.. code-block:: javascript
export function autocomplete(data, args) {
return [...data.servers]; // This script autocompletes the list of servers.
return [...data.servers, ...data.scripts]; // Autocomplete servers and scripts
return ["low", "medium", "high"]; // Autocomplete 3 specific strings.
}
Terminal:
.. code-block:: javascript
$ run demo.ns mega\t
// results in
$ run demo.ns megacorp

View File

@@ -6,8 +6,6 @@ getServer() Netscript Function
:RAM cost: 2 GB
:param string hostname: Hostname of the server, defaults to host server.
If you are not in BitNode-5, then you must have Source-File 5-1 in order to run this function.
This function is meant to be used in conjunction with the :doc:`formulas API<../netscriptformulasapi>`.
Returns an object with the Server's stats. The object has the following properties::

View File

@@ -0,0 +1,35 @@
Injecting HTML in the game
==========================
Bitburner uses React and Material-UI to render everything. Modifying the UI is possible but
not officially supported.
To automatically enter commands in the terminal (only works if looking at the terminal):
.. code-block:: javascript
// Acquire a reference to the terminal text field
const terminalInput = document.getElementById("terminal-input");
// Set the value to the command you want to run.
terminalInput.value="home;connect n00dles;home;connect n00dles;home;";
// Get a reference to the React event handler.
const handler = Object.keys(terminalInput)[1];
// Perform an onChange event to set some internal values.
terminalInput[handler].onChange({target:terminalInput});
// Simulate an enter press
terminalInput[handler].onKeyDown({keyCode:13,preventDefault:()=>null});
To add lines to the terminal (only works if looking at the terminal):
.. code-block:: javascript
// Acquire a reference to the terminal list of lines.
const list = document.getElementById("generic-react-container").querySelector("ul");
// Inject some HTML.
list.insertAdjacentHTML('beforeend',`<li><p color=lime>whatever custom html</p></li>`)

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -0,0 +1,15 @@
alert() Netscript Function
============================
.. js:function:: alert(message)
:RAM cost: 0 GB
:param string message: message to display
Spawns an alert box.
Example:
.. code-block:: javascript
alert("Reached $1b");

View File

@@ -28,6 +28,8 @@ grow() Netscript Function
server, but there is no required hacking level to run the command. It also
raises the security level of the target server by 0.004 per thread.
Action time is calculated at the start, effect is calculated at the end.
Example:
.. code-block:: javascript

View File

@@ -1,12 +1,13 @@
growthAnalyze() Netscript Function
==================================
.. js:function:: growthAnalyze(hostname, growthAmount)
.. js:function:: growthAnalyze(hostname, growthAmount[, cores])
:RAM cost: 1 GB
:param string hostname: Hostname of server to analyze.
:param number growthAmount: Multiplicative factor by which the server is
grown. Decimal form. Must be >= 1.
:param number cores: Amount of cores on the server that would run the growth, defaults to 1
:returns: The amount of :doc:`grow<grow>` threads needed to grow the specified
server by the specified amount.

View File

@@ -27,6 +27,8 @@ hack() Netscript Function
A successful :doc:`hack<hack>` on a server will raise that server's security
level by 0.002.
Action time is calculated at the start, effect is calculated at the end.
Example:
.. code-block:: javascript

View File

@@ -0,0 +1,17 @@
toast() Netscript Function
============================
.. js:function:: toast(message[, variant])
:RAM cost: 0 GB
:param string message: message to display
:param success|info|warning|error variant: color of the toast
Spawns a toast (those bottom right notifications, like "Game Saved!" ).
Example:
.. code-block:: javascript
toast("Reached $1b");
toast("Failed to hack home", "error");

View File

@@ -0,0 +1,15 @@
getCityCommunities() Netscript Function
================================================
.. js:function:: getCityCommunities(cityName)
:RAM cost: 4 GB
:param string cityName: Name of city. Case-sensitive
:returns: Confirmed number of Synthoid communities in the specified city,
or -1 if an invalid city was specified.
Example:
.. code-block:: javascript
bladeburner.getCityCommunities("Sector-12"); // returns: 76

View File

@@ -1,15 +0,0 @@
getCityEstimatedCommunities() Netscript Function
================================================
.. js:function:: getCityEstimatedCommunities(cityName)
:RAM cost: 4 GB
:param string cityName: Name of city. Case-sensitive
:returns: Estimated number of Synthoid communities in the specified city,
or -1 if an invalid city was specified.
Example:
.. code-block:: javascript
bladeburner.getCityEstimatedCommunities("Sector-12"); // returns: 76

View File

@@ -10,3 +10,6 @@ they contain spoilers for the game.
getBitNodeMultipliers() <advancedfunctions/getBitNodeMultipliers>
getServer() <advancedfunctions/getServer>
autocomplete() <advancedfunctions/autocomplete>
atExit() <advancedfunctions/atExit>
Injecting HTML <advancedfunctions/inject_html.rst>

View File

@@ -54,7 +54,7 @@ In :ref:`netscriptjs`::
getTeamSize() <bladeburnerapi/getTeamSize>
setTeamSize() <bladeburnerapi/setTeamSize>
getCityEstimatedPopulation() <bladeburnerapi/getCityEstimatedPopulation>
getCityEstimatedCommunities() <bladeburnerapi/getCityEstimatedCommunities>
getCityCommunities() <bladeburnerapi/getCityCommunities>
getCityChaos() <bladeburnerapi/getCityChaos>
getCity() <bladeburnerapi/getCity>
switchCity() <bladeburnerapi/switchCity>

View File

@@ -93,6 +93,9 @@ This includes information such as function signatures, what they do, and their r
wget() <basicfunctions/wget>
getFavorToDonate() <basicfunctions/getFavorToDonate>
flags() <basicfunctions/flags>
alert() <basicfunctions/alert>
toast() <basicfunctions/toast>
tprintf() <basicfunctions/tprintf>
.. toctree::
:caption: Deprecated:

View File

@@ -13,25 +13,27 @@ TIX API can be purchased by visiting the World Stock Exchange in-game.
Access to the TIX API currently costs $5 billion. After you purchase it, you will retain this
access even after you 'reset' by installing Augmentations
**TIX API functions must be accessed through the stock namespace**
.. toctree::
:caption: API Functions:
getStockSymbols() <tixapi/getStockSymbols>
getStockPrice() <tixapi/getStockPrice>
getStockAskPrice() <tixapi/getStockAskPrice>
getStockBidPrice() <tixapi/getStockBidPrice>
getStockPosition() <tixapi/getStockPosition>
getStockMaxShares() <tixapi/getStockMaxShares>
getStockPurchaseCost() <tixapi/getStockPurchaseCost>
getStockSaleGain() <tixapi/getStockSaleGain>
buyStock() <tixapi/buyStock>
sellStock() <tixapi/sellStock>
shortStock() <tixapi/shortStock>
getSymbols() <tixapi/getSymbols>
getPrice() <tixapi/getPrice>
getAskPrice() <tixapi/getAskPrice>
getBidPrice() <tixapi/getBidPrice>
getPosition() <tixapi/getPosition>
getMaxShares() <tixapi/getMaxShares>
getPurchaseCost() <tixapi/getPurchaseCost>
getSaleGain() <tixapi/getSaleGain>
buy() <tixapi/buy>
sell() <tixapi/sell>
short() <tixapi/short>
sellShort() <tixapi/sellShort>
placeOrder() <tixapi/placeOrder>
cancelOrder() <tixapi/cancelOrder>
getOrders() <tixapi/getOrders>
getStockVolatility() <tixapi/getStockVolatility>
getStockForecast() <tixapi/getStockForecast>
getVolatility() <tixapi/getVolatility>
getForecast() <tixapi/getForecast>
purchase4SMarketData() <tixapi/purchase4SMarketData>
purchase4SMarketDataTixApi() <tixapi/purchase4SMarketDataTixApi>

View File

@@ -1,37 +1,37 @@
.. _netscriptjs:
NetscriptJS (Netscript 2.0)
===========================
Netscript 2.0, or Netscript JS, is the new and improved version of Netscript that
allows users to write (almost) full-fledged Javascript code in their scripts, while
NS2
===
The improved version of Netscript that
allows users to write full-fledged Javascript code in their scripts, while
still being able to access the Netscript functions.
NetscriptJS was developed primarily by `Github user jaguilar <https://github.com/jaguilar>`_
ns2 was developed primarily by `Github user jaguilar <https://github.com/jaguilar>`_
On top of having almost all of the features and capabilities of JavaScript, NetscriptJS is also
significantly faster than Netscript 1.0.
On top of having almost all of the features and capabilities of JavaScript, ns2 is also
significantly faster than ns1.
This documentation will not go over any of the additional features of NetscriptJS, since
This documentation will not go over any of the additional features of ns2, since
there is plenty of documentation on Javascript available on the web.
Browser compatibility
---------------------
As of the time of writing this, a few browsers do not support `dynamic import <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import>`_ functionality and therefore cannot run NetscriptJS scripts. These browsers will thus only be capable of using Netscript 1.0.
As of the time of writing this, a few browsers do not support `dynamic import <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import>`_ functionality and therefore cannot run ns2 scripts. These browsers will thus only be capable of using ns1.
How to use NetscriptJS
How to use ns2
----------------------
Working with NetscriptJS scripts is the same as Netscript 1.0 scripts. The only difference
is that NetscriptJS scripts use the ".ns" or ".js" extension rather than ".script". E.g.::
Working with ns2 scripts is the same as ns1 scripts. The only difference
is that ns2 scripts use the ".ns" or ".js" extension rather than ".script". E.g.::
$ nano foo.ns
$ run foo.ns -t 100 arg1 arg2 arg3
exec("foo.ns", "purchasedServer1", "100", "randomArg");
The caveat when using NetscriptJS to write scripts is that your code must be
The caveat when using ns2 to write scripts is that your code must be
asynchronous. Furthermore, instead of using the global scope and executing your code
sequentially, NetscriptJS uses a :code:`main()` function as an entry point.
sequentially, ns2 uses a :code:`main()` function as an entry point.
Furthermore, the "Netscript environment" must be passed into a NetscriptJS script through
Furthermore, the "Netscript environment" must be passed into a ns2 script through
the main function. This environment includes all of the pre-defined Netscript functions
(:code:`hack()`, :code:`exec`, etc.) as well as the arguments you pass to the script.
@@ -53,6 +53,9 @@ Here is a summary of all rules you need to follow when writing Netscript JS code
* sleep
* prompt
* wget
* scp
* write
* writePort
* Any function that contains :code:`await` must be declared as :code:`async`
@@ -60,9 +63,9 @@ Here is a summary of all rules you need to follow when writing Netscript JS code
* Any functions that you want to be visible from other scripts must be marked with :code:`export`.
* **Do not write any infinite loops without using a** :code:`sleep` **or one of the timed Netscript functions like** :code:`hack`. Doing so will crash your game.
* **Do not write any infinite loops without using a** :code:`sleep` **or one of the timed Netscript functions like** :code:`hack`. Doing so will freeze your game.
* Any global variable declared in a NetscriptJS script is shared between all instances of that
* Any global variable declared in a ns2 script is shared between all instances of that
script. For example, assume you write a script *foo.ns* and declared a global variable like so::
//foo.ns
@@ -88,93 +91,68 @@ Here is a summary of all rules you need to follow when writing Netscript JS code
the script will repeatedly print the value 5).
These global variables can be thought of as `C++ static class members <https://www.tutorialspoint.com/cplusplus/cpp_static_members.htm>`_,
where a NetscriptJS script is a class and a global variable is a static member within that class.
where a ns2 script is a class and a global variable is a static member within that class.
Warnings
--------
The NetscriptJS evaluation engine works by converting your code into a blob URL and then
using a dynamic import to load your code as a module. Every unique NetscriptJS script
is loaded as its own module. This means that
making a small edit to a NetscriptJS script results in a new module being generated.
Example
-------
At this point, we have been unable to find a method for deleting modules from browsers so that
they get garbage collected.
early-hack-template.script
The result is that these modules from NetscriptJS scripts accumulate in your browser,
using memory that never gets released. Over time, this results in a memory-leak type
situation that can slow down your computer.
.. code-block:: javascript
Therefore, there are two recommendations for those who decide to use NetscriptJS:
1. Every now and then, close and re-open the game. This will clear all of the modules.
To be safe, I recommend **completely** closing the game's tab and then re-opening it.
Depending on your browser, a refresh or page reload does not always clear the modules.
2. Only use NetscriptJS scripts when needed. It is very unlikely that NetscriptJS
is needed for very simple scripts. By doing this, you will reduce the number of modules
that are loaded.
Examples
--------
**Script Scheduler (scriptScheduler.ns)**
This script shows some of the new functionality that is available in NetscriptJS,
including objects and object constructors, changing an object's prototype, and
importing other NetscriptJS scripts::
import {tprintColored} from "tprintColored.ns"; //Importing from other NetscriptJS scripts works!
function ScriptJob(params) {
if (params.fn == null) {
throw new Error("No Filename (fn) passed into ScriptJob ctor");
var target = args[0];
var moneyThresh = getServerMaxMoney(target) * 0.75;
var securityThresh = getServerMinSecurityLevel(target) + 5;
if (fileExists("BruteSSH.exe", "home")) {
brutessh(target);
}
nuke(target);
while(true) {
if (getServerSecurityLevel(target) > securityThresh) {
weaken(target);
} else if (getServerMoneyAvailable(target) < moneyThresh) {
grow(target);
} else {
hack(target);
}
this.fn = params.fn;
this.threads = params.threads ? params.threads : 1;
this.args = params.args ? params.args : [];
}
ScriptJob.prototype.run = function(ns) {
let runArgs = [this.fn, this.threads].concat(this.args);
if (!ns.run.apply(this, runArgs)) {
throw new Error("Unable to run " + this.fn + " on " +ns.getHostname());
}
tprintColored("Running " + this.fn + " on " + ns.getHostname(), "blue");
}
early-hack-template.ns
ScriptJob.prototype.exec = function(ns, target) {
ns.scp(this.fn, target);
let execArgs = [this.fn, target, this.threads].concat(this.args);
if (!ns.exec.apply(this, execArgs)) {
throw new Error("Unable to execute " + this.fn + " on " + target);
}
tprintColored("Executing " + this.fn + " on " + target, "blue");
}
.. code-block:: javascript
export async function main(ns) {
tprintColored("Starting scriptScheduler.ns", "red");
try {
let job = new ScriptJob({
fn: "test.js",
threads: 1,
args: ["foodnstuff"]
});
job.run(ns);
job.exec(ns, "foodnstuff");
} catch (e) {
ns.tprint("Exception thrown in scriptScheduler.ns: " + e);
var target = ns.args[0];
var moneyThresh = ns.getServerMaxMoney(target) * 0.75;
var securityThresh = ns.getServerMinSecurityLevel(target) + 5;
if (ns.fileExists("BruteSSH.exe", "home")) {
ns.brutessh(target);
}
ns.nuke(target);
while(true) {
if (ns.getServerSecurityLevel(target) > securityThresh) {
await ns.weaken(target);
} else if (ns.getServerMoneyAvailable(target) < moneyThresh) {
await ns.grow(target);
} else {
await ns.hack(target);
}
}
}
Final Note
----------
NetscriptJS opens up a lot of possibilities when scripting. I look forward to seeing
the scripts that people come up with. Just remember that the power and capabilities of
NetscriptJS come with risks. Please backup your save if you're going to experiment with
NetscriptJS and report any serious exploits.
What's with the weird comment
-----------------------------
With great power comes great responsibility
You may have noticed that every new ns2 file will contains the following comment.
Happy hacking
.. code-block:: javascript
/**
* @param {NS} ns
**/
This command is used to help the text editor autocomplete functions in the Netscript API. You can enabling it by pressing ctrl+space after `ns.`
.. image:: autocomplete.png
The comment can be safely removed but it is recommended to keep it as it will help you.

View File

@@ -15,6 +15,7 @@ help you learn some basic programming concepts.
Here are some good tutorials for learning programming/JavaScript as a beginner:
* `Learn-JS <http://www.learn-js.org/en/Welcome>`_
* `programiz <https://www.programiz.com/javascript/get-started>`_
* `Speaking JavaScript <http://speakingjs.com/es5/index.html>`_
This is a bit on the longer side. You can skip all of the historical
background stuff. Recommended chapters: 1, 7-18

View File

@@ -22,5 +22,4 @@ into a script using::
args.length
**WARNING: Do not try to modify the args array. This will break the game.
I will do my best to prevent players from doing this.**
**WARNING: Do not try to modify the args array. This will break the game.**

View File

@@ -43,6 +43,7 @@ The player has access to all of these functions while in BitNode-4. Completing B
getFactionRep() <singularityfunctions/getFactionRep>
getFactionFavor() <singularityfunctions/getFactionFavor>
getFactionFavorGain() <singularityfunctions/getFactionFavorGain>
upgradeHomeCores() <singularityfunctions/upgradeHomeCores>
.. toctree::
:caption: Level 3 Functions

View File

@@ -3,7 +3,9 @@ getAugmentationCost() Netscript Function
.. js:function:: getAugmentationCost(augName)
.. warning:: This function is deprecated.
.. warning:: This function is deprecated. It still functions, but new
scripts should prefer :doc:`getAugmentationPrice<getAugmentationPrice>`
and :doc:`getAugmentationRepReq<getAugmentationRepReq>` instead.
:RAM cost: 5 GB

View File

@@ -0,0 +1,12 @@
upgradeHomeRam() Netscript Function
===================================
.. js:function:: upgradeHomeCores()
:RAM cost: 3 GB
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
This function will upgrade amount of CORES on the player's home computer. The cost is the same as if you were to do it manually.
This function will return true if the player's home computer core count is successfully upgraded, and false otherwise.

View File

@@ -17,7 +17,7 @@ getInformation() Netscript Function
maxHp: max hp of the sleeve,
jobs: jobs available to the sleeve,
jobTitle: job titles available to the sleeve,
tor: does this sleeve have access to the tor router,
mult: {
agility: agility multiplier,
agilityExp: agility exp multiplier,

View File

@@ -1,7 +1,7 @@
buyStock() Netscript Function
buy() Netscript Function
=============================
.. js:function:: buyStock(sym, shares)
.. js:function:: buy(sym, shares)
:RAM cost: 2.5 GB
:param string sym: Symbol of stock to purchase

View File

@@ -1,7 +1,7 @@
getStockAskPrice() Netscript Function
getAskPrice() Netscript Function
=====================================
.. js:function:: getStockAskPrice(sym)
.. js:function:: getAskPrice(sym)
:RAM cost: 2 GB
:param string sym: Stock symbol

View File

@@ -1,7 +1,7 @@
getStockBidPrice() Netscript Function
getBidPrice() Netscript Function
=====================================
.. js:function:: getStockBidPrice(sym)
.. js:function:: getBidPrice(sym)
:RAM cost: 2 GB
:param string sym: Stock symbol

View File

@@ -1,7 +1,7 @@
getStockForecast() Netscript Function
getForecast() Netscript Function
=====================================
.. js:function:: getStockForecast(sym)
.. js:function:: getForecast(sym)
:RAM cost: 2.5 GB
:param string sym: Symbol of stock

View File

@@ -1,7 +1,7 @@
getStockMaxShares() Netscript Function
getMaxShares() Netscript Function
======================================
.. js:function:: getStockMaxShares(sym)
.. js:function:: getMaxShares(sym)
:RAM cost: 2 GB
:param string sym: Stock symbol

View File

@@ -1,7 +1,7 @@
getStockPosition() Netscript Function
getPosition() Netscript Function
=====================================
.. js:function:: getStockPosition(sym)
.. js:function:: getPosition(sym)
:RAM cost: 2 GB
:param string sym: Stock symbol
@@ -21,7 +21,7 @@ getStockPosition() Netscript Function
Example::
pos = getStockPosition("ECP");
pos = getPosition("ECP");
shares = pos[0];
avgPx = pos[1];
sharesShort = pos[2];

View File

@@ -1,7 +1,7 @@
getStockPrice() Netscript Function
getPrice() Netscript Function
==================================
.. js:function:: getStockPrice(sym)
.. js:function:: getPrice(sym)
:RAM cost: 2 GB
:param string sym: Stock symbol
@@ -15,4 +15,4 @@ getStockPrice() Netscript Function
Example::
getStockPrice("FSIG");
getPrice("FSIG");

Some files were not shown because too many files have changed in this diff Show More