├── netflix └── pulsesecure.yml ├── NETFLIX-TODO.md ├── netflix.yml ├── test.yml ├── install ├── tasks ├── hist-cli.yml ├── slack-setup.yml ├── dotfiles.yml ├── lsp.yml ├── npm-packages.yml ├── debugger.yml ├── productivity-tools.yml ├── ssh.yml ├── zsh-setup.yml ├── brave.yml ├── node-setup.yml ├── git-setup.yml ├── nvim-setup.yml ├── core-setup.yml └── personal-projects.yml ├── ansible-run ├── lsp.Dockerfile ├── nvim.Dockerfile ├── clean-env ├── auth_codes ├── mrpt ├── primary_wtp ├── google_netflix_backup_codes ├── personal_google_backup_codes_mbp ├── personal_google_backup_codes_prime ├── mrp ├── discord_backup_codes.txt └── vim-with-me ├── .ssh ├── id_rsa.pub └── id_rsa ├── Dockerfile ├── local.yml ├── TODO.md └── keyboard-layout.vil /netflix/pulsesecure.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NETFLIX-TODO.md: -------------------------------------------------------------------------------- 1 | ### pulsesecure 2 | 3 | ### nrdp 4 | 5 | -------------------------------------------------------------------------------- /netflix.yml: -------------------------------------------------------------------------------- 1 | - hosts: localhost 2 | tasks: 3 | - include: netflix/pulsesecure.yml 4 | -------------------------------------------------------------------------------- /test.yml: -------------------------------------------------------------------------------- 1 | - hosts: localhost 2 | tasks: 3 | - name: Update apt 4 | become: true 5 | apt: 6 | update_cache: true 7 | -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | sudo apt install software-properties-common 3 | sudo apt-add-repository --yes --update ppa:ansible/ansible 4 | sudo apt install ansible 5 | 6 | -------------------------------------------------------------------------------- /tasks/hist-cli.yml: -------------------------------------------------------------------------------- 1 | - name: Required libraries for hist-cli for (cargo package) 2 | become: true 3 | apt: 4 | name: ["libfreetype6-dev"] 5 | tags: 6 | - hist 7 | - install 8 | -------------------------------------------------------------------------------- /ansible-run: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Install ansible 4 | sudo apt-add-repository -y ppa:ansible/ansible 5 | sudo apt-get update -y 6 | sudo apt-get install -y curl git software-properties-common ansible 7 | 8 | ## pull ansible 9 | # sudo ansible-pull -U https://github.com/ThePrimeagen/ansible.git 10 | -------------------------------------------------------------------------------- /lsp.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:focal 2 | ARG TAGS 3 | WORKDIR /usr/local/bin 4 | ARG DEBIAN_FRONTEND=noninteractive 5 | RUN apt update && apt install -y software-properties-common && apt-add-repository -y ppa:ansible/ansible && apt-add-repository -y ppa:neovim-ppa/unstable && apt update && apt install -y curl git ansible build-essential neovim 6 | COPY . . 7 | CMD ["sh", "-c", "ansible-playbook $TAGS local.yml"] 8 | -------------------------------------------------------------------------------- /nvim.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:focal 2 | ARG TAGS 3 | WORKDIR /usr/local/bin 4 | ARG DEBIAN_FRONTEND=noninteractive 5 | RUN apt update && apt install -y software-properties-common && apt-add-repository -y ppa:ansible/ansible && apt-add-repository -y ppa:neovim-ppa/unstable && apt update && apt install -y curl git ansible build-essential neovim 6 | COPY . . 7 | CMD ["sh", "-c", "ansible-playbook $TAGS local.yml"] 8 | 9 | -------------------------------------------------------------------------------- /tasks/slack-setup.yml: -------------------------------------------------------------------------------- 1 | - name: Download Slack 2 | get_url: 3 | url: https://downloads.slack-edge.com/linux_releases/slack-desktop-4.19.2-amd64.deb 4 | dest: /tmp/slack.deb 5 | tags: 6 | - install 7 | - slack 8 | 9 | - name: Remove Any previous slacks 10 | become: true 11 | apt: 12 | name: slack-desktop 13 | state: absent 14 | tags: 15 | - install 16 | - slack 17 | 18 | - name: Install Slack .deb package 19 | become: true 20 | apt: 21 | deb: /tmp/slack.deb 22 | tags: 23 | - install 24 | - slack 25 | 26 | -------------------------------------------------------------------------------- /tasks/dotfiles.yml: -------------------------------------------------------------------------------- 1 | - name: Installing stow 2 | apt: name=stow 3 | tags: 4 | - install 5 | - dotfiles 6 | - stow 7 | - name: Cloning .dotfiles 8 | ansible.builtin.git: 9 | repo: 'git@github.com:ThePrimeagen/.dotfiles.git' 10 | dest: "{{ lookup('env', 'HOME') }}/.dotfiles" 11 | recursive: yes 12 | update: yes 13 | accept_hostkey: yes 14 | version: master 15 | tags: 16 | - install 17 | - dotfiles 18 | - stow 19 | - name: Stow dotfiles 20 | shell: cd $HOME/.dotfiles && ./ubuntu 21 | tags: 22 | - install 23 | - dotfiles 24 | - stow 25 | -------------------------------------------------------------------------------- /clean-env: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Undo node 3 | npm uninstall -g yarn typescript-language-server typescript 4 | sudo apt purge nodejs npm 5 | rm /usr/local/lib/node_modules/n/bin/n 6 | rm /usr/local/bin/n 7 | rm /usr/local/bin/node 8 | 9 | # Undo zsh 10 | uninstall_oh_my_zsh 11 | chsh /bin/bash 12 | sudo apt purge zsh 13 | 14 | # Undo Slack 15 | sudo apt purge slack-desktop 16 | 17 | # Undo Core Install 18 | sudo apt -y purge curl htop stow tmux build-essential wireshark golang fzf lsof kdenlive i3 gimp ccache ninja-build yarn python3-pip xclip slack dconf-editor nvidia-settings brave-browser pavucontrol clangd screenkey lua tldr 19 | -------------------------------------------------------------------------------- /auth_codes/mrpt: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 64323937353139306230663136356239343433623761323638333831303538306235316139663934 3 | 3466363135396562356335376464373736373034343563300a343038343034343237336438633233 4 | 65666636616566626663356435633433373666623363346536663561633934353533303631633630 5 | 3030653563326435320a666563303936393537323933363166376263383639313332313531383066 6 | 66393862353232376561376663613637306634383539396132356531666166626339643034646631 7 | 35376466343739623537616431633632666536396232323632393733313162386638313936663134 8 | 30626237626535303037393963393338303735336532633932633530343966643530356631363430 9 | 64346434353466306334 10 | -------------------------------------------------------------------------------- /auth_codes/primary_wtp: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 61653138373537623837616235316337313231316239643932383239383836623531643534663530 3 | 6530323761653665633230346163626432373133313633300a326633643366613566623061373630 4 | 38376563646530313831303933646537663135303532393239643438643330346461326266616165 5 | 3766383938303831340a366636346434653038666166643438316630656635353763316231383338 6 | 64393863356334333839643338316632373962343762663231663565386235633231646232336465 7 | 63663730336466366334313832663839376466393232303635333061653934663963393232343638 8 | 32353931623531643532363964356533363532373037326531316431623837316465363634366635 9 | 61613232666164373736 10 | -------------------------------------------------------------------------------- /tasks/lsp.yml: -------------------------------------------------------------------------------- 1 | - name: Setup sumneko lua lsp 2 | ansible.builtin.git: 3 | repo: "git@github.com:sumneko/lua-language-server.git" 4 | recursive: yes 5 | dest: "{{ personal }}/sumneko" 6 | tags: 7 | - install 8 | - lsp 9 | 10 | - name: build the damn sumneko deez lsp 11 | ansible.builtin.shell: 12 | cmd: ./compile/install.sh 13 | chdir: "{{ personal }}/sumneko/3rd/luamake" 14 | tags: 15 | - install 16 | - lsp 17 | 18 | - name: Finish the dude off with the built 19 | ansible.builtin.shell: 20 | cmd: ./3rd/luamake/luamake rebuild 21 | chdir: "{{ personal }}/sumneko/" 22 | tags: 23 | - install 24 | - lsp 25 | -------------------------------------------------------------------------------- /tasks/npm-packages.yml: -------------------------------------------------------------------------------- 1 | - name: Install Yarn 2 | npm: 3 | name: yarn 4 | global: yes 5 | tags: 6 | - install 7 | - node 8 | - name: Install eslint 9 | npm: 10 | name: eslint 11 | global: yes 12 | tags: 13 | - install 14 | - node 15 | - name: Install Typescript server 16 | npm: 17 | name: typescript-language-server 18 | global: yes 19 | tags: 20 | - install 21 | - node 22 | - name: Install Typescript 23 | npm: 24 | name: typescript 25 | global: yes 26 | tags: 27 | - install 28 | - node 29 | - name: Install TS-Node 30 | npm: 31 | name: ts-node 32 | global: yes 33 | tags: 34 | - install 35 | - node 36 | 37 | -------------------------------------------------------------------------------- /tasks/debugger.yml: -------------------------------------------------------------------------------- 1 | - name: Debugger JavaScript Exists? 2 | stat: 3 | path: "{{ personal }}/microsoft-sucks/vscode-node-debug2" 4 | register: node_debugger 5 | tags: 6 | - install 7 | - debugger 8 | 9 | - name: Debugger - JavaScript 10 | ansible.builtin.git: 11 | repo: 'git@github.com:microsoft/vscode-node-debug2.git' 12 | dest: "{{ personal }}/microsoft-sucks/vscode-node-debug2" 13 | tags: 14 | - install 15 | - debugger 16 | when: node_debugger.stat.exists == False 17 | 18 | - name: Debugger npm i and build JavaScript 19 | shell: cd {{ personal }}/microsoft-sucks/vscode-node-debug2 && npm i && npm run build 20 | tags: 21 | - install 22 | - debugger 23 | -------------------------------------------------------------------------------- /.ssh/id_rsa.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTYnZsBSXYLV/zTBxjPhn2qHrbuAu9g8vUWupJRyTocSWUm/f2ghY1gOqpIT17zkZebJwjg7Ejw6DqopZkVYmLOKmhsWWOnDoJa/TBgRWX81zCOLaoBYrRwBNzElfEOWXVelTXAdQnS7OmcQQj8Kkk4z4+EmCt1C0I6Jf2axWGLwgTEic1wSdw/YLvAC/Jbmaw6A+380NlIE67YfESDNjOsZw3rmMOCGcvNQlrD9BUH5p6ohXn5++nPlgpj5hH+CT2OsH8fnCRTuZWFgNzGOFiZ5L2BKnXOohu1q5blx9dGdeu0gTaMRepytFCRW8tYej/G2Noj5GG5kwCqXDu+PXUjQ8V8La2LvggD2wfPMLtFtjf85AdGPbJ4cyNWhm5Z2wJ/bDbynKGKkgUCOEakv4Qure6427m+94wSmiOpDQihr2piQM1gcXCjxVjCLvspPxiCTkvT3+zUTRxACYjt0llcjul6J6jF76j7ERSFD87crEworFT0+qKdE6TFwL5hhroXbZicdt1B6H9rfi+V9in7DXW4nK7e6O4nZwwQNA29s0LD4Mcxn+kLnkdpNNrf3YIaHnw9KacF6FeCs3XTWoMCjK4jVKBU2tR3b1dxHSjjbXhUEqIP+tHn3c9g98wq5ryJa9J+k3ozWWgrSj69ygqShawVaq8l6mNaea1nr9qOw== the.primeagen@gmail.com 2 | -------------------------------------------------------------------------------- /tasks/productivity-tools.yml: -------------------------------------------------------------------------------- 1 | - name: kdenlive ppa (ppa:kdenlive/kdenlive-stable) 2 | become: true 3 | apt_repository: 4 | repo: ppa:kdenlive/kdenlive-stable 5 | state: present 6 | update_cache: True 7 | tags: 8 | - install 9 | - productivity 10 | 11 | - name: shutter ppa (ppa:linuxuprising/shutter) 12 | become: true 13 | apt_repository: 14 | repo: ppa:linuxuprising/shutter 15 | state: present 16 | update_cache: True 17 | tags: 18 | - install 19 | - productivity 20 | 21 | - name: Install packages 22 | become: true 23 | apt: 24 | name: [ "tmux", "wireshark", "fzf", "kdenlive", "gimp", "xclip", "screenkey", "tldr", "ripgrep", "shutter" ] 25 | tags: 26 | - install 27 | - productivity 28 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:focal AS base 2 | WORKDIR /usr/local/bin 3 | ENV DEBIAN_FRONTEND=noninteractive 4 | RUN apt-get update && \ 5 | apt-get upgrade -y && \ 6 | apt-get install -y software-properties-common curl git build-essential && \ 7 | apt-add-repository -y ppa:ansible/ansible && \ 8 | apt-get update && \ 9 | apt-get install -y curl git ansible build-essential && \ 10 | apt-get clean autoclean && \ 11 | apt-get autoremove --yes 12 | 13 | FROM base AS prime 14 | ARG TAGS 15 | RUN addgroup --gid 1000 theprimeagen 16 | RUN adduser --gecos theprimeagen --uid 1000 --gid 1000 --disabled-password theprimeagen 17 | USER theprimeagen 18 | WORKDIR /home/theprimeagen 19 | 20 | FROM prime 21 | COPY . . 22 | CMD ["sh", "-c", "ansible-playbook $TAGS local.yml"] 23 | 24 | -------------------------------------------------------------------------------- /auth_codes/google_netflix_backup_codes: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 33643363643432646265376439333461626166643232316235383966333561613533383237613632 3 | 6132346236653031386236333632343164343733613935630a353365396230626637633636633034 4 | 64303238316562386139333730393463316232393630376662376538343963373034616639383161 5 | 3163316236623330630a356535323265323430306231356463336538343833373532386133313562 6 | 63353065363361323238336634383831633330306234323065336238663239333066326338613033 7 | 61383062643832373834643431376562346339333536363261633966383635386438383862623938 8 | 38646162313031643563656238313866366130666239306339643465336166376233303837386137 9 | 30633132333536333135366364613062326663383532326433393930346563613132376639303838 10 | 38393735366363366466623339396233303365313933616539383531396336326562 11 | -------------------------------------------------------------------------------- /auth_codes/personal_google_backup_codes_mbp: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 62613233626239646561646262323162636130613664353439396134353637343932636436343333 3 | 6234313962383563613930663763343739346136616164610a366463366336393562613033316630 4 | 30306337303833623062366336366361323565343435313765623763646635303232363733393334 5 | 3231353461343035630a636536633537373130653037613364633862666465383937616162666162 6 | 34336264346233326335353333363734653539326435303239323837393131343034623162313231 7 | 30653462663466396563663165646266386439396665636634643437356262636239386439303030 8 | 65666539333731356135326437336532623739653366626162363662626137623938323830646661 9 | 62626362316534393834653133656465356433343566656134326665313936643163636261313537 10 | 64636463613235326531316561383134363931303932616364316665393866663339 11 | -------------------------------------------------------------------------------- /auth_codes/personal_google_backup_codes_prime: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 39633030316530393461326462313139303730643934643938633262336261376339646339663331 3 | 3561353734393062653361323333636536613533313965660a346362383066623030613465333934 4 | 64313632626538363330626563326638306436666134653566373033616361336562646434396334 5 | 3332613634643835620a623238373739613164383266373435636534343662656634313736386231 6 | 61333463353030323765373036346631353233363133343665393435373735326661376537333438 7 | 63353266306464323330626237383364303230366234346536646466343333646237333731623732 8 | 38333938303563376137313032646335353333613366633635303833663438326164393931623966 9 | 35343433663330646464626661363264393564616633326533613361326163343833663262643237 10 | 66396430386664323237303038313361353861626333623763366665333761326336 11 | -------------------------------------------------------------------------------- /tasks/ssh.yml: -------------------------------------------------------------------------------- 1 | - name: Ensure .ssh directory exists. 2 | file: 3 | dest: "{{ dest_key | dirname }}" 4 | mode: 0700 5 | state: directory 6 | tags: 7 | - dotfiles 8 | - install 9 | - ssh 10 | - name: Install ssh key 11 | copy: 12 | src: "{{ source_key }}" 13 | dest: "{{ dest_key }}" 14 | mode: 0600 15 | tags: 16 | - dotfiles 17 | - install 18 | - ssh 19 | - name: Install ssh key public 20 | copy: 21 | src: "{{ source_key }}.pub" 22 | dest: "{{ dest_key }}.pub" 23 | mode: 0644 24 | tags: 25 | - dotfiles 26 | - install 27 | - ssh 28 | - name: Set authorized key took from file 29 | authorized_key: 30 | user: "{{ lookup('env', 'USER') }}" 31 | state: present 32 | key: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa.pub" 33 | with_fileglob: 34 | - "{{ lookup('env', 'HOME') }}/.ssh/*.pub" 35 | -------------------------------------------------------------------------------- /tasks/zsh-setup.yml: -------------------------------------------------------------------------------- 1 | - name: Install ZSH 2 | apt: name=zsh 3 | tags: &tags_for_zsh_tasks [ 'install', 'productivity', 'dotfiles', 'zsh' ] 4 | 5 | - name: Change shell to zsh 6 | shell: chsh -s $(which zsh) 7 | tags: *tags_for_zsh_tasks 8 | 9 | - name: Check that the somefile.conf exists 10 | stat: 11 | path: /home/theprimeagen/.oh-my-zsh 12 | register: oh_my_stats 13 | tags: *tags_for_zsh_tasks 14 | 15 | - name: Oh-My-Zsh 16 | shell: curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh > ~/.oh-my-installer && chmod +x ~/.oh-my-installer && ~/.oh-my-installer 17 | tags: *tags_for_zsh_tasks 18 | when: oh_my_stats.stat.exists == False 19 | become_user: theprimeagen 20 | 21 | - name: Install zsh-autosuggestions 22 | ansible.builtin.git: 23 | repo: 'https://github.com/zsh-users/zsh-autosuggestions.git' 24 | dest: "~/.oh-my-zsh/plugins/zsh-autosuggestions" 25 | tags: *tags_for_zsh_tasks 26 | -------------------------------------------------------------------------------- /tasks/brave.yml: -------------------------------------------------------------------------------- 1 | - name: required libraries for brave 2 | become: true 3 | apt: 4 | name: ["curl", "apt-transport-https"] 5 | tags: 6 | - brave 7 | - install 8 | - name: Brave Browser archive-keyring.gpg download 9 | get_url: 10 | url: https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg 11 | dest: /usr/share/keyrings/brave-browser-archive-keyring.gpg 12 | tags: 13 | - brave 14 | - install 15 | - name: Brave Browser PPA setting 16 | become: true 17 | shell: echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | tee /etc/apt/sources.list.d/brave-browser-release.list 18 | tags: 19 | - brave 20 | - install 21 | - name: Brave Browser apt installation 22 | become: true 23 | apt: 24 | update_cache: yes 25 | name: brave-browser 26 | tags: 27 | - brave 28 | - install 29 | -------------------------------------------------------------------------------- /local.yml: -------------------------------------------------------------------------------- 1 | - hosts: localhost 2 | vars: 3 | source_key: "./.ssh/id_rsa" 4 | dest_key: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa" 5 | personal: "{{ lookup('env', 'HOME') }}/personal" 6 | pre_tasks: 7 | - name: Update Apt 8 | become: true 9 | apt: 10 | force_apt_get: true 11 | update_cache: true 12 | state: present 13 | tags: 14 | - install 15 | - core 16 | tasks: 17 | - include: tasks/ssh.yml 18 | - include: tasks/git-setup.yml 19 | - include: tasks/core-setup.yml 20 | - include: tasks/node-setup.yml 21 | - include: tasks/npm-packages.yml 22 | - include: tasks/zsh-setup.yml 23 | - include: tasks/slack-setup.yml 24 | - include: tasks/personal-projects.yml 25 | - include: tasks/nvim-setup.yml 26 | - include: tasks/brave.yml 27 | - include: tasks/debugger.yml 28 | - include: tasks/dotfiles.yml 29 | - include: tasks/productivity-tools.yml 30 | - include: tasks/lsp.yml 31 | 32 | -------------------------------------------------------------------------------- /auth_codes/mrp: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 32353761623066303465323335643438663631343930356437646463613333666663323266393163 3 | 3863613731643433636433326235623962393835356230640a656331633562363166633635323537 4 | 33616234396662336431396364323835626166653531663164323335373965626533323436383433 5 | 6336643732343261360a313766666430353238373462343666363833663938343630333562386165 6 | 37323763396163353961653431396239626265303136626665643266633964313234643536306534 7 | 35656233313439363737323337316662636532613239326235343937666638366332623039373937 8 | 64623031323365343666386338343763626465313566316230633665646133313334613531366436 9 | 39333764346533366665383635393034363833646630353161313530333738383532313666313264 10 | 32383662313834323265376662336330373135366563636666393934366561336165303932326338 11 | 62356261393731386561326532363732623038656236303932613632366530653731323463343934 12 | 35333637623166383934333735306663633861626438616230646534396566363438653863306533 13 | 33613139376335393633 14 | -------------------------------------------------------------------------------- /tasks/node-setup.yml: -------------------------------------------------------------------------------- 1 | - name: Install nodejs and npm 2 | become: true 3 | apt: 4 | name: ["nodejs", "npm"] 5 | tags: 6 | - install 7 | - node 8 | 9 | - name: npmjs prefix 10 | shell: mkdir -p ~/.local/.npm-global 11 | tags: 12 | - install 13 | - node 14 | 15 | - name: add npmjs to path 16 | shell: PATH=~/.local/.npm-global/bin:$PATH 17 | tags: 18 | - install 19 | - node 20 | 21 | - name: npmjs global settings 22 | shell: npm config set prefix '~/.local/.npm-global' 23 | tags: 24 | - install 25 | - node 26 | 27 | - name: npmjs global settings export path in case I don't have dotfiles installed 28 | shell: export PATH=~/.local/.npm-global/bin:$PATH 29 | tags: 30 | - install 31 | - node 32 | - npm-path 33 | 34 | - name: Install N 35 | npm: 36 | name: n 37 | global: yes 38 | tags: 39 | - install 40 | - node 41 | 42 | - name: Install correct version of Node 43 | shell: n 14 44 | tags: 45 | - install 46 | - node 47 | -------------------------------------------------------------------------------- /tasks/git-setup.yml: -------------------------------------------------------------------------------- 1 | - name: Git personal setup email 2 | git_config: 3 | name: user.email 4 | scope: global 5 | value: "the.primeagen@gmail.com" 6 | tags: 7 | - git-personal 8 | - name: Git personal setup name 9 | git_config: 10 | name: user.name 11 | scope: global 12 | value: "ThePrimeagen" 13 | tags: 14 | - git-personal 15 | - name: Git Rustin 16 | git_config: 17 | name: user.email 18 | scope: global 19 | value: "rustin.deeznuts@gmail.com" 20 | tags: 21 | - git-rustin 22 | - name: Git personal setup name 23 | git_config: 24 | name: user.name 25 | scope: global 26 | value: "RustLover69" 27 | tags: 28 | - git-rustin 29 | - name: Netflix 30 | git_config: 31 | name: user.email 32 | scope: global 33 | value: "mpaulson@netflix.com" 34 | tags: 35 | - git-netflix 36 | - name: Git personal setup name 37 | git_config: 38 | name: user.name 39 | scope: global 40 | value: "mpaulson" 41 | tags: 42 | - git-netflix 43 | -------------------------------------------------------------------------------- /tasks/nvim-setup.yml: -------------------------------------------------------------------------------- 1 | - name: Remove neovim 2 | shell: rm -rf ~/neovim 3 | tags: 4 | - install 5 | - neovim 6 | - name: Get Packer 7 | ansible.builtin.git: 8 | repo: 'https://github.com/wbthomason/packer.nvim' 9 | dest: "{{ lookup('env', 'HOME') }}/.local/share/nvim/site/pack/packer/start/packer.nvim" 10 | tags: 11 | - install 12 | - neovim 13 | - name: Clone Neovim 14 | ansible.builtin.git: 15 | repo: 'https://github.com/neovim/neovim.git' 16 | dest: "{{ lookup('env', 'HOME') }}/neovim" 17 | tags: 18 | - install 19 | - neovim 20 | - name: Build neovim 21 | shell: "cd {{ lookup('env', 'HOME') }}/neovim && make -j 20" 22 | tags: 23 | - install 24 | - neovim 25 | - name: Install neovim 26 | become: true 27 | shell: "cd {{ lookup('env', 'HOME') }}/neovim && make install" 28 | tags: 29 | - install 30 | - neovim 31 | - name: Neovim Plugin Development 1 32 | become: true 33 | apt: name=luarocks 34 | tags: 35 | - install 36 | - neovim 37 | - name: Neovim Plugin Development 2 luacheck 38 | become: true 39 | shell: luarocks install luacheck 40 | tags: 41 | - install 42 | - neovim 43 | -------------------------------------------------------------------------------- /auth_codes/discord_backup_codes.txt: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 33323862303664343433393666646666626263383930303134383566376631343136333966633037 3 | 3161376164663133636336646266353439303961643738650a663432353466396439616332326539 4 | 32346465653432386233646235306438313365616634363733336438346338346165653836343963 5 | 3766303164306431300a616565623730363761353238356166636130373333623864633439623765 6 | 30303865623131653432323238326635656137623962616631326635656633326239323666303338 7 | 36666164373536313131346163376334316639383064303430303165343131623234313163373839 8 | 31323663333863613538336466383935613939376461343061373232353834303932313432666661 9 | 30366533313966353536653632383937663164636665666162633930323565323964363833366432 10 | 34313731616663356239626165626630653039623563643161303039383634333238393034666162 11 | 64633437356336386331653733616562363062363035343535663437646237316634336563353761 12 | 37616362386333643035663930333232623662333333663961313037363461656333326539353266 13 | 64636364623530663434356135393630313165373861613633343366313465376539373130303034 14 | 64346564366566393939396161613365336363356232623337333236653336356536613537373664 15 | 65326537386666353964316633323862623565346632303432303864366139303235373137393563 16 | 35353232326662346436623639343065336230396132383666653162656138663936663335353034 17 | 33356136393436313534 18 | -------------------------------------------------------------------------------- /tasks/core-setup.yml: -------------------------------------------------------------------------------- 1 | - name: Install System Packages 1 (build-essential, cmake, pkg-config, pthread) 2 | become: true 3 | apt: 4 | name: ["build-essential", "cmake", "pkg-config", "libpthread-stubs0-dev"] 5 | tags: 6 | - install 7 | - neovim 8 | - core 9 | 10 | - name: Install System Packages 2 (lua, unzip, libtool, libtool-bin, gettext) 11 | become: true 12 | apt: 13 | name: [ "lua5.1", "unzip", "libtool", "libtool-bin", "gettext"] 14 | tags: 15 | - install 16 | - neovim 17 | - core 18 | 19 | - name: Install System Packages 3 (the rest) 20 | become: true 21 | apt: 22 | name: [ "compton", "curl", "htop", "golang", "lsof", "i3", "ccache", "ninja-build", "python3-pip", "dconf-editor", "nvidia-settings", "pavucontrol", "moreutils", "clangd", "ubuntu-mate-desktop" ] 23 | tags: 24 | - install 25 | - core 26 | 27 | - name: Install Clang 28 | become: true 29 | apt: 30 | name: ["clang", "clang-11", "clang-12", "clangd", "clangd-10", "clangd-11", "clangd-12"] 31 | tags: 32 | - install 33 | - neovim 34 | - core 35 | 36 | - name: dconf i3 37 | shell: dconf write /org/mate/desktop/session/required-components/windowmanager "'i3'" 38 | tags: 39 | - install 40 | - core 41 | 42 | - name: dconf i3 43 | shell: dconf write /org/mate/desktop/background/show-desktop-icons "false" 44 | tags: 45 | - install 46 | - core 47 | 48 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | ### Vim plug is not installing in the correct location 2 | ?? 3 | 4 | ## Ohmyzsh 5 | * doesn't work because of the user. 6 | * also you cannot re-install it or else it breaks. 7 | * had to put a little file exist protector 8 | 9 | ## keyboard 10 | 1 Couldn't be detected 11 | 2 / is not working 12 | 13 | ### Fix 1 14 | sudo mkdir -p /etc/udev/rules.d/ 15 | echo 'KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0666", TAG+="uaccess", TAG+="udev-acl"' | sudo tee /etc/udev/rules.d/92-viia.rules 16 | sudo udevadm control --reload-rules 17 | sudo udevadm trigger 18 | 19 | ### Fix 2 20 | swapped out / key for /? key. This seems to be the correct move. 21 | 22 | ### Permissions with ssh 23 | I think its a user issue. I think that if I redo it with --become-user theprimeagen it will work better. 24 | remove all become_user root 25 | 26 | ### Plug 27 | I manually installed it.. 28 | sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ 29 | https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' 30 | ### NVIM 31 | bad order of tasks. 32 | 33 | ### NVIDIA Drivers 34 | * I just don't have them... 35 | 36 | ### Where was shutter 37 | * Come on, man 38 | 39 | ### Ansible pull 40 | no vault 41 | make it clone 42 | --become-user theprimeagen 43 | -t install . I just keep forgetting this... 44 | - clone it with https then change remote to ssh once ssh is up. 45 | 46 | ### Personal projects 47 | - I have to check for existance before doing anything else. Else it doesn't 48 | quite work. 49 | -------------------------------------------------------------------------------- /auth_codes/vim-with-me: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 31353236313865343463636561336432383539323961346663393664633632626464323333613438 3 | 3261643135303064366137316334643438613339616430320a383833623362353337653664633339 4 | 36646632643433313264346533346662613034346535663765653032366139646534393032643635 5 | 6663643330633931310a316265313963346530666538303334366264383436326235646365353237 6 | 36363162643264353133623862306563643539623162363161646166356333643066336431633438 7 | 63663238326431393835313063303336333639666561343935323231656136376130346238393530 8 | 38343231343837316438313966306132316666646430393933393738626264663434326364343135 9 | 36633337333062393236376435343034666336303863386366376163326335343462643835656334 10 | 31383138343832393639616534323861323030323130653233303939353364396463656639333061 11 | 36663638383836326566353866313263353538393236623433363230623765383431336334613664 12 | 33303263386462373362306333343861626139396464646332636132623961613664663435616137 13 | 38346630343239333165336666323431363538333261663030393939376462333030656333656166 14 | 39623562633964323365643261333566343136383831313861666334613935626165613563373366 15 | 36343931363034303638373032323861393261383337623337613938616664343532333236393439 16 | 34643231353464326464323838343763663331666566393333633633653636613163623832393434 17 | 64353964653064313863666230626235306263643238656232373632633039636137663262623130 18 | 30653533303134646236623061383430383464653234616134303739663266396131313463636138 19 | 35633233616234326562633264633335373365363433343831333738333263353162643665383732 20 | 32336432633266383965383065613834653438363164373962346238336630333561653939363835 21 | 66353731353232346463336265366265646162363335363930303532383636393866333661316530 22 | 35313535303339616433663061333132316232353062326464653639376264363764343461663734 23 | 33353938383332653932396163306237373634316137636432323364386536316332343931653166 24 | 35373137393338653366663434653632356466323963656164633661643035616561373537646131 25 | 39636661623133333464333930613466383134306632373039316131373837653736613966383262 26 | 64336361376334306332303230356139383362643335353736643531373233643939383333633539 27 | 31323164323063326536326136366131643263343431323236613333363135313631373766663163 28 | 30653232663231646563303534363535383832666561363332346663613939343931343439626438 29 | 33656433386231373837323934306339373434636633656237376137353165623434663939626334 30 | 37306135613662386262323139326665373333366436653262623336623633343764646265636434 31 | 62376263356264343263383135343030346665653635663832306438373837643335663464306162 32 | 36313266633364633635666638376430303333363364323132383862653535313639376366373030 33 | 36613335336662346332366231656165646664306437633136646338353737303632383039363630 34 | 31316236363462363931663035313332333139363537306264343366316233306133663836313636 35 | 61363262626535363966643065343031663266353532303435623338313032666638356261653662 36 | 36386230663536636365343337643333653463343163386437356239323966636538316362313331 37 | 34656566616537623437313932343430356365643865633931376539363937656663316132653135 38 | 32653637313663663065313737383438623863373034353264346361656364313638313130653939 39 | 3463336462323436356331366361646461303966346263386533 40 | -------------------------------------------------------------------------------- /tasks/personal-projects.yml: -------------------------------------------------------------------------------- 1 | - name: Harpoon exists 2 | stat: 3 | path: "{{ personal }}/harpoon" 4 | register: harpoon 5 | tags: 6 | - install 7 | - dotfiles 8 | - neovim 9 | - personal-project 10 | - name: Personal Project Harpoon 11 | ansible.builtin.git: 12 | repo: 'git@github.com:ThePrimeagen/harpoon.git' 13 | bare: true 14 | dest: "{{ personal }}/harpoon" 15 | tags: 16 | - install 17 | - dotfiles 18 | - neovim 19 | - personal-project 20 | when: harpoon.stat.exists == False 21 | - name: Harpoon Master Checkout 22 | shell: cd ~/personal/harpoon && git fetch && git worktree add master master 23 | tags: 24 | - install 25 | - dotfiles 26 | - neovim 27 | - personal-project 28 | when: harpoon.stat.exists == False 29 | 30 | - name: git-worktree exists 31 | stat: 32 | path: "{{ personal }}/git-worktree.nvim" 33 | register: worktree 34 | tags: 35 | - install 36 | - dotfiles 37 | - neovim 38 | - personal-project 39 | - name: Personal Project Git-Worktrees 40 | ansible.builtin.git: 41 | repo: 'git@github.com:ThePrimeagen/git-worktree.nvim.git' 42 | bare: true 43 | dest: "{{ personal }}/git-worktree.nvim" 44 | tags: 45 | - install 46 | - dotfiles 47 | - neovim 48 | - personal-project 49 | when: worktree.stat.exists == False 50 | - name: Git worktree Master Checkout 51 | shell: cd ~/personal/git-worktree.nvim && git fetch && git worktree add master master 52 | tags: 53 | - install 54 | - neovim 55 | - dotfiles 56 | - personal-project 57 | when: worktree.stat.exists == False 58 | 59 | - name: refactoring exists 60 | stat: 61 | path: "{{ personal }}/refactoring.nvim" 62 | register: refactoring 63 | tags: 64 | - install 65 | - dotfiles 66 | - neovim 67 | - personal-project 68 | - name: Personal Project Refactoring 69 | ansible.builtin.git: 70 | repo: 'git@github.com:ThePrimeagen/refactoring.nvim' 71 | bare: true 72 | dest: "{{ personal }}/refactoring.nvim" 73 | tags: 74 | - install 75 | - personal-project 76 | - neovim 77 | - dotfiles 78 | when: refactoring.stat.exists == False 79 | - name: Refactoring checkout 80 | shell: cd ~/personal/refactoring.nvim && git fetch && git worktree add master master 81 | tags: 82 | - install 83 | - dotfiles 84 | - neovim 85 | - personal-project 86 | when: refactoring.stat.exists == False 87 | 88 | - name: vim-with-me exists 89 | stat: 90 | path: "{{ personal }}/vim-with-me" 91 | register: vwm 92 | tags: 93 | - install 94 | - dotfiles 95 | - neovim 96 | - personal-project 97 | - name: Personal Project Vim With Me 98 | ansible.builtin.git: 99 | repo: 'git@github.com:ThePrimeagen/vim-with-me' 100 | bare: true 101 | dest: "{{ personal }}/vim-with-me" 102 | tags: 103 | - install 104 | - personal-project 105 | - neovim 106 | - dotfiles 107 | when: vwm.stat.exists == False 108 | - name: vim-with-me checkout 109 | shell: cd ~/personal/vim-with-me && git fetch && git worktree add ui ui 110 | tags: 111 | - install 112 | - dotfiles 113 | - neovim 114 | - personal-project 115 | when: vwm.stat.exists == False 116 | 117 | - name: ANIMOOOS 118 | ansible.builtin.git: 119 | repo: 'git@github.com:ThePrimeagen/anime.git' 120 | dest: "{{ personal }}/anime" 121 | tags: 122 | - install 123 | - personal-project 124 | - neovim 125 | - dotfiles 126 | - anime 127 | -------------------------------------------------------------------------------- /keyboard-layout.vil: -------------------------------------------------------------------------------- 1 | {"version": 1, "uid": 5079327669438482754, "layout": [[["LSFT(KC_BSLASH)", "LSFT(KC_EQUAL)", "KC_LBRACKET", "LSFT(KC_LBRACKET)", "LSFT(KC_9)", "LSFT(KC_7)"], ["KC_TAB", "KC_SCOLON", "KC_COMMA", "KC_DOT", "KC_P", "KC_Y"], ["KC_ESCAPE", "KC_A", "KC_O", "KC_E", "KC_U", "KC_I"], ["MO(1)", "KC_QUOTE", "KC_Q", "KC_J", "KC_K", "KC_X"], ["KC_ESCAPE", "LSFT(KC_4)", "LALT(KC_INSERT)", "KC_LEFT", "KC_RIGHT", "KC_BSPACE"], [-1, "KC_LCTRL", "KC_LALT", "KC_HOME", "KC_LSHIFT", "MO(1)"], ["KC_EQUAL", "LSFT(KC_0)", "LSFT(KC_RBRACKET)", "KC_RBRACKET", "LSFT(KC_8)", "LSFT(KC_1)"], ["KC_F", "KC_G", "KC_C", "KC_R", "KC_L", "KC_BSLASH"], ["KC_D", "KC_H", "KC_T", "KC_N", "KC_S", "KC_MINUS"], ["KC_B", "KC_M", "KC_W", "KC_V", "KC_Z", "MO(1)"], ["KC_SPACE", "KC_UP", "KC_DOWN", "KC_KP_SLASH", "LSFT(KC_2)", "KC_LSHIFT"], ["KC_ENTER", "C_S(KC_B)", "MEH(KC_NO)", "KC_LGUI", "KC_RCTRL", -1]], [["KC_GRAVE", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5"], ["KC_TAB", "LSFT(KC_SCOLON)", "LSFT(KC_COMMA)", "LSFT(KC_DOT)", "LSFT(KC_P)", "LSFT(KC_Y)"], ["KC_ESCAPE", "LSFT(KC_A)", "LSFT(KC_O)", "LSFT(KC_E)", "LSFT(KC_U)", "LSFT(KC_I)"], ["KC_LSHIFT", "LSFT(KC_QUOTE)", "LSFT(KC_Q)", "LSFT(KC_J)", "LSFT(KC_K)", "LSFT(KC_X)"], ["KC_TRNS", "LSFT(KC_GRAVE)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], [-1, "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_LSHIFT"], ["KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "LSFT(KC_5)"], ["LSFT(KC_F)", "LSFT(KC_G)", "LSFT(KC_C)", "LSFT(KC_R)", "LSFT(KC_L)", "LSFT(KC_3)"], ["LSFT(KC_D)", "LSFT(KC_H)", "LSFT(KC_T)", "LSFT(KC_N)", "LSFT(KC_S)", "LSFT(KC_MINUS)"], ["LSFT(KC_B)", "LSFT(KC_M)", "LSFT(KC_W)", "LSFT(KC_V)", "LSFT(KC_Z)", "KC_LSHIFT"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "LSFT(KC_SLASH)", "LSFT(KC_6)", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", -1]], [["KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5"], ["KC_TRNS", "LSFT(KC_1)", "LSFT(KC_2)", "KC_LBRACKET", "KC_RBRACKET", "LSFT(KC_BSLASH)"], ["KC_TRNS", "LSFT(KC_3)", "LSFT(KC_4)", "LSFT(KC_9)", "LSFT(KC_0)", "KC_GRAVE"], ["KC_TRNS", "LSFT(KC_5)", "LSFT(KC_6)", "KC_LBRACKET", "KC_RBRACKET", "LSFT(KC_GRAVE)"], ["RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], [-1, "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11"], ["KC_UP", "KC_KP_7", "KC_KP_8", "KC_KP_9", "KC_KP_ASTERISK", "KC_F12"], ["KC_DOWN", "KC_KP_4", "KC_KP_5", "KC_KP_6", "KC_KP_PLUS", "LALT(KC_PSCREEN)"], ["LSFT(KC_7)", "KC_KP_1", "KC_KP_2", "KC_KP_3", "KC_KP_SLASH", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_KP_DOT", "KC_KP_0", "KC_KP_EQUAL", "KC_TRNS"], ["KC_TRNS", "KC_PGDOWN", "KC_PGUP", "KC_TRNS", "KC_TRNS", -1]], [["KC_SLEP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MS_U", "KC_TRNS", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_MS_L", "KC_MS_D", "KC_MS_R", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["RESET", "KC_TRNS", "KC_TRNS", "KC_BTN1", "KC_BTN2", "KC_TRNS"], [-1, "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY"], ["KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_MNXT", "KC_TRNS", "KC_TRNS"], ["KC_WBAK", "KC_VOLU", "KC_VOLD", "KC_MUTE", "KC_TRNS", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", -1]]], "encoder_layout": [[], [], [], []], "layout_options": -1, "macro": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "vial_protocol": 3, "via_protocol": 9, "tap_dance": [], "combo": [], "settings": {}} -------------------------------------------------------------------------------- /.ssh/id_rsa: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 62366263333739653935313334316565393735386264666538643133636662626266653635323537 3 | 3736333066346234376233663266353234376663313966620a653661396639393636386662373139 4 | 64393463323138323664396531353030613432613735333335616466333262343430303130623330 5 | 3832666461383362660a616637326534343262613866306665363233663439396161663466383936 6 | 33393331333132316438386331316538353863383561656361333066366536623065336535663535 7 | 36353936396236343636323938356266326430613831343861353237613264333737373637363833 8 | 33386265646261643561326361346336366337633063613439333435386239373163303634346532 9 | 32613866623465363662316465393931626435633336376163313633613465316263306439613236 10 | 31666635633662613364326532646231396335366534383538353536326238383264333237323165 11 | 37386131306537613566646463396235343736653163353639313537303831336365353466366139 12 | 31666466393636313161653165396136623666303335653933656633373964393530613530336330 13 | 62333030323436646633333966643736363337303939663365353438656361333531363139666331 14 | 62366131366266316231636531306332396662343364323061616131643838666436373161383066 15 | 32353063623161366565323732653234346632633362653835313563323636303834363136393764 16 | 37613662643361363532383164386663376465653638666337353539316537633636663430343465 17 | 34373132643139343634333261313831663739383833656137343765333537633362393731316331 18 | 35363232626466353331333962383938646634346163363039346662376664643837373033376233 19 | 35353939663039353632303337366631393939633462666334613834346532653530313965663863 20 | 64623662343133306333623566303862663961623734633434616234336465373034333639643366 21 | 32643632623531316237643438653839376666396538613065323238353832336234336235373135 22 | 30613730623638343762323035633566656236613863323662646133616331393634633630653061 23 | 64316364313762363034346239653765653665373237333435613966613666393738623166353937 24 | 61653338363965616235336261303664343636303037633561376637663061653939386164316332 25 | 32356133626264346330343562363438663239363438656361366434363863623935313261353161 26 | 35353635306363646331653631323036393430386531633164336638616332326562643437623230 27 | 33376134633233303537623133363336616232366430323461666432363061623835393365643366 28 | 39306564323130383437303839623738313131393462353663303635373536353162666436363330 29 | 39646337356565623664373566383936636664396136306365386139353931323732633430633935 30 | 35636164613535643438393632383334613839316438636266623038316536316235306431333639 31 | 63623236643032313130363638646366653435663536326431323333363163373161653138333766 32 | 63333133323862663133313132383939616366313561383461643337643339303538613439366531 33 | 36613832383166303561316532346539363236306439613963623737303630373439306238376365 34 | 64613432633338363565336561373138363035343833663963636262656337383438623263303535 35 | 32376435343564656230613862303033653162643932393634373131653035636433343264336436 36 | 61633535386439326534323463356234386131333530386136393663646337353731316534343032 37 | 39366238663538616237386661623437356535343834333032383462633465653230396262316331 38 | 36376639643961643535336437373035633766636562316238346635353133613833326534366366 39 | 61336138653837363532366339663531383664323061636630356237353337376431336436396231 40 | 33653761363032393635613561336363373830653232623830613362643735376338353836336534 41 | 39313536356533316533313132666264663130613237636466396132303932396236653933623034 42 | 38366538313062633639343638376364333534373338313666393639373736353566326439643262 43 | 63353238303661313339306531366137333165323762353233633164386432396564623963373465 44 | 66653939363662336461333035663937633532626361643031663165643233326338346531636237 45 | 35353063396631393236653366626161333262653330626235656637303636383236333661316639 46 | 37643837393539666137616261613533356262326632383963366235643837373337396134643364 47 | 34303733346364323966383935333032383965363562623733666633363536383363616431306230 48 | 33383333653938326239623663336463373963333132656530633363353136373333303834343833 49 | 65643561666635613435376363326139346435653431323962646136343532643333373334316466 50 | 63326234643736663434366133633163656132363763656365303661656138366531663564646233 51 | 66363662663034373638653730306332616464373738306233373531313262653238373966336335 52 | 32326166343065616164323163633639353439663466343332363864356338613530343236626666 53 | 64326266633434643365303732663135353639386331363865613062383330396361303135653632 54 | 62623164616534623531346134393863666536346163366432663961653565616361323861303130 55 | 31643034353136636539656430323132396233333435323536396363326161333639336232383234 56 | 30643137363866626664303930613563373234336337373732623831323836326133396531383663 57 | 32323763643862316661383437313661396162663261346436343230633634653231343832303431 58 | 62303538363966303138633539626161343930633233653134613933306133386163616164303961 59 | 37373330643032343264663932626334363936303339313866316639333635376530363063376230 60 | 66343230336134613231623136646137333035616637333562376235633135636532373464333362 61 | 31396566376334633536393235633932313332353966643232333930313630666366326135396636 62 | 31643662626631346138663466386533323435353665393632646338316133653939333638376434 63 | 35366533343861653634366366316435643830643139373035376461623839316563333966313935 64 | 62616431336338363661316236333239613462643664643265373434376233313835343865633162 65 | 39373861366261343835616538313234633061316562636531383235383466386661326136633133 66 | 65663037343838383537653463646530636139343235346536316463313366623536333031333664 67 | 66336233313833636436616337316231663433396538326134396366663932316635386539346436 68 | 61316131373132343831363130393339336465613730383165303563613362663234323237653837 69 | 34653433636235643133323864616633613765316138303661363134633137633138653139646132 70 | 31626162636462366637363731616231303636613730613636306661333566636232326564396531 71 | 39326631383163633838306361313033343531656335633038613235323263663662356437393732 72 | 64383262326139373738336561326438666236316338366638353037646630633661613234653736 73 | 30616231393066623435316439383434613937646432656261666637653064323737366466376265 74 | 64633462393365643330626463373266383164323437666536323464383835616136363461616166 75 | 36653036346661653734356133386563306637393565656465386533383938373233396530356333 76 | 34363665363064636236326462663136383538353662363736653736663865613764666536306363 77 | 61326632356262333435613838613035306265646438396565633430333263663731643465386263 78 | 38343462653530346563656237376535666563626366333339373661323832393933636666303964 79 | 62616237313333353464303766326636656366363062306439363038386637656139323464306536 80 | 65656439313031303635623834306166343533613838316130316336323037616331363339313863 81 | 31303562343264356238363438333630393963366335623135313764626137303465663464366138 82 | 38613233346239386537393963323938386463333562653162613833613264663662343433653536 83 | 64623633303036303330643730303965396161613965643466653261386439373361363430623137 84 | 39613361346366643663653835343131666361326232333936653231313462333730346539326433 85 | 30613064396531396666616231383264663330333165346161333237356530623339653265656430 86 | 61333262353564626331363632343364333861353763376465316638663264336133353939333130 87 | 35373038323166666339353737396133646464393532313038633436376632346138663631333763 88 | 36626630376632326534636531636362376266353034306130383839396537393037623635393638 89 | 34643334313363313866623965656432656232353663346535333138613362363136396632343730 90 | 66366235663366653839626237316630636362363535623161336666333437653663363966336432 91 | 35656633353065653432343034383931643930356236306264323935346536613262343463643632 92 | 34633563303862383438343031626561313136353832363038323039363061343364343939663938 93 | 31306261366231313933656338343339323366363465636235646431303033383232393834633530 94 | 31316339623135346236363939373132666161383534303664313763313636303564613333633130 95 | 38663938343531646264663630313264396664373935356565313637336635303464356361363064 96 | 33653030633963353533656333623564346336393836303736396139323139303837666335666533 97 | 36323535613532386436666166326633613339343532303235346437373665353932333063386634 98 | 63613939653564613730396635663434303232633337363930336263333032656132616332313033 99 | 32346532623563663065323262623230343564613163383632626438383839653439333662333035 100 | 66376436376138356134386165643133313939646136626330653766613663336265663534666562 101 | 30346665383562353439643161323534666461306534636331333731333933613730633833633631 102 | 36653863396365373938343034376262373465303435383430346665663465643735333838616334 103 | 35383364363930396263336432393032313931366534643164326339666364376532303237353463 104 | 62653435376262373635373962386236363466316366336238616332356361633963643263633161 105 | 34326137623261393463373433623333316564666637613363316164646333346533363961396131 106 | 66323531383037613032323139316331323461366136323466613032626134636338373864396365 107 | 35383463666134313964353231313562663633666233303064626639646165346530336163643238 108 | 37393161303436363066356239313036376139393361383132373065613564646166646461353939 109 | 31623864303262313135323236376662623737316663646136613865656639643030366564303564 110 | 36393066666562663432633065393163393532623432346433356333643665316234663434326162 111 | 33333531366364356531323431313563623339333034393235366335346339366636633030333937 112 | 32353238663533636562353137346431666163386638386162336536343833396166306234326530 113 | 33383338376536646538316661663030356431376165393739616163363739396165343938373538 114 | 33663636356334323364653235623364653139643064653037623333306134303064366362633334 115 | 36633332386535333864623837643761386234333236356339393737653465316536383836323734 116 | 64316130383539656230373761396236646135306134383639373833383065666236333935633861 117 | 32356566333236363232356363363465373564633463373462373761333537393436663532356139 118 | 64323964663739356433616430353330313438333364316233666333626463323366376563626461 119 | 36373236633838363961636230346630363833326232373361313164356632316262616436366364 120 | 62656563616464653365346537623234373737306465313831616632316264383661303734613361 121 | 62323138656535393739303363393665306435323232396131353331613338666630356236636437 122 | 61663963633739666362356531626361346637313735316139336434323565636566356433633332 123 | 38623963306130396231396666306463623737646235346665303233623039363132633163336230 124 | 64393361353131346636396132386631633736363136313436616634663234663966613132383134 125 | 36616434623835303436316666623437656538346634326533346434666566623364353165363766 126 | 65653135353634653934343665646530613935356133366166303162646263313162376366383566 127 | 63346539363234366230366531336366656134633665333631653564613533656431666230383764 128 | 34666131373234373630303231366664353930643064653837313865646333383736623234643762 129 | 30373364343261313761313732656433376663383165646136646331396634303730356239633764 130 | 65616163376134326236663661393966313834663631616332626530616433373234333238353263 131 | 34616335663638373732346532353931633835636432333634353932383764393862373038613062 132 | 35653361306361353335663334363934343039633232626631326339663662393166323266663664 133 | 33623862623664653866626235653230643361343566646230356663613239623632643538336662 134 | 34313766626439636531663936363334636664343335396632323237663662623837313065303933 135 | 31666131623332313936333735333139313664356631376237383838623837386162373361633030 136 | 38303732323163623966383035613535366366376666393730306163393937616433636437653165 137 | 34666364336234653738353861636435623265326561653639653366623264386561303930373463 138 | 65646630656232653665646638636462613732643233393530616235613533323430393539333564 139 | 32636636346431353335303237633936633337333565336231316633633736333631343634356632 140 | 38343765306630663965616536373432306166626133396437386361346266373462393834343666 141 | 30306564386233316362313261313233636438636231646639353331393463383538636163323934 142 | 33656432346438303132306132663530656665626363613165396563373536396238303931663638 143 | 32353933353437326131323237363437336263396162316561313930663763303538353066363131 144 | 65623562653132316163326232383236613964363831323561393439623934653031383562613265 145 | 63336332333465363665323665313137373438316634333338303639373861363633653135663838 146 | 36353363643563643964373061633963646165383839343965396638383063363631626230343234 147 | 36386132353039353933363866666266613063396639383863353334343461393731353431633864 148 | 63303930383432303032353033356434663264336162373064613237396239323263346164316537 149 | 30373235656339326535666237393232626262633737653331623061336433323239656461663330 150 | 61346663633135663032346164646134383264643734363064656264613533633730366263353565 151 | 64643830323030343364323862316565316431343635633934636166323939303461323035353365 152 | 37386137306635383137326335303837653961353266346431626338666561346234373762303262 153 | 65393062666633643233613038303762653337663061366133643739383733633634306131386466 154 | 36653033336664613839393538353938363838316466363532373264363766653666383863386430 155 | 36356664613438633231626537653938633939383763383365316564313231323762303865353863 156 | 35363836386335303861333366306365326630656661303231313761303366656438343538303763 157 | 31643734343266303361396634303264333532616430353863396465376132323166353264313835 158 | 30346266356163646336396639653565663033326139336334616562333038646330303066613662 159 | 61363133326365653638343638363232623762313135363636333937323833353261626161653336 160 | 34366366306563616333373437306463376339323363346434343439366364363138663533396436 161 | 62333435666338383335363030653338616533656635396632333766363862353937363935663063 162 | 39636239303930323962613064313133373136323331663034633137613830316236323865613238 163 | 32373164363766396465663862383231626364656231653564303162336361323931333537623861 164 | 66653166643261313131313139396532623961303362393866626337343136396230323063313664 165 | 33333432376266363862326466396363623033366339653365396134343638323134633363353236 166 | 35303365323133383765356339663264646532346235326661303238663866646365366531633233 167 | 66383264373462333139323438353234656534343534666635616661626138376261383239663132 168 | 37633365353339653566626462656137333735393063653163623539643339396634346566616439 169 | 30363365653839613433636239316166663964306136386139313035333630653164376234356133 170 | 61356336646636393432383365633463613933616633643764653633623766306161383836393636 171 | 64653163653533633461666364616264363364383737386533633931653336636136346533363938 172 | 37353465323665646239656539656635666362613037393564643335633631656430366561396237 173 | 36366233343233383135303133626139303439643661346664656136633939613361313537336565 174 | 66313633623066363530366337646166343465393431383433666661613337353337 175 | --------------------------------------------------------------------------------