diff --git a/.gitignore b/.gitignore
index 4e8d50a..e59e966 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
*.swp
+.obsidian/
diff --git a/2023-01-09.md b/2023-01-09.md
new file mode 100644
index 0000000..e69de29
diff --git a/AutoSSH.md b/AutoSSH.md
new file mode 100644
index 0000000..2005777
--- /dev/null
+++ b/AutoSSH.md
@@ -0,0 +1 @@
+autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 22721:localhost:22 pt@hptrow.me
diff --git a/accounting/Re-Price Open Orders.md b/accounting/Re-Price Open Orders.md
new file mode 100644
index 0000000..e89b8c5
--- /dev/null
+++ b/accounting/Re-Price Open Orders.md
@@ -0,0 +1,27 @@
+## Clean Update Guidance
+
+- [x] exclude dishes and hangers from ltp flags ✅ 2023-01-11
+- [ ] dont blow cap dishes past bulletin value
+- [ ] flag increases and decreses
+- [ ] convert USD pricing back to local for order adjustment feed
+
+## Scope
+
+* Timeline
+ - [ ] order placed range
+ - [ ] promise date range
+* Adjustment
+ - [ ] blanket % per customer
+ - [ ] adjust up and down so long as net down
+ - [ ] only adjust down
+* Excludsions
+ - [ ] Warehouse
+ - [ ] Monrovia
+ - [ ] Proven Winners
+ - [ ] Large Directs `Metrolina, Altmans, Costa`
+ - [ ] Retail
+ - [ ] Purchased?
+
+## CMS
+- [ ] prep for either % change or feed from file
+
diff --git a/accounting/Transfer Pricing.md b/accounting/Transfer Pricing.md
new file mode 100644
index 0000000..e69de29
diff --git a/accounting/asset_based_lending.md b/accounting/asset_based_lending.md
index 7dbbb86..81afaf2 100644
--- a/accounting/asset_based_lending.md
+++ b/accounting/asset_based_lending.md
@@ -1,2 +1,2 @@
-FCC - fixed charge coverage ratio - looks at cash flow as compared to cash require dto fulfill debt payments
+FCC - fixed charge coverage ratio - looks at cash flow as compared to cash require dto fulfill debt payments
SLR - senior debt leverage ratio - senior debt to ebitda
\ No newline at end of file
diff --git a/accounting/pricing.md b/accounting/pricing.md
new file mode 100644
index 0000000..bea43f3
--- /dev/null
+++ b/accounting/pricing.md
@@ -0,0 +1,61 @@
+---
+
+kanban-plugin: basic
+
+---
+
+## Issues
+
+- [ ] Invoices with no BOL
+- [ ] bulk is more than master pallet (CAN)
+- [ ] GETPRICE
- [ ] subcontracts
- [ ] Proven Winners
- [ ] any drop ship will link with list
- [ ] narrower linkage based on v1 dataseg
+- [ ] Price per M should round to < 5 in case/pallet and vice versa
+
+
+## Projects
+
+- [ ] Price List Build - Volume Basis
* Review Branded Thermo
+- [ ] Quote Tool - target maintenance
+- [ ] Valid Prices used in orders - check
+
+
+## Requests
+
+- [ ] Canada Greenhouse List Review
+- [ ] BFG to have 5% discount for branded containers
+
+
+## Sales Matrix
+
+- [ ] Quotes Integration
- [ ] refresh
- [ ] all open
- [ ] header row but no qcri rows
+- [ ] Matrix - Active Price Measure
+- [ ] Update by Diff
+- [ ] Handle Guidance based on channel
+- [ ] Notes
+- [ ] Guidance Anchor Pool
* source
* customer
* channel global
* target
* fit
* v0
* v1
* alt+prem
+
+
+## Opportunities
+
+- [ ] Open Quotes - Listing for Folow-Up
+- [ ] Share - customers buying more items
+- [ ] Market size - More YoY season lbs
+- [ ] Quote Conversion Rate
+
+
+## Quotes
+
+
+
+## Done
+
+**Complete**
+
+
+
+
+%% kanban:settings
+```
+{"kanban-plugin":"basic","show-checkboxes":false}
+```
+%%
\ No newline at end of file
diff --git a/accounting/role.md b/accounting/role.md
index 65b6182..41126e0 100644
--- a/accounting/role.md
+++ b/accounting/role.md
@@ -1,64 +1,64 @@
-Deriving The Trial Balance
-=============================================================================================================
-* Entries and reocniliations
- * Payroll
- * Data: Retain all payroll data in a `database` to build entries
- * Mappings: Configure `Paycom GL Interface`
- * `401k`: book disbursements and reconcile to Paycom withholdings
- * `FSA`: book FSA funding entries and reconcile to Paycom withholdings
- * Debt & Cash
- * Data: retain all PNC information available in a `database` to build entries (cash, revolver, debt)
- * Book all PNC `loan activity`
- * Book interest on `notes`
- * Reconcile all balance sheet `debt`
- * Book `interest rate swap` valuation
- * Bank Rec:
- * book entry to break out `freight checks`
- * book entries to clean up missed `fees`
- * book entries to deal with `miscelaneous discrepencies`
- * book entry to classify `outstanding checks` as liabilities
- * Intercompany Activity
- * Support `transfer pricing` entry
- * Book `consolidating` entries
- * Book `currency translation adjustment` for consolidated USD trial balance
- * Reconcile `CTA` & `Equity`
- * Reclassify any `intercompany liabilites` out of the trade accounts
- * Validate that `intercompany balances` are eliminated from consolidated trial balance
- * Other Balance Sheet Items
- * Book and reconcile amortization of `intangibles`
- * Book and reconcile amortization of `defered financing costs`
- * Book RSM determined `tax provision` and current year `tax accrual`
- * CMS Module Corrections
- * book entry to fix `virtual sales`
- * book entry to fix `credits`
- * furnish a report to the plants breaking out the `book to perpetual` issues
- * sales timing and valuation issues
- * cost roll impact
- * production ledger issues
- * voucher issues
- * issues with transfers
- * issues with returns
-* Configuration
- * Module accounts (sales, inventory, production, manual adjustments, AP, AR, intecompany)
- * Chart of Accounts
- * EBITDA flags
- * consolidation flags
- * consolidation heirarchy
- * financial statement lines
- * currency indicator
-
-Interpreting The Trial Balance
-=========================================================================================================
-* Rebuild trial balance into alternate financial statement formats
-* Rebuilt subledger that matches original ledger
-* Rebuild production subledger that does not match original
-* Sales Matrix
-* A large number of reports that I can't even list but are maintained [here](https://bitbucket.org/hccompanies/hc_ubm/src/master/)
-
-Forecasting
-=============================
-* Product Strucutre Explosion Logic
- * global scale cost change estimates
- * production plans
- * inventory forecasts
+Deriving The Trial Balance
+===============================================================
+* Entries and reocniliations
+ * Payroll
+ * Data: Retain all payroll data in a `database` to build entries
+ * Mappings: Configure `Paycom GL Interface`
+ * `401k`: book disbursements and reconcile to Paycom withholdings
+ * `FSA`: book FSA funding entries and reconcile to Paycom withholdings
+ * Debt & Cash
+ * Data: retain all PNC information available in a `database` to build entries (cash, revolver, debt)
+ * Book all PNC `loan activity`
+ * Book interest on `notes`
+ * Reconcile all balance sheet `debt`
+ * Book `interest rate swap` valuation
+ * Bank Rec:
+ * book entry to break out `freight checks`
+ * book entries to clean up missed `fees`
+ * book entries to deal with `miscelaneous discrepencies`
+ * book entry to classify `outstanding checks` as liabilities
+ * Intercompany Activity
+ * Support `transfer pricing` entry
+ * Book `consolidating` entries
+ * Book `currency translation adjustment` for consolidated USD trial balance
+ * Reconcile `CTA` & `Equity`
+ * Reclassify any `intercompany liabilites` out of the trade accounts
+ * Validate that `intercompany balances` are eliminated from consolidated trial balance
+ * Other Balance Sheet Items
+ * Book and reconcile amortization of `intangibles`
+ * Book and reconcile amortization of `defered financing costs`
+ * Book RSM determined `tax provision` and current year `tax accrual`
+ * CMS Module Corrections
+ * book entry to fix `virtual sales`
+ * book entry to fix `credits`
+ * furnish a report to the plants breaking out the `book to perpetual` issues
+ * sales timing and valuation issues
+ * cost roll impact
+ * production ledger issues
+ * voucher issues
+ * issues with transfers
+ * issues with returns
+* Configuration
+ * Module accounts (sales, inventory, production, manual adjustments, AP, AR, intecompany)
+ * Chart of Accounts
+ * EBITDA flags
+ * consolidation flags
+ * consolidation heirarchy
+ * financial statement lines
+ * currency indicator
+
+Interpreting The Trial Balance
+=========================================================================================================
+* Rebuild trial balance into alternate financial statement formats
+* Rebuilt subledger that matches original ledger
+* Rebuild production subledger that does not match original
+* Sales Matrix
+* A large number of reports that I can't even list but are maintained [here](https://bitbucket.org/hccompanies/hc_ubm/src/master/)
+
+Forecasting
+=============================
+* Product Strucutre Explosion Logic
+ * global scale cost change estimates
+ * production plans
+ * inventory forecasts
* Sales forecast tool
\ No newline at end of file
diff --git a/analysis/price_mix_vol.md b/analysis/price_mix_vol.md
index 3ec249b..f26651a 100644
--- a/analysis/price_mix_vol.md
+++ b/analysis/price_mix_vol.md
@@ -1,21 +1,21 @@
-
-Only applies to items that exist in both sets of data
-
-**Change in Price**
-
- ( P₂ - P₁ ) Q₂
-
-**Change in Quantity**
-
- ( Q₂ - Q₁ ) P₁
-
-_To further break out change in quantity_
-
-
-Change in Quantity - _Volume Related_
-
- Q₂ ( Q₁ / Σ ( Q₁ ) ) - Q₁
-
-Change in Quantity - _Mix Related_
-
+
+Only applies to items that exist in both sets of data
+
+**Change in Price**
+
+ ( P₂ - P₁ ) Q₂
+
+**Change in Quantity**
+
+ ( Q₂ - Q₁ ) P₁
+
+_To further break out change in quantity_
+
+
+Change in Quantity - _Volume Related_
+
+ Q₂ ( Q₁ / Σ ( Q₁ ) ) - Q₁
+
+Change in Quantity - _Mix Related_
+
Q₂ - Q₂ ( Q₁ / Σ ( Q₁ ) )
\ No newline at end of file
diff --git a/db2.md b/db2.md
index 87817ca..031c168 100644
--- a/db2.md
+++ b/db2.md
@@ -1,3 +1,3 @@
-alter existing column type
-
+alter existing column type
+
`ALTER TABLE RLARP.OSMFS ALTER COLUMN "ITER" SET DATA TYPE VARCHAR(500)`
\ No newline at end of file
diff --git a/dotnet_core.md b/dotnet_core.md
index f9a0f1e..418bfb2 100644
--- a/dotnet_core.md
+++ b/dotnet_core.md
@@ -1,11 +1,11 @@
-dotnet new console -n "name of directory or project"
-
-dotnet build
-
-create exe targeting a runtime: create an executable if not already exists and build dll in bin/Release/win10-x64
---------------------------------------------
-dotnet publish -c Release -r win10-x64
-
-dotnet publish -c Release -f netcoreapp2.1
-
+dotnet new console -n "name of directory or project"
+
+dotnet build
+
+create exe targeting a runtime: create an executable if not already exists and build dll in bin/Release/win10-x64
+--------------------------------------------
+dotnet publish -c Release -r win10-x64
+
+dotnet publish -c Release -f netcoreapp2.1
+
`dotnet restore` -> update/sync packages
\ No newline at end of file
diff --git a/journals/2023_01_09.md b/journals/2023_01_09.md
new file mode 100644
index 0000000..91b0d2d
--- /dev/null
+++ b/journals/2023_01_09.md
@@ -0,0 +1,2 @@
+- #poppleman
+-
\ No newline at end of file
diff --git a/jupyter.md b/jupyter.md
index ac50378..5c6b85d 100644
--- a/jupyter.md
+++ b/jupyter.md
@@ -1,14 +1,16 @@
-
-install R kernel for jupyter to use
-* `sudo R`
-* `install.packages('IRkernel')` (most likely have to run R under sudo)
-* `IRkernel::installspec()` (don't use sudo R)
-
-run on network:
-`jupyter notebook --ip 10.0.10.15 --port 8888`
-
-
-basic packages:
-* ggplot2, plyr, ggExtra, scales
-
-issues with connectin to kernel, atempting update of all packages `update.packages(ask = FALSE)`
+
+Install jupyter lab via pip
+
+install R kernel for jupyter to use
+* `sudo R`
+* `install.packages('IRkernel')` (most likely have to run R under sudo)
+* `IRkernel::installspec()` (don't use sudo R)
+
+run on network:
+`jupyter notebook --ip 10.0.10.15 --port 8888`
+
+
+basic packages:
+* ggplot2, plyr, ggExtra, scales
+
+issues with connectin to kernel, atempting update of all packages `update.packages(ask = FALSE)`
diff --git a/mutt.md b/mutt.md
index cd60161..e3cc7c9 100644
--- a/mutt.md
+++ b/mutt.md
@@ -1,21 +1,21 @@
-## Office 365 Setup
-
-[office365 config](https://github.com/ork/mutt-office365)
-
-[setup html viewer in mutt](http://jasonwryan.com/blog/2012/05/12/mutt/)
-
-git clone https://github.com/ork/mutt-office365 ./.mutt
-
-* requires w3m
-* add this to .mutt/muttrc
- ```
- auto_view text/html # view html automatically
- alternative_order text/plain text/enriched text/html # save html for last
- ```
-* add this to .mutt/mailcap
- ```
- text/html; w3m -I %{charset} -T text/html; copiousoutput;
- ```
-
-
-install from source example [here](http://www.guckes.net/Mutt/install.php3)
+## Office 365 Setup
+
+[office365 config](https://github.com/ork/mutt-office365)
+
+[setup html viewer in mutt](http://jasonwryan.com/blog/2012/05/12/mutt/)
+
+git clone https://github.com/ork/mutt-office365 ./.mutt
+
+* requires w3m
+* add this to .mutt/muttrc
+ ```
+ auto_view text/html # view html automatically
+ alternative_order text/plain text/enriched text/html # save html for last
+ ```
+* add this to .mutt/mailcap
+ ```
+ text/html; w3m -I %{charset} -T text/html; copiousoutput;
+ ```
+
+
+install from source example [here](http://www.guckes.net/Mutt/install.php3)
diff --git a/nginx.md b/nginx.md
index bb7f2a8..f568a71 100644
--- a/nginx.md
+++ b/nginx.md
@@ -1,5 +1,5 @@
-https://nginx.org/en/docs/http/configuring_https_servers.html
-
-setting up reverse proxy for different sub domains
-
-https://serverfault.com/questions/753105/how-to-reverse-proxy-to-different-places-depending-on-subdomain-in-nginx
+https://nginx.org/en/docs/http/configuring_https_servers.html
+
+setting up reverse proxy for different sub domains
+
+https://serverfault.com/questions/753105/how-to-reverse-proxy-to-different-places-depending-on-subdomain-in-nginx
diff --git a/planning/production_scheduling.md b/planning/production_scheduling.md
index e42eae2..43a3596 100644
--- a/planning/production_scheduling.md
+++ b/planning/production_scheduling.md
@@ -1,77 +1,77 @@
-Logic to setup production plan, inventory balances, purchases, and shipments
-
-Starting point
-- known balances STKB
-- known available BOLH - not posted
-- known prod schedule SOFT
-- known shipments Sales Forecast
-- forecasted orders Sales Forecast
-- machines that a part can run on ??
-- actual run-time performance Alternates
-- actual BOM performance Alternates
-- actual scrap performance Alternates
-- available machine time ??
-
-Populate
-- forecasted prod schedule
-- forecasted on-hand (via forecast perpetual transactions)
-- forecasted available (via forecast transactions)
-- forecasted purchases
-
-Iterate through each calendar day
-1. materialize forecasted purchases
- 1. update on-hand & available
-2. materialize production
- 1. update on-hand & available
-3. materialize transfers
- 1. update on-hand & available
-3. materialize shipments
- 1. update on-hand & available
-4. process forecasted order submissions
- 1. check for inventory available
- 1. Yes
- 1. mark unavailable
- 2. schedule shipment for request date
- 2. No or partial
- 1. mark unavailable any partial
- 2. schedule on next open slot regardless of request date (each part should be mapped to certain set of machines)
- 1. raw materials available
- 1. Yes
- 1. mark unavailable (at begin prod date?)
- 2. No
- 1. mark unavailable any partial (at begin prod date?)
- 2. schedule a purchase net of lead time
- 2. sub-components available?
- 1. Yes
- 1. mark unavialable (at begin prod date?)
- 2. No
- 1. (return to 4.1.2.2)
- 3. schedule transfer of production after completion if necessary
- 3. schedule shipment for request date, or production date if past request date
-
-
-snap-shot STKB
-snap-shot BOLH
-snap-shot SOFT
-
-
-some notes
------------------
-
-* shift schedules
-* parallel resources
-* setup time
-* efficiencies
-* scrap rates
-* blends
-* known 'A' item volumes planned regardless of demand
-* visibility window for incomming orders
-* grouping items to reduce change-overs
-* initial start-up: merge with current machine schedule
-* limit start date to child item availability
-* procurement mix
-* purchase lag
-* transfer lag
-* order priority
-* inventory minimums
+Logic to setup production plan, inventory balances, purchases, and shipments
+
+Starting point
+- known balances STKB
+- known available BOLH - not posted
+- known prod schedule SOFT
+- known shipments Sales Forecast
+- forecasted orders Sales Forecast
+- machines that a part can run on ??
+- actual run-time performance Alternates
+- actual BOM performance Alternates
+- actual scrap performance Alternates
+- available machine time ??
+
+Populate
+- forecasted prod schedule
+- forecasted on-hand (via forecast perpetual transactions)
+- forecasted available (via forecast transactions)
+- forecasted purchases
+
+Iterate through each calendar day
+1. materialize forecasted purchases
+ 1. update on-hand & available
+2. materialize production
+ 1. update on-hand & available
+3. materialize transfers
+ 1. update on-hand & available
+3. materialize shipments
+ 1. update on-hand & available
+4. process forecasted order submissions
+ 1. check for inventory available
+ 1. Yes
+ 1. mark unavailable
+ 2. schedule shipment for request date
+ 2. No or partial
+ 1. mark unavailable any partial
+ 2. schedule on next open slot regardless of request date (each part should be mapped to certain set of machines)
+ 1. raw materials available
+ 1. Yes
+ 1. mark unavailable (at begin prod date?)
+ 2. No
+ 1. mark unavailable any partial (at begin prod date?)
+ 2. schedule a purchase net of lead time
+ 2. sub-components available?
+ 1. Yes
+ 1. mark unavialable (at begin prod date?)
+ 2. No
+ 1. (return to 4.1.2.2)
+ 3. schedule transfer of production after completion if necessary
+ 3. schedule shipment for request date, or production date if past request date
+
+
+snap-shot STKB
+snap-shot BOLH
+snap-shot SOFT
+
+
+some notes
+-----------------
+
+* shift schedules
+* parallel resources
+* setup time
+* efficiencies
+* scrap rates
+* blends
+* known 'A' item volumes planned regardless of demand
+* visibility window for incomming orders
+* grouping items to reduce change-overs
+* initial start-up: merge with current machine schedule
+* limit start date to child item availability
+* procurement mix
+* purchase lag
+* transfer lag
+* order priority
+* inventory minimums
* tool availability
\ No newline at end of file
diff --git a/postgres/aggregate.md b/postgres/aggregate.md
index 90cf610..bcaddd9 100644
--- a/postgres/aggregate.md
+++ b/postgres/aggregate.md
@@ -1,49 +1,49 @@
-To extract aggregate definitions can select from `pg_aggregate`
-
-
-SQL for current aggregates I'm using now:
-```
-CREATE OR REPLACE FUNCTION public.jsonb_concat(
- state jsonb,
- concat jsonb)
- RETURNS jsonb AS
-$BODY$
-BEGIN
- --RAISE notice 'state is %', state;
- --RAISE notice 'concat is %', concat;
- RETURN state || concat;
-END;
-$BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100;
-
-
-CREATE OR REPLACE FUNCTION public.jsonb_concat_distinct_arr(
- state jsonb,
- concat jsonb)
- RETURNS jsonb AS
-$BODY$
-BEGIN
- --RAISE notice 'state is %', state;
- --RAISE notice 'concat is %', concat;
- RETURN SELECT jsonb_agg(state || concat;
-END;
-$BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100;
-
-
-DROP AGGREGATE IF EXISTS public.jsonb_arr_aggc(jsonb);
-CREATE AGGREGATE public.jsonb_arr_aggc(jsonb) (
- SFUNC=public.jsonb_concat,
- STYPE=jsonb,
- INITCOND='[]'
-);
-
-DROP AGGREGATE IF EXISTS public.jsonb_obj_aggc(jsonb);
-CREATE AGGREGATE public.jsonb_obj_aggc(jsonb) (
- SFUNC=public.jsonb_concat,
- STYPE=jsonb,
- INITCOND='{}'
-);
-```
+To extract aggregate definitions can select from `pg_aggregate`
+
+
+SQL for current aggregates I'm using now:
+```
+CREATE OR REPLACE FUNCTION public.jsonb_concat(
+ state jsonb,
+ concat jsonb)
+ RETURNS jsonb AS
+$BODY$
+BEGIN
+ --RAISE notice 'state is %', state;
+ --RAISE notice 'concat is %', concat;
+ RETURN state || concat;
+END;
+$BODY$
+ LANGUAGE plpgsql VOLATILE
+ COST 100;
+
+
+CREATE OR REPLACE FUNCTION public.jsonb_concat_distinct_arr(
+ state jsonb,
+ concat jsonb)
+ RETURNS jsonb AS
+$BODY$
+BEGIN
+ --RAISE notice 'state is %', state;
+ --RAISE notice 'concat is %', concat;
+ RETURN SELECT jsonb_agg(state || concat;
+END;
+$BODY$
+ LANGUAGE plpgsql VOLATILE
+ COST 100;
+
+
+DROP AGGREGATE IF EXISTS public.jsonb_arr_aggc(jsonb);
+CREATE AGGREGATE public.jsonb_arr_aggc(jsonb) (
+ SFUNC=public.jsonb_concat,
+ STYPE=jsonb,
+ INITCOND='[]'
+);
+
+DROP AGGREGATE IF EXISTS public.jsonb_obj_aggc(jsonb);
+CREATE AGGREGATE public.jsonb_obj_aggc(jsonb) (
+ SFUNC=public.jsonb_concat,
+ STYPE=jsonb,
+ INITCOND='{}'
+);
+```
diff --git a/postgres/postgres.md b/postgres/postgres.md
index 6dab609..f24350b 100644
--- a/postgres/postgres.md
+++ b/postgres/postgres.md
@@ -1,34 +1,34 @@
-setup for single sign on with [SSPI](https://wiki.postgresql.org/wiki/Configuring_for_single_sign-on_using_SSPI_on_Windows)
-
-md5 hash is salted with username in front
-
-
-Memory
-=========================================================
-see whats in the buffer cache with pg_buffercache
-
-`CREATE EXTENSION pg_buffercache`
-
-```
-SELECT
- c.relname,
- COUNT(*) AS buffers
-FROM
- pg_class c
-INNER JOIN pg_buffercache b ON
- b.relfilenode = c.relfilenode
-INNER JOIN pg_database d ON
- ( b.reldatabase = d.oid
- AND d.datname = CURRENT_DATABASE())
-GROUP BY
- c.relname
-ORDER BY
- 2 DESC
-LIMIT 100;
-```
-
-Alter Column
-==========================================================
-ALTER TABLE rlarp.pcore ALTER COLUMN pack SET DATA TYPE numeric USING pack::numeric
-
-psql binary for latest version is always used but pg_dump is not, you have to set the default version in ~/.postgresqlrc
+setup for single sign on with [SSPI](https://wiki.postgresql.org/wiki/Configuring_for_single_sign-on_using_SSPI_on_Windows)
+
+md5 hash is salted with username in front
+
+
+Memory
+=========================================================
+see whats in the buffer cache with pg_buffercache
+
+`CREATE EXTENSION pg_buffercache`
+
+```
+SELECT
+ c.relname,
+ COUNT(*) AS buffers
+FROM
+ pg_class c
+INNER JOIN pg_buffercache b ON
+ b.relfilenode = c.relfilenode
+INNER JOIN pg_database d ON
+ ( b.reldatabase = d.oid
+ AND d.datname = CURRENT_DATABASE())
+GROUP BY
+ c.relname
+ORDER BY
+ 2 DESC
+LIMIT 100;
+```
+
+Alter Column
+==========================================================
+ALTER TABLE rlarp.pcore ALTER COLUMN pack SET DATA TYPE numeric USING pack::numeric
+
+psql binary for latest version is always used but pg_dump is not, you have to set the default version in ~/.postgresqlrc
diff --git a/pricing/Current Price Guidance.md b/pricing/Current Price Guidance.md
new file mode 100644
index 0000000..6297d4d
--- /dev/null
+++ b/pricing/Current Price Guidance.md
@@ -0,0 +1,5 @@
+This is our current approach to quoting new and repeat business alike:
+
+![[Price Guidance Application.png]]
+
+As we look to update open orders, their open order price will become relevant as we re-quote their business.
diff --git a/pricing/Price Guidance Application.md b/pricing/Price Guidance Application.md
new file mode 100644
index 0000000..f254338
--- /dev/null
+++ b/pricing/Price Guidance Application.md
@@ -0,0 +1,2505 @@
+---
+
+excalidraw-plugin: parsed
+tags: [excalidraw]
+
+---
+==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
+
+
+# Text Elements
+Anchor Price
+
+lowest of last 3 years or target ^GN3PHJZf
+
+Guidance ^20d3tphX
+
+Less Than Pallet ^7TXWthSp
+
+40% ^9OTBUw0C
+
+15% ^u6ne9WXA
+
+Optimization
+
+if anchor price is < target ^3xNVLeJ1
+
+5% ^MVVlIM8N
+
+.400 ^Jfq8lriO
+
+60% New Guidance ^9t8kp205
+
+.250 ^wmWNStzO
+
+70% ^TLt0LV8U
+
+15% ^9EhgbTrO
+
+5% ^qLJs98PH
+
+.475 ^3T91hXa5
+
+90% Old Guidance ^Kno1XWDW
+
+~16% Drop On
+Current Price ^qErGBrIX
+
+Quoted Price ^8tjANKBv
+
+%%
+# Drawing
+```json
+{
+ "type": "excalidraw",
+ "version": 2,
+ "source": "https://excalidraw.com",
+ "elements": [
+ {
+ "type": "rectangle",
+ "version": 106,
+ "versionNonce": 257667742,
+ "isDeleted": false,
+ "id": "OKE5f_Iy0uEvuJBnV9mPl",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -386,
+ "y": -329.40885416666663,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 158,
+ "height": 147,
+ "seed": 1012324034,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "GN3PHJZf"
+ }
+ ],
+ "updated": 1673557455107,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 219,
+ "versionNonce": 1801768514,
+ "isDeleted": false,
+ "id": "GN3PHJZf",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": -379,
+ "y": -318.40885416666663,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 144,
+ "height": 125,
+ "seed": 1801660802,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455107,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "Anchor Price\n\nlowest of last\n3 years or \ntarget",
+ "rawText": "Anchor Price\n\nlowest of last 3 years or target",
+ "baseline": 118,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "OKE5f_Iy0uEvuJBnV9mPl",
+ "originalText": "Anchor Price\n\nlowest of last 3 years or target"
+ },
+ {
+ "type": "rectangle",
+ "version": 87,
+ "versionNonce": 80195294,
+ "isDeleted": false,
+ "id": "fKXNU2G93S9yMVu_VgrmJ",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -164,
+ "y": -325.2421875,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 136,
+ "height": 138,
+ "seed": 1343337374,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "20d3tphX"
+ }
+ ],
+ "updated": 1673557455107,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 82,
+ "versionNonce": 1341502978,
+ "isDeleted": false,
+ "id": "20d3tphX",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -140,
+ "y": -268.7421875,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 88,
+ "height": 25,
+ "seed": 1308884126,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455107,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "Guidance",
+ "rawText": "Guidance",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "fKXNU2G93S9yMVu_VgrmJ",
+ "originalText": "Guidance"
+ },
+ {
+ "type": "rectangle",
+ "version": 81,
+ "versionNonce": 468329246,
+ "isDeleted": false,
+ "id": "HNFWzzP9AVHT39sjUXbl5",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 33,
+ "y": -328.40885416666663,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 138,
+ "height": 142,
+ "seed": 281113374,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "7TXWthSp"
+ }
+ ],
+ "updated": 1673557455108,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 103,
+ "versionNonce": 160671170,
+ "isDeleted": false,
+ "id": "7TXWthSp",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 45,
+ "y": -282.40885416666663,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 114,
+ "height": 50,
+ "seed": 1449551710,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455108,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "Less Than \nPallet",
+ "rawText": "Less Than Pallet",
+ "baseline": 43,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "HNFWzzP9AVHT39sjUXbl5",
+ "originalText": "Less Than Pallet"
+ },
+ {
+ "type": "rectangle",
+ "version": 173,
+ "versionNonce": 49705886,
+ "isDeleted": false,
+ "id": "TbRXXL3uq3y49HdldLCLs",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -169.84701717212226,
+ "y": 16.03394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "#40c057",
+ "width": 136,
+ "height": 40,
+ "seed": 1066432350,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "9OTBUw0C"
+ }
+ ],
+ "updated": 1673557455108,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 145,
+ "versionNonce": 613588290,
+ "isDeleted": false,
+ "id": "9OTBUw0C",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -124.84701717212226,
+ "y": 23.53394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 46,
+ "height": 25,
+ "seed": 1047149534,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455109,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "40%",
+ "rawText": "40%",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "TbRXXL3uq3y49HdldLCLs",
+ "originalText": "40%"
+ },
+ {
+ "type": "rectangle",
+ "version": 176,
+ "versionNonce": 425873374,
+ "isDeleted": false,
+ "id": "xtypqtYQ3RzYLUzlHf2_E",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 25.152982827877736,
+ "y": 17.03394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 146,
+ "height": 43,
+ "seed": 220733598,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "u6ne9WXA"
+ }
+ ],
+ "updated": 1673557455109,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 145,
+ "versionNonce": 1620157698,
+ "isDeleted": false,
+ "id": "u6ne9WXA",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 79.15298282787774,
+ "y": 26.03394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 38,
+ "height": 25,
+ "seed": 134447582,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455109,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "15%",
+ "rawText": "15%",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "xtypqtYQ3RzYLUzlHf2_E",
+ "originalText": "15%"
+ },
+ {
+ "type": "rectangle",
+ "version": 118,
+ "versionNonce": 1720230942,
+ "isDeleted": false,
+ "id": "bAH4npElCcn0-Y7Nqr7O2",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 215.33333333333326,
+ "y": -324.4088541666667,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 155,
+ "height": 135,
+ "seed": 1908352670,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "3xNVLeJ1"
+ }
+ ],
+ "updated": 1673557455109,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 290,
+ "versionNonce": 517584066,
+ "isDeleted": false,
+ "id": "3xNVLeJ1",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 222.33333333333326,
+ "y": -306.9088541666667,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 141,
+ "height": 100,
+ "seed": 16962690,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455109,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "Optimization\n\nif anchor price\nis < target",
+ "rawText": "Optimization\n\nif anchor price is < target",
+ "baseline": 93,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "bAH4npElCcn0-Y7Nqr7O2",
+ "originalText": "Optimization\n\nif anchor price is < target"
+ },
+ {
+ "type": "rectangle",
+ "version": 184,
+ "versionNonce": 475689054,
+ "isDeleted": false,
+ "id": "UDwyk8DK4P-7c1umMUD8S",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 219.15298282787774,
+ "y": 15.03394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 143,
+ "height": 44,
+ "seed": 1472024962,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "MVVlIM8N"
+ }
+ ],
+ "updated": 1673557455109,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 144,
+ "versionNonce": 1091161218,
+ "isDeleted": false,
+ "id": "MVVlIM8N",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 274.65298282787774,
+ "y": 24.53394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 32,
+ "height": 25,
+ "seed": 1853696834,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455110,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "5%",
+ "rawText": "5%",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "UDwyk8DK4P-7c1umMUD8S",
+ "originalText": "5%"
+ },
+ {
+ "type": "rectangle",
+ "version": 191,
+ "versionNonce": 1265418206,
+ "isDeleted": false,
+ "id": "3XtWSC0o5JP_z7HRZN-5r",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 479.15298282787774,
+ "y": 12.03394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fab005",
+ "width": 118,
+ "height": 44,
+ "seed": 1257875330,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "Jfq8lriO"
+ },
+ {
+ "id": "QKKkO5nQ99jQt4H60wynk",
+ "type": "arrow"
+ },
+ {
+ "id": "unowG2N9zd5xJu4o3fMj2",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557662245,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 182,
+ "versionNonce": 484502594,
+ "isDeleted": false,
+ "id": "Jfq8lriO",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 514.6529828278777,
+ "y": 21.53394987697834,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 47,
+ "height": 25,
+ "seed": 894057502,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455110,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": ".400",
+ "rawText": ".400",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "3XtWSC0o5JP_z7HRZN-5r",
+ "originalText": ".400"
+ },
+ {
+ "type": "arrow",
+ "version": 604,
+ "versionNonce": 333555998,
+ "isDeleted": false,
+ "id": "QKKkO5nQ99jQt4H60wynk",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 388.5850150998313,
+ "y": 44.6453681286763,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 89.04743898947066,
+ "height": 4.660235914277031,
+ "seed": 754664030,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557477248,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "LRViw-tAhFnpMakSaqkN2",
+ "gap": 9.3765938878837,
+ "focus": 0.1248046497467811
+ },
+ "endBinding": {
+ "elementId": "3XtWSC0o5JP_z7HRZN-5r",
+ "gap": 1.5205287385757298,
+ "focus": -0.11096592364847635
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 89.04743898947066,
+ -4.660235914277031
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 833,
+ "versionNonce": 457472414,
+ "isDeleted": false,
+ "id": "e8j3w2NPggOnD9BOHQmUA",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -236.3524303906581,
+ "y": -17.12863973712345,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 51.47189373544418,
+ "height": 79.1232987307169,
+ "seed": 319871874,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557477252,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "EX6i7DHZ6HsAhCUR6vw_N",
+ "gap": 1.3040460755759966,
+ "focus": -0.7921746088226963
+ },
+ "endBinding": {
+ "elementId": "LRViw-tAhFnpMakSaqkN2",
+ "gap": 6.588957867161582,
+ "focus": -0.9309855596932602
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 51.47189373544418,
+ 79.1232987307169
+ ]
+ ]
+ },
+ {
+ "type": "freedraw",
+ "version": 145,
+ "versionNonce": 1096721694,
+ "isDeleted": false,
+ "id": "cGSJ5xbn0meW3FhcqaIiO",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 192.15298282787774,
+ "y": 23.03394987697834,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 2,
+ "height": 20,
+ "seed": 239567518,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455110,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 2
+ ],
+ [
+ 0,
+ 3
+ ],
+ [
+ 0,
+ 8
+ ],
+ [
+ 0,
+ 10
+ ],
+ [
+ 0,
+ 14
+ ],
+ [
+ 0,
+ 15
+ ],
+ [
+ 0,
+ 17
+ ],
+ [
+ 0,
+ 18
+ ],
+ [
+ -2,
+ 18
+ ],
+ [
+ -2,
+ 20
+ ],
+ [
+ -2,
+ 20
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "freedraw",
+ "version": 144,
+ "versionNonce": 86000578,
+ "isDeleted": false,
+ "id": "oJSPXFAbxSKjMhYaH691z",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 184.15298282787774,
+ "y": 33.03394987697834,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 23,
+ "height": 0,
+ "seed": 816768194,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455111,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1,
+ 0
+ ],
+ [
+ 3,
+ 0
+ ],
+ [
+ 5,
+ 0
+ ],
+ [
+ 9,
+ 0
+ ],
+ [
+ 11,
+ 0
+ ],
+ [
+ 15,
+ 0
+ ],
+ [
+ 18,
+ 0
+ ],
+ [
+ 20,
+ 0
+ ],
+ [
+ 23,
+ 0
+ ],
+ [
+ 23,
+ 0
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "freedraw",
+ "version": 149,
+ "versionNonce": 248009054,
+ "isDeleted": false,
+ "id": "QExQL7CicpCCKmXIH056L",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -10.847017172122264,
+ "y": 21.03394987697834,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 3,
+ "height": 23,
+ "seed": 1547758402,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455111,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 1
+ ],
+ [
+ 1,
+ 3
+ ],
+ [
+ 1,
+ 5
+ ],
+ [
+ 3,
+ 7
+ ],
+ [
+ 3,
+ 8
+ ],
+ [
+ 3,
+ 9
+ ],
+ [
+ 3,
+ 11
+ ],
+ [
+ 3,
+ 14
+ ],
+ [
+ 3,
+ 16
+ ],
+ [
+ 3,
+ 17
+ ],
+ [
+ 3,
+ 20
+ ],
+ [
+ 2,
+ 21
+ ],
+ [
+ 2,
+ 22
+ ],
+ [
+ 2,
+ 23
+ ],
+ [
+ 2,
+ 23
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "freedraw",
+ "version": 146,
+ "versionNonce": 1571191682,
+ "isDeleted": false,
+ "id": "U08Uc4H4APUc8Noza88HC",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -18.847017172122264,
+ "y": 31.03394987697834,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 22,
+ "height": 4,
+ "seed": 1707189214,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455111,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 2,
+ 0
+ ],
+ [
+ 5,
+ 0
+ ],
+ [
+ 9,
+ 0
+ ],
+ [
+ 12,
+ 2
+ ],
+ [
+ 15,
+ 3
+ ],
+ [
+ 17,
+ 3
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 19,
+ 3
+ ],
+ [
+ 20,
+ 3
+ ],
+ [
+ 20,
+ 4
+ ],
+ [
+ 22,
+ 4
+ ],
+ [
+ 22,
+ 4
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "rectangle",
+ "version": 276,
+ "versionNonce": 313685406,
+ "isDeleted": false,
+ "id": "LRViw-tAhFnpMakSaqkN2",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -178.29157878805233,
+ "y": -3.5150659690390853,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 557.4999999999999,
+ "height": 108.97122626459401,
+ "seed": 1770015454,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "id": "e8j3w2NPggOnD9BOHQmUA",
+ "type": "arrow"
+ },
+ {
+ "id": "QKKkO5nQ99jQt4H60wynk",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557455111,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 228,
+ "versionNonce": 58115778,
+ "isDeleted": false,
+ "id": "9t8kp205",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -7.11087676813969,
+ "y": 75.74569024829566,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 189,
+ "height": 25,
+ "seed": 1568317662,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557632685,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "60% New Guidance",
+ "rawText": "60% New Guidance",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "60% New Guidance"
+ },
+ {
+ "type": "line",
+ "version": 47,
+ "versionNonce": 374215134,
+ "isDeleted": false,
+ "id": "_mqoCGsaDbHSI9yik2tHa",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -386.66666666666663,
+ "y": -278.86621093749994,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 145,
+ "height": 0.8333333333333144,
+ "seed": 918494174,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455111,
+ "link": null,
+ "locked": false,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": null,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 145,
+ -0.8333333333333144
+ ]
+ ]
+ },
+ {
+ "type": "line",
+ "version": 40,
+ "versionNonce": 1253769986,
+ "isDeleted": false,
+ "id": "5R618IgvoaYf0l3V9J-lM",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 228.33333333333337,
+ "y": -268.86621093749994,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 135.83333333333337,
+ "height": 0.8333333333333144,
+ "seed": 791070110,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455112,
+ "link": null,
+ "locked": false,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": null,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 135.83333333333337,
+ -0.8333333333333144
+ ]
+ ]
+ },
+ {
+ "type": "rectangle",
+ "version": 272,
+ "versionNonce": 346826270,
+ "isDeleted": false,
+ "id": "EX6i7DHZ6HsAhCUR6vw_N",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -377.6564764662341,
+ "y": -45.141428303803025,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 140,
+ "height": 35,
+ "seed": 32807234,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "wmWNStzO"
+ },
+ {
+ "id": "RUhKbNbhGwaZvPYqTkXgp",
+ "type": "arrow"
+ },
+ {
+ "id": "e8j3w2NPggOnD9BOHQmUA",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557455112,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 244,
+ "versionNonce": 2015843010,
+ "isDeleted": false,
+ "id": "wmWNStzO",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -331.1564764662341,
+ "y": -40.141428303803025,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 47,
+ "height": 25,
+ "seed": 942543838,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455112,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": ".250",
+ "rawText": ".250",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "EX6i7DHZ6HsAhCUR6vw_N",
+ "originalText": ".250"
+ },
+ {
+ "type": "rectangle",
+ "version": 195,
+ "versionNonce": 2126361182,
+ "isDeleted": false,
+ "id": "BI8vRgiCb6ftjqXFtiNWf",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -161.27331889012925,
+ "y": -129.14142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "#40c057",
+ "width": 136,
+ "height": 40,
+ "seed": 945037570,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "TLt0LV8U"
+ }
+ ],
+ "updated": 1673557455112,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 172,
+ "versionNonce": 452176514,
+ "isDeleted": false,
+ "id": "TLt0LV8U",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -115.27331889012925,
+ "y": -121.64142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 44,
+ "height": 25,
+ "seed": 1060890654,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455112,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "70%",
+ "rawText": "70%",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "BI8vRgiCb6ftjqXFtiNWf",
+ "originalText": "70%"
+ },
+ {
+ "type": "rectangle",
+ "version": 197,
+ "versionNonce": 2136192670,
+ "isDeleted": false,
+ "id": "FSUuEvYsTQRP38F5qSsCi",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 35.32668110987083,
+ "y": -129.14142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 146,
+ "height": 43,
+ "seed": 1357689026,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "9EhgbTrO"
+ }
+ ],
+ "updated": 1673557455113,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 165,
+ "versionNonce": 434047554,
+ "isDeleted": false,
+ "id": "9EhgbTrO",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 89.32668110987083,
+ "y": -120.14142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 38,
+ "height": 25,
+ "seed": 101004382,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455113,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "15%",
+ "rawText": "15%",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "FSUuEvYsTQRP38F5qSsCi",
+ "originalText": "15%"
+ },
+ {
+ "type": "rectangle",
+ "version": 204,
+ "versionNonce": 1059009246,
+ "isDeleted": false,
+ "id": "owiQizVZJFNMeL4RTkhZU",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 229.32668110987083,
+ "y": -129.14142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 143,
+ "height": 44,
+ "seed": 794642562,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "qLJs98PH"
+ }
+ ],
+ "updated": 1673557455113,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 162,
+ "versionNonce": 734556674,
+ "isDeleted": false,
+ "id": "qLJs98PH",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 284.82668110987083,
+ "y": -119.64142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 32,
+ "height": 25,
+ "seed": 1985673374,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455113,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "5%",
+ "rawText": "5%",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "owiQizVZJFNMeL4RTkhZU",
+ "originalText": "5%"
+ },
+ {
+ "type": "arrow",
+ "version": 404,
+ "versionNonce": 1174377950,
+ "isDeleted": false,
+ "id": "ERGP-6B-o_nvkEDx5dB7a",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 388.5063385210534,
+ "y": -98.09301500800791,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 93.87508787861418,
+ "height": 3.855312860873781,
+ "seed": 1801775170,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557477260,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "rg6qAGZuPy6WsSN8fQhyE",
+ "gap": 8.998955391270098,
+ "focus": 0.12480464974678031
+ },
+ "endBinding": {
+ "elementId": "q8wopbObwLVrzweRnPGG0",
+ "gap": 1.4592900634491734,
+ "focus": -0.11096592364847764
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 93.87508787861418,
+ -3.855312860873781
+ ]
+ ]
+ },
+ {
+ "type": "rectangle",
+ "version": 207,
+ "versionNonce": 1099883422,
+ "isDeleted": false,
+ "id": "q8wopbObwLVrzweRnPGG0",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 483.8407164631168,
+ "y": -129.14142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fab005",
+ "width": 118,
+ "height": 44,
+ "seed": 401487070,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "3T91hXa5"
+ },
+ {
+ "id": "ERGP-6B-o_nvkEDx5dB7a",
+ "type": "arrow"
+ },
+ {
+ "id": "unowG2N9zd5xJu4o3fMj2",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557662245,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 197,
+ "versionNonce": 746230622,
+ "isDeleted": false,
+ "id": "3T91hXa5",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 521.8407164631168,
+ "y": -119.64142830380302,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 42,
+ "height": 25,
+ "seed": 1289916418,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455114,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": ".475",
+ "rawText": ".475",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "q8wopbObwLVrzweRnPGG0",
+ "originalText": ".475"
+ },
+ {
+ "type": "arrow",
+ "version": 606,
+ "versionNonce": 575329630,
+ "isDeleted": false,
+ "id": "RUhKbNbhGwaZvPYqTkXgp",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -232.30161040370336,
+ "y": -47.094807045471995,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 52.78540325854044,
+ "height": 47.14817514551622,
+ "seed": 1414523166,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557477251,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "EX6i7DHZ6HsAhCUR6vw_N",
+ "gap": 5.70002447854813,
+ "focus": 0.5983759541516698
+ },
+ "endBinding": {
+ "elementId": "rg6qAGZuPy6WsSN8fQhyE",
+ "gap": 1.5235902749463435,
+ "focus": 0.831260212766223
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 52.78540325854044,
+ -47.14817514551622
+ ]
+ ]
+ },
+ {
+ "type": "freedraw",
+ "version": 154,
+ "versionNonce": 80508830,
+ "isDeleted": false,
+ "id": "bBCQvEChkysrnUlA8bfuc",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 196.8407164631168,
+ "y": -120.98862123315388,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 2,
+ "height": 20,
+ "seed": 1205157826,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455114,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 2
+ ],
+ [
+ 0,
+ 3
+ ],
+ [
+ 0,
+ 8
+ ],
+ [
+ 0,
+ 10
+ ],
+ [
+ 0,
+ 14
+ ],
+ [
+ 0,
+ 15
+ ],
+ [
+ 0,
+ 17
+ ],
+ [
+ 0,
+ 18
+ ],
+ [
+ -2,
+ 18
+ ],
+ [
+ -2,
+ 20
+ ],
+ [
+ -2,
+ 20
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "freedraw",
+ "version": 153,
+ "versionNonce": 1443813698,
+ "isDeleted": false,
+ "id": "3LGLWiyyXP5Kg6-816_st",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 188.8407164631168,
+ "y": -110.98862123315385,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 23,
+ "height": 0,
+ "seed": 988878174,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455114,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1,
+ 0
+ ],
+ [
+ 3,
+ 0
+ ],
+ [
+ 5,
+ 0
+ ],
+ [
+ 9,
+ 0
+ ],
+ [
+ 11,
+ 0
+ ],
+ [
+ 15,
+ 0
+ ],
+ [
+ 18,
+ 0
+ ],
+ [
+ 20,
+ 0
+ ],
+ [
+ 23,
+ 0
+ ],
+ [
+ 23,
+ 0
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "freedraw",
+ "version": 158,
+ "versionNonce": 2044187614,
+ "isDeleted": false,
+ "id": "IhVOIZ8zEZQ4606hJJ_Kx",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -6.159283536883208,
+ "y": -122.98862123315388,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 3,
+ "height": 23,
+ "seed": 2019293058,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455114,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 1
+ ],
+ [
+ 1,
+ 3
+ ],
+ [
+ 1,
+ 5
+ ],
+ [
+ 3,
+ 7
+ ],
+ [
+ 3,
+ 8
+ ],
+ [
+ 3,
+ 9
+ ],
+ [
+ 3,
+ 11
+ ],
+ [
+ 3,
+ 14
+ ],
+ [
+ 3,
+ 16
+ ],
+ [
+ 3,
+ 17
+ ],
+ [
+ 3,
+ 20
+ ],
+ [
+ 2,
+ 21
+ ],
+ [
+ 2,
+ 22
+ ],
+ [
+ 2,
+ 23
+ ],
+ [
+ 2,
+ 23
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "freedraw",
+ "version": 155,
+ "versionNonce": 254173442,
+ "isDeleted": false,
+ "id": "E7KcrmL9ppF309Z2S3V9K",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -14.159283536883208,
+ "y": -112.98862123315385,
+ "strokeColor": "#495057",
+ "backgroundColor": "transparent",
+ "width": 22,
+ "height": 4,
+ "seed": 1159903646,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557455115,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 2,
+ 0
+ ],
+ [
+ 5,
+ 0
+ ],
+ [
+ 9,
+ 0
+ ],
+ [
+ 12,
+ 2
+ ],
+ [
+ 15,
+ 3
+ ],
+ [
+ 17,
+ 3
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 19,
+ 3
+ ],
+ [
+ 20,
+ 3
+ ],
+ [
+ 20,
+ 4
+ ],
+ [
+ 22,
+ 4
+ ],
+ [
+ 22,
+ 4
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "simulatePressure": true,
+ "pressures": []
+ },
+ {
+ "type": "rectangle",
+ "version": 229,
+ "versionNonce": 632137758,
+ "isDeleted": false,
+ "id": "rg6qAGZuPy6WsSN8fQhyE",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": -177.99261687021658,
+ "y": -146.4404441498205,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 557.4999999999999,
+ "height": 104.58245454719084,
+ "seed": 515225410,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "id": "ERGP-6B-o_nvkEDx5dB7a",
+ "type": "arrow"
+ },
+ {
+ "id": "RUhKbNbhGwaZvPYqTkXgp",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557455115,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 228,
+ "versionNonce": 1434370178,
+ "isDeleted": false,
+ "id": "Kno1XWDW",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 0.8684356551517567,
+ "y": -73.76284550859057,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 183,
+ "height": 25,
+ "seed": 437638622,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557626476,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "90% Old Guidance",
+ "rawText": "90% Old Guidance",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "90% Old Guidance"
+ },
+ {
+ "type": "text",
+ "version": 436,
+ "versionNonce": 1851988574,
+ "isDeleted": false,
+ "id": "qErGBrIX",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 568.046656893837,
+ "y": -60.67235643463164,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 153,
+ "height": 50,
+ "seed": 248899074,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557657016,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "~16% Drop On \nCurrent Price",
+ "rawText": "~16% Drop On \nCurrent Price",
+ "baseline": 43,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "~16% Drop On \nCurrent Price"
+ },
+ {
+ "id": "Gm89yDFiwM6eORIcizREI",
+ "type": "rectangle",
+ "x": 457.5010590551533,
+ "y": -285.43435530064914,
+ "width": 148,
+ "height": 60,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 99344414,
+ "version": 63,
+ "versionNonce": 1279625922,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "8tjANKBv"
+ }
+ ],
+ "updated": 1673557601971,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "8tjANKBv",
+ "type": "text",
+ "x": 467.5010590551533,
+ "y": -267.93435530064914,
+ "width": 128,
+ "height": 25,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 806772034,
+ "version": 47,
+ "versionNonce": 750713438,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1673557601971,
+ "link": null,
+ "locked": false,
+ "text": "Quoted Price",
+ "rawText": "Quoted Price",
+ "fontSize": 20,
+ "fontFamily": 1,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "baseline": 18,
+ "containerId": "Gm89yDFiwM6eORIcizREI",
+ "originalText": "Quoted Price"
+ },
+ {
+ "id": "unowG2N9zd5xJu4o3fMj2",
+ "type": "arrow",
+ "x": 535.1010590551534,
+ "y": -72.63435530064913,
+ "width": 3.199999999999818,
+ "height": 77.60000000000002,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 638328478,
+ "version": 41,
+ "versionNonce": 234433858,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1673557662245,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.199999999999818,
+ 77.60000000000002
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "q8wopbObwLVrzweRnPGG0",
+ "focus": 0.15294700750043963,
+ "gap": 12.507073003153891
+ },
+ "endBinding": {
+ "elementId": "3XtWSC0o5JP_z7HRZN-5r",
+ "focus": 0.022480918044437755,
+ "gap": 7.068305177627451
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow"
+ },
+ {
+ "type": "text",
+ "version": 84,
+ "versionNonce": 231473822,
+ "isDeleted": true,
+ "id": "LKCGsXBC",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 630.1961296221514,
+ "y": -113.50532816349386,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 129,
+ "height": 25,
+ "seed": 1251736030,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "id": "cEGUOKdJgOB3XVb0Z9mv8",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557640136,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "Old Guidance",
+ "rawText": "Old Guidance",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Old Guidance"
+ },
+ {
+ "type": "text",
+ "version": 45,
+ "versionNonce": 295982530,
+ "isDeleted": true,
+ "id": "wUd55VY0",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 630.1045508340992,
+ "y": 26.70729608691704,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 134,
+ "height": 25,
+ "seed": 628883074,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [
+ {
+ "id": "cEGUOKdJgOB3XVb0Z9mv8",
+ "type": "arrow"
+ },
+ {
+ "id": "hSzRR81VVejpuvCqe5nCp",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1673557641293,
+ "link": null,
+ "locked": false,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "New Guidance",
+ "rawText": "New Guidance",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "New Guidance"
+ },
+ {
+ "type": "arrow",
+ "version": 212,
+ "versionNonce": 70733122,
+ "isDeleted": true,
+ "id": "cEGUOKdJgOB3XVb0Z9mv8",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "angle": 0,
+ "x": 702.9605498751013,
+ "y": -78.378312000373,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 2.107738569683119,
+ "height": 91.76854742948744,
+ "seed": 1185112670,
+ "groupIds": [],
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1673557641611,
+ "link": null,
+ "locked": false,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.107703620674566,
+ 46.36953073026058
+ ],
+ [
+ 2.107738569683119,
+ 91.76854742948744
+ ]
+ ]
+ },
+ {
+ "id": "hSzRR81VVejpuvCqe5nCp",
+ "type": "arrow",
+ "x": 699.9010590551534,
+ "y": 62.565644699350855,
+ "width": 4.500951999150402,
+ "height": 68.47600226796504,
+ "angle": 0,
+ "strokeColor": "#862e9c",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 990713218,
+ "version": 109,
+ "versionNonce": 1067221442,
+ "isDeleted": true,
+ "boundElements": null,
+ "updated": 1673557646049,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 4.500951999150402,
+ -68.47600226796504
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": null,
+ "endBinding": {
+ "elementId": "qErGBrIX",
+ "focus": 0.049152843136056286,
+ "gap": 3.9619988660174386
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow"
+ },
+ {
+ "id": "zM0WPTALuGdQqtogSD_wm",
+ "type": "rectangle",
+ "x": 458.3010590551533,
+ "y": -322.2343553006491,
+ "width": 135.2,
+ "height": 109.59999999999998,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 1549768798,
+ "version": 65,
+ "versionNonce": 2005969154,
+ "isDeleted": true,
+ "boundElements": null,
+ "updated": 1673557568971,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "62ddgmZE",
+ "type": "text",
+ "x": 496.70105905515317,
+ "y": -275.2343553006491,
+ "width": 70,
+ "height": 50,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 667406622,
+ "version": 43,
+ "versionNonce": 988550722,
+ "isDeleted": true,
+ "boundElements": null,
+ "updated": 1673557556977,
+ "link": null,
+ "locked": false,
+ "text": "Quoted\nPrice",
+ "rawText": "Quoted\nPrice",
+ "fontSize": 20,
+ "fontFamily": 1,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "baseline": 43,
+ "containerId": null,
+ "originalText": "Quoted\nPrice"
+ },
+ {
+ "id": "jWYPN3qr",
+ "type": "text",
+ "x": 492.7010590551533,
+ "y": -326.43435530064914,
+ "width": 11,
+ "height": 25,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 1405740418,
+ "version": 3,
+ "versionNonce": 1916134722,
+ "isDeleted": true,
+ "boundElements": null,
+ "updated": 1673557561163,
+ "link": null,
+ "locked": false,
+ "text": "",
+ "rawText": "",
+ "fontSize": 20,
+ "fontFamily": 1,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "baseline": 18,
+ "containerId": null,
+ "originalText": ""
+ },
+ {
+ "id": "5NDvAJfl",
+ "type": "text",
+ "x": 502.3010590551533,
+ "y": -329.63435530064913,
+ "width": 11,
+ "height": 25,
+ "angle": 0,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 0.5,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "roundness": null,
+ "seed": 1112210626,
+ "version": 27,
+ "versionNonce": 697147778,
+ "isDeleted": true,
+ "boundElements": null,
+ "updated": 1673557566334,
+ "link": null,
+ "locked": false,
+ "text": "",
+ "rawText": "",
+ "fontSize": 20,
+ "fontFamily": 1,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "baseline": 18,
+ "containerId": null,
+ "originalText": ""
+ }
+ ],
+ "appState": {
+ "theme": "light",
+ "viewBackgroundColor": "#ffffff",
+ "currentItemStrokeColor": "#000000",
+ "currentItemBackgroundColor": "transparent",
+ "currentItemFillStyle": "hachure",
+ "currentItemStrokeWidth": 0.5,
+ "currentItemStrokeStyle": "solid",
+ "currentItemRoughness": 2,
+ "currentItemOpacity": 100,
+ "currentItemFontFamily": 1,
+ "currentItemFontSize": 20,
+ "currentItemTextAlign": "left",
+ "currentItemStartArrowhead": null,
+ "currentItemEndArrowhead": "arrow",
+ "scrollX": 439.2989409448467,
+ "scrollY": 472.24685530064914,
+ "zoom": {
+ "value": 1.25
+ },
+ "currentItemRoundness": "sharp",
+ "gridSize": null,
+ "colorPalette": {}
+ },
+ "files": {}
+}
+```
+%%
\ No newline at end of file
diff --git a/pricing/Price Guidance Application.png b/pricing/Price Guidance Application.png
new file mode 100644
index 0000000..975907e
Binary files /dev/null and b/pricing/Price Guidance Application.png differ
diff --git a/pscp.md b/pscp.md
index 781c571..2a38226 100644
--- a/pscp.md
+++ b/pscp.md
@@ -1,4 +1,4 @@
-pscp.exe is a part of putty and can be used to transfer files through ssh
-
-example:
+pscp.exe is a part of putty and can be used to transfer files through ssh
+
+example:
pscp.exe -pw ******** ptrowbridge@usmidlnx01:/home/ptrowbridge/pt_share/*.backup "C:\Users\PTrowbridge\OneDrive - The HC Companies, Inc\Backups"
\ No newline at end of file
diff --git a/r.md b/r.md
index 0e80057..65a5260 100644
--- a/r.md
+++ b/r.md
@@ -1,45 +1,45 @@
-installation
----------------------------------------
-* to install R on ubuntu can to [r download page](https://cran.r-project.org/)
-* there are instruction on what to add to sources.list.
-* After doing apt-get update, will probably need to add the public key which is addressed [here](https://askubuntu.com/questions/13065/how-do-i-fix-the-gpg-error-no-pubkey#15272)
-* then do `sudo apt-get install r-base`
-
-
-using grid.arrange
-https://cran.r-project.org/web/packages/gridExtra/vignettes/arrangeGrob.html
-
-set and mirror axis limits:
-```
-scale_y_continuous(
- breaks=seq(glob$PriceMin, glob$PriceMax, round(glob$StdDev * .5,2)),
- limits = c(glob$PriceMin, glob$PriceMax)
- ) +
-```
-
-how to loop through rows of a column
-```
-for (i in dim1) {
- for (j in i) {
- print(j);
- }
-}
-```
-
-build a list of plots and use grid.arrange
-```
-do.call(grid.arrange,plot_list)
-```
-
-re-sort a dataframe and print each row of a column
-```
-dim1 <- dim1[order(dim1$list),];
-for (i in dim1) {
- for (j in i) {
- print(j);
- }
-}
-```
-
-to run a script from the command line
-`R --vanilla < scriptfile.R`
+installation
+---------------------------------------
+* to install R on ubuntu can to [r download page](https://cran.r-project.org/)
+* there are instruction on what to add to sources.list.
+* After doing apt-get update, will probably need to add the public key which is addressed [here](https://askubuntu.com/questions/13065/how-do-i-fix-the-gpg-error-no-pubkey#15272)
+* then do `sudo apt-get install r-base`
+
+
+using grid.arrange
+https://cran.r-project.org/web/packages/gridExtra/vignettes/arrangeGrob.html
+
+set and mirror axis limits:
+```
+scale_y_continuous(
+ breaks=seq(glob$PriceMin, glob$PriceMax, round(glob$StdDev * .5,2)),
+ limits = c(glob$PriceMin, glob$PriceMax)
+ ) +
+```
+
+how to loop through rows of a column
+```
+for (i in dim1) {
+ for (j in i) {
+ print(j);
+ }
+}
+```
+
+build a list of plots and use grid.arrange
+```
+do.call(grid.arrange,plot_list)
+```
+
+re-sort a dataframe and print each row of a column
+```
+dim1 <- dim1[order(dim1$list),];
+for (i in dim1) {
+ for (j in i) {
+ print(j);
+ }
+}
+```
+
+to run a script from the command line
+`R --vanilla < scriptfile.R`
diff --git a/sr.ht.md b/sr.ht.md
index c0e921c..39c18eb 100644
--- a/sr.ht.md
+++ b/sr.ht.md
@@ -1,5 +1,5 @@
-invite link
-https://meta.sr.ht/register/K8XW9Hyl86fdL0f925ertqEv
-
-
-must have public key (ssh-keygen) upoaded to your account for git pushing
+invite link
+https://meta.sr.ht/register/K8XW9Hyl86fdL0f925ertqEv
+
+
+must have public key (ssh-keygen) upoaded to your account for git pushing
diff --git a/tmux.md b/tmux.md
index 6fe6e7a..40ab0a6 100644
--- a/tmux.md
+++ b/tmux.md
@@ -1,45 +1,45 @@
-`Ctlr+B` activiates command entry (called the prefix)
-
-panes
-----------------------------------
-prefix + % = split pane right
-prefix + " = split pane below
-prefix + / = switch panes
-prefix + z = maximize/minimize pane
-prefix + x = kill pane
-prefix + = resize
-
-windows
-----------------------------------
-prefix + c = create new window
-prefix + w = create window selection prompt
-prefix + , = rename window
-
-sessions
-----------------------------------
-prefix + d = detach session
-tmux ls = list sesions
-tmux attach -t 0 = attach to session 0
-
-
-colors
-----------------------------------
-setup a `.tmux.conf` file with this line `set -g default-terminal 'screen-256color'`
-point tmux to it with `tmux source-file ~/.tmux.conf`
-
-
-fonts
-----------------------------------
-powerline fonts
-https://github.com/vim-airline/vim-airline
-https://github.com/powerline/fonts
-sudo apt-get install fonts-powerline
-
-plugins
-----------------------------------
-using tmux plugin manager to install tmux-resurrect
-plugin manager: https://github.com/tmux-plugins/tpm
-resurrect: https://github.com/tmux-plugins/tmux-resurrect
-use + I to install plugins
-
-
+`Ctlr+B` activiates command entry (called the prefix)
+
+panes
+----------------------------------
+prefix + % = split pane right
+prefix + " = split pane below
+prefix + / = switch panes
+prefix + z = maximize/minimize pane
+prefix + x = kill pane
+prefix + = resize
+
+windows
+----------------------------------
+prefix + c = create new window
+prefix + w = create window selection prompt
+prefix + , = rename window
+
+sessions
+----------------------------------
+prefix + d = detach session
+tmux ls = list sesions
+tmux attach -t 0 = attach to session 0
+
+
+colors
+----------------------------------
+setup a `.tmux.conf` file with this line `set -g default-terminal 'screen-256color'`
+point tmux to it with `tmux source-file ~/.tmux.conf`
+
+
+fonts
+----------------------------------
+powerline fonts
+https://github.com/vim-airline/vim-airline
+https://github.com/powerline/fonts
+sudo apt-get install fonts-powerline
+
+plugins
+----------------------------------
+using tmux plugin manager to install tmux-resurrect
+plugin manager: https://github.com/tmux-plugins/tpm
+resurrect: https://github.com/tmux-plugins/tmux-resurrect
+use + I to install plugins
+
+
diff --git a/ubuntu/mount.md b/ubuntu/mount.md
index 588732e..a2e3176 100644
--- a/ubuntu/mount.md
+++ b/ubuntu/mount.md
@@ -1,6 +1,6 @@
-for windows
-------------------
-
-* `apt install cifs-utils`
-* create target folder `mkdir //mnt/onedrive`
+for windows
+------------------
+
+* `apt install cifs-utils`
+* create target folder `mkdir //mnt/onedrive`
* `sudo mount.cifs //192.168.1.89/Users/fleet/OneDrive onedrive/ -o user=fleet`
\ No newline at end of file
diff --git a/ubuntu/networking.md b/ubuntu/networking.md
index f28ccd9..4d8d9e9 100644
--- a/ubuntu/networking.md
+++ b/ubuntu/networking.md
@@ -1,25 +1,25 @@
-scanning services that are running:
-
-sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-10000
-
-sudo netstat --tcp --udp --listening --program
-
-lists programs with port numbers: `sudo netstat -tup`
-
-sudo lsof +M -i4 -i6
-
-# list all established connection that are not internal only"
-sudo sockstat | grep "ESTAB" | grep -v ".*192\.168\.1\.110.*192\.168\.1\.110.*" | grep -v ".*127\.0\.0\.1.*127\.0\.0\.1.*"
-
-let's encrypt certbot instructions for apache:
-https://certbot.eff.org/lets-encrypt/ubuntubionic-apache
-
-
-ip setup:
-https://help.ubuntu.com/lts/serverguide/network-configuration.html
-
-
-## network interfaces
-`ip link` lists all interfaces
-multipass setup some dummy interfaces and left them there.
-to delete did `ip link delete mpqemubr0-dummy`
+scanning services that are running:
+
+sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-10000
+
+sudo netstat --tcp --udp --listening --program
+
+lists programs with port numbers: `sudo netstat -tup`
+
+sudo lsof +M -i4 -i6
+
+# list all established connection that are not internal only"
+sudo sockstat | grep "ESTAB" | grep -v ".*192\.168\.1\.110.*192\.168\.1\.110.*" | grep -v ".*127\.0\.0\.1.*127\.0\.0\.1.*"
+
+let's encrypt certbot instructions for apache:
+https://certbot.eff.org/lets-encrypt/ubuntubionic-apache
+
+
+ip setup:
+https://help.ubuntu.com/lts/serverguide/network-configuration.html
+
+
+## network interfaces
+`ip link` lists all interfaces
+multipass setup some dummy interfaces and left them there.
+to delete did `ip link delete mpqemubr0-dummy`
diff --git a/ubuntu/new_server.md b/ubuntu/new_server.md
index 73a9cee..8c62db1 100644
--- a/ubuntu/new_server.md
+++ b/ubuntu/new_server.md
@@ -1,43 +1,43 @@
-apt update
-```
-sudo apt update
-sudo apt upgrade
-//sometimes network-manager service is not running after update and cannot resolve addresses
-sudo service network-manager start
-sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
-```
-also had to reference [this article](https://askubuntu.com/questions/368435/how-do-i-fix-dns-resolving-which-doesnt-work-after-upgrading-to-ubuntu-13-10-s)
-
-version control /etc
-```
-cd //etc
-sudo git init
-sudo git add .
-sudo git commit -m "initial setup"
-```
-
-pspg pager
-```
-sudp apt-get install pspg
-```
-
-postgres
-```
-sudo vim /etc/apt/sources.list.d/pgdg.list
-deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
-wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
-sudo apt-get update
-sudo apt-get install postgresql-11
-```
-
-vundle
-```
-git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-```
-
-dotfiles (depends on vundle currently)
-```
-git clone "https://fleetside@bitbucket.com/fleetside/dotfiles.git"
-cp -R ~/dotfiles/. ~/
-sudo rm -r dotfiles/
-```
+apt update
+```
+sudo apt update
+sudo apt upgrade
+//sometimes network-manager service is not running after update and cannot resolve addresses
+sudo service network-manager start
+sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
+```
+also had to reference [this article](https://askubuntu.com/questions/368435/how-do-i-fix-dns-resolving-which-doesnt-work-after-upgrading-to-ubuntu-13-10-s)
+
+version control /etc
+```
+cd //etc
+sudo git init
+sudo git add .
+sudo git commit -m "initial setup"
+```
+
+pspg pager
+```
+sudp apt-get install pspg
+```
+
+postgres
+```
+sudo vim /etc/apt/sources.list.d/pgdg.list
+deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
+wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
+sudo apt-get update
+sudo apt-get install postgresql-11
+```
+
+vundle
+```
+git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
+```
+
+dotfiles (depends on vundle currently)
+```
+git clone "https://fleetside@bitbucket.com/fleetside/dotfiles.git"
+cp -R ~/dotfiles/. ~/
+sudo rm -r dotfiles/
+```
diff --git a/ubuntu/system_service.md b/ubuntu/system_service.md
deleted file mode 100644
index 4ff24d6..0000000
--- a/ubuntu/system_service.md
+++ /dev/null
@@ -1,21 +0,0 @@
-`//etc/systemd/system/filename.service`
-
-```
-[Unit]
-Description=forecast_api
-After=network.target
-
-[Service]
-ExecStart=/usr/bin/node //opt/forecast_api/index.js
-Restart=always
-User=fc_api
-Environemnt=NODE_ENV=production
-WorkingDirectory=//opt/forecast_api
-
-[Install]
-WantedBy=multi-user.target
-```
-
-`systemctl enable forecast.api`
-
-`systemctl start forecast_api.service`
\ No newline at end of file
diff --git a/ufw.md b/ufw.md
index 06e8a2a..032a809 100644
--- a/ufw.md
+++ b/ufw.md
@@ -1,43 +1,43 @@
-if you dont specify a protocol it allows either tcp/udp
-
-**ports**
-```
-sudo ufw allow 22
-sudo ufw allow 22/tcp
-```
-
-**ranges**
-```
-sudo ufw allow 6000:6007/tcp
-sudo ufw allow 6000:6007/udp
-```
-
-**specific ip**
-```
-sudo ufw allow from 203.0.113.4
-sudo ufw allow from 203.0.113.4 to any port 22
-```
-
-enable firewall `suod ufw enable`
-
-
-## inquirey
-`sudo ufw status numbered`
- pt@r710:~$ sudo ufw status numbered
- Status: active
-
- To Action From
- -- ------ ----
- [ 1] 22/tcp ALLOW IN Anywhere
- [ 2] 5432 ALLOW IN Anywhere
- [ 3] 5440 ALLOW IN Anywhere
- [ 4] 10000 ALLOW IN Anywhere
- [ 5] 443/tcp ALLOW IN Anywhere
- [ 6] 5433/tcp ALLOW IN Anywhere
- [ 7] 22/tcp (v6) ALLOW IN Anywhere (v6)
- [ 8] 5432 (v6) ALLOW IN Anywhere (v6)
- [ 9] 5440 (v6) ALLOW IN Anywhere (v6)
- [10] 10000 (v6) ALLOW IN Anywhere (v6)
- [11] 443/tcp (v6) ALLOW IN Anywhere (v6)
- [12] 5433/tcp (v6) ALLOW IN Anywhere (v6)
-
+if you dont specify a protocol it allows either tcp/udp
+
+**ports**
+```
+sudo ufw allow 22
+sudo ufw allow 22/tcp
+```
+
+**ranges**
+```
+sudo ufw allow 6000:6007/tcp
+sudo ufw allow 6000:6007/udp
+```
+
+**specific ip**
+```
+sudo ufw allow from 203.0.113.4
+sudo ufw allow from 203.0.113.4 to any port 22
+```
+
+enable firewall `suod ufw enable`
+
+
+## inquirey
+`sudo ufw status numbered`
+ pt@r710:~$ sudo ufw status numbered
+ Status: active
+
+ To Action From
+ -- ------ ----
+ [ 1] 22/tcp ALLOW IN Anywhere
+ [ 2] 5432 ALLOW IN Anywhere
+ [ 3] 5440 ALLOW IN Anywhere
+ [ 4] 10000 ALLOW IN Anywhere
+ [ 5] 443/tcp ALLOW IN Anywhere
+ [ 6] 5433/tcp ALLOW IN Anywhere
+ [ 7] 22/tcp (v6) ALLOW IN Anywhere (v6)
+ [ 8] 5432 (v6) ALLOW IN Anywhere (v6)
+ [ 9] 5440 (v6) ALLOW IN Anywhere (v6)
+ [10] 10000 (v6) ALLOW IN Anywhere (v6)
+ [11] 443/tcp (v6) ALLOW IN Anywhere (v6)
+ [12] 5433/tcp (v6) ALLOW IN Anywhere (v6)
+
diff --git a/vim.md b/vim.md
index 8f75368..a456b86 100644
--- a/vim.md
+++ b/vim.md
@@ -1,85 +1,84 @@
-:Ex - use built in explorer to eplore at location
-:colorscheme with autocomplete
-:vs veritcale split
-:sh horizontal split
-:edit open a file
-:ls list buffers
-:b picka buffer
-
-
-plugins
-------------------------
-Vundler
-* install per below
-* add to .vimrc `Plugin 'gmarik/Vundle.vim'` and run :PluginInstall
-
-NERDtree
-* add to .vimrc `Plugin 'scrooloose/nerdtree'` and run :PluginInstall
-* call with :NERDtree
-
-fugitive - git command in a split
-* add to .vimrc `Plugin 'tpope/vim-fugitive'` and run :PluginInstall
-* :Gdiff, :Gstatus etc.
-
-powerline
-* vim status and git status info
-* add to .vimrc `Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}` and run :PluginInstall
-
-
-Vundler
----------------
-git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
-add the following to ~/.vimrc:
-```
-set nocompatible " be iMproved, required
-filetype off " required
-
-" set the runtime path to include Vundle and initialize
-set rtp+=~/.vim/bundle/Vundle.vim
-call vundle#begin()
-" alternatively, pass a path where Vundle should install plugins
-"call vundle#begin('~/some/path/here')
-
-" let Vundle manage Vundle, required
-Plugin 'VundleVim/Vundle.vim'
-
-" The following are examples of different formats supported.
-" Keep Plugin commands between vundle#begin/end.
-" plugin on GitHub repo
-Plugin 'tpope/vim-fugitive'
-" plugin from http://vim-scripts.org/vim/scripts.html
-" Plugin 'L9'
-" Git plugin not hosted on GitHub
-Plugin 'git://git.wincent.com/command-t.git'
-" git repos on your local machine (i.e. when working on your own plugin)
-Plugin 'file:///home/gmarik/path/to/plugin'
-" The sparkup vim script is in a subdirectory of this repo called vim.
-" Pass the path to set the runtimepath properly.
-Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
-" Install L9 and avoid a Naming conflict if you've already installed a
-" different version somewhere else.
-" Plugin 'ascenator/L9', {'name': 'newL9'}
-
-" All of your Plugins must be added before the following line
-call vundle#end() " required
-filetype plugin indent on " required
-" To ignore plugin indent changes, instead use:
-"filetype plugin on
-"
-" Brief help
-" :PluginList - lists configured plugins
-" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
-" :PluginSearch foo - searches for foo; append `!` to refresh local cache
-" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
-"
-" see :h vundle for more details or wiki for FAQ
-" Put your non-Plugin stuff after this line
-```
-
-after a large apt update, something got messed up with characters and colors, simply doing `syntax on` fixed the problem
-
-when using NERDtree:
-* open `o`
-* open with a horizontal split `i`
-* open with a vertical split `s`
\ No newline at end of file
+- :Ex - use built in explorer to eplore at location
+ :colorscheme with autocomplete
+ :vs veritcale split
+ :sh horizontal split
+ :edit open a file
+ :ls list buffers
+ :b picka buffer
+-
+- plugins
+ ------------------------
+ Vundler
+ * install per below
+ * add to .vimrc `Plugin 'gmarik/Vundle.vim'` and run :PluginInstall
+
+ NERDtree
+ * add to .vimrc `Plugin 'scrooloose/nerdtree'` and run :PluginInstall
+ * call with :NERDtree
+
+ fugitive - git command in a split
+ * add to .vimrc `Plugin 'tpope/vim-fugitive'` and run :PluginInstall
+ * :Gdiff, :Gstatus etc.
+
+ powerline
+ * vim status and git status info
+ * add to .vimrc `Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}` and run :PluginInstall
+
+
+ Vundler
+ ---------------
+ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
+
+ add the following to ~/.vimrc:
+ ```
+ set nocompatible " be iMproved, required
+ filetype off " required
+
+ " set the runtime path to include Vundle and initialize
+ set rtp+=~/.vim/bundle/Vundle.vim
+ call vundle#begin()
+ " alternatively, pass a path where Vundle should install plugins
+ "call vundle#begin('~/some/path/here')
+
+ " let Vundle manage Vundle, required
+ Plugin 'VundleVim/Vundle.vim'
+
+ " The following are examples of different formats supported.
+ " Keep Plugin commands between vundle#begin/end.
+ " plugin on GitHub repo
+ Plugin 'tpope/vim-fugitive'
+ " plugin from http://vim-scripts.org/vim/scripts.html
+ " Plugin 'L9'
+ " Git plugin not hosted on GitHub
+ Plugin 'git://git.wincent.com/command-t.git'
+ " git repos on your local machine (i.e. when working on your own plugin)
+ Plugin 'file:///home/gmarik/path/to/plugin'
+ " The sparkup vim script is in a subdirectory of this repo called vim.
+ " Pass the path to set the runtimepath properly.
+ Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
+ " Install L9 and avoid a Naming conflict if you've already installed a
+ " different version somewhere else.
+ " Plugin 'ascenator/L9', {'name': 'newL9'}
+
+ " All of your Plugins must be added before the following line
+ call vundle#end() " required
+ filetype plugin indent on " required
+ " To ignore plugin indent changes, instead use:
+ "filetype plugin on
+ "
+ " Brief help
+ " :PluginList - lists configured plugins
+ " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
+ " :PluginSearch foo - searches for foo; append `!` to refresh local cache
+ " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
+ "
+ " see :h vundle for more details or wiki for FAQ
+ " Put your non-Plugin stuff after this line
+ ```
+
+ after a large apt update, something got messed up with characters and colors, simply doing `syntax on` fixed the problem
+
+ when using NERDtree:
+ * open `o`
+ * open with a horizontal split `i`
+ * open with a vertical split `s`
\ No newline at end of file
diff --git a/wekan.md b/wekan.md
index 2ac17be..fb87619 100644
--- a/wekan.md
+++ b/wekan.md
@@ -1,14 +1,14 @@
-https://github.com/wekan/wekan-snap/wiki/Install
-
-
-`snap set wekan root-url='https://example.com/something'`
-
-`snap set wekan port='3001'`
-
-caddy files exist but not understood: //var/snap/wekan/common
-
-### Mail Setup
-https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
-
-sudo snap set wekan mail-url='smtp://paul%40hptrow.me:password@mail.gandi.net:587/?ignoreTLS=true&tls={rejectUnauthorized:false}&secure=true'
-sudo snap set wekan mail-from='Wekan Team Boards '
+https://github.com/wekan/wekan-snap/wiki/Install
+
+
+`snap set wekan root-url='https://example.com/something'`
+
+`snap set wekan port='3001'`
+
+caddy files exist but not understood: //var/snap/wekan/common
+
+### Mail Setup
+https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
+
+sudo snap set wekan mail-url='smtp://paul%40hptrow.me:password@mail.gandi.net:587/?ignoreTLS=true&tls={rejectUnauthorized:false}&secure=true'
+sudo snap set wekan mail-from='Wekan Team Boards '