├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── assets ├── Roboto-VariableFont_wdth,wght.ttf ├── bug.svg ├── crown.svg ├── css │ ├── bootstrap-icons-1.11.3 │ │ ├── 0-circle-fill.svg │ │ ├── 0-circle.svg │ │ ├── 0-square-fill.svg │ │ ├── 0-square.svg │ │ ├── 1-circle-fill.svg │ │ ├── 1-circle.svg │ │ ├── 1-square-fill.svg │ │ ├── 1-square.svg │ │ ├── 123.svg │ │ ├── 2-circle-fill.svg │ │ ├── 2-circle.svg │ │ ├── 2-square-fill.svg │ │ ├── 2-square.svg │ │ ├── 3-circle-fill.svg │ │ ├── 3-circle.svg │ │ ├── 3-square-fill.svg │ │ ├── 3-square.svg │ │ ├── 4-circle-fill.svg │ │ ├── 4-circle.svg │ │ ├── 4-square-fill.svg │ │ ├── 4-square.svg │ │ ├── 5-circle-fill.svg │ │ ├── 5-circle.svg │ │ ├── 5-square-fill.svg │ │ ├── 5-square.svg │ │ ├── 6-circle-fill.svg │ │ ├── 6-circle.svg │ │ ├── 6-square-fill.svg │ │ ├── 6-square.svg │ │ ├── 7-circle-fill.svg │ │ ├── 7-circle.svg │ │ ├── 7-square-fill.svg │ │ ├── 7-square.svg │ │ ├── 8-circle-fill.svg │ │ ├── 8-circle.svg │ │ ├── 8-square-fill.svg │ │ ├── 8-square.svg │ │ ├── 9-circle-fill.svg │ │ ├── 9-circle.svg │ │ ├── 9-square-fill.svg │ │ ├── 9-square.svg │ │ ├── activity.svg │ │ ├── airplane-engines-fill.svg │ │ ├── airplane-engines.svg │ │ ├── airplane-fill.svg │ │ ├── airplane.svg │ │ ├── alarm-fill.svg │ │ ├── alarm.svg │ │ ├── alexa.svg │ │ ├── align-bottom.svg │ │ ├── align-center.svg │ │ ├── align-end.svg │ │ ├── align-middle.svg │ │ ├── align-start.svg │ │ ├── align-top.svg │ │ ├── alipay.svg │ │ ├── alphabet-uppercase.svg │ │ ├── alphabet.svg │ │ ├── alt.svg │ │ ├── amazon.svg │ │ ├── amd.svg │ │ ├── android.svg │ │ ├── android2.svg │ │ ├── app-indicator.svg │ │ ├── app.svg │ │ ├── apple.svg │ │ ├── archive-fill.svg │ │ ├── archive.svg │ │ ├── arrow-90deg-down.svg │ │ ├── arrow-90deg-left.svg │ │ ├── arrow-90deg-right.svg │ │ ├── arrow-90deg-up.svg │ │ ├── arrow-bar-down.svg │ │ ├── arrow-bar-left.svg │ │ ├── arrow-bar-right.svg │ │ ├── arrow-bar-up.svg │ │ ├── arrow-clockwise.svg │ │ ├── arrow-counterclockwise.svg │ │ ├── arrow-down-circle-fill.svg │ │ ├── arrow-down-circle.svg │ │ ├── arrow-down-left-circle-fill.svg │ │ ├── arrow-down-left-circle.svg │ │ ├── arrow-down-left-square-fill.svg │ │ ├── arrow-down-left-square.svg │ │ ├── arrow-down-left.svg │ │ ├── arrow-down-right-circle-fill.svg │ │ ├── arrow-down-right-circle.svg │ │ ├── arrow-down-right-square-fill.svg │ │ ├── arrow-down-right-square.svg │ │ ├── arrow-down-right.svg │ │ ├── arrow-down-short.svg │ │ ├── arrow-down-square-fill.svg │ │ ├── arrow-down-square.svg │ │ ├── arrow-down-up.svg │ │ ├── arrow-down.svg │ │ ├── arrow-left-circle-fill.svg │ │ ├── arrow-left-circle.svg │ │ ├── arrow-left-right.svg │ │ ├── arrow-left-short.svg │ │ ├── arrow-left-square-fill.svg │ │ ├── arrow-left-square.svg │ │ ├── arrow-left.svg │ │ ├── arrow-repeat.svg │ │ ├── arrow-return-left.svg │ │ ├── arrow-return-right.svg │ │ ├── arrow-right-circle-fill.svg │ │ ├── arrow-right-circle.svg │ │ ├── arrow-right-short.svg │ │ ├── arrow-right-square-fill.svg │ │ ├── arrow-right-square.svg │ │ ├── arrow-right.svg │ │ ├── arrow-through-heart-fill.svg │ │ ├── arrow-through-heart.svg │ │ ├── arrow-up-circle-fill.svg │ │ ├── arrow-up-circle.svg │ │ ├── arrow-up-left-circle-fill.svg │ │ ├── arrow-up-left-circle.svg │ │ ├── arrow-up-left-square-fill.svg │ │ ├── arrow-up-left-square.svg │ │ ├── arrow-up-left.svg │ │ ├── arrow-up-right-circle-fill.svg │ │ ├── arrow-up-right-circle.svg │ │ ├── arrow-up-right-square-fill.svg │ │ ├── arrow-up-right-square.svg │ │ ├── arrow-up-right.svg │ │ ├── arrow-up-short.svg │ │ ├── arrow-up-square-fill.svg │ │ ├── arrow-up-square.svg │ │ ├── arrow-up.svg │ │ ├── arrows-angle-contract.svg │ │ ├── arrows-angle-expand.svg │ │ ├── arrows-collapse-vertical.svg │ │ ├── arrows-collapse.svg │ │ ├── arrows-expand-vertical.svg │ │ ├── arrows-expand.svg │ │ ├── arrows-fullscreen.svg │ │ ├── arrows-move.svg │ │ ├── arrows-vertical.svg │ │ ├── arrows.svg │ │ ├── aspect-ratio-fill.svg │ │ ├── aspect-ratio.svg │ │ ├── asterisk.svg │ │ ├── at.svg │ │ ├── award-fill.svg │ │ ├── award.svg │ │ ├── back.svg │ │ ├── backpack-fill.svg │ │ ├── backpack.svg │ │ ├── backpack2-fill.svg │ │ ├── backpack2.svg │ │ ├── backpack3-fill.svg │ │ ├── backpack3.svg │ │ ├── backpack4-fill.svg │ │ ├── backpack4.svg │ │ ├── backspace-fill.svg │ │ ├── backspace-reverse-fill.svg │ │ ├── backspace-reverse.svg │ │ ├── backspace.svg │ │ ├── badge-3d-fill.svg │ │ ├── badge-3d.svg │ │ ├── badge-4k-fill.svg │ │ ├── badge-4k.svg │ │ ├── badge-8k-fill.svg │ │ ├── badge-8k.svg │ │ ├── badge-ad-fill.svg │ │ ├── badge-ad.svg │ │ ├── badge-ar-fill.svg │ │ ├── badge-ar.svg │ │ ├── badge-cc-fill.svg │ │ ├── badge-cc.svg │ │ ├── badge-hd-fill.svg │ │ ├── badge-hd.svg │ │ ├── badge-sd-fill.svg │ │ ├── badge-sd.svg │ │ ├── badge-tm-fill.svg │ │ ├── badge-tm.svg │ │ ├── badge-vo-fill.svg │ │ ├── badge-vo.svg │ │ ├── badge-vr-fill.svg │ │ ├── badge-vr.svg │ │ ├── badge-wc-fill.svg │ │ ├── badge-wc.svg │ │ ├── bag-check-fill.svg │ │ ├── bag-check.svg │ │ ├── bag-dash-fill.svg │ │ ├── bag-dash.svg │ │ ├── bag-fill.svg │ │ ├── bag-heart-fill.svg │ │ ├── bag-heart.svg │ │ ├── bag-plus-fill.svg │ │ ├── bag-plus.svg │ │ ├── bag-x-fill.svg │ │ ├── bag-x.svg │ │ ├── bag.svg │ │ ├── balloon-fill.svg │ │ ├── balloon-heart-fill.svg │ │ ├── balloon-heart.svg │ │ ├── balloon.svg │ │ ├── ban-fill.svg │ │ ├── ban.svg │ │ ├── bandaid-fill.svg │ │ ├── bandaid.svg │ │ ├── bank.svg │ │ ├── bank2.svg │ │ ├── bar-chart-fill.svg │ │ ├── bar-chart-line-fill.svg │ │ ├── bar-chart-line.svg │ │ ├── bar-chart-steps.svg │ │ ├── bar-chart.svg │ │ ├── basket-fill.svg │ │ ├── basket.svg │ │ ├── basket2-fill.svg │ │ ├── basket2.svg │ │ ├── basket3-fill.svg │ │ ├── basket3.svg │ │ ├── battery-charging.svg │ │ ├── battery-full.svg │ │ ├── battery-half.svg │ │ ├── battery.svg │ │ ├── behance.svg │ │ ├── bell-fill.svg │ │ ├── bell-slash-fill.svg │ │ ├── bell-slash.svg │ │ ├── bell.svg │ │ ├── bezier.svg │ │ ├── bezier2.svg │ │ ├── bicycle.svg │ │ ├── bing.svg │ │ ├── binoculars-fill.svg │ │ ├── binoculars.svg │ │ ├── blockquote-left.svg │ │ ├── blockquote-right.svg │ │ ├── bluetooth.svg │ │ ├── body-text.svg │ │ ├── book-fill.svg │ │ ├── book-half.svg │ │ ├── book.svg │ │ ├── bookmark-check-fill.svg │ │ ├── bookmark-check.svg │ │ ├── bookmark-dash-fill.svg │ │ ├── bookmark-dash.svg │ │ ├── bookmark-fill.svg │ │ ├── bookmark-heart-fill.svg │ │ ├── bookmark-heart.svg │ │ ├── bookmark-plus-fill.svg │ │ ├── bookmark-plus.svg │ │ ├── bookmark-star-fill.svg │ │ ├── bookmark-star.svg │ │ ├── bookmark-x-fill.svg │ │ ├── bookmark-x.svg │ │ ├── bookmark.svg │ │ ├── bookmarks-fill.svg │ │ ├── bookmarks.svg │ │ ├── bookshelf.svg │ │ ├── boombox-fill.svg │ │ ├── boombox.svg │ │ ├── bootstrap-fill.svg │ │ ├── bootstrap-icons.svg │ │ ├── bootstrap-reboot.svg │ │ ├── bootstrap.svg │ │ ├── border-all.svg │ │ ├── border-bottom.svg │ │ ├── border-center.svg │ │ ├── border-inner.svg │ │ ├── border-left.svg │ │ ├── border-middle.svg │ │ ├── border-outer.svg │ │ ├── border-right.svg │ │ ├── border-style.svg │ │ ├── border-top.svg │ │ ├── border-width.svg │ │ ├── border.svg │ │ ├── bounding-box-circles.svg │ │ ├── bounding-box.svg │ │ ├── box-arrow-down-left.svg │ │ ├── box-arrow-down-right.svg │ │ ├── box-arrow-down.svg │ │ ├── box-arrow-in-down-left.svg │ │ ├── box-arrow-in-down-right.svg │ │ ├── box-arrow-in-down.svg │ │ ├── box-arrow-in-left.svg │ │ ├── box-arrow-in-right.svg │ │ ├── box-arrow-in-up-left.svg │ │ ├── box-arrow-in-up-right.svg │ │ ├── box-arrow-in-up.svg │ │ ├── box-arrow-left.svg │ │ ├── box-arrow-right.svg │ │ ├── box-arrow-up-left.svg │ │ ├── box-arrow-up-right.svg │ │ ├── box-arrow-up.svg │ │ ├── box-fill.svg │ │ ├── box-seam-fill.svg │ │ ├── box-seam.svg │ │ ├── box.svg │ │ ├── box2-fill.svg │ │ ├── box2-heart-fill.svg │ │ ├── box2-heart.svg │ │ ├── box2.svg │ │ ├── boxes.svg │ │ ├── braces-asterisk.svg │ │ ├── braces.svg │ │ ├── bricks.svg │ │ ├── briefcase-fill.svg │ │ ├── briefcase.svg │ │ ├── brightness-alt-high-fill.svg │ │ ├── brightness-alt-high.svg │ │ ├── brightness-alt-low-fill.svg │ │ ├── brightness-alt-low.svg │ │ ├── brightness-high-fill.svg │ │ ├── brightness-high.svg │ │ ├── brightness-low-fill.svg │ │ ├── brightness-low.svg │ │ ├── brilliance.svg │ │ ├── broadcast-pin.svg │ │ ├── broadcast.svg │ │ ├── browser-chrome.svg │ │ ├── browser-edge.svg │ │ ├── browser-firefox.svg │ │ ├── browser-safari.svg │ │ ├── brush-fill.svg │ │ ├── brush.svg │ │ ├── bucket-fill.svg │ │ ├── bucket.svg │ │ ├── bug-fill.svg │ │ ├── bug.svg │ │ ├── building-add.svg │ │ ├── building-check.svg │ │ ├── building-dash.svg │ │ ├── building-down.svg │ │ ├── building-exclamation.svg │ │ ├── building-fill-add.svg │ │ ├── building-fill-check.svg │ │ ├── building-fill-dash.svg │ │ ├── building-fill-down.svg │ │ ├── building-fill-exclamation.svg │ │ ├── building-fill-gear.svg │ │ ├── building-fill-lock.svg │ │ ├── building-fill-slash.svg │ │ ├── building-fill-up.svg │ │ ├── building-fill-x.svg │ │ ├── building-fill.svg │ │ ├── building-gear.svg │ │ ├── building-lock.svg │ │ ├── building-slash.svg │ │ ├── building-up.svg │ │ ├── building-x.svg │ │ ├── building.svg │ │ ├── buildings-fill.svg │ │ ├── buildings.svg │ │ ├── bullseye.svg │ │ ├── bus-front-fill.svg │ │ ├── bus-front.svg │ │ ├── c-circle-fill.svg │ │ ├── c-circle.svg │ │ ├── c-square-fill.svg │ │ ├── c-square.svg │ │ ├── cake-fill.svg │ │ ├── cake.svg │ │ ├── cake2-fill.svg │ │ ├── cake2.svg │ │ ├── calculator-fill.svg │ │ ├── calculator.svg │ │ ├── calendar-check-fill.svg │ │ ├── calendar-check.svg │ │ ├── calendar-date-fill.svg │ │ ├── calendar-date.svg │ │ ├── calendar-day-fill.svg │ │ ├── calendar-day.svg │ │ ├── calendar-event-fill.svg │ │ ├── calendar-event.svg │ │ ├── calendar-fill.svg │ │ ├── calendar-heart-fill.svg │ │ ├── calendar-heart.svg │ │ ├── calendar-minus-fill.svg │ │ ├── calendar-minus.svg │ │ ├── calendar-month-fill.svg │ │ ├── calendar-month.svg │ │ ├── calendar-plus-fill.svg │ │ ├── calendar-plus.svg │ │ ├── calendar-range-fill.svg │ │ ├── calendar-range.svg │ │ ├── calendar-week-fill.svg │ │ ├── calendar-week.svg │ │ ├── calendar-x-fill.svg │ │ ├── calendar-x.svg │ │ ├── calendar.svg │ │ ├── calendar2-check-fill.svg │ │ ├── calendar2-check.svg │ │ ├── calendar2-date-fill.svg │ │ ├── calendar2-date.svg │ │ ├── calendar2-day-fill.svg │ │ ├── calendar2-day.svg │ │ ├── calendar2-event-fill.svg │ │ ├── calendar2-event.svg │ │ ├── calendar2-fill.svg │ │ ├── calendar2-heart-fill.svg │ │ ├── calendar2-heart.svg │ │ ├── calendar2-minus-fill.svg │ │ ├── calendar2-minus.svg │ │ ├── calendar2-month-fill.svg │ │ ├── calendar2-month.svg │ │ ├── calendar2-plus-fill.svg │ │ ├── calendar2-plus.svg │ │ ├── calendar2-range-fill.svg │ │ ├── calendar2-range.svg │ │ ├── calendar2-week-fill.svg │ │ ├── calendar2-week.svg │ │ ├── calendar2-x-fill.svg │ │ ├── calendar2-x.svg │ │ ├── calendar2.svg │ │ ├── calendar3-event-fill.svg │ │ ├── calendar3-event.svg │ │ ├── calendar3-fill.svg │ │ ├── calendar3-range-fill.svg │ │ ├── calendar3-range.svg │ │ ├── calendar3-week-fill.svg │ │ ├── calendar3-week.svg │ │ ├── calendar3.svg │ │ ├── calendar4-event.svg │ │ ├── calendar4-range.svg │ │ ├── calendar4-week.svg │ │ ├── calendar4.svg │ │ ├── camera-fill.svg │ │ ├── camera-reels-fill.svg │ │ ├── camera-reels.svg │ │ ├── camera-video-fill.svg │ │ ├── camera-video-off-fill.svg │ │ ├── camera-video-off.svg │ │ ├── camera-video.svg │ │ ├── camera.svg │ │ ├── camera2.svg │ │ ├── capslock-fill.svg │ │ ├── capslock.svg │ │ ├── capsule-pill.svg │ │ ├── capsule.svg │ │ ├── car-front-fill.svg │ │ ├── car-front.svg │ │ ├── card-checklist.svg │ │ ├── card-heading.svg │ │ ├── card-image.svg │ │ ├── card-list.svg │ │ ├── card-text.svg │ │ ├── caret-down-fill.svg │ │ ├── caret-down-square-fill.svg │ │ ├── caret-down-square.svg │ │ ├── caret-down.svg │ │ ├── caret-left-fill.svg │ │ ├── caret-left-square-fill.svg │ │ ├── caret-left-square.svg │ │ ├── caret-left.svg │ │ ├── caret-right-fill.svg │ │ ├── caret-right-square-fill.svg │ │ ├── caret-right-square.svg │ │ ├── caret-right.svg │ │ ├── caret-up-fill.svg │ │ ├── caret-up-square-fill.svg │ │ ├── caret-up-square.svg │ │ ├── caret-up.svg │ │ ├── cart-check-fill.svg │ │ ├── cart-check.svg │ │ ├── cart-dash-fill.svg │ │ ├── cart-dash.svg │ │ ├── cart-fill.svg │ │ ├── cart-plus-fill.svg │ │ ├── cart-plus.svg │ │ ├── cart-x-fill.svg │ │ ├── cart-x.svg │ │ ├── cart.svg │ │ ├── cart2.svg │ │ ├── cart3.svg │ │ ├── cart4.svg │ │ ├── cash-coin.svg │ │ ├── cash-stack.svg │ │ ├── cash.svg │ │ ├── cassette-fill.svg │ │ ├── cassette.svg │ │ ├── cast.svg │ │ ├── cc-circle-fill.svg │ │ ├── cc-circle.svg │ │ ├── cc-square-fill.svg │ │ ├── cc-square.svg │ │ ├── chat-dots-fill.svg │ │ ├── chat-dots.svg │ │ ├── chat-fill.svg │ │ ├── chat-heart-fill.svg │ │ ├── chat-heart.svg │ │ ├── chat-left-dots-fill.svg │ │ ├── chat-left-dots.svg │ │ ├── chat-left-fill.svg │ │ ├── chat-left-heart-fill.svg │ │ ├── chat-left-heart.svg │ │ ├── chat-left-quote-fill.svg │ │ ├── chat-left-quote.svg │ │ ├── chat-left-text-fill.svg │ │ ├── chat-left-text.svg │ │ ├── chat-left.svg │ │ ├── chat-quote-fill.svg │ │ ├── chat-quote.svg │ │ ├── chat-right-dots-fill.svg │ │ ├── chat-right-dots.svg │ │ ├── chat-right-fill.svg │ │ ├── chat-right-heart-fill.svg │ │ ├── chat-right-heart.svg │ │ ├── chat-right-quote-fill.svg │ │ ├── chat-right-quote.svg │ │ ├── chat-right-text-fill.svg │ │ ├── chat-right-text.svg │ │ ├── chat-right.svg │ │ ├── chat-square-dots-fill.svg │ │ ├── chat-square-dots.svg │ │ ├── chat-square-fill.svg │ │ ├── chat-square-heart-fill.svg │ │ ├── chat-square-heart.svg │ │ ├── chat-square-quote-fill.svg │ │ ├── chat-square-quote.svg │ │ ├── chat-square-text-fill.svg │ │ ├── chat-square-text.svg │ │ ├── chat-square.svg │ │ ├── chat-text-fill.svg │ │ ├── chat-text.svg │ │ ├── chat.svg │ │ ├── check-all.svg │ │ ├── check-circle-fill.svg │ │ ├── check-circle.svg │ │ ├── check-lg.svg │ │ ├── check-square-fill.svg │ │ ├── check-square.svg │ │ ├── check.svg │ │ ├── check2-all.svg │ │ ├── check2-circle.svg │ │ ├── check2-square.svg │ │ ├── check2.svg │ │ ├── chevron-bar-contract.svg │ │ ├── chevron-bar-down.svg │ │ ├── chevron-bar-expand.svg │ │ ├── chevron-bar-left.svg │ │ ├── chevron-bar-right.svg │ │ ├── chevron-bar-up.svg │ │ ├── chevron-compact-down.svg │ │ ├── chevron-compact-left.svg │ │ ├── chevron-compact-right.svg │ │ ├── chevron-compact-up.svg │ │ ├── chevron-contract.svg │ │ ├── chevron-double-down.svg │ │ ├── chevron-double-left.svg │ │ ├── chevron-double-right.svg │ │ ├── chevron-double-up.svg │ │ ├── chevron-down.svg │ │ ├── chevron-expand.svg │ │ ├── chevron-left.svg │ │ ├── chevron-right.svg │ │ ├── chevron-up.svg │ │ ├── circle-fill.svg │ │ ├── circle-half.svg │ │ ├── circle-square.svg │ │ ├── circle.svg │ │ ├── clipboard-check-fill.svg │ │ ├── clipboard-check.svg │ │ ├── clipboard-data-fill.svg │ │ ├── clipboard-data.svg │ │ ├── clipboard-fill.svg │ │ ├── clipboard-heart-fill.svg │ │ ├── clipboard-heart.svg │ │ ├── clipboard-minus-fill.svg │ │ ├── clipboard-minus.svg │ │ ├── clipboard-plus-fill.svg │ │ ├── clipboard-plus.svg │ │ ├── clipboard-pulse.svg │ │ ├── clipboard-x-fill.svg │ │ ├── clipboard-x.svg │ │ ├── clipboard.svg │ │ ├── clipboard2-check-fill.svg │ │ ├── clipboard2-check.svg │ │ ├── clipboard2-data-fill.svg │ │ ├── clipboard2-data.svg │ │ ├── clipboard2-fill.svg │ │ ├── clipboard2-heart-fill.svg │ │ ├── clipboard2-heart.svg │ │ ├── clipboard2-minus-fill.svg │ │ ├── clipboard2-minus.svg │ │ ├── clipboard2-plus-fill.svg │ │ ├── clipboard2-plus.svg │ │ ├── clipboard2-pulse-fill.svg │ │ ├── clipboard2-pulse.svg │ │ ├── clipboard2-x-fill.svg │ │ ├── clipboard2-x.svg │ │ ├── clipboard2.svg │ │ ├── clock-fill.svg │ │ ├── clock-history.svg │ │ ├── clock.svg │ │ ├── cloud-arrow-down-fill.svg │ │ ├── cloud-arrow-down.svg │ │ ├── cloud-arrow-up-fill.svg │ │ ├── cloud-arrow-up.svg │ │ ├── cloud-check-fill.svg │ │ ├── cloud-check.svg │ │ ├── cloud-download-fill.svg │ │ ├── cloud-download.svg │ │ ├── cloud-drizzle-fill.svg │ │ ├── cloud-drizzle.svg │ │ ├── cloud-fill.svg │ │ ├── cloud-fog-fill.svg │ │ ├── cloud-fog.svg │ │ ├── cloud-fog2-fill.svg │ │ ├── cloud-fog2.svg │ │ ├── cloud-hail-fill.svg │ │ ├── cloud-hail.svg │ │ ├── cloud-haze-fill.svg │ │ ├── cloud-haze.svg │ │ ├── cloud-haze2-fill.svg │ │ ├── cloud-haze2.svg │ │ ├── cloud-lightning-fill.svg │ │ ├── cloud-lightning-rain-fill.svg │ │ ├── cloud-lightning-rain.svg │ │ ├── cloud-lightning.svg │ │ ├── cloud-minus-fill.svg │ │ ├── cloud-minus.svg │ │ ├── cloud-moon-fill.svg │ │ ├── cloud-moon.svg │ │ ├── cloud-plus-fill.svg │ │ ├── cloud-plus.svg │ │ ├── cloud-rain-fill.svg │ │ ├── cloud-rain-heavy-fill.svg │ │ ├── cloud-rain-heavy.svg │ │ ├── cloud-rain.svg │ │ ├── cloud-slash-fill.svg │ │ ├── cloud-slash.svg │ │ ├── cloud-sleet-fill.svg │ │ ├── cloud-sleet.svg │ │ ├── cloud-snow-fill.svg │ │ ├── cloud-snow.svg │ │ ├── cloud-sun-fill.svg │ │ ├── cloud-sun.svg │ │ ├── cloud-upload-fill.svg │ │ ├── cloud-upload.svg │ │ ├── cloud.svg │ │ ├── clouds-fill.svg │ │ ├── clouds.svg │ │ ├── cloudy-fill.svg │ │ ├── cloudy.svg │ │ ├── code-slash.svg │ │ ├── code-square.svg │ │ ├── code.svg │ │ ├── coin.svg │ │ ├── collection-fill.svg │ │ ├── collection-play-fill.svg │ │ ├── collection-play.svg │ │ ├── collection.svg │ │ ├── columns-gap.svg │ │ ├── columns.svg │ │ ├── command.svg │ │ ├── compass-fill.svg │ │ ├── compass.svg │ │ ├── cone-striped.svg │ │ ├── cone.svg │ │ ├── controller.svg │ │ ├── cookie.svg │ │ ├── copy.svg │ │ ├── cpu-fill.svg │ │ ├── cpu.svg │ │ ├── credit-card-2-back-fill.svg │ │ ├── credit-card-2-back.svg │ │ ├── credit-card-2-front-fill.svg │ │ ├── credit-card-2-front.svg │ │ ├── credit-card-fill.svg │ │ ├── credit-card.svg │ │ ├── crop.svg │ │ ├── crosshair.svg │ │ ├── crosshair2.svg │ │ ├── cup-fill.svg │ │ ├── cup-hot-fill.svg │ │ ├── cup-hot.svg │ │ ├── cup-straw.svg │ │ ├── cup.svg │ │ ├── currency-bitcoin.svg │ │ ├── currency-dollar.svg │ │ ├── currency-euro.svg │ │ ├── currency-exchange.svg │ │ ├── currency-pound.svg │ │ ├── currency-rupee.svg │ │ ├── currency-yen.svg │ │ ├── cursor-fill.svg │ │ ├── cursor-text.svg │ │ ├── cursor.svg │ │ ├── dash-circle-dotted.svg │ │ ├── dash-circle-fill.svg │ │ ├── dash-circle.svg │ │ ├── dash-lg.svg │ │ ├── dash-square-dotted.svg │ │ ├── dash-square-fill.svg │ │ ├── dash-square.svg │ │ ├── dash.svg │ │ ├── database-add.svg │ │ ├── database-check.svg │ │ ├── database-dash.svg │ │ ├── database-down.svg │ │ ├── database-exclamation.svg │ │ ├── database-fill-add.svg │ │ ├── database-fill-check.svg │ │ ├── database-fill-dash.svg │ │ ├── database-fill-down.svg │ │ ├── database-fill-exclamation.svg │ │ ├── database-fill-gear.svg │ │ ├── database-fill-lock.svg │ │ ├── database-fill-slash.svg │ │ ├── database-fill-up.svg │ │ ├── database-fill-x.svg │ │ ├── database-fill.svg │ │ ├── database-gear.svg │ │ ├── database-lock.svg │ │ ├── database-slash.svg │ │ ├── database-up.svg │ │ ├── database-x.svg │ │ ├── database.svg │ │ ├── device-hdd-fill.svg │ │ ├── device-hdd.svg │ │ ├── device-ssd-fill.svg │ │ ├── device-ssd.svg │ │ ├── diagram-2-fill.svg │ │ ├── diagram-2.svg │ │ ├── diagram-3-fill.svg │ │ ├── diagram-3.svg │ │ ├── diamond-fill.svg │ │ ├── diamond-half.svg │ │ ├── diamond.svg │ │ ├── dice-1-fill.svg │ │ ├── dice-1.svg │ │ ├── dice-2-fill.svg │ │ ├── dice-2.svg │ │ ├── dice-3-fill.svg │ │ ├── dice-3.svg │ │ ├── dice-4-fill.svg │ │ ├── dice-4.svg │ │ ├── dice-5-fill.svg │ │ ├── dice-5.svg │ │ ├── dice-6-fill.svg │ │ ├── dice-6.svg │ │ ├── disc-fill.svg │ │ ├── disc.svg │ │ ├── discord.svg │ │ ├── display-fill.svg │ │ ├── display.svg │ │ ├── displayport-fill.svg │ │ ├── displayport.svg │ │ ├── distribute-horizontal.svg │ │ ├── distribute-vertical.svg │ │ ├── door-closed-fill.svg │ │ ├── door-closed.svg │ │ ├── door-open-fill.svg │ │ ├── door-open.svg │ │ ├── dot.svg │ │ ├── download.svg │ │ ├── dpad-fill.svg │ │ ├── dpad.svg │ │ ├── dribbble.svg │ │ ├── dropbox.svg │ │ ├── droplet-fill.svg │ │ ├── droplet-half.svg │ │ ├── droplet.svg │ │ ├── duffle-fill.svg │ │ ├── duffle.svg │ │ ├── ear-fill.svg │ │ ├── ear.svg │ │ ├── earbuds.svg │ │ ├── easel-fill.svg │ │ ├── easel.svg │ │ ├── easel2-fill.svg │ │ ├── easel2.svg │ │ ├── easel3-fill.svg │ │ ├── easel3.svg │ │ ├── egg-fill.svg │ │ ├── egg-fried.svg │ │ ├── egg.svg │ │ ├── eject-fill.svg │ │ ├── eject.svg │ │ ├── emoji-angry-fill.svg │ │ ├── emoji-angry.svg │ │ ├── emoji-astonished-fill.svg │ │ ├── emoji-astonished.svg │ │ ├── emoji-dizzy-fill.svg │ │ ├── emoji-dizzy.svg │ │ ├── emoji-expressionless-fill.svg │ │ ├── emoji-expressionless.svg │ │ ├── emoji-frown-fill.svg │ │ ├── emoji-frown.svg │ │ ├── emoji-grimace-fill.svg │ │ ├── emoji-grimace.svg │ │ ├── emoji-grin-fill.svg │ │ ├── emoji-grin.svg │ │ ├── emoji-heart-eyes-fill.svg │ │ ├── emoji-heart-eyes.svg │ │ ├── emoji-kiss-fill.svg │ │ ├── emoji-kiss.svg │ │ ├── emoji-laughing-fill.svg │ │ ├── emoji-laughing.svg │ │ ├── emoji-neutral-fill.svg │ │ ├── emoji-neutral.svg │ │ ├── emoji-smile-fill.svg │ │ ├── emoji-smile-upside-down-fill.svg │ │ ├── emoji-smile-upside-down.svg │ │ ├── emoji-smile.svg │ │ ├── emoji-sunglasses-fill.svg │ │ ├── emoji-sunglasses.svg │ │ ├── emoji-surprise-fill.svg │ │ ├── emoji-surprise.svg │ │ ├── emoji-tear-fill.svg │ │ ├── emoji-tear.svg │ │ ├── emoji-wink-fill.svg │ │ ├── emoji-wink.svg │ │ ├── envelope-arrow-down-fill.svg │ │ ├── envelope-arrow-down.svg │ │ ├── envelope-arrow-up-fill.svg │ │ ├── envelope-arrow-up.svg │ │ ├── envelope-at-fill.svg │ │ ├── envelope-at.svg │ │ ├── envelope-check-fill.svg │ │ ├── envelope-check.svg │ │ ├── envelope-dash-fill.svg │ │ ├── envelope-dash.svg │ │ ├── envelope-exclamation-fill.svg │ │ ├── envelope-exclamation.svg │ │ ├── envelope-fill.svg │ │ ├── envelope-heart-fill.svg │ │ ├── envelope-heart.svg │ │ ├── envelope-open-fill.svg │ │ ├── envelope-open-heart-fill.svg │ │ ├── envelope-open-heart.svg │ │ ├── envelope-open.svg │ │ ├── envelope-paper-fill.svg │ │ ├── envelope-paper-heart-fill.svg │ │ ├── envelope-paper-heart.svg │ │ ├── envelope-paper.svg │ │ ├── envelope-plus-fill.svg │ │ ├── envelope-plus.svg │ │ ├── envelope-slash-fill.svg │ │ ├── envelope-slash.svg │ │ ├── envelope-x-fill.svg │ │ ├── envelope-x.svg │ │ ├── envelope.svg │ │ ├── eraser-fill.svg │ │ ├── eraser.svg │ │ ├── escape.svg │ │ ├── ethernet.svg │ │ ├── ev-front-fill.svg │ │ ├── ev-front.svg │ │ ├── ev-station-fill.svg │ │ ├── ev-station.svg │ │ ├── exclamation-circle-fill.svg │ │ ├── exclamation-circle.svg │ │ ├── exclamation-diamond-fill.svg │ │ ├── exclamation-diamond.svg │ │ ├── exclamation-lg.svg │ │ ├── exclamation-octagon-fill.svg │ │ ├── exclamation-octagon.svg │ │ ├── exclamation-square-fill.svg │ │ ├── exclamation-square.svg │ │ ├── exclamation-triangle-fill.svg │ │ ├── exclamation-triangle.svg │ │ ├── exclamation.svg │ │ ├── exclude.svg │ │ ├── explicit-fill.svg │ │ ├── explicit.svg │ │ ├── exposure.svg │ │ ├── eye-fill.svg │ │ ├── eye-slash-fill.svg │ │ ├── eye-slash.svg │ │ ├── eye.svg │ │ ├── eyedropper.svg │ │ ├── eyeglasses.svg │ │ ├── facebook.svg │ │ ├── fan.svg │ │ ├── fast-forward-btn-fill.svg │ │ ├── fast-forward-btn.svg │ │ ├── fast-forward-circle-fill.svg │ │ ├── fast-forward-circle.svg │ │ ├── fast-forward-fill.svg │ │ ├── fast-forward.svg │ │ ├── feather.svg │ │ ├── feather2.svg │ │ ├── file-arrow-down-fill.svg │ │ ├── file-arrow-down.svg │ │ ├── file-arrow-up-fill.svg │ │ ├── file-arrow-up.svg │ │ ├── file-bar-graph-fill.svg │ │ ├── file-bar-graph.svg │ │ ├── file-binary-fill.svg │ │ ├── file-binary.svg │ │ ├── file-break-fill.svg │ │ ├── file-break.svg │ │ ├── file-check-fill.svg │ │ ├── file-check.svg │ │ ├── file-code-fill.svg │ │ ├── file-code.svg │ │ ├── file-diff-fill.svg │ │ ├── file-diff.svg │ │ ├── file-earmark-arrow-down-fill.svg │ │ ├── file-earmark-arrow-down.svg │ │ ├── file-earmark-arrow-up-fill.svg │ │ ├── file-earmark-arrow-up.svg │ │ ├── file-earmark-bar-graph-fill.svg │ │ ├── file-earmark-bar-graph.svg │ │ ├── file-earmark-binary-fill.svg │ │ ├── file-earmark-binary.svg │ │ ├── file-earmark-break-fill.svg │ │ ├── file-earmark-break.svg │ │ ├── file-earmark-check-fill.svg │ │ ├── file-earmark-check.svg │ │ ├── file-earmark-code-fill.svg │ │ ├── file-earmark-code.svg │ │ ├── file-earmark-diff-fill.svg │ │ ├── file-earmark-diff.svg │ │ ├── file-earmark-easel-fill.svg │ │ ├── file-earmark-easel.svg │ │ ├── file-earmark-excel-fill.svg │ │ ├── file-earmark-excel.svg │ │ ├── file-earmark-fill.svg │ │ ├── file-earmark-font-fill.svg │ │ ├── file-earmark-font.svg │ │ ├── file-earmark-image-fill.svg │ │ ├── file-earmark-image.svg │ │ ├── file-earmark-lock-fill.svg │ │ ├── file-earmark-lock.svg │ │ ├── file-earmark-lock2-fill.svg │ │ ├── file-earmark-lock2.svg │ │ ├── file-earmark-medical-fill.svg │ │ ├── file-earmark-medical.svg │ │ ├── file-earmark-minus-fill.svg │ │ ├── file-earmark-minus.svg │ │ ├── file-earmark-music-fill.svg │ │ ├── file-earmark-music.svg │ │ ├── file-earmark-pdf-fill.svg │ │ ├── file-earmark-pdf.svg │ │ ├── file-earmark-person-fill.svg │ │ ├── file-earmark-person.svg │ │ ├── file-earmark-play-fill.svg │ │ ├── file-earmark-play.svg │ │ ├── file-earmark-plus-fill.svg │ │ ├── file-earmark-plus.svg │ │ ├── file-earmark-post-fill.svg │ │ ├── file-earmark-post.svg │ │ ├── file-earmark-ppt-fill.svg │ │ ├── file-earmark-ppt.svg │ │ ├── file-earmark-richtext-fill.svg │ │ ├── file-earmark-richtext.svg │ │ ├── file-earmark-ruled-fill.svg │ │ ├── file-earmark-ruled.svg │ │ ├── file-earmark-slides-fill.svg │ │ ├── file-earmark-slides.svg │ │ ├── file-earmark-spreadsheet-fill.svg │ │ ├── file-earmark-spreadsheet.svg │ │ ├── file-earmark-text-fill.svg │ │ ├── file-earmark-text.svg │ │ ├── file-earmark-word-fill.svg │ │ ├── file-earmark-word.svg │ │ ├── file-earmark-x-fill.svg │ │ ├── file-earmark-x.svg │ │ ├── file-earmark-zip-fill.svg │ │ ├── file-earmark-zip.svg │ │ ├── file-earmark.svg │ │ ├── file-easel-fill.svg │ │ ├── file-easel.svg │ │ ├── file-excel-fill.svg │ │ ├── file-excel.svg │ │ ├── file-fill.svg │ │ ├── file-font-fill.svg │ │ ├── file-font.svg │ │ ├── file-image-fill.svg │ │ ├── file-image.svg │ │ ├── file-lock-fill.svg │ │ ├── file-lock.svg │ │ ├── file-lock2-fill.svg │ │ ├── file-lock2.svg │ │ ├── file-medical-fill.svg │ │ ├── file-medical.svg │ │ ├── file-minus-fill.svg │ │ ├── file-minus.svg │ │ ├── file-music-fill.svg │ │ ├── file-music.svg │ │ ├── file-pdf-fill.svg │ │ ├── file-pdf.svg │ │ ├── file-person-fill.svg │ │ ├── file-person.svg │ │ ├── file-play-fill.svg │ │ ├── file-play.svg │ │ ├── file-plus-fill.svg │ │ ├── file-plus.svg │ │ ├── file-post-fill.svg │ │ ├── file-post.svg │ │ ├── file-ppt-fill.svg │ │ ├── file-ppt.svg │ │ ├── file-richtext-fill.svg │ │ ├── file-richtext.svg │ │ ├── file-ruled-fill.svg │ │ ├── file-ruled.svg │ │ ├── file-slides-fill.svg │ │ ├── file-slides.svg │ │ ├── file-spreadsheet-fill.svg │ │ ├── file-spreadsheet.svg │ │ ├── file-text-fill.svg │ │ ├── file-text.svg │ │ ├── file-word-fill.svg │ │ ├── file-word.svg │ │ ├── file-x-fill.svg │ │ ├── file-x.svg │ │ ├── file-zip-fill.svg │ │ ├── file-zip.svg │ │ ├── file.svg │ │ ├── files-alt.svg │ │ ├── files.svg │ │ ├── filetype-aac.svg │ │ ├── filetype-ai.svg │ │ ├── filetype-bmp.svg │ │ ├── filetype-cs.svg │ │ ├── filetype-css.svg │ │ ├── filetype-csv.svg │ │ ├── filetype-doc.svg │ │ ├── filetype-docx.svg │ │ ├── filetype-exe.svg │ │ ├── filetype-gif.svg │ │ ├── filetype-heic.svg │ │ ├── filetype-html.svg │ │ ├── filetype-java.svg │ │ ├── filetype-jpg.svg │ │ ├── filetype-js.svg │ │ ├── filetype-json.svg │ │ ├── filetype-jsx.svg │ │ ├── filetype-key.svg │ │ ├── filetype-m4p.svg │ │ ├── filetype-md.svg │ │ ├── filetype-mdx.svg │ │ ├── filetype-mov.svg │ │ ├── filetype-mp3.svg │ │ ├── filetype-mp4.svg │ │ ├── filetype-otf.svg │ │ ├── filetype-pdf.svg │ │ ├── filetype-php.svg │ │ ├── filetype-png.svg │ │ ├── filetype-ppt.svg │ │ ├── filetype-pptx.svg │ │ ├── filetype-psd.svg │ │ ├── filetype-py.svg │ │ ├── filetype-raw.svg │ │ ├── filetype-rb.svg │ │ ├── filetype-sass.svg │ │ ├── filetype-scss.svg │ │ ├── filetype-sh.svg │ │ ├── filetype-sql.svg │ │ ├── filetype-svg.svg │ │ ├── filetype-tiff.svg │ │ ├── filetype-tsx.svg │ │ ├── filetype-ttf.svg │ │ ├── filetype-txt.svg │ │ ├── filetype-wav.svg │ │ ├── filetype-woff.svg │ │ ├── filetype-xls.svg │ │ ├── filetype-xlsx.svg │ │ ├── filetype-xml.svg │ │ ├── filetype-yml.svg │ │ ├── film.svg │ │ ├── filter-circle-fill.svg │ │ ├── filter-circle.svg │ │ ├── filter-left.svg │ │ ├── filter-right.svg │ │ ├── filter-square-fill.svg │ │ ├── filter-square.svg │ │ ├── filter.svg │ │ ├── fingerprint.svg │ │ ├── fire.svg │ │ ├── flag-fill.svg │ │ ├── flag.svg │ │ ├── floppy-fill.svg │ │ ├── floppy.svg │ │ ├── floppy2-fill.svg │ │ ├── floppy2.svg │ │ ├── flower1.svg │ │ ├── flower2.svg │ │ ├── flower3.svg │ │ ├── folder-check.svg │ │ ├── folder-fill.svg │ │ ├── folder-minus.svg │ │ ├── folder-plus.svg │ │ ├── folder-symlink-fill.svg │ │ ├── folder-symlink.svg │ │ ├── folder-x.svg │ │ ├── folder.svg │ │ ├── folder2-open.svg │ │ ├── folder2.svg │ │ ├── font │ │ │ ├── bootstrap-icons.css │ │ │ ├── bootstrap-icons.json │ │ │ ├── bootstrap-icons.min.css │ │ │ ├── bootstrap-icons.scss │ │ │ └── fonts │ │ │ │ ├── bootstrap-icons.woff │ │ │ │ └── bootstrap-icons.woff2 │ │ ├── fonts.svg │ │ ├── forward-fill.svg │ │ ├── forward.svg │ │ ├── front.svg │ │ ├── fuel-pump-diesel-fill.svg │ │ ├── fuel-pump-diesel.svg │ │ ├── fuel-pump-fill.svg │ │ ├── fuel-pump.svg │ │ ├── fullscreen-exit.svg │ │ ├── fullscreen.svg │ │ ├── funnel-fill.svg │ │ ├── funnel.svg │ │ ├── gear-fill.svg │ │ ├── gear-wide-connected.svg │ │ ├── gear-wide.svg │ │ ├── gear.svg │ │ ├── gem.svg │ │ ├── gender-ambiguous.svg │ │ ├── gender-female.svg │ │ ├── gender-male.svg │ │ ├── gender-neuter.svg │ │ ├── gender-trans.svg │ │ ├── geo-alt-fill.svg │ │ ├── geo-alt.svg │ │ ├── geo-fill.svg │ │ ├── geo.svg │ │ ├── gift-fill.svg │ │ ├── gift.svg │ │ ├── git.svg │ │ ├── github.svg │ │ ├── gitlab.svg │ │ ├── globe-americas.svg │ │ ├── globe-asia-australia.svg │ │ ├── globe-central-south-asia.svg │ │ ├── globe-europe-africa.svg │ │ ├── globe.svg │ │ ├── globe2.svg │ │ ├── google-play.svg │ │ ├── google.svg │ │ ├── gpu-card.svg │ │ ├── graph-down-arrow.svg │ │ ├── graph-down.svg │ │ ├── graph-up-arrow.svg │ │ ├── graph-up.svg │ │ ├── grid-1x2-fill.svg │ │ ├── grid-1x2.svg │ │ ├── grid-3x2-gap-fill.svg │ │ ├── grid-3x2-gap.svg │ │ ├── grid-3x2.svg │ │ ├── grid-3x3-gap-fill.svg │ │ ├── grid-3x3-gap.svg │ │ ├── grid-3x3.svg │ │ ├── grid-fill.svg │ │ ├── grid.svg │ │ ├── grip-horizontal.svg │ │ ├── grip-vertical.svg │ │ ├── h-circle-fill.svg │ │ ├── h-circle.svg │ │ ├── h-square-fill.svg │ │ ├── h-square.svg │ │ ├── hammer.svg │ │ ├── hand-index-fill.svg │ │ ├── hand-index-thumb-fill.svg │ │ ├── hand-index-thumb.svg │ │ ├── hand-index.svg │ │ ├── hand-thumbs-down-fill.svg │ │ ├── hand-thumbs-down.svg │ │ ├── hand-thumbs-up-fill.svg │ │ ├── hand-thumbs-up.svg │ │ ├── handbag-fill.svg │ │ ├── handbag.svg │ │ ├── hash.svg │ │ ├── hdd-fill.svg │ │ ├── hdd-network-fill.svg │ │ ├── hdd-network.svg │ │ ├── hdd-rack-fill.svg │ │ ├── hdd-rack.svg │ │ ├── hdd-stack-fill.svg │ │ ├── hdd-stack.svg │ │ ├── hdd.svg │ │ ├── hdmi-fill.svg │ │ ├── hdmi.svg │ │ ├── headphones.svg │ │ ├── headset-vr.svg │ │ ├── headset.svg │ │ ├── heart-arrow.svg │ │ ├── heart-fill.svg │ │ ├── heart-half.svg │ │ ├── heart-pulse-fill.svg │ │ ├── heart-pulse.svg │ │ ├── heart.svg │ │ ├── heartbreak-fill.svg │ │ ├── heartbreak.svg │ │ ├── hearts.svg │ │ ├── heptagon-fill.svg │ │ ├── heptagon-half.svg │ │ ├── heptagon.svg │ │ ├── hexagon-fill.svg │ │ ├── hexagon-half.svg │ │ ├── hexagon.svg │ │ ├── highlighter.svg │ │ ├── highlights.svg │ │ ├── hospital-fill.svg │ │ ├── hospital.svg │ │ ├── hourglass-bottom.svg │ │ ├── hourglass-split.svg │ │ ├── hourglass-top.svg │ │ ├── hourglass.svg │ │ ├── house-add-fill.svg │ │ ├── house-add.svg │ │ ├── house-check-fill.svg │ │ ├── house-check.svg │ │ ├── house-dash-fill.svg │ │ ├── house-dash.svg │ │ ├── house-door-fill.svg │ │ ├── house-door.svg │ │ ├── house-down-fill.svg │ │ ├── house-down.svg │ │ ├── house-exclamation-fill.svg │ │ ├── house-exclamation.svg │ │ ├── house-fill.svg │ │ ├── house-gear-fill.svg │ │ ├── house-gear.svg │ │ ├── house-heart-fill.svg │ │ ├── house-heart.svg │ │ ├── house-lock-fill.svg │ │ ├── house-lock.svg │ │ ├── house-slash-fill.svg │ │ ├── house-slash.svg │ │ ├── house-up-fill.svg │ │ ├── house-up.svg │ │ ├── house-x-fill.svg │ │ ├── house-x.svg │ │ ├── house.svg │ │ ├── houses-fill.svg │ │ ├── houses.svg │ │ ├── hr.svg │ │ ├── hurricane.svg │ │ ├── hypnotize.svg │ │ ├── image-alt.svg │ │ ├── image-fill.svg │ │ ├── image.svg │ │ ├── images.svg │ │ ├── inbox-fill.svg │ │ ├── inbox.svg │ │ ├── inboxes-fill.svg │ │ ├── inboxes.svg │ │ ├── incognito.svg │ │ ├── indent.svg │ │ ├── infinity.svg │ │ ├── info-circle-fill.svg │ │ ├── info-circle.svg │ │ ├── info-lg.svg │ │ ├── info-square-fill.svg │ │ ├── info-square.svg │ │ ├── info.svg │ │ ├── input-cursor-text.svg │ │ ├── input-cursor.svg │ │ ├── instagram.svg │ │ ├── intersect.svg │ │ ├── journal-album.svg │ │ ├── journal-arrow-down.svg │ │ ├── journal-arrow-up.svg │ │ ├── journal-bookmark-fill.svg │ │ ├── journal-bookmark.svg │ │ ├── journal-check.svg │ │ ├── journal-code.svg │ │ ├── journal-medical.svg │ │ ├── journal-minus.svg │ │ ├── journal-plus.svg │ │ ├── journal-richtext.svg │ │ ├── journal-text.svg │ │ ├── journal-x.svg │ │ ├── journal.svg │ │ ├── journals.svg │ │ ├── joystick.svg │ │ ├── justify-left.svg │ │ ├── justify-right.svg │ │ ├── justify.svg │ │ ├── kanban-fill.svg │ │ ├── kanban.svg │ │ ├── key-fill.svg │ │ ├── key.svg │ │ ├── keyboard-fill.svg │ │ ├── keyboard.svg │ │ ├── ladder.svg │ │ ├── lamp-fill.svg │ │ ├── lamp.svg │ │ ├── laptop-fill.svg │ │ ├── laptop.svg │ │ ├── layer-backward.svg │ │ ├── layer-forward.svg │ │ ├── layers-fill.svg │ │ ├── layers-half.svg │ │ ├── layers.svg │ │ ├── layout-sidebar-inset-reverse.svg │ │ ├── layout-sidebar-inset.svg │ │ ├── layout-sidebar-reverse.svg │ │ ├── layout-sidebar.svg │ │ ├── layout-split.svg │ │ ├── layout-text-sidebar-reverse.svg │ │ ├── layout-text-sidebar.svg │ │ ├── layout-text-window-reverse.svg │ │ ├── layout-text-window.svg │ │ ├── layout-three-columns.svg │ │ ├── layout-wtf.svg │ │ ├── life-preserver.svg │ │ ├── lightbulb-fill.svg │ │ ├── lightbulb-off-fill.svg │ │ ├── lightbulb-off.svg │ │ ├── lightbulb.svg │ │ ├── lightning-charge-fill.svg │ │ ├── lightning-charge.svg │ │ ├── lightning-fill.svg │ │ ├── lightning.svg │ │ ├── line.svg │ │ ├── link-45deg.svg │ │ ├── link.svg │ │ ├── linkedin.svg │ │ ├── list-check.svg │ │ ├── list-columns-reverse.svg │ │ ├── list-columns.svg │ │ ├── list-nested.svg │ │ ├── list-ol.svg │ │ ├── list-stars.svg │ │ ├── list-task.svg │ │ ├── list-ul.svg │ │ ├── list.svg │ │ ├── lock-fill.svg │ │ ├── lock.svg │ │ ├── luggage-fill.svg │ │ ├── luggage.svg │ │ ├── lungs-fill.svg │ │ ├── lungs.svg │ │ ├── magic.svg │ │ ├── magnet-fill.svg │ │ ├── magnet.svg │ │ ├── mailbox-flag.svg │ │ ├── mailbox.svg │ │ ├── mailbox2-flag.svg │ │ ├── mailbox2.svg │ │ ├── map-fill.svg │ │ ├── map.svg │ │ ├── markdown-fill.svg │ │ ├── markdown.svg │ │ ├── marker-tip.svg │ │ ├── mask.svg │ │ ├── mastodon.svg │ │ ├── medium.svg │ │ ├── megaphone-fill.svg │ │ ├── megaphone.svg │ │ ├── memory.svg │ │ ├── menu-app-fill.svg │ │ ├── menu-app.svg │ │ ├── menu-button-fill.svg │ │ ├── menu-button-wide-fill.svg │ │ ├── menu-button-wide.svg │ │ ├── menu-button.svg │ │ ├── menu-down.svg │ │ ├── menu-up.svg │ │ ├── messenger.svg │ │ ├── meta.svg │ │ ├── mic-fill.svg │ │ ├── mic-mute-fill.svg │ │ ├── mic-mute.svg │ │ ├── mic.svg │ │ ├── microsoft-teams.svg │ │ ├── microsoft.svg │ │ ├── minecart-loaded.svg │ │ ├── minecart.svg │ │ ├── modem-fill.svg │ │ ├── modem.svg │ │ ├── moisture.svg │ │ ├── moon-fill.svg │ │ ├── moon-stars-fill.svg │ │ ├── moon-stars.svg │ │ ├── moon.svg │ │ ├── mortarboard-fill.svg │ │ ├── mortarboard.svg │ │ ├── motherboard-fill.svg │ │ ├── motherboard.svg │ │ ├── mouse-fill.svg │ │ ├── mouse.svg │ │ ├── mouse2-fill.svg │ │ ├── mouse2.svg │ │ ├── mouse3-fill.svg │ │ ├── mouse3.svg │ │ ├── music-note-beamed.svg │ │ ├── music-note-list.svg │ │ ├── music-note.svg │ │ ├── music-player-fill.svg │ │ ├── music-player.svg │ │ ├── newspaper.svg │ │ ├── nintendo-switch.svg │ │ ├── node-minus-fill.svg │ │ ├── node-minus.svg │ │ ├── node-plus-fill.svg │ │ ├── node-plus.svg │ │ ├── noise-reduction.svg │ │ ├── nut-fill.svg │ │ ├── nut.svg │ │ ├── nvidia.svg │ │ ├── nvme-fill.svg │ │ ├── nvme.svg │ │ ├── octagon-fill.svg │ │ ├── octagon-half.svg │ │ ├── octagon.svg │ │ ├── opencollective.svg │ │ ├── optical-audio-fill.svg │ │ ├── optical-audio.svg │ │ ├── option.svg │ │ ├── outlet.svg │ │ ├── p-circle-fill.svg │ │ ├── p-circle.svg │ │ ├── p-square-fill.svg │ │ ├── p-square.svg │ │ ├── paint-bucket.svg │ │ ├── palette-fill.svg │ │ ├── palette.svg │ │ ├── palette2.svg │ │ ├── paperclip.svg │ │ ├── paragraph.svg │ │ ├── pass-fill.svg │ │ ├── pass.svg │ │ ├── passport-fill.svg │ │ ├── passport.svg │ │ ├── patch-check-fill.svg │ │ ├── patch-check.svg │ │ ├── patch-exclamation-fill.svg │ │ ├── patch-exclamation.svg │ │ ├── patch-minus-fill.svg │ │ ├── patch-minus.svg │ │ ├── patch-plus-fill.svg │ │ ├── patch-plus.svg │ │ ├── patch-question-fill.svg │ │ ├── patch-question.svg │ │ ├── pause-btn-fill.svg │ │ ├── pause-btn.svg │ │ ├── pause-circle-fill.svg │ │ ├── pause-circle.svg │ │ ├── pause-fill.svg │ │ ├── pause.svg │ │ ├── paypal.svg │ │ ├── pc-display-horizontal.svg │ │ ├── pc-display.svg │ │ ├── pc-horizontal.svg │ │ ├── pc.svg │ │ ├── pci-card-network.svg │ │ ├── pci-card-sound.svg │ │ ├── pci-card.svg │ │ ├── peace-fill.svg │ │ ├── peace.svg │ │ ├── pen-fill.svg │ │ ├── pen.svg │ │ ├── pencil-fill.svg │ │ ├── pencil-square.svg │ │ ├── pencil.svg │ │ ├── pentagon-fill.svg │ │ ├── pentagon-half.svg │ │ ├── pentagon.svg │ │ ├── people-fill.svg │ │ ├── people.svg │ │ ├── percent.svg │ │ ├── person-add.svg │ │ ├── person-arms-up.svg │ │ ├── person-badge-fill.svg │ │ ├── person-badge.svg │ │ ├── person-bounding-box.svg │ │ ├── person-check-fill.svg │ │ ├── person-check.svg │ │ ├── person-circle.svg │ │ ├── person-dash-fill.svg │ │ ├── person-dash.svg │ │ ├── person-down.svg │ │ ├── person-exclamation.svg │ │ ├── person-fill-add.svg │ │ ├── person-fill-check.svg │ │ ├── person-fill-dash.svg │ │ ├── person-fill-down.svg │ │ ├── person-fill-exclamation.svg │ │ ├── person-fill-gear.svg │ │ ├── person-fill-lock.svg │ │ ├── person-fill-slash.svg │ │ ├── person-fill-up.svg │ │ ├── person-fill-x.svg │ │ ├── person-fill.svg │ │ ├── person-gear.svg │ │ ├── person-heart.svg │ │ ├── person-hearts.svg │ │ ├── person-lines-fill.svg │ │ ├── person-lock.svg │ │ ├── person-plus-fill.svg │ │ ├── person-plus.svg │ │ ├── person-raised-hand.svg │ │ ├── person-rolodex.svg │ │ ├── person-slash.svg │ │ ├── person-square.svg │ │ ├── person-standing-dress.svg │ │ ├── person-standing.svg │ │ ├── person-up.svg │ │ ├── person-vcard-fill.svg │ │ ├── person-vcard.svg │ │ ├── person-video.svg │ │ ├── person-video2.svg │ │ ├── person-video3.svg │ │ ├── person-walking.svg │ │ ├── person-wheelchair.svg │ │ ├── person-workspace.svg │ │ ├── person-x-fill.svg │ │ ├── person-x.svg │ │ ├── person.svg │ │ ├── phone-fill.svg │ │ ├── phone-flip.svg │ │ ├── phone-landscape-fill.svg │ │ ├── phone-landscape.svg │ │ ├── phone-vibrate-fill.svg │ │ ├── phone-vibrate.svg │ │ ├── phone.svg │ │ ├── pie-chart-fill.svg │ │ ├── pie-chart.svg │ │ ├── piggy-bank-fill.svg │ │ ├── piggy-bank.svg │ │ ├── pin-angle-fill.svg │ │ ├── pin-angle.svg │ │ ├── pin-fill.svg │ │ ├── pin-map-fill.svg │ │ ├── pin-map.svg │ │ ├── pin.svg │ │ ├── pinterest.svg │ │ ├── pip-fill.svg │ │ ├── pip.svg │ │ ├── play-btn-fill.svg │ │ ├── play-btn.svg │ │ ├── play-circle-fill.svg │ │ ├── play-circle.svg │ │ ├── play-fill.svg │ │ ├── play.svg │ │ ├── playstation.svg │ │ ├── plug-fill.svg │ │ ├── plug.svg │ │ ├── plugin.svg │ │ ├── plus-circle-dotted.svg │ │ ├── plus-circle-fill.svg │ │ ├── plus-circle.svg │ │ ├── plus-lg.svg │ │ ├── plus-slash-minus.svg │ │ ├── plus-square-dotted.svg │ │ ├── plus-square-fill.svg │ │ ├── plus-square.svg │ │ ├── plus.svg │ │ ├── postage-fill.svg │ │ ├── postage-heart-fill.svg │ │ ├── postage-heart.svg │ │ ├── postage.svg │ │ ├── postcard-fill.svg │ │ ├── postcard-heart-fill.svg │ │ ├── postcard-heart.svg │ │ ├── postcard.svg │ │ ├── power.svg │ │ ├── prescription.svg │ │ ├── prescription2.svg │ │ ├── printer-fill.svg │ │ ├── printer.svg │ │ ├── projector-fill.svg │ │ ├── projector.svg │ │ ├── puzzle-fill.svg │ │ ├── puzzle.svg │ │ ├── qr-code-scan.svg │ │ ├── qr-code.svg │ │ ├── question-circle-fill.svg │ │ ├── question-circle.svg │ │ ├── question-diamond-fill.svg │ │ ├── question-diamond.svg │ │ ├── question-lg.svg │ │ ├── question-octagon-fill.svg │ │ ├── question-octagon.svg │ │ ├── question-square-fill.svg │ │ ├── question-square.svg │ │ ├── question.svg │ │ ├── quora.svg │ │ ├── quote.svg │ │ ├── r-circle-fill.svg │ │ ├── r-circle.svg │ │ ├── r-square-fill.svg │ │ ├── r-square.svg │ │ ├── radar.svg │ │ ├── radioactive.svg │ │ ├── rainbow.svg │ │ ├── receipt-cutoff.svg │ │ ├── receipt.svg │ │ ├── reception-0.svg │ │ ├── reception-1.svg │ │ ├── reception-2.svg │ │ ├── reception-3.svg │ │ ├── reception-4.svg │ │ ├── record-btn-fill.svg │ │ ├── record-btn.svg │ │ ├── record-circle-fill.svg │ │ ├── record-circle.svg │ │ ├── record-fill.svg │ │ ├── record.svg │ │ ├── record2-fill.svg │ │ ├── record2.svg │ │ ├── recycle.svg │ │ ├── reddit.svg │ │ ├── regex.svg │ │ ├── repeat-1.svg │ │ ├── repeat.svg │ │ ├── reply-all-fill.svg │ │ ├── reply-all.svg │ │ ├── reply-fill.svg │ │ ├── reply.svg │ │ ├── rewind-btn-fill.svg │ │ ├── rewind-btn.svg │ │ ├── rewind-circle-fill.svg │ │ ├── rewind-circle.svg │ │ ├── rewind-fill.svg │ │ ├── rewind.svg │ │ ├── robot.svg │ │ ├── rocket-fill.svg │ │ ├── rocket-takeoff-fill.svg │ │ ├── rocket-takeoff.svg │ │ ├── rocket.svg │ │ ├── router-fill.svg │ │ ├── router.svg │ │ ├── rss-fill.svg │ │ ├── rss.svg │ │ ├── rulers.svg │ │ ├── safe-fill.svg │ │ ├── safe.svg │ │ ├── safe2-fill.svg │ │ ├── safe2.svg │ │ ├── save-fill.svg │ │ ├── save.svg │ │ ├── save2-fill.svg │ │ ├── save2.svg │ │ ├── scissors.svg │ │ ├── scooter.svg │ │ ├── screwdriver.svg │ │ ├── sd-card-fill.svg │ │ ├── sd-card.svg │ │ ├── search-heart-fill.svg │ │ ├── search-heart.svg │ │ ├── search.svg │ │ ├── segmented-nav.svg │ │ ├── send-arrow-down-fill.svg │ │ ├── send-arrow-down.svg │ │ ├── send-arrow-up-fill.svg │ │ ├── send-arrow-up.svg │ │ ├── send-check-fill.svg │ │ ├── send-check.svg │ │ ├── send-dash-fill.svg │ │ ├── send-dash.svg │ │ ├── send-exclamation-fill.svg │ │ ├── send-exclamation.svg │ │ ├── send-fill.svg │ │ ├── send-plus-fill.svg │ │ ├── send-plus.svg │ │ ├── send-slash-fill.svg │ │ ├── send-slash.svg │ │ ├── send-x-fill.svg │ │ ├── send-x.svg │ │ ├── send.svg │ │ ├── server.svg │ │ ├── shadows.svg │ │ ├── share-fill.svg │ │ ├── share.svg │ │ ├── shield-check.svg │ │ ├── shield-exclamation.svg │ │ ├── shield-fill-check.svg │ │ ├── shield-fill-exclamation.svg │ │ ├── shield-fill-minus.svg │ │ ├── shield-fill-plus.svg │ │ ├── shield-fill-x.svg │ │ ├── shield-fill.svg │ │ ├── shield-lock-fill.svg │ │ ├── shield-lock.svg │ │ ├── shield-minus.svg │ │ ├── shield-plus.svg │ │ ├── shield-shaded.svg │ │ ├── shield-slash-fill.svg │ │ ├── shield-slash.svg │ │ ├── shield-x.svg │ │ ├── shield.svg │ │ ├── shift-fill.svg │ │ ├── shift.svg │ │ ├── shop-window.svg │ │ ├── shop.svg │ │ ├── shuffle.svg │ │ ├── sign-dead-end-fill.svg │ │ ├── sign-dead-end.svg │ │ ├── sign-do-not-enter-fill.svg │ │ ├── sign-do-not-enter.svg │ │ ├── sign-intersection-fill.svg │ │ ├── sign-intersection-side-fill.svg │ │ ├── sign-intersection-side.svg │ │ ├── sign-intersection-t-fill.svg │ │ ├── sign-intersection-t.svg │ │ ├── sign-intersection-y-fill.svg │ │ ├── sign-intersection-y.svg │ │ ├── sign-intersection.svg │ │ ├── sign-merge-left-fill.svg │ │ ├── sign-merge-left.svg │ │ ├── sign-merge-right-fill.svg │ │ ├── sign-merge-right.svg │ │ ├── sign-no-left-turn-fill.svg │ │ ├── sign-no-left-turn.svg │ │ ├── sign-no-parking-fill.svg │ │ ├── sign-no-parking.svg │ │ ├── sign-no-right-turn-fill.svg │ │ ├── sign-no-right-turn.svg │ │ ├── sign-railroad-fill.svg │ │ ├── sign-railroad.svg │ │ ├── sign-stop-fill.svg │ │ ├── sign-stop-lights-fill.svg │ │ ├── sign-stop-lights.svg │ │ ├── sign-stop.svg │ │ ├── sign-turn-left-fill.svg │ │ ├── sign-turn-left.svg │ │ ├── sign-turn-right-fill.svg │ │ ├── sign-turn-right.svg │ │ ├── sign-turn-slight-left-fill.svg │ │ ├── sign-turn-slight-left.svg │ │ ├── sign-turn-slight-right-fill.svg │ │ ├── sign-turn-slight-right.svg │ │ ├── sign-yield-fill.svg │ │ ├── sign-yield.svg │ │ ├── signal.svg │ │ ├── signpost-2-fill.svg │ │ ├── signpost-2.svg │ │ ├── signpost-fill.svg │ │ ├── signpost-split-fill.svg │ │ ├── signpost-split.svg │ │ ├── signpost.svg │ │ ├── sim-fill.svg │ │ ├── sim-slash-fill.svg │ │ ├── sim-slash.svg │ │ ├── sim.svg │ │ ├── sina-weibo.svg │ │ ├── skip-backward-btn-fill.svg │ │ ├── skip-backward-btn.svg │ │ ├── skip-backward-circle-fill.svg │ │ ├── skip-backward-circle.svg │ │ ├── skip-backward-fill.svg │ │ ├── skip-backward.svg │ │ ├── skip-end-btn-fill.svg │ │ ├── skip-end-btn.svg │ │ ├── skip-end-circle-fill.svg │ │ ├── skip-end-circle.svg │ │ ├── skip-end-fill.svg │ │ ├── skip-end.svg │ │ ├── skip-forward-btn-fill.svg │ │ ├── skip-forward-btn.svg │ │ ├── skip-forward-circle-fill.svg │ │ ├── skip-forward-circle.svg │ │ ├── skip-forward-fill.svg │ │ ├── skip-forward.svg │ │ ├── skip-start-btn-fill.svg │ │ ├── skip-start-btn.svg │ │ ├── skip-start-circle-fill.svg │ │ ├── skip-start-circle.svg │ │ ├── skip-start-fill.svg │ │ ├── skip-start.svg │ │ ├── skype.svg │ │ ├── slack.svg │ │ ├── slash-circle-fill.svg │ │ ├── slash-circle.svg │ │ ├── slash-lg.svg │ │ ├── slash-square-fill.svg │ │ ├── slash-square.svg │ │ ├── slash.svg │ │ ├── sliders.svg │ │ ├── sliders2-vertical.svg │ │ ├── sliders2.svg │ │ ├── smartwatch.svg │ │ ├── snapchat.svg │ │ ├── snow.svg │ │ ├── snow2.svg │ │ ├── snow3.svg │ │ ├── sort-alpha-down-alt.svg │ │ ├── sort-alpha-down.svg │ │ ├── sort-alpha-up-alt.svg │ │ ├── sort-alpha-up.svg │ │ ├── sort-down-alt.svg │ │ ├── sort-down.svg │ │ ├── sort-numeric-down-alt.svg │ │ ├── sort-numeric-down.svg │ │ ├── sort-numeric-up-alt.svg │ │ ├── sort-numeric-up.svg │ │ ├── sort-up-alt.svg │ │ ├── sort-up.svg │ │ ├── soundwave.svg │ │ ├── sourceforge.svg │ │ ├── speaker-fill.svg │ │ ├── speaker.svg │ │ ├── speedometer.svg │ │ ├── speedometer2.svg │ │ ├── spellcheck.svg │ │ ├── spotify.svg │ │ ├── square-fill.svg │ │ ├── square-half.svg │ │ ├── square.svg │ │ ├── stack-overflow.svg │ │ ├── stack.svg │ │ ├── star-fill.svg │ │ ├── star-half.svg │ │ ├── star.svg │ │ ├── stars.svg │ │ ├── steam.svg │ │ ├── stickies-fill.svg │ │ ├── stickies.svg │ │ ├── sticky-fill.svg │ │ ├── sticky.svg │ │ ├── stop-btn-fill.svg │ │ ├── stop-btn.svg │ │ ├── stop-circle-fill.svg │ │ ├── stop-circle.svg │ │ ├── stop-fill.svg │ │ ├── stop.svg │ │ ├── stoplights-fill.svg │ │ ├── stoplights.svg │ │ ├── stopwatch-fill.svg │ │ ├── stopwatch.svg │ │ ├── strava.svg │ │ ├── stripe.svg │ │ ├── subscript.svg │ │ ├── substack.svg │ │ ├── subtract.svg │ │ ├── suit-club-fill.svg │ │ ├── suit-club.svg │ │ ├── suit-diamond-fill.svg │ │ ├── suit-diamond.svg │ │ ├── suit-heart-fill.svg │ │ ├── suit-heart.svg │ │ ├── suit-spade-fill.svg │ │ ├── suit-spade.svg │ │ ├── suitcase-fill.svg │ │ ├── suitcase-lg-fill.svg │ │ ├── suitcase-lg.svg │ │ ├── suitcase.svg │ │ ├── suitcase2-fill.svg │ │ ├── suitcase2.svg │ │ ├── sun-fill.svg │ │ ├── sun.svg │ │ ├── sunglasses.svg │ │ ├── sunrise-fill.svg │ │ ├── sunrise.svg │ │ ├── sunset-fill.svg │ │ ├── sunset.svg │ │ ├── superscript.svg │ │ ├── symmetry-horizontal.svg │ │ ├── symmetry-vertical.svg │ │ ├── table.svg │ │ ├── tablet-fill.svg │ │ ├── tablet-landscape-fill.svg │ │ ├── tablet-landscape.svg │ │ ├── tablet.svg │ │ ├── tag-fill.svg │ │ ├── tag.svg │ │ ├── tags-fill.svg │ │ ├── tags.svg │ │ ├── taxi-front-fill.svg │ │ ├── taxi-front.svg │ │ ├── telegram.svg │ │ ├── telephone-fill.svg │ │ ├── telephone-forward-fill.svg │ │ ├── telephone-forward.svg │ │ ├── telephone-inbound-fill.svg │ │ ├── telephone-inbound.svg │ │ ├── telephone-minus-fill.svg │ │ ├── telephone-minus.svg │ │ ├── telephone-outbound-fill.svg │ │ ├── telephone-outbound.svg │ │ ├── telephone-plus-fill.svg │ │ ├── telephone-plus.svg │ │ ├── telephone-x-fill.svg │ │ ├── telephone-x.svg │ │ ├── telephone.svg │ │ ├── tencent-qq.svg │ │ ├── terminal-dash.svg │ │ ├── terminal-fill.svg │ │ ├── terminal-plus.svg │ │ ├── terminal-split.svg │ │ ├── terminal-x.svg │ │ ├── terminal.svg │ │ ├── text-center.svg │ │ ├── text-indent-left.svg │ │ ├── text-indent-right.svg │ │ ├── text-left.svg │ │ ├── text-paragraph.svg │ │ ├── text-right.svg │ │ ├── text-wrap.svg │ │ ├── textarea-resize.svg │ │ ├── textarea-t.svg │ │ ├── textarea.svg │ │ ├── thermometer-half.svg │ │ ├── thermometer-high.svg │ │ ├── thermometer-low.svg │ │ ├── thermometer-snow.svg │ │ ├── thermometer-sun.svg │ │ ├── thermometer.svg │ │ ├── threads-fill.svg │ │ ├── threads.svg │ │ ├── three-dots-vertical.svg │ │ ├── three-dots.svg │ │ ├── thunderbolt-fill.svg │ │ ├── thunderbolt.svg │ │ ├── ticket-detailed-fill.svg │ │ ├── ticket-detailed.svg │ │ ├── ticket-fill.svg │ │ ├── ticket-perforated-fill.svg │ │ ├── ticket-perforated.svg │ │ ├── ticket.svg │ │ ├── tiktok.svg │ │ ├── toggle-off.svg │ │ ├── toggle-on.svg │ │ ├── toggle2-off.svg │ │ ├── toggle2-on.svg │ │ ├── toggles.svg │ │ ├── toggles2.svg │ │ ├── tools.svg │ │ ├── tornado.svg │ │ ├── train-freight-front-fill.svg │ │ ├── train-freight-front.svg │ │ ├── train-front-fill.svg │ │ ├── train-front.svg │ │ ├── train-lightrail-front-fill.svg │ │ ├── train-lightrail-front.svg │ │ ├── translate.svg │ │ ├── transparency.svg │ │ ├── trash-fill.svg │ │ ├── trash.svg │ │ ├── trash2-fill.svg │ │ ├── trash2.svg │ │ ├── trash3-fill.svg │ │ ├── trash3.svg │ │ ├── tree-fill.svg │ │ ├── tree.svg │ │ ├── trello.svg │ │ ├── triangle-fill.svg │ │ ├── triangle-half.svg │ │ ├── triangle.svg │ │ ├── trophy-fill.svg │ │ ├── trophy.svg │ │ ├── tropical-storm.svg │ │ ├── truck-flatbed.svg │ │ ├── truck-front-fill.svg │ │ ├── truck-front.svg │ │ ├── truck.svg │ │ ├── tsunami.svg │ │ ├── tv-fill.svg │ │ ├── tv.svg │ │ ├── twitch.svg │ │ ├── twitter-x.svg │ │ ├── twitter.svg │ │ ├── type-bold.svg │ │ ├── type-h1.svg │ │ ├── type-h2.svg │ │ ├── type-h3.svg │ │ ├── type-h4.svg │ │ ├── type-h5.svg │ │ ├── type-h6.svg │ │ ├── type-italic.svg │ │ ├── type-strikethrough.svg │ │ ├── type-underline.svg │ │ ├── type.svg │ │ ├── ubuntu.svg │ │ ├── ui-checks-grid.svg │ │ ├── ui-checks.svg │ │ ├── ui-radios-grid.svg │ │ ├── ui-radios.svg │ │ ├── umbrella-fill.svg │ │ ├── umbrella.svg │ │ ├── unindent.svg │ │ ├── union.svg │ │ ├── unity.svg │ │ ├── universal-access-circle.svg │ │ ├── universal-access.svg │ │ ├── unlock-fill.svg │ │ ├── unlock.svg │ │ ├── upc-scan.svg │ │ ├── upc.svg │ │ ├── upload.svg │ │ ├── usb-c-fill.svg │ │ ├── usb-c.svg │ │ ├── usb-drive-fill.svg │ │ ├── usb-drive.svg │ │ ├── usb-fill.svg │ │ ├── usb-micro-fill.svg │ │ ├── usb-micro.svg │ │ ├── usb-mini-fill.svg │ │ ├── usb-mini.svg │ │ ├── usb-plug-fill.svg │ │ ├── usb-plug.svg │ │ ├── usb-symbol.svg │ │ ├── usb.svg │ │ ├── valentine.svg │ │ ├── valentine2.svg │ │ ├── vector-pen.svg │ │ ├── view-list.svg │ │ ├── view-stacked.svg │ │ ├── vignette.svg │ │ ├── vimeo.svg │ │ ├── vinyl-fill.svg │ │ ├── vinyl.svg │ │ ├── virus.svg │ │ ├── virus2.svg │ │ ├── voicemail.svg │ │ ├── volume-down-fill.svg │ │ ├── volume-down.svg │ │ ├── volume-mute-fill.svg │ │ ├── volume-mute.svg │ │ ├── volume-off-fill.svg │ │ ├── volume-off.svg │ │ ├── volume-up-fill.svg │ │ ├── volume-up.svg │ │ ├── vr.svg │ │ ├── wallet-fill.svg │ │ ├── wallet.svg │ │ ├── wallet2.svg │ │ ├── watch.svg │ │ ├── water.svg │ │ ├── webcam-fill.svg │ │ ├── webcam.svg │ │ ├── wechat.svg │ │ ├── whatsapp.svg │ │ ├── wifi-1.svg │ │ ├── wifi-2.svg │ │ ├── wifi-off.svg │ │ ├── wifi.svg │ │ ├── wikipedia.svg │ │ ├── wind.svg │ │ ├── window-dash.svg │ │ ├── window-desktop.svg │ │ ├── window-dock.svg │ │ ├── window-fullscreen.svg │ │ ├── window-plus.svg │ │ ├── window-sidebar.svg │ │ ├── window-split.svg │ │ ├── window-stack.svg │ │ ├── window-x.svg │ │ ├── window.svg │ │ ├── windows.svg │ │ ├── wordpress.svg │ │ ├── wrench-adjustable-circle-fill.svg │ │ ├── wrench-adjustable-circle.svg │ │ ├── wrench-adjustable.svg │ │ ├── wrench.svg │ │ ├── x-circle-fill.svg │ │ ├── x-circle.svg │ │ ├── x-diamond-fill.svg │ │ ├── x-diamond.svg │ │ ├── x-lg.svg │ │ ├── x-octagon-fill.svg │ │ ├── x-octagon.svg │ │ ├── x-square-fill.svg │ │ ├── x-square.svg │ │ ├── x.svg │ │ ├── xbox.svg │ │ ├── yelp.svg │ │ ├── yin-yang.svg │ │ ├── youtube.svg │ │ ├── zoom-in.svg │ │ └── zoom-out.svg │ ├── bootstrap.min.css │ ├── clusterize.min.css │ ├── codemirror.min.css │ └── fonts_JetBrainsMono_SourceCodePro.css ├── danger-svgrepo-com.svg ├── delete-button-svgrepo-com.svg ├── drag-handle-svgrepo-com.svg ├── favicon │ ├── apple-touch-icon.png │ ├── favicon-96x96.png │ ├── favicon.ico │ ├── favicon.svg │ ├── site.webmanifest │ ├── web-app-manifest-192x192.png │ └── web-app-manifest-512x512.png ├── gear-spinner.svg ├── glasses-svgrepo-com.png ├── glasses-svgrepo-com.svg ├── glassestall.png ├── glassestall2.png ├── glassestall3.png ├── hide-icon.svg ├── hide-icon2.svg └── link-icon.svg ├── benchmark.html ├── doc ├── README.md ├── definitions-contexts-and-modules.md ├── diagrams │ ├── eval-tree-constant1 │ │ ├── convert.sh │ │ ├── eval-tree-constant1.pdf │ │ ├── eval-tree-constant1.png │ │ └── eval-tree-constant1.tex │ └── eval-tree-states1 │ │ ├── convert.sh │ │ ├── eval-tree-states1.pdf │ │ ├── eval-tree-states1.png │ │ └── eval-tree-states1.tex ├── embed.html ├── embedding.md ├── how-tlc-computes-states.md ├── notes │ ├── 22nondeterminism.pdf │ ├── A Simple Graph-Based Intermediate Representation.pdf │ ├── Non-Deterministic Algorithms.pdf │ ├── constraint-dynamic.pdf │ ├── log.md │ ├── renesse-tla-lecture.pdf │ ├── spec-systems-ch17_the-meaning-of-a-module.pdf │ ├── specifying-systems-how-tlc-computes-states.pdf │ ├── specifying-systems-how-tlc-evaluates-expressions.pdf │ ├── tla2-guide.pdf │ ├── todo.md │ └── toolbox-trace-view.png ├── testing.md ├── tla-evaluation.md └── tla-modules.md ├── examples └── node │ ├── index.js │ ├── package-lock.json │ └── package.json ├── index.html ├── js ├── addon │ └── mode │ │ └── simple.js ├── app.js ├── benchmark.js ├── eval.js ├── hash-sum │ ├── hash-sum.js │ ├── license │ └── readme.md ├── lib │ ├── bootstrap.bundle.min.js │ ├── clusterize.min.js │ ├── codemirror.min.js │ ├── cytoscape-dagre.min.js │ ├── cytoscape.min.js │ ├── dagre.js │ ├── immutable.min.js │ ├── jquery-3.3.1.min.js │ ├── jquery-ui.min.js │ ├── lodash.min.js │ ├── mithril.min.js │ ├── popper.min.js │ └── viz-standalone.js ├── main.js ├── object_hash.js ├── old_tests.js ├── test.js ├── test_spec.js ├── tlamode.js ├── tree-sitter-tlaplus.wasm ├── tree-sitter.js ├── tree-sitter.wasm └── worker.js ├── specs ├── AbstractDynamicRaft.tla ├── AbstractRaft.cfg ├── AbstractRaft.tla ├── AbstractRaft_anim.tla ├── AsyncRaft.tla ├── Bakery.cfg ├── Bakery.tla ├── BatteryRelay.tla ├── BlockingQueue.tla ├── CabbageGoatWolf.cfg ├── CabbageGoatWolf.tla ├── DiningPhilosophers.tla ├── EWD998.tla ├── Elevator_anim.tla ├── FlexiblePaxos.tla ├── GameOfLife.tla ├── LamportMutex.tla ├── LargeInit.tla ├── LogExample.tla ├── MongoLoglessDynamicRaft.tla ├── MongoRaftReconfig.cfg ├── MongoRaftReconfig.tla ├── MongoRaftReconfig_anim.tla ├── MultiPaxos.tla ├── Paxos.tla ├── QuorumProfiling.tla ├── RaftWithReconfigBroken.cfg ├── RaftWithReconfigBroken.tla ├── RaftWithReconfigJointConsensus.cfg ├── RaftWithReconfigJointConsensus.tla ├── RaftWithReconfigSingleServer.cfg ├── RaftWithReconfigSingleServer.tla ├── Simple.cfg ├── Simple.tla ├── SingleNode1.tla ├── SingleNode2.tla ├── SnapshotIsolation.tla ├── TwoPhase.cfg ├── TwoPhase.tla ├── TwoPhase_anim.tla ├── VectorClocks.tla ├── ambiguous_actions.tla ├── counter.c ├── counter.cfg ├── counter.tla ├── lockserver.tla ├── lockserver_anim.tla ├── lockserver_comments.tla ├── lockserver_nodefs.tla ├── lockserver_nodefs_anim.tla ├── quicksort.cfg ├── quicksort.tla ├── raft_reconfig_cex_trace.txt ├── repl.tla ├── simple0.tla ├── simple1.cfg ├── simple1.tla ├── simple2.tla ├── simple3.tla ├── simple4.tla ├── simple5.tla ├── simple_bad_op.tla ├── simple_election.tla ├── simple_len.tla ├── simple_lockserver.tla ├── simple_lockserver_with_constants.tla ├── simple_nondet1.tla ├── simple_nums.tla ├── simple_test.tla ├── simple_test_ambiguous.tla ├── states.json ├── test_missing_assigned_vars.tla └── with_state_graphs │ ├── A1.tla │ ├── A1_var_y.tla │ ├── A1_var_y_const_d.tla │ ├── A2.tla │ ├── AbstractRaft_BecomeLeader.cfg │ ├── AbstractRaft_BecomeLeader.tla │ ├── AbstractRaft_BecomeLeader.tla.dot │ ├── AbstractRaft_BecomeLeader.tla.dot.json │ ├── AsyncTerminationDetection.cfg │ ├── AsyncTerminationDetection.tla │ ├── AsyncTerminationDetection.tla.dot │ ├── AsyncTerminationDetection.tla.dot.json │ ├── AsyncTerminationDetection_init.cfg │ ├── AsyncTerminationDetection_init.tla │ ├── AsyncTerminationDetection_init.tla.dot │ ├── AsyncTerminationDetection_init.tla.dot.json │ ├── ClientCentric.tla │ ├── ClientCentricExecutable.tla │ ├── CommunityModules-deps.jar │ ├── CommunityModules.jar │ ├── Consistency.cfg │ ├── Consistency.tla │ ├── Consistency.tla.dot │ ├── Consistency.tla.dot.json │ ├── CosmosDB.tla │ ├── CosmosDBClient.tla │ ├── DieHard.cfg │ ├── DieHard.tla │ ├── DieHard.tla.dot │ ├── DieHard.tla.dot.json │ ├── DieHarder.cfg │ ├── DieHarder.tla │ ├── DieHarder.tla.dot │ ├── DieHarder.tla.dot.json │ ├── DieHarder.tla.json │ ├── EWD998_bounded1.cfg │ ├── EWD998_bounded1.tla │ ├── EWD998_bounded1.tla.dot │ ├── EWD998_bounded1.tla.dot.json │ ├── EWD998_depth_bounded1.cfg │ ├── EWD998_depth_bounded1.tla │ ├── EWD998_depth_bounded1.tla.dot │ ├── EWD998_depth_bounded1.tla.dot.json │ ├── EWD998_regression1.cfg │ ├── EWD998_regression1.tla │ ├── EWD998_regression1.tla.dot │ ├── EWD998_regression1.tla.dot.json │ ├── EWD998_regression1.tla.json │ ├── Elevator.cfg │ ├── Elevator.tla │ ├── Elevator.tla.dot │ ├── Elevator.tla.dot.json │ ├── LinQueue.tla │ ├── Linearizability.tla │ ├── LogExample_bounded.cfg │ ├── LogExample_bounded.tla │ ├── LogExample_bounded.tla.dot │ ├── LogExample_bounded.tla.dot.json │ ├── MDB.tla │ ├── Microwave.cfg │ ├── Microwave.tla │ ├── Microwave.tla.dot │ ├── Microwave.tla.dot.json │ ├── NQueens_N3.cfg │ ├── NQueens_N3.tla │ ├── NQueens_N3.tla.dot │ ├── NQueens_N3.tla.dot.json │ ├── NaiadClock.cfg │ ├── NaiadClock.tla │ ├── Paxos_1a.cfg │ ├── Paxos_1a.tla │ ├── Paxos_1a.tla.dot │ ├── Paxos_1a.tla.dot.json │ ├── Paxos_1b_case1.cfg │ ├── Paxos_1b_case1.tla │ ├── Paxos_1b_case1.tla.dot │ ├── Paxos_1b_case1.tla.dot.json │ ├── Prisoners.cfg │ ├── Prisoners.tla │ ├── Prisoners.tla.dot │ ├── Prisoners.tla.dot.json │ ├── README.md │ ├── RaftMongo.cfg │ ├── RaftMongo.tla │ ├── RaftMongo.tla.dot │ ├── RaftMongo.tla.dot.json │ ├── RaftWithReconfigBroken_Bounded.cfg │ ├── RaftWithReconfigBroken_Bounded.tla │ ├── RaftWithReconfigBroken_Bounded.tla.dot │ ├── RaftWithReconfigBroken_Bounded.tla.dot.json │ ├── S1.cfg │ ├── S1.tla │ ├── S1.tla.dot │ ├── S1.tla.dot.json │ ├── ShardTxn.cfg │ ├── ShardTxn.tla │ ├── ShardTxn.tla.dot │ ├── ShardTxn.tla.dot.json │ ├── TestLinQueue.cfg │ ├── TestLinQueue.tla │ ├── TestLinQueue.tla.dot │ ├── TestLinQueue.tla.dot.json │ ├── TwoPhase.cfg │ ├── TwoPhase.tla │ ├── TwoPhase.tla.dot │ ├── TwoPhase.tla.dot.json │ ├── TwoPhase.tla.json │ ├── TwoPhase_RMPrepare.cfg │ ├── TwoPhase_RMPrepare.tla │ ├── TwoPhase_RMPrepare.tla.dot │ ├── TwoPhase_RMPrepare.tla.dot.json │ ├── TxnsCollectionIncarnation.cfg │ ├── TxnsCollectionIncarnation.tla │ ├── TxnsMoveRange.cfg │ ├── TxnsMoveRange.tla │ ├── TxnsMoveRange.tla.dot │ ├── TxnsMoveRange.tla.dot.json │ ├── Util.tla │ ├── Utilities.tla │ ├── conj_parsing.cfg │ ├── conj_parsing.tla │ ├── conj_parsing.tla.dot │ ├── conj_parsing.tla.dot.json │ ├── def_before_var_decl.cfg │ ├── def_before_var_decl.tla │ ├── def_before_var_decl.tla.dot │ ├── def_before_var_decl.tla.dot.json │ ├── empty_domain_and_seq.cfg │ ├── empty_domain_and_seq.tla │ ├── empty_domain_and_seq.tla.dot │ ├── empty_domain_and_seq.tla.dot.json │ ├── gen_state_graphs.sh │ ├── lockserver_constant_comment.cfg │ ├── lockserver_constant_comment.tla │ ├── lockserver_constant_comment.tla.dot │ ├── lockserver_constant_comment.tla.dot.json │ ├── lockserver_constant_comment.tla.json │ ├── lockserver_nodefs.cfg │ ├── lockserver_nodefs.tla │ ├── lockserver_nodefs.tla.dot │ ├── lockserver_nodefs.tla.dot.json │ ├── lockserver_nodefs1.cfg │ ├── lockserver_nodefs1.tla │ ├── lockserver_nodefs1.tla.dot │ ├── lockserver_nodefs1.tla.dot.json │ ├── lockserver_nodefs_unchanged.cfg │ ├── lockserver_nodefs_unchanged.tla │ ├── lockserver_nodefs_unchanged.tla.dot │ ├── lockserver_nodefs_unchanged.tla.dot.json │ ├── mldr_init_only.cfg │ ├── mldr_init_only.tla │ ├── mldr_init_only.tla.dot │ ├── mldr_init_only.tla.dot.json │ ├── mldr_init_only.tla.json │ ├── operator_param_clash_before_const_def.cfg │ ├── operator_param_clash_before_const_def.tla │ ├── operator_param_clash_before_const_def.tla.dot │ ├── operator_param_clash_before_const_def.tla.dot.json │ ├── operator_param_clash_before_var_def.cfg │ ├── operator_param_clash_before_var_def.tla │ ├── operator_param_clash_before_var_def.tla.dot │ ├── operator_param_clash_before_var_def.tla.dot.json │ ├── operator_param_clash_before_var_def_inter.cfg │ ├── operator_param_clash_before_var_def_inter.tla │ ├── operator_param_clash_before_var_def_inter.tla.dot │ ├── operator_param_clash_before_var_def_inter.tla.dot.json │ ├── pre_module_comments.cfg │ ├── pre_module_comments.tla │ ├── pre_module_comments.tla.dot │ ├── pre_module_comments.tla.dot.json │ ├── primed_tuple.cfg │ ├── primed_tuple.tla │ ├── primed_tuple.tla.dot │ ├── primed_tuple.tla.dot.json │ ├── primed_tuple.tla.json │ ├── qspinlock.cfg │ ├── qspinlock.tla │ ├── record_literal_eval.cfg │ ├── record_literal_eval.tla │ ├── record_literal_eval.tla.dot │ ├── record_literal_eval.tla.dot.json │ ├── record_literal_eval.tla.json │ ├── seq_append.cfg │ ├── seq_append.tla │ ├── seq_append.tla.dot │ ├── seq_append.tla.dot.json │ ├── seq_append.tla.json │ ├── set_dot_notation.cfg │ ├── set_dot_notation.tla │ ├── set_dot_notation.tla.dot │ ├── set_dot_notation.tla.dot.json │ ├── set_dot_notation.tla.json │ ├── show521677.cfg │ ├── show521677.tla │ ├── show521677.tla.dot │ ├── show521677.tla.dot.json │ ├── simple1.cfg │ ├── simple1.tla │ ├── simple1.tla.dot │ ├── simple1.tla.dot.json │ ├── simple1.tla.json │ ├── simple1_multiline_block_comment.cfg │ ├── simple1_multiline_block_comment.tla │ ├── simple1_multiline_block_comment.tla.dot │ ├── simple1_multiline_block_comment.tla.dot.json │ ├── simple1_multiline_block_comment.tla.json │ ├── simple2.cfg │ ├── simple2.tla │ ├── simple2.tla.dot │ ├── simple2.tla.dot.json │ ├── simple2.tla.json │ ├── simple3.cfg │ ├── simple3.tla │ ├── simple3.tla.dot │ ├── simple3.tla.dot.json │ ├── simple3.tla.json │ ├── simple5.cfg │ ├── simple5.tla │ ├── simple5.tla.dot │ ├── simple5.tla.dot.json │ ├── simple5.tla.json │ ├── simple6.cfg │ ├── simple6.tla │ ├── simple6.tla.dot │ ├── simple6.tla.dot.json │ ├── simple6.tla.json │ ├── simple7.cfg │ ├── simple7.dot │ ├── simple7.dot.json │ ├── simple7.tla │ ├── simple7.tla.dot │ ├── simple7.tla.dot.json │ ├── simple7.tla.json │ ├── simple8.cfg │ ├── simple8.tla │ ├── simple8.tla.dot │ ├── simple8.tla.dot.json │ ├── simple_arith.cfg │ ├── simple_arith.tla │ ├── simple_arith.tla.dot │ ├── simple_arith.tla.dot.json │ ├── simple_boolean.cfg │ ├── simple_boolean.tla │ ├── simple_boolean.tla.dot │ ├── simple_boolean.tla.dot.json │ ├── simple_choose.cfg │ ├── simple_choose.tla │ ├── simple_choose.tla.dot │ ├── simple_choose.tla.dot.json │ ├── simple_conjunction_constant.cfg │ ├── simple_conjunction_constant.tla │ ├── simple_conjunction_constant.tla.dot │ ├── simple_conjunction_constant.tla.dot.json │ ├── simple_constant_operator.cfg │ ├── simple_constant_operator.tla │ ├── simple_constant_operator.tla.dot │ ├── simple_constant_operator.tla.dot.json │ ├── simple_constant_operator_infix.cfg │ ├── simple_constant_operator_infix.tla │ ├── simple_constant_operator_infix.tla.dot │ ├── simple_constant_operator_infix.tla.dot.json │ ├── simple_defined_var_assignment.cfg │ ├── simple_defined_var_assignment.tla │ ├── simple_defined_var_assignment.tla.dot │ ├── simple_defined_var_assignment.tla.dot.json │ ├── simple_defined_var_assignment_transitive.cfg │ ├── simple_defined_var_assignment_transitive.tla │ ├── simple_defined_var_assignment_transitive.tla.dot │ ├── simple_defined_var_assignment_transitive.tla.dot.json │ ├── simple_definition.cfg │ ├── simple_definition.tla │ ├── simple_definition.tla.dot │ ├── simple_definition.tla.dot.json │ ├── simple_definition2.cfg │ ├── simple_definition2.tla │ ├── simple_definition2.tla.dot │ ├── simple_definition2.tla.dot.json │ ├── simple_disjunction_constant.cfg │ ├── simple_disjunction_constant.tla │ ├── simple_disjunction_constant.tla.dot │ ├── simple_disjunction_constant.tla.dot.json │ ├── simple_disjunction_init.cfg │ ├── simple_disjunction_init.tla │ ├── simple_disjunction_init.tla.dot │ ├── simple_disjunction_init.tla.dot.json │ ├── simple_domain.cfg │ ├── simple_domain.tla │ ├── simple_domain.tla.dot │ ├── simple_domain.tla.dot.json │ ├── simple_enabled.cfg │ ├── simple_enabled.tla │ ├── simple_enabled.tla.dot │ ├── simple_enabled.tla.dot.json │ ├── simple_extends.cfg │ ├── simple_extends.tla │ ├── simple_extends.tla.dot │ ├── simple_extends.tla.dot.json │ ├── simple_extends_M1.tla │ ├── simple_extends_M2.tla │ ├── simple_extends_M2b.tla │ ├── simple_extends_M2c.tla │ ├── simple_extends_M3.tla │ ├── simple_extends_M4.tla │ ├── simple_extends_M5.tla │ ├── simple_extends_M5b.tla │ ├── simple_extends_M5c.tla │ ├── simple_extends_M6.tla │ ├── simple_extends_M7.tla │ ├── simple_extends_M7_LOCAL_def.tla │ ├── simple_extends_M8.tla │ ├── simple_extends_M9.tla │ ├── simple_extends_instance.cfg │ ├── simple_extends_instance.tla │ ├── simple_extends_instance.tla.dot │ ├── simple_extends_instance.tla.dot.json │ ├── simple_extends_instance_def.cfg │ ├── simple_extends_instance_def.tla │ ├── simple_extends_instance_def.tla.dot │ ├── simple_extends_instance_def.tla.dot.json │ ├── simple_extends_instance_def_parameterized.cfg │ ├── simple_extends_instance_def_parameterized.tla │ ├── simple_extends_instance_def_parameterized.tla.dot │ ├── simple_extends_instance_def_parameterized.tla.dot.json │ ├── simple_extends_instance_def_parameterized_var_subst.tla.dot │ ├── simple_extends_instance_def_parameterized_var_subst.tla.dot.json │ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.cfg │ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.tla │ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.tla.dot │ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.tla.dot.json │ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.cfg │ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.tla │ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.tla.dot │ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.tla.dot.json │ ├── simple_extends_instance_def_transitive.cfg │ ├── simple_extends_instance_def_transitive.tla │ ├── simple_extends_instance_def_transitive.tla.dot │ ├── simple_extends_instance_def_transitive.tla.dot.json │ ├── simple_extends_instance_def_transitive_import.cfg │ ├── simple_extends_instance_def_transitive_import.tla │ ├── simple_extends_instance_def_transitive_import.tla.dot │ ├── simple_extends_instance_def_transitive_import.tla.dot.json │ ├── simple_extends_instance_def_user_infix_op.cfg │ ├── simple_extends_instance_def_user_infix_op.tla │ ├── simple_extends_instance_def_user_infix_op.tla.dot │ ├── simple_extends_instance_def_user_infix_op.tla.dot.json │ ├── simple_extends_instance_def_with_subst.cfg │ ├── simple_extends_instance_def_with_subst.tla │ ├── simple_extends_instance_def_with_subst.tla.dot │ ├── simple_extends_instance_def_with_subst.tla.dot.json │ ├── simple_extends_instance_def_with_var_subst.cfg │ ├── simple_extends_instance_def_with_var_subst.tla │ ├── simple_extends_instance_def_with_var_subst.tla.dot │ ├── simple_extends_instance_def_with_var_subst.tla.dot.json │ ├── simple_extends_instance_def_with_var_subst_and_primed_action.cfg │ ├── simple_extends_instance_def_with_var_subst_and_primed_action.tla │ ├── simple_extends_instance_def_with_var_subst_and_primed_action.tla.dot │ ├── simple_extends_instance_def_with_var_subst_and_primed_action.tla.dot.json │ ├── simple_extends_instance_def_with_var_subst_default_name.cfg │ ├── simple_extends_instance_def_with_var_subst_default_name.tla │ ├── simple_extends_instance_def_with_var_subst_default_name.tla.dot │ ├── simple_extends_instance_def_with_var_subst_default_name.tla.dot.json │ ├── simple_extends_instance_def_with_var_subst_one_implicit.cfg │ ├── simple_extends_instance_def_with_var_subst_one_implicit.tla │ ├── simple_extends_instance_def_with_var_subst_one_implicit.tla.dot │ ├── simple_extends_instance_def_with_var_subst_one_implicit.tla.dot.json │ ├── simple_extends_instance_def_with_var_subst_same_name.cfg │ ├── simple_extends_instance_def_with_var_subst_same_name.tla │ ├── simple_extends_instance_def_with_var_subst_same_name.tla.dot │ ├── simple_extends_instance_def_with_var_subst_same_name.tla.dot.json │ ├── simple_extends_instance_duplicate_def_names.cfg │ ├── simple_extends_instance_duplicate_def_names.tla │ ├── simple_extends_instance_duplicate_def_names.tla.dot │ ├── simple_extends_instance_duplicate_def_names.tla.dot.json │ ├── simple_extends_instance_transitive.cfg │ ├── simple_extends_instance_transitive.tla │ ├── simple_extends_instance_transitive.tla.dot │ ├── simple_extends_instance_transitive.tla.dot.json │ ├── simple_extends_instance_with_const_subst.cfg │ ├── simple_extends_instance_with_const_subst.tla │ ├── simple_extends_instance_with_const_subst.tla.dot │ ├── simple_extends_instance_with_const_subst.tla.dot.json │ ├── simple_extends_instance_with_var_and_const_subst.cfg │ ├── simple_extends_instance_with_var_and_const_subst.tla │ ├── simple_extends_instance_with_var_and_const_subst.tla.dot │ ├── simple_extends_instance_with_var_and_const_subst.tla.dot.json │ ├── simple_extends_instance_with_var_and_const_subst_transitive.cfg │ ├── simple_extends_instance_with_var_and_const_subst_transitive.tla │ ├── simple_extends_instance_with_var_and_const_subst_transitive.tla.dot │ ├── simple_extends_instance_with_var_and_const_subst_transitive.tla.dot.json │ ├── simple_extends_instance_with_var_subst.cfg │ ├── simple_extends_instance_with_var_subst.tla │ ├── simple_extends_instance_with_var_subst.tla.dot │ ├── simple_extends_instance_with_var_subst.tla.dot.json │ ├── simple_extends_instance_with_var_subst_identity.cfg │ ├── simple_extends_instance_with_var_subst_identity.tla │ ├── simple_extends_instance_with_var_subst_identity.tla.dot │ ├── simple_extends_instance_with_var_subst_identity.tla.dot.json │ ├── simple_extends_local_def.cfg │ ├── simple_extends_local_def.tla │ ├── simple_extends_local_def.tla.dot │ ├── simple_extends_local_def.tla.dot.json │ ├── simple_extends_with_var.cfg │ ├── simple_extends_with_var.tla │ ├── simple_extends_with_var.tla.dot │ ├── simple_extends_with_var.tla.dot.json │ ├── simple_extends_with_var_and_const.cfg │ ├── simple_extends_with_var_and_const.tla │ ├── simple_extends_with_var_and_const.tla.dot │ ├── simple_extends_with_var_and_const.tla.dot.json │ ├── simple_fcn_def.cfg │ ├── simple_fcn_def.tla │ ├── simple_fcn_def.tla.dot │ ├── simple_fcn_def.tla.dot.json │ ├── simple_fcn_literal.cfg │ ├── simple_fcn_literal.tla │ ├── simple_fcn_literal.tla.dot │ ├── simple_fcn_literal.tla.dot.json │ ├── simple_fcn_polymorphism.cfg │ ├── simple_fcn_polymorphism.tla │ ├── simple_fcn_polymorphism.tla.dot │ ├── simple_fcn_polymorphism.tla.dot.json │ ├── simple_folds.cfg │ ├── simple_folds.tla │ ├── simple_folds.tla.dot │ ├── simple_folds.tla.dot.json │ ├── simple_if_then.cfg │ ├── simple_if_then.tla │ ├── simple_if_then.tla.dot │ ├── simple_if_then.tla.dot.json │ ├── simple_implies.cfg │ ├── simple_implies.tla │ ├── simple_implies.tla.dot │ ├── simple_implies.tla.dot.json │ ├── simple_infix_def.cfg │ ├── simple_infix_def.tla │ ├── simple_infix_def.tla.dot │ ├── simple_infix_def.tla.dot.json │ ├── simple_lambda.cfg │ ├── simple_lambda.tla │ ├── simple_lambda.tla.dot │ ├── simple_lambda.tla.dot.json │ ├── simple_lambda_letin.cfg │ ├── simple_lambda_letin.tla │ ├── simple_lambda_letin.tla.dot │ ├── simple_lambda_letin.tla.dot.json │ ├── simple_lazy.cfg │ ├── simple_lazy.tla │ ├── simple_lazy.tla.dot │ ├── simple_lazy.tla.dot.json │ ├── simple_letin.cfg │ ├── simple_letin.tla │ ├── simple_letin.tla.dot │ ├── simple_letin.tla.dot.json │ ├── simple_letin_fn_def.cfg │ ├── simple_letin_fn_def.tla │ ├── simple_letin_fn_def.tla.dot │ ├── simple_letin_fn_def.tla.dot.json │ ├── simple_mod3_counter.cfg │ ├── simple_mod3_counter.tla │ ├── simple_mod3_counter.tla.dot │ ├── simple_mod3_counter.tla.dot.json │ ├── simple_multiline.cfg │ ├── simple_multiline.tla │ ├── simple_multiline.tla.dot │ ├── simple_multiline.tla.dot.json │ ├── simple_negation.cfg │ ├── simple_negation.tla │ ├── simple_negation.tla.dot │ ├── simple_negation.tla.dot.json │ ├── simple_negation.tla.json │ ├── simple_nested_lambda.cfg │ ├── simple_nested_lambda.tla │ ├── simple_nested_lambda.tla.dot │ ├── simple_nested_lambda.tla.dot.json │ ├── simple_operator.cfg │ ├── simple_operator.tla │ ├── simple_operator.tla.dot │ ├── simple_operator.tla.dot.json │ ├── simple_primed.cfg │ ├── simple_primed.tla │ ├── simple_primed.tla.dot │ ├── simple_primed.tla.dot.json │ ├── simple_primed_defs.cfg │ ├── simple_primed_defs.tla │ ├── simple_primed_defs.tla.dot │ ├── simple_primed_defs.tla.dot.json │ ├── simple_quant.cfg │ ├── simple_quant.tla │ ├── simple_quant.tla.dot │ ├── simple_quant.tla.dot.json │ ├── simple_quant2.cfg │ ├── simple_quant2.tla │ ├── simple_quant2.tla.dot │ ├── simple_quant2.tla.dot.json │ ├── simple_quant_multi.cfg │ ├── simple_quant_multi.tla │ ├── simple_quant_multi.tla.dot │ ├── simple_quant_multi.tla.dot.json │ ├── simple_quant_tuple.cfg │ ├── simple_quant_tuple.tla │ ├── simple_quant_tuple.tla.dot │ ├── simple_quant_tuple.tla.dot.json │ ├── simple_record.cfg │ ├── simple_record.tla │ ├── simple_record.tla.dot │ ├── simple_record.tla.dot.json │ ├── simple_recursive.cfg │ ├── simple_recursive.tla │ ├── simple_recursive.tla.dot │ ├── simple_recursive.tla.dot.json │ ├── simple_seq.cfg │ ├── simple_seq.tla │ ├── simple_seq.tla.dot │ ├── simple_seq.tla.dot.json │ ├── simple_seq_ext.cfg │ ├── simple_seq_ext.tla │ ├── simple_seq_ext.tla.dot │ ├── simple_seq_update.cfg │ ├── simple_seq_update.tla │ ├── simple_seq_update.tla.dot │ ├── simple_seq_update.tla.dot.json │ ├── simple_seq_update2.cfg │ ├── simple_seq_update2.tla │ ├── simple_seq_update2.tla.dot │ ├── simple_seq_update2.tla.dot.json │ ├── simple_seq_update3.cfg │ ├── simple_seq_update3.tla │ ├── simple_seq_update3.tla.dot │ ├── simple_seq_update3.tla.dot.json │ ├── simple_set_of_fns.cfg │ ├── simple_set_of_fns.tla │ ├── simple_set_of_fns.tla.dot │ ├── simple_set_of_fns.tla.dot.json │ ├── simple_setfiltermap.cfg │ ├── simple_setfiltermap.tla │ ├── simple_setfiltermap.tla.dot │ ├── simple_setfiltermap.tla.dot.json │ ├── simple_sets.cfg │ ├── simple_sets.tla │ ├── simple_sets.tla.dot │ ├── simple_sets.tla.dot.json │ ├── simple_strings.cfg │ ├── simple_strings.tla │ ├── simple_strings.tla.dot │ ├── simple_strings.tla.dot.json │ ├── simple_subset.cfg │ ├── simple_subset.tla │ ├── simple_subset.tla.dot │ ├── simple_subset.tla.dot.json │ ├── simple_tlc_fn.cfg │ ├── simple_tlc_fn.tla │ ├── simple_tlc_fn.tla.dot │ ├── simple_tlc_fn.tla.dot.json │ ├── simple_tlc_fn_compose.cfg │ ├── simple_tlc_fn_compose.tla │ ├── simple_tlc_fn_compose.tla.dot │ ├── simple_tlc_fn_compose.tla.dot.json │ ├── simple_tlc_ops.cfg │ ├── simple_tlc_ops.tla │ ├── simple_tlc_ops.tla.dot │ ├── simple_tlc_ops.tla.dot.json │ ├── simple_unchanged.cfg │ ├── simple_unchanged.tla │ ├── simple_unchanged.tla.dot │ ├── simple_unchanged.tla.dot.json │ ├── simple_unchanged_nested_def.cfg │ ├── simple_unchanged_nested_def.tla │ ├── simple_unchanged_nested_def.tla.dot │ ├── simple_unchanged_nested_def.tla.dot.json │ ├── simple_unchanged_nested_tuple.cfg │ ├── simple_unchanged_nested_tuple.tla │ ├── simple_unchanged_nested_tuple.tla.dot │ ├── simple_unchanged_nested_tuple.tla.dot.json │ ├── simple_unchanged_nested_tuple_def.cfg │ ├── simple_unchanged_nested_tuple_def.tla │ ├── simple_unchanged_nested_tuple_def.tla.dot │ ├── simple_unchanged_nested_tuple_def.tla.dot.json │ ├── simple_unchanged_no_tuple.cfg │ ├── simple_unchanged_no_tuple.tla │ ├── simple_unchanged_no_tuple.tla.dot │ ├── simple_unchanged_no_tuple.tla.dot.json │ ├── simple_unchanged_with_quant.cfg │ ├── simple_unchanged_with_quant.tla │ ├── simple_unchanged_with_quant.tla.dot │ ├── simple_unchanged_with_quant.tla.dot.json │ ├── simple_var_tuple.cfg │ ├── simple_var_tuple.tla │ ├── simple_var_tuple.tla.dot │ ├── simple_var_tuple.tla.dot.json │ ├── tla2tools.jar │ ├── tla_case_with_state_assignment.cfg │ ├── tla_case_with_state_assignment.tla │ ├── tla_case_with_state_assignment.tla.dot │ ├── tla_case_with_state_assignment.tla.dot.json │ ├── tla_expr_eval.cfg │ ├── tla_expr_eval.dot │ ├── tla_expr_eval.dot.json │ ├── tla_expr_eval.tla │ ├── tla_expr_eval.tla.dot │ ├── tla_expr_eval.tla.dot.json │ └── tla_expr_eval.tla.json ├── spectacle.code-workspace ├── style.css └── test.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.DS_Store 2 | states/ 3 | .jekyll-cache 4 | *.aux 5 | *.log 6 | *.out 7 | *.bbl 8 | *.gz 9 | *.blg 10 | *.fdb_latexmk 11 | *.fls 12 | *.vtc 13 | *.DS_Store 14 | *.old 15 | *.dvi 16 | *.xcp 17 | *.nav 18 | *.snm 19 | *.toc 20 | node_modules/ -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | serve: 2 | python3 -m http.server 3 | 4 | open: 5 | open http://localhost:8000 6 | 7 | test: 8 | cd specs/with_state_graphs && bash gen_state_graphs.sh -------------------------------------------------------------------------------- /assets/Roboto-VariableFont_wdth,wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/Roboto-VariableFont_wdth,wght.ttf -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/1-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/1-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/1-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/7-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/7-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/7-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/align-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/align-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/align-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/align-middle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/align-start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/align-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/amd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/app.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down-left-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down-right-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-left-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-left-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-right-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-right-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up-left-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up-right-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bag-dash-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bag-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/ban-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/ban.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bar-chart-line-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/battery.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bell-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bookmark-dash-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bookmark-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bookmark-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bookshelf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/border-all.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bounding-box.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/box2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/box2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/brilliance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/bucket-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar-minus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar-range-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar3-event-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar3-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/calendar3-range-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/camera-video-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/capsule.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-down-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-down-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-left-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-left-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-right-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-right-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-up-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-up-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/cash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chat-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chat-left-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chat-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chat-right-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chat-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/check-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/check2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-compact-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-compact-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-compact-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-compact-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/circle-half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/clock-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/cloudy-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/columns.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/compass-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/cone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/credit-card-2-back-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/credit-card-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/currency-yen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/cursor-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dash-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dash-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dash-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dash-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/diamond-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dice-1-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dice-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dice-2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/disc-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/display-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/door-closed-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/door-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/easel3-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/easel3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/egg-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/eject-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/emoji-expressionless-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/exclamation-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/exclamation-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/exclude.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/explicit-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/eye-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-break-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-check-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-earmark-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-earmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-minus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-play-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-plus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file-ruled-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/filter-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/filter-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2 -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/forward-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/front.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/funnel-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/gender-female.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/gender-male.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/gender-neuter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/geo-alt-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/h-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/h-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/h-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/heartbreak-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/hexagon-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/hexagon-half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/hexagon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/image-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/key-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/ladder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/laptop-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/laptop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/layout-sidebar-reverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/layout-sidebar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/layout-split.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/lightning-charge-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/lightning-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/lock-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/magnet-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/magnet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/mask.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/microsoft.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/mouse-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/mouse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/mouse2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/option.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/paperclip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/pause-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/peace-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/pentagon-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/person-dash-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/person-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/person-heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/phone-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/phone-landscape-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/phone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/pie-chart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/pie-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/pip-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/play-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/play-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/play-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/plus-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/plus-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/plus-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/power.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/record2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/reply-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/rulers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/segmented-nav.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/share-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/shift-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/signpost-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/signpost-split-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/signpost.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/skip-end-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/skip-end-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/skip-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/skip-start-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/skip-start-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/skip-start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/slash-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/slash-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/slash-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/slash-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/slash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/square-half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/stop-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/stop-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/stop-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/strava.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/substack.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/subtract.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/suit-diamond-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/suit-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/tablet-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/tablet-landscape-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/tag-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/three-dots-vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/three-dots.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/tiktok.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/toggle-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/toggle-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/toggle2-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/toggle2-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/triangle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/tv-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/twitch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/twitter-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/type-h1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/type-h4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/type-underline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/union.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/unlock-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/usb-c-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/usb-c.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/usb-drive-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/usb-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/vinyl-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/voicemail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/volume-off-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/x-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/bootstrap-icons-1.11.3/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/clusterize.min.css: -------------------------------------------------------------------------------- 1 | .clusterize-scroll{max-height:200px;overflow:auto}.clusterize-extra-row{margin-top:0!important;margin-bottom:0!important}.clusterize-extra-row.clusterize-keep-parity{display:none}.clusterize-content{outline:0;counter-reset:clusterize-counter}.clusterize-no-data td{text-align:center} 2 | /*# sourceMappingURL=clusterize.min.css.map */ -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /assets/favicon/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/favicon-96x96.png -------------------------------------------------------------------------------- /assets/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/favicon.ico -------------------------------------------------------------------------------- /assets/favicon/web-app-manifest-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/web-app-manifest-192x192.png -------------------------------------------------------------------------------- /assets/favicon/web-app-manifest-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/web-app-manifest-512x512.png -------------------------------------------------------------------------------- /assets/glasses-svgrepo-com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glasses-svgrepo-com.png -------------------------------------------------------------------------------- /assets/glassestall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glassestall.png -------------------------------------------------------------------------------- /assets/glassestall2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glassestall2.png -------------------------------------------------------------------------------- /assets/glassestall3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glassestall3.png -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- 1 | # TLA+ Web Explorer 2 | 3 | - [How the TLA+ Interpreter Evaluates Expressions](tla-evaluation.md) 4 | - [How the TLA+ Interpreter is Tested](testing.md) 5 | - [Definitions, Contexts, and Module Instantiation](definitions-contexts-and-modules.md) 6 | 7 | -------------------------------------------------------------------------------- /doc/diagrams/eval-tree-constant1/convert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | convert -density 300 eval-tree-constant1.pdf -quality 90 eval-tree-constant1.png 3 | -------------------------------------------------------------------------------- /doc/diagrams/eval-tree-constant1/eval-tree-constant1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-constant1/eval-tree-constant1.pdf -------------------------------------------------------------------------------- /doc/diagrams/eval-tree-constant1/eval-tree-constant1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-constant1/eval-tree-constant1.png -------------------------------------------------------------------------------- /doc/diagrams/eval-tree-states1/convert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | convert -density 300 eval-tree-states1.pdf -quality 90 -colorspace RGB eval-tree-states1.png 3 | -------------------------------------------------------------------------------- /doc/diagrams/eval-tree-states1/eval-tree-states1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-states1/eval-tree-states1.pdf -------------------------------------------------------------------------------- /doc/diagrams/eval-tree-states1/eval-tree-states1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-states1/eval-tree-states1.png -------------------------------------------------------------------------------- /doc/notes/22nondeterminism.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/22nondeterminism.pdf -------------------------------------------------------------------------------- /doc/notes/A Simple Graph-Based Intermediate Representation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/A Simple Graph-Based Intermediate Representation.pdf -------------------------------------------------------------------------------- /doc/notes/Non-Deterministic Algorithms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/Non-Deterministic Algorithms.pdf -------------------------------------------------------------------------------- /doc/notes/constraint-dynamic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/constraint-dynamic.pdf -------------------------------------------------------------------------------- /doc/notes/renesse-tla-lecture.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/renesse-tla-lecture.pdf -------------------------------------------------------------------------------- /doc/notes/spec-systems-ch17_the-meaning-of-a-module.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/spec-systems-ch17_the-meaning-of-a-module.pdf -------------------------------------------------------------------------------- /doc/notes/specifying-systems-how-tlc-computes-states.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/specifying-systems-how-tlc-computes-states.pdf -------------------------------------------------------------------------------- /doc/notes/specifying-systems-how-tlc-evaluates-expressions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/specifying-systems-how-tlc-evaluates-expressions.pdf -------------------------------------------------------------------------------- /doc/notes/tla2-guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/tla2-guide.pdf -------------------------------------------------------------------------------- /doc/notes/toolbox-trace-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/toolbox-trace-view.png -------------------------------------------------------------------------------- /examples/node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "@tlaplus/tree-sitter-tlaplus": "1.2.4", 4 | "tree-sitter": "^0.21.1", 5 | "lodash": "^4.17.21" 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /js/tree-sitter-tlaplus.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/js/tree-sitter-tlaplus.wasm -------------------------------------------------------------------------------- /js/tree-sitter.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/js/tree-sitter.wasm -------------------------------------------------------------------------------- /specs/AbstractRaft.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | Nil=Nil 5 | Server = {n1,n2,n3} 6 | Secondary = Secondary 7 | Primary = Primary 8 | MaxLogLen = 2 9 | MaxTerm = 3 10 | MaxConfigVersion = 3 11 | InitTerm = 0 12 | 13 | 14 | INVARIANT StateMachineSafety 15 | 16 | \* INVARIANT OnePrimaryPerTerm 17 | 18 | \* TODO: Liveness -------------------------------------------------------------------------------- /specs/Bakery.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT N = 2 -------------------------------------------------------------------------------- /specs/CabbageGoatWolf.cfg: -------------------------------------------------------------------------------- 1 | 2 | SPECIFICATION 3 | Spec 4 | 5 | INVARIANT 6 | TypeOK 7 | NotSolved 8 | 9 | PROPERTIES 10 | \* Termination 11 | 12 | CHECK_DEADLOCK 13 | FALSE -------------------------------------------------------------------------------- /specs/LargeInit.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE LargeInit ---- 2 | 3 | \* Spec with many initial states. 4 | 5 | VARIABLE x,y,z 6 | 7 | N == 11 8 | 9 | Init == 10 | /\ x \in [a : 1..N, b : 1..N, c : 1..N] 11 | /\ y \in 1..N 12 | /\ z \in 1..N 13 | 14 | Next == 15 | /\ x' = x 16 | /\ y' = y 17 | /\ z' = z 18 | 19 | ==== 20 | -------------------------------------------------------------------------------- /specs/Simple.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT N = 3 -------------------------------------------------------------------------------- /specs/TwoPhase.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/counter.c: -------------------------------------------------------------------------------- 1 | #include 2 | int main(int argc, char const *argv[]) 3 | { 4 | int x = 0; 5 | int N = 50 * 10000000; 6 | for(int i=0;i {}] 8 | 9 | Next == 10 | \/ \E b \in {0,1}, c \in {88,99} : x' = [x EXCEPT ![b] = x[b] \cup {c}] 11 | 12 | ============================================================================= -------------------------------------------------------------------------------- /specs/simple3.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple2 ------------------------ 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == x \in [{1,2} -> {3,4}] 7 | Next == x' = x 8 | 9 | ============================================================================= -------------------------------------------------------------------------------- /specs/simple4.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple4 ------------------------ 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == 7 | /\ x = 5 8 | 9 | Next == 10 | \E b \in {0,1}, c \in {8,9} : x' = c + b + x 11 | 12 | ============================================================================= -------------------------------------------------------------------------------- /specs/simple5.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple5 ------------------------ 2 | EXTENDS Naturals 3 | 4 | VARIABLE x,y,z 5 | 6 | Init == 7 | /\ x = 0 8 | /\ y = 0 9 | /\ z = 0 10 | 11 | Next == 12 | /\ x' \in {1,2} 13 | /\ y' \in {4,5} 14 | /\ z' \in {7,8} 15 | 16 | ============================================================================= -------------------------------------------------------------------------------- /specs/simple_bad_op.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_bad_op ---- 2 | EXTENDS TLC, Naturals, Integers, Sequences, FiniteSets 3 | 4 | VARIABLE x 5 | 6 | Init == 7 | \/ x = \E a, 8 | b, 9 | c, 10 | d \in {1,2,3}: 11 | a = 2 12 | \/ x = 2 + UnknownOp(2) 13 | Next == UNCHANGED x 14 | 15 | ==== -------------------------------------------------------------------------------- /specs/simple_len.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_len ---- 2 | EXTENDS TLC, Naturals, Sequences 3 | 4 | VARIABLES x 5 | 6 | Init == x = <<>> 7 | 8 | Next == x' = Len(x) 9 | 10 | ==== -------------------------------------------------------------------------------- /specs/simple_nums.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple_nums ------------------------ 2 | EXTENDS Naturals, Integers 3 | 4 | VARIABLE x 5 | Init == x = 1 6 | 7 | A == x' = x + 1 8 | B == x' = (4) 9 | 10 | Next == 11 | \/ A 12 | \* \/ A 13 | \/ B 14 | ==== -------------------------------------------------------------------------------- /specs/simple_test.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple_test ------------------------ 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | VARIABLE y 6 | 7 | Init == 8 | /\ x = 0 9 | /\ y = 0 10 | 11 | Add == UNCHANGED <> 12 | 13 | Next == Add 14 | 15 | 16 | 17 | ============================================================================= -------------------------------------------------------------------------------- /specs/simple_test_ambiguous.tla: -------------------------------------------------------------------------------- 1 | ---------------------- MODULE simple_test_ambiguous ------------------------- 2 | EXTENDS Naturals 3 | VARIABLES count 4 | Init == count = 0 5 | Incr(N) == count' = count + N 6 | Next == Incr(1) \/ Incr(2) 7 | Spec == Init /\ [][Next]_count 8 | ============================================================ -------------------------------------------------------------------------------- /specs/test_missing_assigned_vars.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE test_missing_assigned_vars ---- 2 | EXTENDS TLC 3 | 4 | VARIABLES x, y 5 | 6 | Init == x = 1 /\ y = 2 7 | 8 | A == x' = 3 /\ y' = 4 9 | B == x' = 5 10 | 11 | Next == A \/ B 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/A1.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE A1 ---- 2 | EXTENDS Naturals 3 | C == 66 4 | Val == C + 4 5 | 6 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/A1_var_y.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE A1_var_y ---- 2 | EXTENDS Naturals 3 | 4 | VARIABLES y 5 | 6 | InitY == y = 66 7 | 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/A1_var_y_const_d.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE A1_var_y_const_d ---- 2 | EXTENDS Naturals 3 | 4 | CONSTANT d 5 | VARIABLES y 6 | 7 | InitY == y = 66 + d 8 | 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/A2.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE A2 ---- 2 | EXTENDS Naturals 3 | C == 33 4 | Val == C + 7 5 | 6 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/AbstractRaft_BecomeLeader.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | Nil=Nil 5 | Server = {"n1","n2","n3"} 6 | Secondary = Secondary 7 | Primary = Primary 8 | InitTerm = 0 -------------------------------------------------------------------------------- /specs/with_state_graphs/AsyncTerminationDetection.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/AsyncTerminationDetection_init.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/CommunityModules-deps.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/specs/with_state_graphs/CommunityModules-deps.jar -------------------------------------------------------------------------------- /specs/with_state_graphs/CommunityModules.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/specs/with_state_graphs/CommunityModules.jar -------------------------------------------------------------------------------- /specs/with_state_graphs/Consistency.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/DieHard.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/DieHarder.cfg: -------------------------------------------------------------------------------- 1 | CONSTANTS Goal = 4 2 | Jug <- MCJug 3 | Capacity <- MCCapacity 4 | 5 | INIT Init 6 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/EWD998_bounded1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/EWD998_depth_bounded1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/EWD998_regression1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/Elevator.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/LogExample_bounded.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/Microwave.cfg: -------------------------------------------------------------------------------- 1 | CONSTANTS 2 | ImplementStartSafety = FALSE 3 | ImplementOpenDoorSafety = FALSE 4 | 5 | INIT Init 6 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/NQueens_N3.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT PlaceQueen 3 | CONSTANT N=3 -------------------------------------------------------------------------------- /specs/with_state_graphs/NaiadClock.cfg: -------------------------------------------------------------------------------- 1 | SPECIFICATION Spec 2 | 3 | CONSTANTS 4 | Point = {p1,p2} 5 | Proc = {a,b} -------------------------------------------------------------------------------- /specs/with_state_graphs/Paxos_1a.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/Paxos_1b_case1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/Prisoners.cfg: -------------------------------------------------------------------------------- 1 | CONSTANT Prisoner = {"p1", "p2", "p3"} 2 | Counter = "p1" 3 | INIT Init 4 | NEXT Next 5 | -------------------------------------------------------------------------------- /specs/with_state_graphs/README.md: -------------------------------------------------------------------------------- 1 | To re-generate the JSON state graphs for the TLA+ specs in this directory, run the `gen_state_graphs.sh` script. These JSON state graph dumps for each spec are used for the TLC <-> Javascript interpreter conformance tests located [here](https://github.com/will62794/tla-web/blob/65c7e9f1febb21eecce4cf86e5ffd57578c4f90e/js/test.js#L834-L854). -------------------------------------------------------------------------------- /specs/with_state_graphs/RaftMongo.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT Follower = "Follower" 4 | CONSTANT Leader = "Leader" 5 | CONSTANT Nil = "Nil" 6 | CONSTANT Candidate = "Candidate" 7 | CONSTANT Server = {"n1"} -------------------------------------------------------------------------------- /specs/with_state_graphs/RaftWithReconfigBroken_Bounded.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | Server = {"s1","s2","s3"} 5 | MaxTerm=2 6 | MaxLogLen=2 7 | 8 | \* INVARIANT NoTwoPrimariesInSameTerm 9 | \* INVARIANT NeverRollbackCommitted 10 | 11 | \* INVARIANT CommittedSafety 12 | CONSTRAINT StateConstraint 13 | \* SYMMETRY Symmetry -------------------------------------------------------------------------------- /specs/with_state_graphs/S1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/S1.tla: -------------------------------------------------------------------------------- 1 | \* See https://github.com/will62794/tla-web/issues/31. 2 | -------------------------------- MODULE S1 ------------------------------- 3 | VARIABLES p 4 | 5 | Init == p = FALSE 6 | 7 | Next == p' \in BOOLEAN 8 | ============================================================================ -------------------------------------------------------------------------------- /specs/with_state_graphs/TestLinQueue.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/TestLinQueue.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 3500083964333073195 [label="check = TRUE",style = filled] 6 | 3500083964333073195 -> 3500083964333073195 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 3500083964333073195;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/TwoPhase.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/TwoPhase_RMPrepare.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/TxnsMoveRange.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | 4 | CONSTANTS 5 | MIGRATIONS = 1 6 | TXN_STMTS = 1 7 | 8 | Txns = {"t1"} 9 | NameSpaces = {"ns1"} 10 | Shards = {"s1", "s2"} 11 | Keys = {"k1", "k2"} -------------------------------------------------------------------------------- /specs/with_state_graphs/conj_parsing.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/conj_parsing.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE conj_parsing ---- 2 | EXTENDS TLC, Naturals 3 | 4 | 5 | VARIABLE x,y,z 6 | 7 | Init == x = 1 /\ y = 2 /\ z = 30 8 | 9 | Next == 10 | /\ x' = (x + 1) % 2 11 | /\ \E c \in {5,6} : y' = (y + c) % 2 12 | /\ z' = (z + 1) % 2 13 | 14 | vars == <> 15 | 16 | Spec == Init /\ [][Next]_vars 17 | 18 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/def_before_var_decl.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/empty_domain_and_seq.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/lockserver_constant_comment.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | Server = {"s1", "s2"} 5 | Client = {"c1","c2"} -------------------------------------------------------------------------------- /specs/with_state_graphs/lockserver_nodefs.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/lockserver_nodefs1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/lockserver_nodefs_unchanged.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/mldr_init_only.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/operator_param_clash_before_const_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT c = 12 4 | -------------------------------------------------------------------------------- /specs/with_state_graphs/operator_param_clash_before_var_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/operator_param_clash_before_var_def_inter.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/pre_module_comments.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/pre_module_comments.tla: -------------------------------------------------------------------------------- 1 | a 2 | ------------------------------- MODULE pre_module_comments ------------------------------- 3 | EXTENDS Integers 4 | 5 | VARIABLE x 6 | 7 | Init == 8 | x = 2 9 | 10 | Next == 11 | x' = 2 12 | 13 | ===== -------------------------------------------------------------------------------- /specs/with_state_graphs/pre_module_comments.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -5039642576729477619 [label="x = 2",style = filled] 6 | -5039642576729477619 -> -5039642576729477619 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -5039642576729477619;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/primed_tuple.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/primed_tuple.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE primed_tuple ---- 2 | EXTENDS TLC, Naturals 3 | 4 | VARIABLE x 5 | VARIABLE y 6 | 7 | Init == x = 0 /\ y = 0 8 | Next == UNCHANGED <> 9 | 10 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/primed_tuple.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 1317622219392791164 [label="/\\ x = 0\n/\\ y = 0",style = filled] 6 | 1317622219392791164 -> 1317622219392791164 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 1317622219392791164;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/qspinlock.cfg: -------------------------------------------------------------------------------- 1 | SPECIFICATION Spec 2 | CONSTANT defaultInitValue = defaultInitValue 3 | \* Add statements after this line. 4 | 5 | CONSTANTS 6 | CPUS = {p1, p2} 7 | NoCPU = null 8 | MAX_NODES = 1 9 | PENDING_LOOPS = 1 10 | 11 | \* INVARIANTS TypeInv 12 | \* ExclInv 13 | 14 | \*PROPERTIES LockAll 15 | \* LockAny 16 | 17 | \* SYMMETRY Perms 18 | -------------------------------------------------------------------------------- /specs/with_state_graphs/record_literal_eval.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/record_literal_eval.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE record_literal_eval ---- 2 | EXTENDS TLC, Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == 7 | \/ x = [a |-> "v1", b |-> "v2"] 8 | \/ x = [a |-> "v1", b |-> "v2", c |-> "v3"] 9 | Next == x' = x 10 | 11 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/seq_append.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/seq_append.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE seq_append ---- 2 | EXTENDS TLC, Sequences ,Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == x = Append(<<1,2>>,3) 7 | Next == x' = x 8 | 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/seq_append.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -7756970548688679909 [label="x = <<1, 2, 3>>",style = filled] 6 | -7756970548688679909 -> -7756970548688679909 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -7756970548688679909;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/set_dot_notation.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/set_dot_notation.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE set_dot_notation ---- 2 | EXTENDS TLC, Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == x = 1..3 7 | Next == x' = x 8 | 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/set_dot_notation.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 7915713917714468985 [label="x = 1..3",style = filled] 6 | 7915713917714468985 -> 7915713917714468985 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 7915713917714468985;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/show521677.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | StrongConsistency = "StrongConsistency" 5 | BoundedStaleness = "BoundedStaleness" 6 | SessionConsistency = "SessionConsistency" 7 | ConsistentPrefix = "ConsistentPrefix" 8 | EventualConsistency = "EventualConsistency" 9 | StalenessBound = 1 10 | VersionBound = 3 -------------------------------------------------------------------------------- /specs/with_state_graphs/simple1.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple1_multiline_block_comment.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple2.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple2.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple2 ------------------------ 2 | VARIABLE x 3 | Init == x = 1 \/ x = 2 4 | Next == x' = 2 5 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple3.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple3.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple3 ------------------------ 2 | VARIABLE x 3 | VARIABLE y 4 | Init == 5 | /\ x = 1 \/ x = 2 6 | /\ y = 3 \/ y = 4 7 | 8 | Next == x' = 2 /\ y' = 2 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple5.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple5.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple5 ------------------------ 2 | VARIABLE x 3 | VARIABLE y 4 | Init == 5 | /\ x = 1 \/ x = 2 6 | /\ y = 3 \/ y = 6 7 | 8 | Next == 9 | \/ x = 0 /\ x' = 99 /\ y' = 88 10 | \/ x = 2 /\ x' = 209 /\ y' = 288 11 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple6.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple6.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple6 ------------------------ 2 | VARIABLE x 3 | Init == x \in [{1,2} -> {4,5}] 4 | Next == x' = x 5 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple7.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple7.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple7 ------------------------ 2 | VARIABLE x 3 | Init == x = 0 4 | Next == x' \in {0,1,2,3} /\ x' # x 5 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple8.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple8.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple8 ------------------------ 2 | VARIABLE x 3 | Init == x = 1 4 | Next == x' = 2 5 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_arith.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_boolean.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_choose.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_conjunction_constant.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_constant_operator.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | Op <- NewOp -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_constant_operator.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_constant_operator ---- 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | CONSTANT Op(_) 7 | 8 | NewOp(a) == a + 5 9 | 10 | Init == x = Op(3) + 44 11 | Next == x' = x 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_constant_operator.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -2512621441504319288 [label="x = 52",style = filled] 6 | -2512621441504319288 -> -2512621441504319288 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -2512621441504319288;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_constant_operator_infix.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT 4 | | <- NewOp -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_constant_operator_infix.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_constant_operator_infix ---- 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | CONSTANT _|_ 7 | 8 | NewOp(a,b) == a + b 9 | 10 | Init == x = 5 | 44 11 | Next == x' = x 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_constant_operator_infix.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -1607829976393375149 [label="x = 49",style = filled] 6 | -1607829976393375149 -> -1607829976393375149 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -1607829976393375149;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_defined_var_assignment.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_defined_var_assignment.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_defined_var_assignment ---- 2 | 3 | VARIABLE x 4 | VARIABLE y 5 | 6 | vars == <> 7 | 8 | c == x 9 | a == c 10 | 11 | Init == c = 0 /\ y = 1 12 | 13 | Next == UNCHANGED <> 14 | 15 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_defined_var_assignment.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled] 6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -3810599722284383802;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_defined_var_assignment_transitive.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_defined_var_assignment_transitive.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_defined_var_assignment_transitive ---- 2 | 3 | VARIABLE x 4 | VARIABLE y 5 | 6 | vars == <> 7 | 8 | c == x 9 | a == c 10 | 11 | Init == a = 0 /\ y = 1 12 | 13 | Next == UNCHANGED <> 14 | 15 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_defined_var_assignment_transitive.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled] 6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -3810599722284383802;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_definition.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_definition.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 6731408165669176166 [label="x = 84",style = filled] 6 | 6731408165669176166 -> 6731408165669176166 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 6731408165669176166;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_definition2.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_disjunction_constant.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_disjunction_init.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_domain.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_domain.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_domain ---- 2 | EXTENDS Sequences 3 | 4 | VARIABLES x 5 | 6 | Init == x = DOMAIN <<>> 7 | 8 | Next == x' = x 9 | 10 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_domain.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -6714151546026078956 [label="x = {}",style = filled] 6 | -6714151546026078956 -> -6714151546026078956 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -6714151546026078956;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_enabled.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_enabled.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_enabled ---- 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | Action == x > 0 /\ x' = 2 7 | 8 | Action2 == x' = 3 9 | 10 | Init == x = 1 11 | 12 | Next == 13 | /\ ENABLED Action 14 | /\ Action2 15 | 16 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends ---- 2 | EXTENDS Sequences, simple_extends_M1, simple_extends_M2 3 | 4 | VARIABLES x 5 | 6 | Init == 7 | \/ x = ExprM1 8 | \/ x = ExprM2 9 | 10 | Next == x' = x 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M1.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M1 ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | m1_val == 15 5 | 6 | ExprM1 == 10 + m1_val 7 | 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M2.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M2 ---- 2 | EXTENDS Sequences, simple_extends_M3 3 | 4 | ExprM2 == 20 5 | 6 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M2b.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M2b ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | M3 == INSTANCE simple_extends_M3 5 | 6 | ExprM2b == 20 + M3!ExprM3 7 | 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M2c.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M2c ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | a ++ b == a + b 5 | 6 | ExprM2c == 20 7 | 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M3.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M3 ---- 2 | EXTENDS Sequences 3 | 4 | ExprM3 == 43 5 | 6 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M4.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M4 ---- 2 | EXTENDS Sequences 3 | 4 | CONSTANT Val, ValB 5 | 6 | ExprM4 == Val 7 | ExprM4_B == ValB 8 | 9 | 10 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M5.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M5 ---- 2 | EXTENDS Sequences 3 | 4 | VARIABLE m 5 | 6 | E5 == 45 7 | 8 | MVarInitZero == m = E5 9 | 10 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M5b.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M5b ---- 2 | EXTENDS Sequences 3 | 4 | VARIABLE mb 5 | 6 | INSTANCE simple_extends_M6 WITH V <- 113, m <- mb 7 | 8 | MbVarInitZero == 9 | \/ mb = 0 10 | \/ MVarInitZero 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M5c.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M5c ---- 2 | EXTENDS Sequences 3 | CONSTANT C 4 | VARIABLE m 5 | 6 | E5 == 45 7 | 8 | MVarInitZero == m = E5 9 | 10 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M6.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M6 ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | CONSTANT V 5 | VARIABLE m 6 | 7 | MVarInitZero == m = V + 2 8 | 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M7.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M7 ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLE m, n 5 | 6 | E5 == 45 7 | 8 | MInit == 9 | /\ m = E5 10 | /\ n = 33 11 | 12 | A1 == (m' = (m + 1) % 3) /\ UNCHANGED n 13 | 14 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M7_LOCAL_def.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M7_LOCAL_def ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | LOCAL InternalExpr == 12 5 | ExternalExpr == 14 + InternalExpr 6 | 7 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M8.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M8 ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLE x 5 | 6 | XCond == x > 1 7 | 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_M9.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_M9 ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | F(a) == a + 365 5 | 6 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | INSTANCE simple_extends_M3 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = ExprM3 + 3 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_def ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | M == INSTANCE simple_extends_M2 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = M!ExprM2 + 3 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -5664843355636500517 [label="x = 23",style = filled] 6 | -5664843355636500517 -> -5664843355636500517 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -5664843355636500517;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_parameterized.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_parameterized.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 1786228659164697378 [label="/\\ x = 244\n/\\ y = 12",style = filled] 6 | 1786228659164697378 -> 1786228659164697378 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 1786228659164697378;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_parameterized_var_subst_no_clash.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_parameterized_var_subst_with_clash.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_transitive.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_transitive.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 83357677548360023 [label="x = 28",style = filled] 6 | 83357677548360023 -> 83357677548360023 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 83357677548360023;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_transitive_import.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_transitive_import.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_def_transitive_import ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | M2b == INSTANCE simple_extends_M2b 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = M2b!ExprM2b + M2b!M3!ExprM3 + 14 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_transitive_import.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 7834596103062504408 [label="x = 120",style = filled] 6 | 7834596103062504408 -> 7834596103062504408 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 7834596103062504408;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_user_infix_op.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_user_infix_op.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_def_user_infix_op ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | M == INSTANCE simple_extends_M2c 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = M!++(33,12) 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_user_infix_op.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -7468425565063145670 [label="x = 45",style = filled] 6 | -7468425565063145670 -> -7468425565063145670 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -7468425565063145670;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_subst.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_subst.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_def_with_subst ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | M == INSTANCE simple_extends_M4 WITH Val <- 45, ValB <- 99 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = M!ExprM4 + M!ExprM4_B + 3 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_subst.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -2603801094527747627 [label="x = 147",style = filled] 6 | -2603801094527747627 -> -2603801094527747627 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -2603801094527747627;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_def_with_var_subst ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES x 5 | 6 | M == INSTANCE simple_extends_M5 WITH m <- x 7 | 8 | Init == 9 | \/ x = 5 10 | \/ M!MVarInitZero 11 | 12 | Next == x' = x 13 | 14 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst_and_primed_action.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst_default_name.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst_one_implicit.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst_one_implicit.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_def_with_var_subst_one_implicit ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES x 5 | 6 | C == 5 7 | 8 | M == INSTANCE simple_extends_M5c WITH m <- x 9 | 10 | Init == 11 | \/ x = 5 12 | \/ M!MVarInitZero 13 | 14 | Next == x' = x 15 | 16 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_def_with_var_subst_same_name.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_duplicate_def_names.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_duplicate_def_names.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_duplicate_def_names ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES x 5 | 6 | A1Inst == INSTANCE A1 7 | A2Inst == INSTANCE A2 8 | 9 | Init == x = A1Inst!Val + A2Inst!Val 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_duplicate_def_names.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 8381894279946756999 [label="x = 110",style = filled] 6 | 8381894279946756999 -> 8381894279946756999 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 8381894279946756999;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_transitive.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_transitive.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_transitive ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | INSTANCE simple_extends_M1 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = ExprM1 + 3 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_transitive.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 83357677548360023 [label="x = 28",style = filled] 6 | 83357677548360023 -> 83357677548360023 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 83357677548360023;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_const_subst.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_const_subst.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_with_const_subst ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | INSTANCE simple_extends_M4 WITH Val <- 33, ValB <- 66 5 | 6 | VARIABLES x 7 | 8 | Init == 9 | \/ x = ExprM4 + ExprM4_B + 3 10 | 11 | Next == x' = x 12 | 13 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_const_subst.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -2909992488678982526 [label="x = 102",style = filled] 6 | -2909992488678982526 -> -2909992488678982526 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -2909992488678982526;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_with_var_and_const_subst ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES x 5 | 6 | INSTANCE simple_extends_M6 WITH V <- 34, m <- x 7 | 8 | Init == 9 | \/ x = 3 10 | \/ MVarInitZero 11 | 12 | Next == x' = x 13 | 14 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst_transitive.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst_transitive.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_with_var_and_const_subst_transitive ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES x 5 | 6 | INSTANCE simple_extends_M5b WITH mb <- x 7 | 8 | Init == 9 | \/ x = 1 10 | \/ MbVarInitZero 11 | 12 | Next == x' = x 13 | 14 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_subst.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_subst.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_with_var_subst ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES x 5 | 6 | INSTANCE simple_extends_M5 WITH m <- x 7 | 8 | Init == 9 | \/ x = 3 10 | \/ MVarInitZero 11 | 12 | Next == x' = x 13 | 14 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_subst_identity.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_instance_with_var_subst_identity.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_instance_with_var_subst_identity ---- 2 | EXTENDS Sequences, Naturals 3 | 4 | VARIABLES m 5 | 6 | INSTANCE simple_extends_M5 WITH m <- m 7 | 8 | Init == 9 | \/ m = 3 10 | \/ MVarInitZero 11 | 12 | Next == m' = m 13 | 14 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_local_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_local_def.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 1345933850180380894 [label="x = 31",style = filled] 6 | 1345933850180380894 -> 1345933850180380894 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 1345933850180380894;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_with_var.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_with_var.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_with_var ---- 2 | EXTENDS Sequences, A1_var_y 3 | 4 | VARIABLES x 5 | 6 | Init == 7 | \/ x = 2 /\ InitY 8 | \/ x = 5 /\ InitY 9 | 10 | Next == x' = x /\ y' = y 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_with_var_and_const.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | CONSTANT d = 22 -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_extends_with_var_and_const.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_extends_with_var_and_const ---- 2 | EXTENDS Sequences, A1_var_y_const_d 3 | 4 | VARIABLES x 5 | 6 | Init == 7 | \/ x = 2 + d /\ InitY 8 | \/ x = 5 + d /\ InitY 9 | 10 | Next == x' = x /\ y' = y 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_fcn_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_fcn_def.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 8463493751410924190 [label="/\\ x = [e |-> 13, d |-> 6, f |-> 6, g |-> 10]\n/\\ y = 7",style = filled] 6 | 8463493751410924190 -> 8463493751410924190 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 8463493751410924190;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_fcn_literal.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_fcn_polymorphism.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_folds.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_if_then.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_if_then.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple_if_then ------------------------ 2 | VARIABLE x 3 | Init == x = [ 4 | if1 |-> IF TRUE THEN 1 ELSE 2, 5 | if2 |-> IF FALSE THEN 1 ELSE IF TRUE THEN 2 ELSE 3 6 | ] 7 | Next == x' = x 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_if_then.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 2562348092006268979 [label="x = [if1 |-> 1, if2 |-> 2]",style = filled] 6 | 2562348092006268979 -> 2562348092006268979 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 2562348092006268979;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_implies.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_infix_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_lambda.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_lambda_letin.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_lazy.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_letin.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_letin_fn_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_letin_fn_def.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple_letin_fn_def ------------------------ 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == 7 | \/ x = LET myfn[a \in {1,2}] == a + 1 IN myfn[2] 8 | Next == x' = x 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_letin_fn_def.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 7158667421841284535 [label="x = 3",style = filled] 6 | 7158667421841284535 -> 7158667421841284535 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 7158667421841284535;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_mod3_counter.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_mod3_counter.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_mod3_counter ---- 2 | EXTENDS TLC, Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == x = 0 7 | Next == x' = (x + 1) % 3 8 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_multiline.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_negation.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_negation.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_negation ---- 2 | 3 | \* See https://github.com/will62794/tla-web/issues/12. 4 | 5 | VARIABLE x 6 | 7 | Init == x = TRUE 8 | 9 | Next == x' = ~x 10 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_nested_lambda.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_nested_lambda.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 8354080806683174181 [label="x = <<\"1\", 112>>",style = filled] 6 | 8354080806683174181 -> 8354080806683174181 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 8354080806683174181;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_operator.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_operator.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_operator ---- 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | \* One normal operator def. 7 | Op(u, v) == u + v 8 | 9 | Init == 10 | \/ x = Op(16, 47) 11 | 12 | Next == 13 | x' = x 14 | 15 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_operator.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 7884443652595207748 [label="x = 63",style = filled] 6 | 7884443652595207748 -> 7884443652595207748 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 7884443652595207748;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_primed.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_primed.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_primed ---- 2 | EXTENDS TLC, Naturals 3 | 4 | VARIABLE x 5 | VARIABLE y 6 | 7 | expr == x + 2 8 | 9 | Init == 10 | /\ x = 0 11 | /\ y = 0 12 | Next == 13 | /\ x' = 5 14 | /\ y' = expr' 15 | 16 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_primed_defs.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_primed_defs.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_primed_defs ---- 2 | VARIABLES var, var2 3 | 4 | D1 == var2 5 | 6 | vars == <> 7 | Init == 8 | /\ var = 0 9 | /\ var2 = 6 10 | 11 | Action == 12 | /\ LET vdef == var IN vdef' = 1 13 | /\ D1' = 15 14 | 15 | Next == Action 16 | 17 | Spec == /\ Init /\ [][Next]_vars 18 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_quant.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_quant2.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_quant2.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple_quant2 ------------------------ 2 | EXTENDS Naturals 3 | 4 | VARIABLE x 5 | 6 | Init == \E c \in SUBSET {0,1} : c # {} /\ x = [i \in {"a"} |-> c] 7 | 8 | Next == x' = x 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_quant_multi.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_quant_tuple.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_quant_tuple.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_quant_tuple ---- 2 | EXTENDS Naturals 3 | \* See https://github.com/will62794/tla-web/issues/17. 4 | 5 | VARIABLE x, y 6 | 7 | Init == 8 | /\ x = 0 9 | /\ y = 0 10 | 11 | Next == 12 | \E <> \in {<<1,2>>,<<3,4>>}: 13 | /\ x' = i 14 | /\ y' = j 15 | 16 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_record.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_recursive.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq_ext.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq_ext.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq_update.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq_update.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_seq_update ---- 2 | EXTENDS Naturals 3 | 4 | \* See https://github.com/will62794/tla-web/issues/25. 5 | 6 | VARIABLE seq 7 | 8 | Init == 9 | /\ seq = <<1, 2, 3>> 10 | 11 | Next == 12 | /\ seq' = [seq EXCEPT ![1] = IF @ = 5 THEN 1 ELSE @ + 1] 13 | 14 | Spec == Init /\ [][Next]_seq 15 | 16 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq_update2.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_seq_update3.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_set_of_fns.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_set_of_fns.tla: -------------------------------------------------------------------------------- 1 | ----------------------- MODULE simple_set_of_fns ------------------------ 2 | EXTENDS Naturals 3 | VARIABLE x 4 | Init == x = 0 5 | Next == x' = [ a |-> [0..1 -> BOOLEAN], 6 | b |-> [0..2 -> {"a","b","c"}], 7 | c |-> [{3,1,2} -> {"q","x","a"}], 8 | d |-> [[{4,6} -> {2,3}] -> {"y","z"}]] 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_setfiltermap.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_sets.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_strings.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_subset.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_tlc_fn.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_tlc_fn.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_tlc_fn ---- 2 | EXTENDS TLC 3 | 4 | VARIABLES 5 | x, 6 | y 7 | 8 | Init == 9 | \/ /\ x = (0 :> 0) 10 | /\ y = (1 :> 1) 11 | \/ /\ x = 2 :> 3 12 | /\ y = 4 :> 5 13 | 14 | Next == UNCHANGED <> 15 | 16 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_tlc_fn_compose.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_tlc_ops.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_tlc_ops.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_tlc_ops ---- 2 | EXTENDS TLC, Naturals 3 | 4 | VARIABLES x 5 | 6 | Init == 7 | \/ x = TLCEval(5 + 5) 8 | \/ x = TLCEval("a") 9 | 10 | Next == UNCHANGED <> 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_unchanged ---- 2 | 3 | VARIABLE x 4 | VARIABLE y 5 | 6 | vars == <> 7 | 8 | Init == x = 0 /\ y = 1 9 | 10 | Next == UNCHANGED vars 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled] 6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -3810599722284383802;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_nested_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_nested_def.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_unchanged_nested_def ---- 2 | 3 | VARIABLE x 4 | VARIABLE y 5 | 6 | \* TODO: Make sure this works for the right reasons in UNCHANGED evaluation? 7 | vars == <> 8 | vars1 == vars 9 | vars2 == vars1 10 | 11 | Init == x = 0 /\ y = 1 12 | 13 | Next == UNCHANGED vars2 14 | 15 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_nested_def.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled] 6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -3810599722284383802;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_nested_tuple.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_nested_tuple_def.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_no_tuple.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_no_tuple.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_unchanged_no_tuple ---- 2 | 3 | VARIABLE x 4 | 5 | Init == x = 0 6 | 7 | Next == UNCHANGED x 8 | 9 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_no_tuple.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | 8132692779957249086 [label="x = 0",style = filled] 6 | 8132692779957249086 -> 8132692779957249086 [label="",color="black",fontcolor="black"]; 7 | {rank = same; 8132692779957249086;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_unchanged_with_quant.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | 4 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_var_tuple.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_var_tuple.tla: -------------------------------------------------------------------------------- 1 | ---- MODULE simple_var_tuple ---- 2 | 3 | VARIABLE x 4 | VARIABLE y 5 | 6 | vars == <> 7 | 8 | Init == x = 0 /\ y = 1 9 | 10 | Next == UNCHANGED <> 11 | 12 | ==== -------------------------------------------------------------------------------- /specs/with_state_graphs/simple_var_tuple.tla.dot: -------------------------------------------------------------------------------- 1 | strict digraph DiskGraph { 2 | nodesep=0.35; 3 | subgraph cluster_graph { 4 | color="white"; 5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled] 6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"]; 7 | {rank = same; -3810599722284383802;} 8 | } 9 | } -------------------------------------------------------------------------------- /specs/with_state_graphs/tla2tools.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/specs/with_state_graphs/tla2tools.jar -------------------------------------------------------------------------------- /specs/with_state_graphs/tla_case_with_state_assignment.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next -------------------------------------------------------------------------------- /specs/with_state_graphs/tla_expr_eval.cfg: -------------------------------------------------------------------------------- 1 | INIT Init 2 | NEXT Next 3 | -------------------------------------------------------------------------------- /spectacle.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": {} 8 | } --------------------------------------------------------------------------------