Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // DOWNLOAD LINK:
- // drive.google.com/file/d/0BzWHrbCZL7VLMC1yaXZnaW9JdFk/view
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace PD2_Heists
- {
- class Heist
- {
- string name, contractor, type, stealth;
- int days;
- bool check;
- public string Name
- {
- get { return name; }
- }
- public string Contractor
- {
- get { return contractor; }
- }
- public string Type
- {
- get { return type; }
- }
- public string Stealth
- {
- get { return stealth; }
- }
- public int Days
- {
- get { return days; }
- }
- public bool Check
- {
- get { return check; }
- set { check = value; }
- }
- int[] pay = new int[5];
- int[] exp = new int[5];
- int[] payPro = new int[5];
- int[] expPro = new int[5];
- /// <summary>
- /// Constructor
- /// </summary>
- /// <param name="name">Name of Heist</param>
- /// <param name="contractor">Contractor of Heist</param>
- /// <param name="type">Regular/Pro (only)/DLC/Community</param>
- /// <param name="days">Number of days in Heist</param>
- /// <param name="stealth">"+x%" = stealth-able, "No Bonus" = not stealth-able</param>
- /// <param name="pay0">Pay - Normal</param>
- /// <param name="pay1">Pay - Hard</param>
- /// <param name="pay2">Pay - Very Hard</param>
- /// <param name="pay3">Pay - Overkill</param>
- /// <param name="pay4">Pay - Death Wish</param>
- /// <param name="exp0">EXP - Normal</param>
- /// <param name="exp1">EXP - Hard</param>
- /// <param name="exp2">EXP - Very Hard</param>
- /// <param name="exp3">EXP - Overkill</param>
- /// <param name="exp4">EXP - Death Wish</param>
- /// <param name="payPro0">[PRO] Pay - Normal (N/A)</param>
- /// <param name="payPro1">[PRO] Pay - Hard</param>
- /// <param name="payPro2">[PRO] Pay - Very Hard</param>
- /// <param name="payPro3">[PRO] Pay - Overkill</param>
- /// <param name="payPro4">[PRO] Pay - Death Wish</param>
- /// <param name="expPro0">[PRO] EXP - Normal (N/A)</param>
- /// <param name="expPro1">[PRO] EXP - Hard</param>
- /// <param name="expPro2">[PRO] EXP - Very Hard</param>
- /// <param name="expPro3">[PRO] EXP - Overkill</param>
- /// <param name="expPro4">[PRO] EXP - Death Wish</param>
- /// <param name="check">true = Checked, false = Unchecked</param>
- public Heist(string name, string contractor, string type, int days, string stealth, int pay0, int pay1, int pay2, int pay3, int pay4, int exp0, int exp1, int exp2, int exp3, int exp4, int payPro0, int payPro1, int payPro2, int payPro3, int payPro4, int expPro0, int expPro1, int expPro2, int expPro3, int expPro4, bool check)
- {
- this.name = name;
- this.contractor = contractor;
- this.type = type;
- this.days = days;
- this.stealth = stealth;
- this.check = check;
- pay[0] = pay0;
- pay[1] = pay1;
- pay[2] = pay2;
- pay[3] = pay3;
- pay[4] = pay4;
- exp[0] = exp0;
- exp[1] = exp1;
- exp[2] = exp2;
- exp[3] = exp3;
- exp[4] = exp4;
- payPro[0] = payPro0;
- payPro[1] = payPro1;
- payPro[2] = payPro2;
- payPro[3] = payPro3;
- payPro[4] = payPro4;
- expPro[0] = expPro0;
- expPro[1] = expPro1;
- expPro[2] = expPro2;
- expPro[3] = expPro3;
- expPro[4] = expPro4;
- }
- public int Pay(int n)
- {
- return pay[n];
- }
- public int EXP(int n)
- {
- return exp[n];
- }
- public int PayPro(int n)
- {
- return payPro[n];
- }
- public int EXPPro(int n)
- {
- return expPro[n];
- }
- }
- public partial class Form1 : Form
- {
- private void Form1_Load(object sender, EventArgs e) {}
- static int N = 27; //Number of available heists
- static double bonus = 0; //Blending In perk + Infamy bonus
- CheckBox[] checkBox = new CheckBox[N]; //Array to hold all heist checkboxes
- Heist[] heist = new Heist[N]; //Custom Heists object array
- public Form1()
- {
- InitializeComponent();
- //Bain
- checkBox[0] = ArtGallery;
- checkBox[1] = BankHeist;
- checkBox[2] = BankHeistCash;
- checkBox[3] = BankHeistDeposit;
- checkBox[4] = BankHeistGold;
- checkBox[5] = DiamondStore;
- checkBox[6] = GoBank;
- checkBox[7] = JewelryStore;
- checkBox[8] = ShadowRaid;
- checkBox[9] = TransportCrossroads;
- checkBox[10] = TransportDowntown;
- checkBox[11] = TransportHarbor;
- checkBox[12] = TransportPark;
- checkBox[13] = TransportUnderpass;
- heist[0] = new Heist("Art Gallery", "Bain", "Community", 1, "+10%", 30000, 62500, 200000, 300000, 400000, 4200, 12600, 25200, 46200, 58800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[1] = new Heist("Bank Heist", "Bain", "Pro", 1, "+10%", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200000, 240000, 350000, 425000, 0, 30000, 60000, 110000, 140000, true);
- heist[2] = new Heist("Bank Heist: Cash", "Bain", "Regular", 1, "+10%", 50000, 75000, 200000, 300000, 375000, 10000, 30000, 60000, 110000, 140000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[3] = new Heist("Bank Heist: Deposit", "Bain", "Regular", 1, "+10%", 150000, 175000, 220000, 340000, 380000, 10000, 30000, 60000, 110000, 140000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[4] = new Heist("Bank Heist: Gold", "Bain", "Pro", 1, "+10%", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200000, 270000, 380000, 450000, 0, 30000, 60000, 110000, 140000, true);
- heist[5] = new Heist("Diamond Store", "Bain", "Regular", 1, "+10%", 30000, 60000, 150000, 250000, 300000, 6000, 18000, 36000, 66000, 84000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[6] = new Heist("Go Bank", "Bain", "Regular", 1, "+10%", 275000, 550000, 1375000, 2750000, 3500000, 16000, 48000, 96000, 211200, 268800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[7] = new Heist("Jewelry Store", "Bain", "Regular", 1, "+5%", 30000, 60000, 150000, 250000, 300000, 2000, 6000, 12000, 22000, 28000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[8] = new Heist("Shadow Raid", "Bain", "Regular", 1, "+5%", 50000, 100000, 150000, 200000, 400000, 10000, 30000, 60000, 165000, 252000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[9] = new Heist("Transport: Crossroads", "Bain", "DLC", 1, "No Bonus", 152500, 170000, 250000, 310000, 370000, 10000, 30000, 60000, 132000, 168000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[10] = new Heist("Transport: Downtown", "Bain", "DLC", 1, "No Bonus", 132500, 155000, 250000, 260000, 320000, 10000, 30000, 60000, 132000, 168000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[11] = new Heist("Transport: Harbor", "Bain", "DLC", 1, "No Bonus", 112500, 145000, 200000, 210000, 270000, 14500, 33500, 37000, 191400, 243600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[12] = new Heist("Transport: Park", "Bain", "DLC", 1, "No Bonus", 142500, 155000, 200000, 215000, 280000, 10000, 30000, 60000, 132000, 168000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[13] = new Heist("Transport: Underpass", "Bain", "DLC", 1, "No Bonus", 137500, 155000, 240000, 265000, 333000, 10000, 30000, 60000, 132000, 168000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- //Hector
- checkBox[14] = Firestarter;
- checkBox[15] = Rats;
- checkBox[16] = Watchdogs;
- heist[14] = new Heist("Firestarter", "Hector", "Regular", 3, "+5-20%", 350000, 475000, 625000, 1000000, 1250000, 24000, 72000, 144000, 264000, 336000, 0, 550000, 800000, 1250000, 1500000, 0, 84000, 168000, 308000, 392000, true);
- heist[15] = new Heist("Rats", "Hector", "Regular", 3, "No Bonus", 50000, 75000, 100000, 150000, 250000, 16000, 48000, 96000, 176000, 224000, 0, 75000, 150000, 200000, 400000, 0, 60000, 120000, 220000, 504000, true);
- heist[16] = new Heist("Watchdogs", "Hector", "Regular", 2, "No Bonus", 300000, 370000, 625000, 925000, 1300000, 20000, 60000, 120000, 220000, 280000, 0, 425000, 750000, 1000000, 1450000, 0, 84000, 168000, 308000, 392000, true);
- //The Dentist
- checkBox[17] = HotlineMiami;
- checkBox[18] = HoxtonBreakout;
- checkBox[19] = TheBigBank;
- heist[17] = new Heist("Hotline Miami", "Dentist", "DLC", 2, "No Bonus", 185000, 215000, 300000, 350000, 400000, 39200, 117600, 235200, 431200, 548800, 0, 175000, 250000, 325000, 500000, 0, 144000, 288000, 528000, 672000, true);
- heist[18] = new Heist("Hoxton Breakout", "Dentist", "Community", 2, "No Bonus", 1250000, 2500000, 6250000, 12500000, 16000000, 89880, 269640, 539280, 988680, 1258320, 0, 2900000, 7250000, 14500000, 19000000, 0, 288000, 576000, 1056000, 1344000, true);
- heist[19] = new Heist("The Big Bank", "Dentist", "DLC", 1, "+15%", 450000, 675000, 900000, 1550000, 1900000, 28000, 84000, 168000, 308000, 392000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- //The Elephant
- checkBox[20] = BigOil;
- checkBox[21] = ElectionDay;
- checkBox[22] = FramingFrame;
- heist[20] = new Heist("Big Oil", "Elephant", "Pro", 2, "+15%", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1500000, 2250000, 2750000, 4250000, 0, 96000, 192000, 352000, 448000, true);
- heist[21] = new Heist("Election Day", "Elephant", "Regular", 2, "+5-20%", 100000, 125000, 200000, 300000, 450000, 16000, 48000, 96000, 176000, 224000, 0, 175000, 250000, 325000, 500000, 0, 60000, 120000, 220000, 280000, true);
- heist[22] = new Heist("Framing Frame", "Elephant", "Regular", 3, "+3-25%", 300000, 600000, 1500000, 3000000, 4000000, 20000, 60000, 120000, 220000, 280000, 0, 550000, 1650000, 3300000, 4400000, 0, 96000, 192000, 352000, 448000, true);
- //Vlad
- checkBox[23] = FourStores;
- checkBox[24] = Mallcrasher;
- checkBox[25] = Nightclub;
- checkBox[26] = UkrainianJob;
- heist[23] = new Heist("Four Stores", "Vlad", "Regular", 1, "+5%", 45000, 90000, 225000, 450000, 600000, 4000, 12000, 24000, 44000, 56000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[24] = new Heist("Mallcrasher", "Vlad", "Regular", 1, "No Bonus", 45000, 90000, 225000, 450000, 600000, 4000, 12000, 24000, 44000, 56000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[25] = new Heist("Nightclub", "Vlad", "Regular", 1, "+10%", 100000, 112500, 200000, 300000, 400000, 10000, 30000, 60000, 110000, 14000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, true);
- heist[26] = new Heist("Ukrainian Job", "Vlad", "Pro", 1, "+5%", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120000, 130000, 150000, 200000, 0, 12000, 24000, 44000, 56000, true);
- }
- private void Randomize_Click(object sender, EventArgs e) //Randomize button
- {
- Random r = new Random(); //Randomizer
- int index = 0; //Multi-purpose
- for (int i = 0; i < N; i++) //
- { //
- index = i; //
- if (heist[i].Check) //Checks if a heist is selected (if there's at least 1 checkmark)
- break; //
- } //
- if (heist[index].Check) //
- {
- do
- index = r.Next(N); //Randomizing
- while (!heist[index].Check); //While heist is not checked
- double stealthBonus;
- double.TryParse(textBox_Stealth.Text, out stealthBonus);
- stealthBonus = (stealthBonus / 100) + 1;
- textBox_Heist.Text = heist[index].Name; //Print heist
- textBox_HeistInfo1.Text = "Pay:\r\n" + heist[index].Pay(Difficulty.Value) + "\r\nEXP:\r\n" + (int)(heist[index].EXP(Difficulty.Value) * (bonus + 1) * stealthBonus) + "\r\nDays:\r\n" + heist[index].Days; //Show selected heist's info
- textBox_HeistInfo2.Text = "Pay (Pro):\r\n" + heist[index].PayPro(Difficulty.Value) + "\r\nEXP (Pro):\r\n" + (int)(heist[index].EXPPro(Difficulty.Value) * (bonus + 1) * stealthBonus) + "\r\nStealth:\r\n" + heist[index].Stealth; //Show selected heist's info
- }
- else
- {
- textBox_Heist.Text = "ERROR: No Heists Selected"; //Print error message if no heists selected
- textBox_HeistInfo1.Text = "Pay:\r\n\r\nEXP:\r\n\r\nDays:"; //Show default heist info 1
- textBox_HeistInfo2.Text = "Pay (Pro):\r\n\r\nEXP (Pro):\r\n\r\nStealth:"; //Show default heist info 2
- }
- }
- ////////////////////////////////////////FILTER OPTIONS////////////////////////////////////////
- private void DLC_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all DLC heists
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Type == "DLC")
- checkBox[i].Checked = DLC.Checked;
- }
- }
- private void Pro_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all Pro Jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Type == "Pro")
- checkBox[i].Checked = Pro.Checked;
- }
- }
- private void Community_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all community heists
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Type == "Community")
- checkBox[i].Checked = Community.Checked;
- }
- }
- private void Stealth_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all loud-only jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Stealth == "No Bonus")
- checkBox[i].Checked = !Stealth.Checked;
- }
- }
- private void Filter_Click(object sender, EventArgs e) //Pay / EXP Filter button
- {
- int pay, exp, payPro, expPro, setPay, setEXP;
- double stealthBonus;
- int.TryParse(textBox_Pay.Text, out setPay); //Get minimum set Pay
- int.TryParse(textBox_EXP.Text, out setEXP); //Get minimum set EXP
- double.TryParse(textBox_Stealth.Text, out stealthBonus); //Get stealth bonus
- stealthBonus = (stealthBonus / 100) + 1; //Calculate stealth bonus
- for (int i = 0; i < N; i++)
- {
- pay = heist[i].Pay(Difficulty.Value); //Get Pay
- payPro = heist[i].PayPro(Difficulty.Value); //Get Pro Pay
- exp = (int)(heist[i].EXP(Difficulty.Value) * (bonus + 1) * stealthBonus); //Calculate EXP
- expPro = (int)(heist[i].EXPPro(Difficulty.Value) * (bonus + 1) * stealthBonus); //Calculate Pro EXP
- if (!((pay >= setPay || payPro >= setPay) && (exp >= setEXP || expPro >= setEXP))) //If Pay or EXP do not meet minimum then uncheck box
- checkBox[i].Checked = false;
- }
- }
- private void Difficulty_Scroll(object sender, EventArgs e) //Difficulty Slider
- {
- if (Difficulty.Value == 0)
- {
- DifficultyTextBox.Text = "Normal";
- Pro.Checked = false;
- }
- if (Difficulty.Value == 1)
- DifficultyTextBox.Text = "Hard";
- if (Difficulty.Value == 2)
- DifficultyTextBox.Text = "Very Hard";
- if (Difficulty.Value == 3)
- DifficultyTextBox.Text = "Overkill";
- if (Difficulty.Value == 4)
- DifficultyTextBox.Text = "Death Wish";
- }
- ////////////////////////////////////////BONUSES////////////////////////////////////////
- private void BlendingIn_CheckedChanged(object sender, EventArgs e) //Blending in perk +45% bonus
- {
- if (BlendingIn.Checked)
- bonus += 0.45;
- else
- bonus -= 0.45;
- }
- private void numericUpDown_Infamy_ValueChanged(object sender, EventArgs e) //Infamy bonus (+5% each level)
- {
- if (BlendingIn.Checked)
- bonus = 0.45;
- else
- bonus = 0;
- bonus += ((double)numericUpDown_Infamy.Value * 0.05);
- }
- ////////////////////////////////////////CONTRACTORS CHECKMARKS////////////////////////////////////////
- private void Bain_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all of Bain's jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Contractor == "Bain")
- checkBox[i].Checked = Bain.Checked;
- }
- }
- private void Hector_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all of Hector's jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Contractor == "Hector")
- checkBox[i].Checked = Hector.Checked;
- }
- }
- private void Dentist_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all of The Dentist's jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Contractor == "Dentist")
- checkBox[i].Checked = Dentist.Checked;
- }
- }
- private void Elephant_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all of The Elephant's jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Contractor == "Elephant")
- checkBox[i].Checked = Elephant.Checked;
- }
- }
- private void Vlad_CheckedChanged(object sender, EventArgs e) //Check / Uncheck all of Vlad's jobs
- {
- for (int i = 0; i < N; i++)
- {
- if (heist[i].Contractor == "Vlad")
- checkBox[i].Checked = Vlad.Checked;
- }
- }
- ////////////////////////////////////////HEISTS CHECKMARKS////////////////////////////////////////
- //Bain
- private void ArtGallery_CheckedChanged(object sender, EventArgs e)
- {
- heist[0].Check = ArtGallery.Checked;
- }
- private void BankHeist_CheckedChanged(object sender, EventArgs e)
- {
- heist[1].Check = BankHeist.Checked;
- }
- private void BankHeistCash_CheckedChanged(object sender, EventArgs e)
- {
- heist[2].Check = BankHeistCash.Checked;
- }
- private void BankHeistDeposit_CheckedChanged(object sender, EventArgs e)
- {
- heist[3].Check = BankHeistDeposit.Checked;
- }
- private void BankHeistGold_CheckedChanged(object sender, EventArgs e)
- {
- heist[4].Check = BankHeistGold.Checked;
- }
- private void DiamondStore_CheckedChanged(object sender, EventArgs e)
- {
- heist[5].Check = DiamondStore.Checked;
- }
- private void GoBank_CheckedChanged(object sender, EventArgs e)
- {
- heist[6].Check = GoBank.Checked;
- }
- private void JewelryStore_CheckedChanged(object sender, EventArgs e)
- {
- heist[7].Check = JewelryStore.Checked;
- }
- private void ShadowRaid_CheckedChanged(object sender, EventArgs e)
- {
- heist[8].Check = ShadowRaid.Checked;
- }
- private void TransportCrossroads_CheckedChanged(object sender, EventArgs e)
- {
- heist[9].Check = TransportCrossroads.Checked;
- }
- private void TransportDowntown_CheckedChanged(object sender, EventArgs e)
- {
- heist[10].Check = TransportDowntown.Checked;
- }
- private void TransportHarbor_CheckedChanged(object sender, EventArgs e)
- {
- heist[11].Check = TransportHarbor.Checked;
- }
- private void TransportPark_CheckedChanged(object sender, EventArgs e)
- {
- heist[12].Check = TransportPark.Checked;
- }
- private void TransportUnderpass_CheckedChanged(object sender, EventArgs e)
- {
- heist[13].Check = TransportUnderpass.Checked;
- }
- //Hector
- private void Firestarter_CheckedChanged(object sender, EventArgs e)
- {
- heist[14].Check = Firestarter.Checked;
- }
- private void Rats_CheckedChanged(object sender, EventArgs e)
- {
- heist[15].Check = Rats.Checked;
- }
- private void Watchdogs_CheckedChanged(object sender, EventArgs e)
- {
- heist[16].Check = Watchdogs.Checked;
- }
- //The Dentist
- private void HotlineMiami_CheckedChanged(object sender, EventArgs e)
- {
- heist[17].Check = HotlineMiami.Checked;
- }
- private void HoxtonBreakout_CheckedChanged(object sender, EventArgs e)
- {
- heist[18].Check = HoxtonBreakout.Checked;
- }
- private void TheBigBank_CheckedChanged(object sender, EventArgs e)
- {
- heist[19].Check = TheBigBank.Checked;
- }
- //The Elephant
- private void BigOil_CheckedChanged(object sender, EventArgs e)
- {
- heist[20].Check = BigOil.Checked;
- }
- private void ElectionDay_CheckedChanged(object sender, EventArgs e)
- {
- heist[21].Check = ElectionDay.Checked;
- }
- private void FramingFrame_CheckedChanged(object sender, EventArgs e)
- {
- heist[22].Check = FramingFrame.Checked;
- }
- //Vlad
- private void FourStores_CheckedChanged(object sender, EventArgs e)
- {
- heist[23].Check = FourStores.Checked;
- }
- private void Mallcrasher_CheckedChanged(object sender, EventArgs e)
- {
- heist[24].Check = Mallcrasher.Checked;
- }
- private void Nightclub_CheckedChanged(object sender, EventArgs e)
- {
- heist[25].Check = Nightclub.Checked;
- }
- private void UkrainianJob_CheckedChanged(object sender, EventArgs e)
- {
- heist[26].Check = UkrainianJob.Checked;
- }
- ////////////////////////////////////////ONLY ALLOW DIGITS////////////////////////////////////////
- private void textBox_Stealth_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8)
- e.Handled = true;
- }
- private void textBox_Pay_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8)
- e.Handled = true;
- }
- private void textBox_EXP_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8)
- e.Handled = true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement