From 7af3526e105cc330422f8742ec5edec1c4a0a98f Mon Sep 17 00:00:00 2001
From: brenda-br
Date: Thu, 2 Mar 2023 15:49:11 +0530
Subject: Restructuring Finalized for App Bundling
---
src/main/Simulator/BinaryEnvelopes.mo | 23 -
src/main/Simulator/Databases/Databases.py | 434 -
.../Databases/__pycache__/Databases.cpython-36.pyc | Bin 9303 -> 0 bytes
.../Databases/__pycache__/Databases.cpython-37.pyc | Bin 9187 -> 0 bytes
src/main/Simulator/Databases/chemsep1.xml | 94686 -------------------
.../BinaryPhaseEnvelope/BinaryPhaseEnvelopeNRTL.mo | 96 -
.../BinaryPhaseEnvelope/BinaryPhaseEnvelopePR.mo | 170 -
.../BinaryPhaseEnvelopeUNIFAC.mo | 267 -
.../BinaryPhaseEnvelopeUNIQUAC.mo | 258 -
.../Simulator/BinaryPhaseEnvelope/package.mo | 4 -
.../Simulator/BinaryPhaseEnvelope/package.order | 4 -
.../Simulator/Simulator/Examples/Absorption.mo | 56 -
src/main/Simulator/Simulator/Examples/CR.mo | 49 -
.../Simulator/Simulator/Examples/CompositeMS.mo | 29 -
.../Simulator/Examples/CompoundSeparator.mo | 40 -
.../Simulator/Simulator/Examples/Compressor.mo | 52 -
src/main/Simulator/Simulator/Examples/Cooler.mo | 51 -
.../Simulator/Simulator/Examples/Distillation.mo | 239 -
.../Simulator/Examples/EquilibriumReactor.mo | 81 -
src/main/Simulator/Simulator/Examples/Expander.mo | 56 -
src/main/Simulator/Simulator/Examples/Flash.mo | 54 -
.../Simulator/Simulator/Examples/HeatExchanger.mo | 95 -
src/main/Simulator/Simulator/Examples/Heater.mo | 54 -
.../Simulator/Simulator/Examples/MaterialStream.mo | 186 -
src/main/Simulator/Simulator/Examples/Mixer.mo | 79 -
src/main/Simulator/Simulator/Examples/PFR.mo | 52 -
src/main/Simulator/Simulator/Examples/Pump.mo | 47 -
.../Simulator/Simulator/Examples/ShortcutColumn.mo | 70 -
src/main/Simulator/Simulator/Examples/Splitter.mo | 51 -
src/main/Simulator/Simulator/Examples/Valve.mo | 47 -
src/main/Simulator/Simulator/Examples/package.mo | 4 -
.../Simulator/Simulator/Examples/package.order | 19 -
.../Files/ChemsepDatabase/Acenaphthene.mo | 6 -
.../Files/ChemsepDatabase/Acetaldehyde.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Aceticacid.mo | 6 -
.../Files/ChemsepDatabase/Aceticanhydride.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Acetone.mo | 6 -
.../Files/ChemsepDatabase/Acetonitrile.mo | 6 -
.../Files/ChemsepDatabase/Acetylchloride.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Acetylene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Acrylicacid.mo | 6 -
.../Files/ChemsepDatabase/Acrylonitrile.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Adipicacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Air.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ammonia.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Aniline.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Anisole.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Argon.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Benzene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Benzoicacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Biphenyl.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Bromine.mo | 6 -
.../Files/ChemsepDatabase/Bromobenzene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Butanal.mo | 6 -
.../Files/ChemsepDatabase/Butylvinylether.mo | 6 -
.../Files/ChemsepDatabase/Carbondioxide.mo | 6 -
.../Files/ChemsepDatabase/Carbondisulfide.mo | 6 -
.../Files/ChemsepDatabase/Carbonmonoxide.mo | 6 -
.../Files/ChemsepDatabase/Carbontetrachloride.mo | 6 -
.../Files/ChemsepDatabase/Carbonylsulfide.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Chlorine.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Chloroform.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Chrysene.mo | 6 -
.../CisOneFourdimethylcyclohexane.mo | 6 -
.../CisOneThreedimethylcyclohexane.mo | 6 -
.../CisOneThreedimethylcyclopentane.mo | 6 -
.../CisOneTwodimethylcyclohexane.mo | 6 -
.../CisOneTwodimethylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/CisTwobutene.mo | 6 -
.../Files/ChemsepDatabase/CisTwohexene.mo | 6 -
.../Files/ChemsepDatabase/CisTwopentene.mo | 6 -
.../ChemsepDatabase/Cisdecahydronaphthalene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Cumene.mo | 6 -
.../Files/ChemsepDatabase/Cumenehydroperoxide.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Cyclobutane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Cyclohexane.mo | 6 -
.../Files/ChemsepDatabase/Cyclohexanol.mo | 6 -
.../Files/ChemsepDatabase/Cyclohexanone.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Cyclohexene.mo | 6 -
.../Files/ChemsepDatabase/Cyclopentane.mo | 6 -
.../Files/ChemsepDatabase/DiButylCarbonate.mo | 6 -
.../Files/ChemsepDatabase/DiEthylCarbonate.mo | 6 -
.../Files/ChemsepDatabase/DiPhenylCarbonate.mo | 6 -
.../Files/ChemsepDatabase/Dichloroacetaldehyde.mo | 6 -
.../ChemsepDatabase/Dichloroacetylchloride.mo | 6 -
.../Files/ChemsepDatabase/Dicyclopentadiene.mo | 6 -
.../Files/ChemsepDatabase/Diethanolamine.mo | 6 -
.../Files/ChemsepDatabase/Diethylamine.mo | 6 -
.../Files/ChemsepDatabase/Diethyldisulfide.mo | 6 -
.../Files/ChemsepDatabase/Diethyleneglycol.mo | 6 -
.../Files/ChemsepDatabase/Diethylenetriamine.mo | 6 -
.../Files/ChemsepDatabase/Diethylethanolamine.mo | 6 -
.../Files/ChemsepDatabase/Diethylether.mo | 6 -
.../Files/ChemsepDatabase/Diethylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Diisobutylketone.mo | 6 -
.../Files/ChemsepDatabase/Diisopropanolamine.mo | 6 -
.../Files/ChemsepDatabase/Diisopropylamine.mo | 6 -
.../Files/ChemsepDatabase/Diisopropylether.mo | 6 -
.../Files/ChemsepDatabase/Diisopropylketone.mo | 6 -
.../Files/ChemsepDatabase/Dimethylacetylene.mo | 6 -
.../Files/ChemsepDatabase/Dimethylcarbonate.mo | 6 -
.../Files/ChemsepDatabase/Dimethyldisulfide.mo | 6 -
.../Files/ChemsepDatabase/Dimethylethanolamine.mo | 6 -
.../Files/ChemsepDatabase/Dimethylether.mo | 6 -
.../Files/ChemsepDatabase/Dimethylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Dimethylsulfoxide.mo | 6 -
.../Files/ChemsepDatabase/Dimethylterephthalate.mo | 6 -
.../Files/ChemsepDatabase/Dinbutylether.mo | 6 -
.../Files/ChemsepDatabase/Dinpropyldisulfide.mo | 6 -
.../Files/ChemsepDatabase/Dinpropylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Diphenyldisulfide.mo | 6 -
.../Files/ChemsepDatabase/Disecbutylether.mo | 6 -
.../Files/ChemsepDatabase/Ditertbutyldisulfide.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ethane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ethanol.mo | 6 -
.../Files/ChemsepDatabase/EthylPhenylCarbonate.mo | 6 -
.../Files/ChemsepDatabase/Ethylacetate.mo | 6 -
.../Files/ChemsepDatabase/Ethylacetylene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ethylamine.mo | 6 -
.../Files/ChemsepDatabase/Ethylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Ethylchloride.mo | 6 -
.../Files/ChemsepDatabase/Ethylcyclohexane.mo | 6 -
.../Files/ChemsepDatabase/Ethylcyclopentane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ethylene.mo | 6 -
.../Files/ChemsepDatabase/Ethylenecarbonate.mo | 6 -
.../Files/ChemsepDatabase/Ethylenediamine.mo | 6 -
.../Files/ChemsepDatabase/Ethyleneglycol.mo | 6 -
.../Files/ChemsepDatabase/Ethyleneoxide.mo | 6 -
.../Files/ChemsepDatabase/Ethylformate.mo | 6 -
.../Files/ChemsepDatabase/Ethylmercaptan.mo | 6 -
.../Files/ChemsepDatabase/Ethylmethyldisulfide.mo | 6 -
.../Files/ChemsepDatabase/Ethylpropyldisulfide.mo | 6 -
.../Files/ChemsepDatabase/Ethyltertpentylether.mo | 6 -
.../Files/ChemsepDatabase/FivemethylTwohexanone.mo | 6 -
.../Files/ChemsepDatabase/Fivemethylnonane.mo | 6 -
.../Files/ChemsepDatabase/Fluoranthene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Fluorene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Fluorine.mo | 6 -
.../Files/ChemsepDatabase/Formaldehyde.mo | 6 -
.../Files/ChemsepDatabase/Fourethylmxylene.mo | 6 -
.../Files/ChemsepDatabase/Fourethyloxylene.mo | 6 -
.../Files/ChemsepDatabase/Fourheptanone.mo | 6 -
.../ChemsepDatabase/FourmethylcisTwopentene.mo | 6 -
.../Files/ChemsepDatabase/Fourmethylheptane.mo | 6 -
.../Files/ChemsepDatabase/Fourmethylnonane.mo | 6 -
.../Files/ChemsepDatabase/Fourmethyloctane.mo | 6 -
.../ChemsepDatabase/FourmethyltransTwopentene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Furfural.mo | 6 -
.../Files/ChemsepDatabase/GeneralProperties.mo | 42 -
.../Simulator/Files/ChemsepDatabase/Glycerol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/HeliumFour.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Heptanal.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Hexanal.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Hydrogen.mo | 6 -
.../Files/ChemsepDatabase/Hydrogenchloride.mo | 6 -
.../Files/ChemsepDatabase/Hydrogencyanide.mo | 6 -
.../Files/ChemsepDatabase/Hydrogeniodide.mo | 6 -
.../Files/ChemsepDatabase/Hydrogensulfide.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Indane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Indene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Iodobenzene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Isobutane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Isobutene.mo | 6 -
.../Files/ChemsepDatabase/Isobutylacetate.mo | 6 -
.../Files/ChemsepDatabase/Isobutylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Isobutylmercaptan.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Isopentane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Isoprene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Isopropanol.mo | 6 -
.../Files/ChemsepDatabase/Isopropylacetate.mo | 6 -
.../Files/ChemsepDatabase/Isopropylbutylether.mo | 6 -
.../Files/ChemsepDatabase/Isopropylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/Isopropylmercaptan.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ketene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Krypton.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Maleicacid.mo | 6 -
.../Files/ChemsepDatabase/Maleicanhydride.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Mcresol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Mcymene.mo | 6 -
.../Files/ChemsepDatabase/Mdichlorobenzene.mo | 6 -
.../Files/ChemsepDatabase/Mdiethylbenzene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Mesitylene.mo | 6 -
.../Files/ChemsepDatabase/Methacrylicacid.mo | 6 -
.../Files/ChemsepDatabase/Methacrylonitrile.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Methane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Methanol.mo | 6 -
.../Files/ChemsepDatabase/MethylDiEthanolAmine.mo | 6 -
.../Files/ChemsepDatabase/MethylEthylCarbonate.mo | 6 -
.../Files/ChemsepDatabase/MethylPhenylCarbonate.mo | 6 -
.../Files/ChemsepDatabase/Methylacetate.mo | 6 -
.../Files/ChemsepDatabase/Methylacetylene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Methylal.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Methylamine.mo | 6 -
.../Files/ChemsepDatabase/Methylchloride.mo | 6 -
.../Files/ChemsepDatabase/Methylcyclohexane.mo | 6 -
.../Files/ChemsepDatabase/Methylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/Methylethanolamine.mo | 6 -
.../Files/ChemsepDatabase/Methylethylether.mo | 6 -
.../Files/ChemsepDatabase/Methylethylketone.mo | 6 -
.../Files/ChemsepDatabase/Methylethylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Methylformate.mo | 6 -
.../Files/ChemsepDatabase/Methyliodide.mo | 6 -
.../Files/ChemsepDatabase/Methylisobutylether.mo | 6 -
.../Files/ChemsepDatabase/Methylisobutylketone.mo | 6 -
.../Files/ChemsepDatabase/Methylisopropylether.mo | 6 -
.../Files/ChemsepDatabase/Methylisopropylketone.mo | 6 -
.../Files/ChemsepDatabase/Methylmercaptan.mo | 6 -
.../Files/ChemsepDatabase/Methylmethacrylate.mo | 6 -
.../Files/ChemsepDatabase/Methylnpropylether.mo | 6 -
.../Files/ChemsepDatabase/Methylnpropylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Methylpropionate.mo | 6 -
.../Files/ChemsepDatabase/Methyltbutylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Methyltertbutylether.mo | 6 -
.../Files/ChemsepDatabase/Methyltertpentylether.mo | 6 -
.../Files/ChemsepDatabase/Methyltoluene.mo | 6 -
.../Files/ChemsepDatabase/Methyltpentylsulfide.mo | 6 -
.../Files/ChemsepDatabase/Mnitrotoluene.mo | 6 -
.../Files/ChemsepDatabase/Monochlorobenzene.mo | 6 -
.../Files/ChemsepDatabase/Monoethanolamine.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Mxylene.mo | 6 -
.../ChemsepDatabase/Naminoethylethanolamine.mo | 6 -
.../Files/ChemsepDatabase/Naminoethylpiperazine.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Naphthalene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nbutane.mo | 6 -
.../Files/ChemsepDatabase/Nbutylacetate.mo | 6 -
.../Files/ChemsepDatabase/Nbutylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Nbutylcyclohexane.mo | 6 -
.../Files/ChemsepDatabase/Nbutylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/Nbutyricacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ndecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ndocosane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ndodecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Neicosane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Neon.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Neopentane.mo | 6 -
.../Files/ChemsepDatabase/Nheneicosane.mo | 6 -
.../Files/ChemsepDatabase/Nheptacosane.mo | 6 -
.../Files/ChemsepDatabase/Nheptadecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nheptane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nhexacosane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nhexadecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nhexane.mo | 6 -
.../Files/ChemsepDatabase/Nhexylacetate.mo | 6 -
.../Files/ChemsepDatabase/Nhexylmercaptan.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nitricacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nitricoxide.mo | 6 -
.../Files/ChemsepDatabase/Nitrobenzene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nitroethane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nitrogen.mo | 6 -
.../Files/ChemsepDatabase/Nitrogendioxide.mo | 6 -
.../Files/ChemsepDatabase/Nitrogentetroxide.mo | 6 -
.../Files/ChemsepDatabase/Nitrogentrioxide.mo | 6 -
.../Files/ChemsepDatabase/Nitromethane.mo | 6 -
.../Files/ChemsepDatabase/Nitrousoxide.mo | 6 -
.../Files/ChemsepDatabase/Nndimethylacetamide.mo | 6 -
.../Files/ChemsepDatabase/Nndimethylformamide.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nnonacosane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nnonadecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nnonane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Noctacosane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Noctadecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Noctane.mo | 6 -
.../Files/ChemsepDatabase/Npentacosane.mo | 6 -
.../Files/ChemsepDatabase/Npentadecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Npentane.mo | 6 -
.../Files/ChemsepDatabase/Npentylacetate.mo | 6 -
.../Files/ChemsepDatabase/Npropylacetate.mo | 6 -
.../Files/ChemsepDatabase/Npropylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Npropylcyclohexane.mo | 6 -
.../Files/ChemsepDatabase/Npropylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/Npropylformate.mo | 6 -
.../Files/ChemsepDatabase/Npropylmercaptan.mo | 6 -
.../Files/ChemsepDatabase/Ntetracosane.mo | 6 -
.../Files/ChemsepDatabase/Ntetradecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ntricosane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ntridecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Nundecane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ocresol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ocymene.mo | 6 -
.../Files/ChemsepDatabase/Odichlorobenzene.mo | 6 -
.../Files/ChemsepDatabase/Odiethylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Oethyltoluene.mo | 6 -
.../Files/ChemsepDatabase/OneFourbutanediol.mo | 6 -
.../Files/ChemsepDatabase/OneFourdioxane.mo | 6 -
.../ChemsepDatabase/OneOneTwotrichloroethane.mo | 6 -
.../Files/ChemsepDatabase/OneOnedichloroethane.mo | 6 -
.../ChemsepDatabase/OneOnedimethylcyclohexane.mo | 6 -
.../ChemsepDatabase/OneOnedimethylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/OneThreebutadiene.mo | 6 -
.../OneTwoFourFivetetramethylbenzene.mo | 6 -
.../ChemsepDatabase/OneTwoFourtrichlorobenzene.mo | 6 -
.../ChemsepDatabase/OneTwoFourtrimethylbenzene.mo | 6 -
.../OneTwoThreeFivetetramethylbenzene.mo | 6 -
.../OneTwoThreeFourtetramethylbenzene.mo | 6 -
.../ChemsepDatabase/OneTwoThreetrimethylbenzene.mo | 6 -
.../Files/ChemsepDatabase/OneTwobutadiene.mo | 6 -
.../Files/ChemsepDatabase/OneTwodichloroethane.mo | 6 -
.../Files/ChemsepDatabase/OneTwopropyleneoxide.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onebutanol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onebutene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oneheptanol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oneheptene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onehexanol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onehexene.mo | 6 -
.../ChemsepDatabase/OnemethylFournpropylbenzene.mo | 6 -
.../OnemethylOneethylcyclopentane.mo | 6 -
.../OnemethylThreenpropylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Onemethylindene.mo | 6 -
.../Files/ChemsepDatabase/Onemethylnaphthalene.mo | 6 -
.../Files/ChemsepDatabase/Onenitrobutane.mo | 6 -
.../Files/ChemsepDatabase/Onenitropropane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onenonene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oneoctene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onepentanol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onepentene.mo | 6 -
.../Files/ChemsepDatabase/Onephenylnaphthalene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Onepropanol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oneundecene.mo | 6 -
.../Files/ChemsepDatabase/Onitrotoluene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Otoluicacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oxalicacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oxygen.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Oxylene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ozone.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Pcresol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Pcymene.mo | 6 -
.../Files/ChemsepDatabase/Pdichlorobenzene.mo | 6 -
.../Files/ChemsepDatabase/Pdiethylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Pdiisopropylbenzene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Pentanal.mo | 6 -
.../Files/ChemsepDatabase/Pethyltoluene.mo | 6 -
.../Files/ChemsepDatabase/Phenanthrene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Phenol.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Phosgene.mo | 6 -
.../Files/ChemsepDatabase/Phthalicacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Piperazine.mo | 6 -
.../Files/ChemsepDatabase/Pnitrotoluene.mo | 6 -
.../Files/ChemsepDatabase/Pphenylenediamine.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Propadiene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Propanal.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Propane.mo | 6 -
.../Files/ChemsepDatabase/Propionicacid.mo | 6 -
.../Files/ChemsepDatabase/Propionitrile.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Propylene.mo | 6 -
.../Files/ChemsepDatabase/Propylenecarbonate.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Ptoluicacid.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Pxylene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Pyrene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Pyridine.mo | 6 -
.../Files/ChemsepDatabase/Salicylicacid.mo | 6 -
.../Files/ChemsepDatabase/Secbutylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Secbutylmercaptan.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Squalane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Styrene.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Sulfolane.mo | 6 -
.../Files/ChemsepDatabase/Sulfurdioxide.mo | 6 -
.../Files/ChemsepDatabase/Sulfurhexafluoride.mo | 6 -
.../Files/ChemsepDatabase/Sulfurtrioxide.mo | 6 -
.../Files/ChemsepDatabase/Terephthalicacid.mo | 6 -
.../Files/ChemsepDatabase/Tertbutylbenzene.mo | 6 -
.../Files/ChemsepDatabase/Tertbutylcyclohexane.mo | 6 -
.../Files/ChemsepDatabase/Tertbutylethylether.mo | 6 -
.../Files/ChemsepDatabase/Tertbutylmercaptan.mo | 6 -
.../Files/ChemsepDatabase/Tetraethyleneglycol.mo | 6 -
.../Files/ChemsepDatabase/Tetrahydrofuran.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Thiophene.mo | 6 -
.../ChemsepDatabase/ThreeFivedinitrotoluene.mo | 6 -
.../ChemsepDatabase/ThreeFourdimethylhexane.mo | 6 -
.../ChemsepDatabase/ThreeFourdinitrotoluene.mo | 6 -
.../ThreeThreeFivetrimethylheptane.mo | 6 -
.../ChemsepDatabase/ThreeThreediethylpentane.mo | 6 -
.../ThreeThreedimethylTwobutanone.mo | 6 -
.../ChemsepDatabase/ThreeThreedimethylhexane.mo | 6 -
.../ChemsepDatabase/ThreeThreedimethylpentane.mo | 6 -
.../Files/ChemsepDatabase/Threeethylheptane.mo | 6 -
.../Files/ChemsepDatabase/Threeethylhexane.mo | 6 -
.../Files/ChemsepDatabase/Threeethylpentane.mo | 6 -
.../Files/ChemsepDatabase/Threeheptanone.mo | 6 -
.../Files/ChemsepDatabase/Threehexanone.mo | 6 -
.../Files/ChemsepDatabase/ThreemethylOnebutene.mo | 6 -
.../ThreemethylThreeethylpentane.mo | 6 -
.../Files/ChemsepDatabase/Threemethylheptane.mo | 6 -
.../Files/ChemsepDatabase/Threemethylhexane.mo | 6 -
.../Files/ChemsepDatabase/Threemethylnonane.mo | 6 -
.../Files/ChemsepDatabase/Threemethyloctane.mo | 6 -
.../Files/ChemsepDatabase/Threemethylpentane.mo | 6 -
.../Files/ChemsepDatabase/Threepentanone.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Toluene.mo | 6 -
.../TransOneFourdimethylcyclohexane.mo | 6 -
.../TransOneThreedimethylcyclohexane.mo | 6 -
.../TransOneThreedimethylcyclopentane.mo | 6 -
.../TransOneTwodimethylcyclohexane.mo | 6 -
.../TransOneTwodimethylcyclopentane.mo | 6 -
.../Files/ChemsepDatabase/TransTwobutene.mo | 6 -
.../Files/ChemsepDatabase/TransTwohexene.mo | 6 -
.../Files/ChemsepDatabase/TransTwopentene.mo | 6 -
.../ChemsepDatabase/Transdecahydronaphthalene.mo | 6 -
.../Files/ChemsepDatabase/Trichloroacetaldehyde.mo | 6 -
.../ChemsepDatabase/Trichloroacetylchloride.mo | 6 -
.../Files/ChemsepDatabase/Trichloroethylene.mo | 6 -
.../Files/ChemsepDatabase/Triethanolamine.mo | 6 -
.../Files/ChemsepDatabase/Triethylamine.mo | 6 -
.../Files/ChemsepDatabase/Triethyleneglycol.mo | 6 -
.../Files/ChemsepDatabase/Trimethylamine.mo | 6 -
.../Files/ChemsepDatabase/Two6dinitrotoluene.mo | 6 -
.../Files/ChemsepDatabase/TwoFivedimethylhexane.mo | 6 -
.../Files/ChemsepDatabase/TwoFivedinitrotoluene.mo | 6 -
.../ChemsepDatabase/TwoFour6trinitrotoluene.mo | 6 -
.../ChemsepDatabase/TwoFourFourtrimethylhexane.mo | 6 -
.../Files/ChemsepDatabase/TwoFourdimethylhexane.mo | 6 -
.../ChemsepDatabase/TwoFourdimethylpentane.mo | 6 -
.../Files/ChemsepDatabase/TwoFourdinitrotoluene.mo | 6 -
.../ChemsepDatabase/TwoMethoxyTwoMethylHeptane.mo | 6 -
.../Files/ChemsepDatabase/TwoMethylTwoHeptanol.mo | 6 -
.../TwoThreeFourtrimethylpentane.mo | 6 -
.../TwoThreeThreeFourtetramethylpentane.mo | 6 -
.../TwoThreeThreetrimethylpentane.mo | 6 -
.../ChemsepDatabase/TwoThreedimethylbutane.mo | 6 -
.../ChemsepDatabase/TwoThreedimethylhexane.mo | 6 -
.../ChemsepDatabase/TwoThreedimethylpentane.mo | 6 -
.../ChemsepDatabase/TwoTwoFivetrimethylhexane.mo | 6 -
.../TwoTwoFourFourtetramethylpentane.mo | 6 -
.../ChemsepDatabase/TwoTwoFourtrimethylpentane.mo | 6 -
.../TwoTwoThreeFourtetramethylpentane.mo | 6 -
.../TwoTwoThreeThreetetramethylbutane.mo | 6 -
.../TwoTwoThreeThreetetramethylpentane.mo | 6 -
.../ChemsepDatabase/TwoTwoThreetrimethylbutane.mo | 6 -
.../ChemsepDatabase/TwoTwoThreetrimethylpentane.mo | 6 -
.../ChemsepDatabase/TwoTwodimethylOnepropanol.mo | 6 -
.../Files/ChemsepDatabase/TwoTwodimethylbutane.mo | 6 -
.../Files/ChemsepDatabase/TwoTwodimethylheptane.mo | 6 -
.../Files/ChemsepDatabase/TwoTwodimethylhexane.mo | 6 -
.../Files/ChemsepDatabase/TwoTwodimethyloctane.mo | 6 -
.../Files/ChemsepDatabase/TwoTwodimethylpentane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Twobutanol.mo | 6 -
.../Files/ChemsepDatabase/Twoethylmxylene.mo | 6 -
.../Files/ChemsepDatabase/Twoethylpxylene.mo | 6 -
.../Files/ChemsepDatabase/Twoheptanone.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Twohexanone.mo | 6 -
.../Files/ChemsepDatabase/TwomethylOnebutanol.mo | 6 -
.../Files/ChemsepDatabase/TwomethylOnebutene.mo | 6 -
.../Files/ChemsepDatabase/TwomethylOneheptene.mo | 6 -
.../Files/ChemsepDatabase/TwomethylOnepentene.mo | 6 -
.../Files/ChemsepDatabase/TwomethylOnepropanol.mo | 6 -
.../ChemsepDatabase/TwomethylThreeethylpentane.mo | 6 -
.../Files/ChemsepDatabase/TwomethylTwobutanol.mo | 6 -
.../Files/ChemsepDatabase/TwomethylTwobutene.mo | 6 -
.../Files/ChemsepDatabase/TwomethylTwopropanol.mo | 6 -
.../Files/ChemsepDatabase/Twomethylheptane.mo | 6 -
.../Files/ChemsepDatabase/Twomethylhexane.mo | 6 -
.../Files/ChemsepDatabase/Twomethylindene.mo | 6 -
.../Files/ChemsepDatabase/Twomethylnaphthalene.mo | 6 -
.../Files/ChemsepDatabase/Twomethylnonane.mo | 6 -
.../Files/ChemsepDatabase/Twomethyloctane.mo | 6 -
.../Files/ChemsepDatabase/Twomethylpentane.mo | 6 -
.../Files/ChemsepDatabase/Twomethylpropanal.mo | 6 -
.../Files/ChemsepDatabase/Twonitropropane.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Twopentanol.mo | 6 -
.../Files/ChemsepDatabase/Twopentanone.mo | 6 -
.../Files/ChemsepDatabase/Vinylacetate.mo | 6 -
.../Files/ChemsepDatabase/Vinylacetylene.mo | 6 -
.../Files/ChemsepDatabase/Vinylchloride.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Water.mo | 6 -
.../Simulator/Files/ChemsepDatabase/Xenon.mo | 6 -
.../Simulator/Files/ChemsepDatabase/package.mo | 6 -
.../Simulator/Files/ChemsepDatabase/package.order | 432 -
.../Simulator/Files/Icons/AbsorptionColumn.mo | 9 -
.../Simulator/Files/Icons/AdiabaticCompressor.mo | 7 -
.../Simulator/Files/Icons/AdiabaticExpander.mo | 6 -
.../Simulator/Files/Icons/CentrifugalPump.mo | 7 -
.../Simulator/Files/Icons/CompoundSeparator.mo | 9 -
.../Simulator/Files/Icons/ConversionReactor.mo | 9 -
src/main/Simulator/Simulator/Files/Icons/Cooler.mo | 7 -
.../Simulator/Files/Icons/DistillationColumn.mo | 8 -
.../Simulator/Files/Icons/EnergyStream.mo | 8 -
.../Simulator/Files/Icons/EquilibriumReactor.mo | 10 -
src/main/Simulator/Simulator/Files/Icons/Flash.mo | 8 -
.../Simulator/Files/Icons/HeatExchanger.mo | 6 -
src/main/Simulator/Simulator/Files/Icons/Heater.mo | 7 -
.../Simulator/Files/Icons/MaterialStream.mo | 8 -
src/main/Simulator/Simulator/Files/Icons/Mixer.mo | 7 -
src/main/Simulator/Simulator/Files/Icons/PFR.mo | 9 -
.../Simulator/Simulator/Files/Icons/Splitter.mo | 7 -
src/main/Simulator/Simulator/Files/Icons/Valve.mo | 7 -
.../Simulator/Simulator/Files/Icons/package.mo | 5 -
.../Simulator/Simulator/Files/Icons/package.order | 18 -
.../Simulator/Simulator/Files/Interfaces/enConn.mo | 7 -
.../Simulator/Files/Interfaces/matConn.mo | 8 -
.../Simulator/Files/Interfaces/package.mo | 5 -
.../Simulator/Files/Interfaces/package.order | 3 -
.../Simulator/Files/Interfaces/trayConn.mo | 8 -
src/main/Simulator/Simulator/Files/Models/Flash.mo | 68 -
.../Files/Models/ReactionManager/Arhenious.mo | 18 -
.../Files/Models/ReactionManager/BaseCalc.mo | 41 -
.../Models/ReactionManager/ConversionReaction.mo | 29 -
.../Models/ReactionManager/EquilibriumReaction.mo | 56 -
.../Models/ReactionManager/KineticReaction.mo | 37 -
.../Models/ReactionManager/Stoichiometrycheck.mo | 27 -
.../Files/Models/ReactionManager/package.mo | 5 -
.../Files/Models/ReactionManager/package.order | 6 -
.../Simulator/Simulator/Files/Models/gammaNRTL.mo | 31 -
.../Simulator/Simulator/Files/Models/package.mo | 5 -
.../Simulator/Simulator/Files/Models/package.order | 3 -
.../Simulator/Files/OtherFunctions/colBoolCalc.mo | 13 -
.../Simulator/Files/OtherFunctions/package.mo | 6 -
.../Simulator/Files/OtherFunctions/package.order | 1 -
.../Files/ThermodynamicFunctions/BIPNRTL.mo | 44 -
.../Files/ThermodynamicFunctions/BIPPR.mo | 27 -
.../Files/ThermodynamicFunctions/BIPUNIQUAC.mo | 37 -
.../Simulator/Files/ThermodynamicFunctions/Dens.mo | 24 -
.../Files/ThermodynamicFunctions/DensityRacket.mo | 49 -
.../Files/ThermodynamicFunctions/EOSConstant1V.mo | 16 -
.../Files/ThermodynamicFunctions/EOSConstantII.mo | 14 -
.../Files/ThermodynamicFunctions/EOSConstantIII.mo | 12 -
.../Files/ThermodynamicFunctions/EOSConstants.mo | 14 -
.../Files/ThermodynamicFunctions/FindString.mo | 19 -
.../Files/ThermodynamicFunctions/HLiqId.mo | 14 -
.../Simulator/Files/ThermodynamicFunctions/HV.mo | 18 -
.../Files/ThermodynamicFunctions/HVapId.mo | 20 -
.../Files/ThermodynamicFunctions/LiqCpId.mo | 11 -
.../LiquidFugacityCoeffcient.mo | 82 -
.../Files/ThermodynamicFunctions/PoyntingCF.mo | 24 -
.../Simulator/Files/ThermodynamicFunctions/Psat.mo | 11 -
.../Simulator/Files/ThermodynamicFunctions/SId.mo | 48 -
.../ThermodynamicFunctions/SolublityParameter.mo | 25 -
.../Files/ThermodynamicFunctions/TowUNIQUAC.mo | 19 -
.../Files/ThermodynamicFunctions/VapCpId.mo | 11 -
.../Files/ThermodynamicFunctions/index.mo | 10 -
.../Files/ThermodynamicFunctions/package.mo | 6 -
.../Files/ThermodynamicFunctions/package.order | 22 -
.../Files/ThermodynamicPackages/GraysonStreed.mo | 208 -
.../Simulator/Files/ThermodynamicPackages/NRTL.mo | 32 -
.../Files/ThermodynamicPackages/PengRobinson.mo | 160 -
.../Files/ThermodynamicPackages/RaoultsLaw.mo | 25 -
.../Files/ThermodynamicPackages/UNIFAC.mo | 189 -
.../Files/ThermodynamicPackages/UNIQUAC.mo | 349 -
.../Files/ThermodynamicPackages/package.mo | 6 -
.../Files/ThermodynamicPackages/package.order | 6 -
.../Simulator/Files/TransportProperties/LiqK.mo | 10 -
.../Simulator/Files/TransportProperties/LiqVis.mo | 11 -
.../Simulator/Files/TransportProperties/VapK.mo | 10 -
.../Simulator/Files/TransportProperties/VapVisc.mo | 10 -
.../Simulator/Files/TransportProperties/package.mo | 6 -
.../Files/TransportProperties/package.order | 4 -
src/main/Simulator/Simulator/Files/package.mo | 4 -
src/main/Simulator/Simulator/Files/package.order | 8 -
.../Simulator/Simulator/GuessModels/GuessInput.mo | 7 -
.../Simulator/GuessModels/InitialGuess.mo | 143 -
.../Simulator/Simulator/GuessModels/package.mo | 4 -
.../Simulator/Simulator/GuessModels/package.order | 2 -
.../Simulator/Simulator/Streams/EnergyStream.mo | 14 -
.../Simulator/Simulator/Streams/MaterialStream.mo | 142 -
src/main/Simulator/Simulator/Streams/package.mo | 4 -
src/main/Simulator/Simulator/Streams/package.order | 2 -
.../UnitOperations/AbsorptionColumn/AbsCol.mo | 50 -
.../UnitOperations/AbsorptionColumn/AbsTray.mo | 75 -
.../UnitOperations/AbsorptionColumn/package.mo | 5 -
.../UnitOperations/AbsorptionColumn/package.order | 2 -
.../UnitOperations/AdiabaticCompressor.mo | 78 -
.../Simulator/UnitOperations/AdiabaticExpander.mo | 75 -
.../Simulator/UnitOperations/CentrifugalPump.mo | 76 -
.../Simulator/UnitOperations/CompoundSeparator.mo | 93 -
.../Simulator/UnitOperations/ConversionReactor.mo | 88 -
.../Simulator/Simulator/UnitOperations/Cooler.mo | 70 -
.../UnitOperations/DistillationColumn/Cond.mo | 109 -
.../UnitOperations/DistillationColumn/DistCol.mo | 79 -
.../UnitOperations/DistillationColumn/DistTray.mo | 137 -
.../UnitOperations/DistillationColumn/Reb.mo | 98 -
.../UnitOperations/DistillationColumn/package.mo | 5 -
.../DistillationColumn/package.order | 4 -
.../Simulator/UnitOperations/EquilibriumReactor.mo | 176 -
.../Simulator/Simulator/UnitOperations/Flash.mo | 129 -
.../Simulator/UnitOperations/HeatExchanger.mo | 751 -
.../Simulator/Simulator/UnitOperations/Heater.mo | 62 -
.../Simulator/Simulator/UnitOperations/Mixer.mo | 73 -
.../Simulator/UnitOperations/PFR/Integral.mo | 31 -
.../Simulator/Simulator/UnitOperations/PFR/PFR.mo | 432 -
.../Simulator/UnitOperations/PFR/PerformancePFR.mo | 22 -
.../Simulator/UnitOperations/PFR/package.mo | 5 -
.../Simulator/UnitOperations/PFR/package.order | 3 -
.../Simulator/UnitOperations/RecycleBlock.mo | 43 -
.../Simulator/UnitOperations/ShortcutColumn.mo | 222 -
.../Simulator/Simulator/UnitOperations/Splitter.mo | 76 -
.../Simulator/Simulator/UnitOperations/Valve.mo | 63 -
.../Simulator/Simulator/UnitOperations/package.mo | 4 -
.../Simulator/UnitOperations/package.order | 18 -
src/main/Simulator/Simulator/package.mo | 19 -
src/main/Simulator/Simulator/package.order | 6 -
.../DistillationColumnStagewiseResults.py | 18 -
src/main/python/DockWidgets/DockWidget.py | 168 -
.../DockWidgets/DockWidgetCompoundSeparator.py | 134 -
.../DockWidgets/DockWidgetCompressorExpander.py | 167 -
.../DockWidgets/DockWidgetDistillationColumn.py | 390 -
src/main/python/DockWidgets/DockWidgetFlash.py | 90 -
.../python/DockWidgets/DockWidgetMaterialStream.py | 368 -
src/main/python/DockWidgets/DockWidgetMixer.py | 66 -
.../python/DockWidgets/DockWidgetShortcutColumn.py | 148 -
src/main/python/DockWidgets/DockWidgetSplitter.py | 85 -
src/main/python/DockWidgets/__init__.py | 0
...stillationColumnStagewiseResults.cpython-36.pyc | Bin 942 -> 0 bytes
...stillationColumnStagewiseResults.cpython-37.pyc | Bin 946 -> 0 bytes
.../__pycache__/DockWidget.cpython-36.pyc | Bin 4843 -> 0 bytes
.../__pycache__/DockWidget.cpython-37.pyc | Bin 4847 -> 0 bytes
.../DockWidgetCompoundSeparator.cpython-36.pyc | Bin 4450 -> 0 bytes
.../DockWidgetCompoundSeparator.cpython-37.pyc | Bin 4454 -> 0 bytes
.../DockWidgetCompressorExpander.cpython-36.pyc | Bin 5466 -> 0 bytes
.../DockWidgetCompressorExpander.cpython-37.pyc | Bin 5470 -> 0 bytes
.../DockWidgetDistillationColumn.cpython-36.pyc | Bin 10450 -> 0 bytes
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 10387 -> 0 bytes
.../__pycache__/DockWidgetFlash.cpython-36.pyc | Bin 3547 -> 0 bytes
.../__pycache__/DockWidgetFlash.cpython-37.pyc | Bin 3551 -> 0 bytes
.../DockWidgetMaterialStream.cpython-36.pyc | Bin 9701 -> 0 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 9690 -> 0 bytes
.../__pycache__/DockWidgetMixer.cpython-36.pyc | Bin 2703 -> 0 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2707 -> 0 bytes
.../DockWidgetShortcutColumn.cpython-36.pyc | Bin 5592 -> 0 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 5589 -> 0 bytes
.../__pycache__/DockWidgetSplitter.cpython-36.pyc | Bin 3338 -> 0 bytes
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 3342 -> 0 bytes
.../__pycache__/__init__.cpython-37.pyc | Bin 208 -> 0 bytes
src/main/python/OMChem/CompSep.py | 71 -
src/main/python/OMChem/ConvReactor.py | 44 -
src/main/python/OMChem/Cooler.py | 76 -
src/main/python/OMChem/DistCol.py | 103 -
src/main/python/OMChem/EngStm.py | 18 -
src/main/python/OMChem/Flash.py | 55 -
src/main/python/OMChem/Flowsheet.py | 306 -
src/main/python/OMChem/Heater.py | 75 -
src/main/python/OMChem/Mixer.py | 58 -
src/main/python/OMChem/Pump.py | 62 -
src/main/python/OMChem/ShortcutColumn.py | 86 -
src/main/python/OMChem/Splitter.py | 61 -
src/main/python/OMChem/Valve.py | 58 -
src/main/python/OMChem/__init__.py | 0
.../OMChem/__pycache__/EngStm.cpython-36.pyc | Bin 925 -> 0 bytes
.../OMChem/__pycache__/EngStm.cpython-37.pyc | Bin 929 -> 0 bytes
.../OMChem/__pycache__/Flowsheet.cpython-36.pyc | Bin 8426 -> 0 bytes
.../OMChem/__pycache__/Flowsheet.cpython-37.pyc | Bin 8400 -> 0 bytes
.../OMChem/__pycache__/__init__.cpython-37.pyc | Bin 203 -> 0 bytes
src/main/python/OMChem/adiabatic_comp.py | 67 -
src/main/python/OMChem/adiabatic_exp.py | 67 -
src/main/python/OMChem/setup.py | 54 -
src/main/python/mainApp.py | 413 -
src/main/python/utils/Bin_Phase_env.py | 241 -
src/main/python/utils/ComponentSelector.py | 177 -
src/main/python/utils/Container.py | 250 -
src/main/python/utils/Graphics.py | 702 -
src/main/python/utils/Streams.py | 470 -
src/main/python/utils/UnitOperations.py | 737 -
src/main/python/utils/__init__.py | 0
.../utils/__pycache__/Bin_Phase_env.cpython-37.pyc | Bin 7968 -> 0 bytes
.../__pycache__/ComponentSelector.cpython-37.pyc | Bin 5514 -> 0 bytes
.../utils/__pycache__/Container.cpython-37.pyc | Bin 7735 -> 0 bytes
.../utils/__pycache__/Graphics.cpython-37.pyc | Bin 23723 -> 0 bytes
.../utils/__pycache__/Streams.cpython-37.pyc | Bin 12744 -> 0 bytes
.../__pycache__/UnitOperations.cpython-37.pyc | Bin 26682 -> 0 bytes
.../utils/__pycache__/__init__.cpython-37.pyc | Bin 202 -> 0 bytes
src/main/python/utils/thermopackage.txt | 6 -
.../__pycache__/mccabe.cpython-37.pyc | Bin 11136 -> 0 bytes
.../site-packages/__pycache__/six.cpython-37.pyc | Bin 26864 -> 0 bytes
.../site-packages/astroid-2.3.3.dist-info/COPYING | 339 -
.../astroid-2.3.3.dist-info/COPYING.LESSER | 510 -
.../astroid-2.3.3.dist-info/INSTALLER | 1 -
.../site-packages/astroid-2.3.3.dist-info/METADATA | 117 -
.../site-packages/astroid-2.3.3.dist-info/RECORD | 145 -
.../site-packages/astroid-2.3.3.dist-info/WHEEL | 5 -
.../astroid-2.3.3.dist-info/top_level.txt | 1 -
.../venv/Lib/site-packages/astroid/__init__.py | 166 -
.../venv/Lib/site-packages/astroid/__pkginfo__.py | 51 -
.../astroid/__pycache__/__init__.cpython-37.pyc | Bin 4434 -> 0 bytes
.../astroid/__pycache__/__pkginfo__.cpython-37.pyc | Bin 1357 -> 0 bytes
.../astroid/__pycache__/_ast.cpython-37.pyc | Bin 1444 -> 0 bytes
.../astroid/__pycache__/arguments.cpython-37.pyc | Bin 7017 -> 0 bytes
.../astroid/__pycache__/as_string.cpython-37.pyc | Bin 26379 -> 0 bytes
.../astroid/__pycache__/bases.cpython-37.pyc | Bin 15625 -> 0 bytes
.../astroid/__pycache__/builder.cpython-37.pyc | Bin 12292 -> 0 bytes
.../astroid/__pycache__/context.cpython-37.pyc | Bin 4277 -> 0 bytes
.../astroid/__pycache__/decorators.cpython-37.pyc | Bin 3518 -> 0 bytes
.../astroid/__pycache__/exceptions.cpython-37.pyc | Bin 9369 -> 0 bytes
.../astroid/__pycache__/helpers.cpython-37.pyc | Bin 7264 -> 0 bytes
.../astroid/__pycache__/inference.cpython-37.pyc | Bin 21439 -> 0 bytes
.../astroid/__pycache__/manager.cpython-37.pyc | Bin 9301 -> 0 bytes
.../astroid/__pycache__/mixins.cpython-37.pyc | Bin 5780 -> 0 bytes
.../astroid/__pycache__/modutils.cpython-37.pyc | Bin 17081 -> 0 bytes
.../__pycache__/node_classes.cpython-37.pyc | Bin 120480 -> 0 bytes
.../astroid/__pycache__/nodes.cpython-37.pyc | Bin 2054 -> 0 bytes
.../astroid/__pycache__/objects.cpython-37.pyc | Bin 8501 -> 0 bytes
.../astroid/__pycache__/protocols.cpython-37.pyc | Bin 16680 -> 0 bytes
.../__pycache__/raw_building.cpython-37.pyc | Bin 11290 -> 0 bytes
.../astroid/__pycache__/rebuilder.cpython-37.pyc | Bin 39150 -> 0 bytes
.../__pycache__/scoped_nodes.cpython-37.pyc | Bin 70867 -> 0 bytes
.../astroid/__pycache__/test_utils.cpython-37.pyc | Bin 2502 -> 0 bytes
.../astroid/__pycache__/transforms.cpython-37.pyc | Bin 3436 -> 0 bytes
.../astroid/__pycache__/util.cpython-37.pyc | Bin 5704 -> 0 bytes
.../python/venv/Lib/site-packages/astroid/_ast.py | 49 -
.../venv/Lib/site-packages/astroid/arguments.py | 285 -
.../venv/Lib/site-packages/astroid/as_string.py | 633 -
.../python/venv/Lib/site-packages/astroid/bases.py | 542 -
.../__pycache__/brain_argparse.cpython-37.pyc | Bin 1063 -> 0 bytes
.../brain/__pycache__/brain_attrs.cpython-37.pyc | Bin 1575 -> 0 bytes
.../brain_builtin_inference.cpython-37.pyc | Bin 19796 -> 0 bytes
.../__pycache__/brain_collections.cpython-37.pyc | Bin 2492 -> 0 bytes
.../brain/__pycache__/brain_crypt.cpython-37.pyc | Bin 850 -> 0 bytes
.../brain/__pycache__/brain_curses.cpython-37.pyc | Bin 3368 -> 0 bytes
.../__pycache__/brain_dataclasses.cpython-37.pyc | Bin 1278 -> 0 bytes
.../__pycache__/brain_dateutil.cpython-37.pyc | Bin 682 -> 0 bytes
.../__pycache__/brain_fstrings.cpython-37.pyc | Bin 1565 -> 0 bytes
.../__pycache__/brain_functools.cpython-37.pyc | Bin 4591 -> 0 bytes
.../brain/__pycache__/brain_gi.cpython-37.pyc | Bin 4007 -> 0 bytes
.../brain/__pycache__/brain_hashlib.cpython-37.pyc | Bin 1924 -> 0 bytes
.../brain/__pycache__/brain_http.cpython-37.pyc | Bin 10289 -> 0 bytes
.../brain/__pycache__/brain_io.cpython-37.pyc | Bin 1305 -> 0 bytes
.../__pycache__/brain_mechanize.cpython-37.pyc | Bin 718 -> 0 bytes
.../brain_multiprocessing.cpython-37.pyc | Bin 2520 -> 0 bytes
.../brain_namedtuple_enum.cpython-37.pyc | Bin 11452 -> 0 bytes
.../brain/__pycache__/brain_nose.cpython-37.pyc | Bin 2047 -> 0 bytes
.../brain_numpy_core_fromnumeric.cpython-37.pyc | Bin 623 -> 0 bytes
.../brain_numpy_core_function_base.cpython-37.pyc | Bin 1029 -> 0 bytes
.../brain_numpy_core_multiarray.cpython-37.pyc | Bin 1711 -> 0 bytes
.../brain_numpy_core_numeric.cpython-37.pyc | Bin 1261 -> 0 bytes
.../brain_numpy_core_numerictypes.cpython-37.pyc | Bin 7661 -> 0 bytes
.../brain_numpy_core_umath.cpython-37.pyc | Bin 5199 -> 0 bytes
.../__pycache__/brain_numpy_ndarray.cpython-37.pyc | Bin 8323 -> 0 bytes
.../brain_numpy_random_mtrand.cpython-37.pyc | Bin 3232 -> 0 bytes
.../__pycache__/brain_numpy_utils.cpython-37.pyc | Bin 1736 -> 0 bytes
.../__pycache__/brain_pkg_resources.cpython-37.pyc | Bin 2189 -> 0 bytes
.../brain/__pycache__/brain_pytest.cpython-37.pyc | Bin 2159 -> 0 bytes
.../brain/__pycache__/brain_qt.cpython-37.pyc | Bin 2092 -> 0 bytes
.../brain/__pycache__/brain_random.cpython-37.pyc | Bin 2172 -> 0 bytes
.../brain/__pycache__/brain_re.cpython-37.pyc | Bin 1066 -> 0 bytes
.../brain/__pycache__/brain_six.cpython-37.pyc | Bin 5521 -> 0 bytes
.../brain/__pycache__/brain_ssl.cpython-37.pyc | Bin 3600 -> 0 bytes
.../__pycache__/brain_subprocess.cpython-37.pyc | Bin 3401 -> 0 bytes
.../__pycache__/brain_threading.cpython-37.pyc | Bin 737 -> 0 bytes
.../brain/__pycache__/brain_typing.cpython-37.pyc | Bin 2337 -> 0 bytes
.../brain/__pycache__/brain_uuid.cpython-37.pyc | Bin 629 -> 0 bytes
.../site-packages/astroid/brain/brain_argparse.py | 33 -
.../Lib/site-packages/astroid/brain/brain_attrs.py | 65 -
.../astroid/brain/brain_builtin_inference.py | 829 -
.../astroid/brain/brain_collections.py | 74 -
.../Lib/site-packages/astroid/brain/brain_crypt.py | 26 -
.../site-packages/astroid/brain/brain_curses.py | 179 -
.../astroid/brain/brain_dataclasses.py | 50 -
.../site-packages/astroid/brain/brain_dateutil.py | 28 -
.../site-packages/astroid/brain/brain_fstrings.py | 51 -
.../site-packages/astroid/brain/brain_functools.py | 158 -
.../Lib/site-packages/astroid/brain/brain_gi.py | 220 -
.../site-packages/astroid/brain/brain_hashlib.py | 67 -
.../Lib/site-packages/astroid/brain/brain_http.py | 201 -
.../Lib/site-packages/astroid/brain/brain_io.py | 45 -
.../site-packages/astroid/brain/brain_mechanize.py | 29 -
.../astroid/brain/brain_multiprocessing.py | 106 -
.../astroid/brain/brain_namedtuple_enum.py | 449 -
.../Lib/site-packages/astroid/brain/brain_nose.py | 77 -
.../astroid/brain/brain_numpy_core_fromnumeric.py | 23 -
.../brain/brain_numpy_core_function_base.py | 29 -
.../astroid/brain/brain_numpy_core_multiarray.py | 55 -
.../astroid/brain/brain_numpy_core_numeric.py | 43 -
.../astroid/brain/brain_numpy_core_numerictypes.py | 250 -
.../astroid/brain/brain_numpy_core_umath.py | 105 -
.../astroid/brain/brain_numpy_ndarray.py | 153 -
.../astroid/brain/brain_numpy_random_mtrand.py | 70 -
.../astroid/brain/brain_numpy_utils.py | 56 -
.../astroid/brain/brain_pkg_resources.py | 75 -
.../site-packages/astroid/brain/brain_pytest.py | 88 -
.../Lib/site-packages/astroid/brain/brain_qt.py | 82 -
.../site-packages/astroid/brain/brain_random.py | 75 -
.../Lib/site-packages/astroid/brain/brain_re.py | 36 -
.../Lib/site-packages/astroid/brain/brain_six.py | 200 -
.../Lib/site-packages/astroid/brain/brain_ssl.py | 74 -
.../astroid/brain/brain_subprocess.py | 111 -
.../site-packages/astroid/brain/brain_threading.py | 31 -
.../site-packages/astroid/brain/brain_typing.py | 96 -
.../Lib/site-packages/astroid/brain/brain_uuid.py | 20 -
.../venv/Lib/site-packages/astroid/builder.py | 435 -
.../venv/Lib/site-packages/astroid/context.py | 179 -
.../venv/Lib/site-packages/astroid/decorators.py | 141 -
.../venv/Lib/site-packages/astroid/exceptions.py | 230 -
.../venv/Lib/site-packages/astroid/helpers.py | 273 -
.../venv/Lib/site-packages/astroid/inference.py | 943 -
.../site-packages/astroid/interpreter/__init__.py | 0
.../__pycache__/__init__.cpython-37.pyc | Bin 184 -> 0 bytes
.../__pycache__/dunder_lookup.cpython-37.pyc | Bin 2137 -> 0 bytes
.../__pycache__/objectmodel.cpython-37.pyc | Bin 25143 -> 0 bytes
.../astroid/interpreter/_import/__init__.py | 0
.../_import/__pycache__/__init__.cpython-37.pyc | Bin 192 -> 0 bytes
.../_import/__pycache__/spec.cpython-37.pyc | Bin 9399 -> 0 bytes
.../_import/__pycache__/util.cpython-37.pyc | Bin 408 -> 0 bytes
.../astroid/interpreter/_import/spec.py | 344 -
.../astroid/interpreter/_import/util.py | 10 -
.../astroid/interpreter/dunder_lookup.py | 66 -
.../astroid/interpreter/objectmodel.py | 738 -
.../venv/Lib/site-packages/astroid/manager.py | 337 -
.../venv/Lib/site-packages/astroid/mixins.py | 160 -
.../venv/Lib/site-packages/astroid/modutils.py | 698 -
.../venv/Lib/site-packages/astroid/node_classes.py | 4775 -
.../python/venv/Lib/site-packages/astroid/nodes.py | 175 -
.../venv/Lib/site-packages/astroid/objects.py | 282 -
.../venv/Lib/site-packages/astroid/protocols.py | 766 -
.../venv/Lib/site-packages/astroid/raw_building.py | 468 -
.../venv/Lib/site-packages/astroid/rebuilder.py | 1090 -
.../venv/Lib/site-packages/astroid/scoped_nodes.py | 2836 -
.../venv/Lib/site-packages/astroid/test_utils.py | 73 -
.../venv/Lib/site-packages/astroid/transforms.py | 90 -
.../python/venv/Lib/site-packages/astroid/util.py | 164 -
.../colorama-0.4.3.dist-info/INSTALLER | 1 -
.../colorama-0.4.3.dist-info/LICENSE.txt | 27 -
.../colorama-0.4.3.dist-info/METADATA | 411 -
.../site-packages/colorama-0.4.3.dist-info/RECORD | 18 -
.../site-packages/colorama-0.4.3.dist-info/WHEEL | 6 -
.../colorama-0.4.3.dist-info/top_level.txt | 1 -
.../venv/Lib/site-packages/colorama/__init__.py | 6 -
.../colorama/__pycache__/__init__.cpython-37.pyc | Bin 425 -> 0 bytes
.../colorama/__pycache__/ansi.cpython-37.pyc | Bin 3323 -> 0 bytes
.../__pycache__/ansitowin32.cpython-37.pyc | Bin 7579 -> 0 bytes
.../colorama/__pycache__/initialise.cpython-37.pyc | Bin 1644 -> 0 bytes
.../colorama/__pycache__/win32.cpython-37.pyc | Bin 3838 -> 0 bytes
.../colorama/__pycache__/winterm.cpython-37.pyc | Bin 4586 -> 0 bytes
.../python/venv/Lib/site-packages/colorama/ansi.py | 102 -
.../venv/Lib/site-packages/colorama/ansitowin32.py | 257 -
.../venv/Lib/site-packages/colorama/initialise.py | 80 -
.../venv/Lib/site-packages/colorama/win32.py | 152 -
.../venv/Lib/site-packages/colorama/winterm.py | 169 -
.../python/venv/Lib/site-packages/easy-install.pth | 2 -
.../site-packages/isort-4.3.21.dist-info/INSTALLER | 1 -
.../site-packages/isort-4.3.21.dist-info/LICENSE | 21 -
.../site-packages/isort-4.3.21.dist-info/METADATA | 697 -
.../site-packages/isort-4.3.21.dist-info/RECORD | 30 -
.../Lib/site-packages/isort-4.3.21.dist-info/WHEEL | 6 -
.../isort-4.3.21.dist-info/entry_points.txt | 9 -
.../isort-4.3.21.dist-info/top_level.txt | 1 -
.../venv/Lib/site-packages/isort/__init__.py | 28 -
.../venv/Lib/site-packages/isort/__main__.py | 9 -
.../isort/__pycache__/__init__.cpython-37.pyc | Bin 1597 -> 0 bytes
.../isort/__pycache__/__main__.cpython-37.pyc | Bin 348 -> 0 bytes
.../isort/__pycache__/finders.cpython-37.pyc | Bin 11987 -> 0 bytes
.../isort/__pycache__/hooks.cpython-37.pyc | Bin 3208 -> 0 bytes
.../isort/__pycache__/isort.cpython-37.pyc | Bin 29949 -> 0 bytes
.../isort/__pycache__/main.cpython-37.pyc | Bin 16724 -> 0 bytes
.../isort/__pycache__/natural.cpython-37.pyc | Bin 2308 -> 0 bytes
.../isort/__pycache__/pie_slice.cpython-37.pyc | Bin 5008 -> 0 bytes
.../isort/__pycache__/pylama_isort.cpython-37.pyc | Bin 1009 -> 0 bytes
.../isort/__pycache__/settings.cpython-37.pyc | Bin 12274 -> 0 bytes
.../isort/__pycache__/utils.cpython-37.pyc | Bin 1600 -> 0 bytes
.../python/venv/Lib/site-packages/isort/finders.py | 382 -
.../python/venv/Lib/site-packages/isort/hooks.py | 91 -
.../python/venv/Lib/site-packages/isort/isort.py | 1060 -
.../python/venv/Lib/site-packages/isort/main.py | 401 -
.../python/venv/Lib/site-packages/isort/natural.py | 47 -
.../venv/Lib/site-packages/isort/pie_slice.py | 154 -
.../venv/Lib/site-packages/isort/pylama_isort.py | 29 -
.../venv/Lib/site-packages/isort/settings.py | 356 -
.../python/venv/Lib/site-packages/isort/utils.py | 53 -
.../lazy_object_proxy-1.4.3.dist-info/AUTHORS.rst | 10 -
.../lazy_object_proxy-1.4.3.dist-info/INSTALLER | 1 -
.../lazy_object_proxy-1.4.3.dist-info/LICENSE | 21 -
.../lazy_object_proxy-1.4.3.dist-info/METADATA | 166 -
.../lazy_object_proxy-1.4.3.dist-info/RECORD | 20 -
.../lazy_object_proxy-1.4.3.dist-info/WHEEL | 5 -
.../top_level.txt | 1 -
.../site-packages/lazy_object_proxy/__init__.py | 23 -
.../__pycache__/__init__.cpython-37.pyc | Bin 564 -> 0 bytes
.../__pycache__/_version.cpython-37.pyc | Bin 209 -> 0 bytes
.../__pycache__/compat.cpython-37.pyc | Bin 441 -> 0 bytes
.../__pycache__/simple.cpython-37.pyc | Bin 7764 -> 0 bytes
.../__pycache__/slots.cpython-37.pyc | Bin 15235 -> 0 bytes
.../__pycache__/utils.cpython-37.pyc | Bin 784 -> 0 bytes
.../site-packages/lazy_object_proxy/_version.py | 4 -
.../lazy_object_proxy/cext.cp37-win_amd64.pyd | Bin 31744 -> 0 bytes
.../Lib/site-packages/lazy_object_proxy/compat.py | 9 -
.../Lib/site-packages/lazy_object_proxy/simple.py | 246 -
.../Lib/site-packages/lazy_object_proxy/slots.py | 414 -
.../Lib/site-packages/lazy_object_proxy/utils.py | 13 -
.../mccabe-0.6.1.dist-info/DESCRIPTION.rst | 152 -
.../site-packages/mccabe-0.6.1.dist-info/INSTALLER | 1 -
.../site-packages/mccabe-0.6.1.dist-info/METADATA | 178 -
.../site-packages/mccabe-0.6.1.dist-info/RECORD | 10 -
.../Lib/site-packages/mccabe-0.6.1.dist-info/WHEEL | 6 -
.../mccabe-0.6.1.dist-info/entry_points.txt | 3 -
.../mccabe-0.6.1.dist-info/metadata.json | 1 -
.../mccabe-0.6.1.dist-info/top_level.txt | 1 -
src/main/python/venv/Lib/site-packages/mccabe.py | 347 -
.../pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO | 73 -
.../pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt | 391 -
.../EGG-INFO/dependency_links.txt | 1 -
.../pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt | 5 -
.../pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe | 1 -
.../pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt | 1 -
.../pip-19.0.3-py3.7.egg/pip/__init__.py | 1 -
.../pip-19.0.3-py3.7.egg/pip/__main__.py | 19 -
.../pip/__pycache__/__init__.cpython-37.pyc | Bin 215 -> 0 bytes
.../pip/__pycache__/__main__.cpython-37.pyc | Bin 467 -> 0 bytes
.../pip-19.0.3-py3.7.egg/pip/_internal/__init__.py | 78 -
.../_internal/__pycache__/__init__.cpython-37.pyc | Bin 1859 -> 0 bytes
.../_internal/__pycache__/build_env.cpython-37.pyc | Bin 7472 -> 0 bytes
.../pip/_internal/__pycache__/cache.cpython-37.pyc | Bin 7067 -> 0 bytes
.../__pycache__/configuration.cpython-37.pyc | Bin 9852 -> 0 bytes
.../_internal/__pycache__/download.cpython-37.pyc | Bin 21188 -> 0 bytes
.../__pycache__/exceptions.cpython-37.pyc | Bin 11759 -> 0 bytes
.../pip/_internal/__pycache__/index.cpython-37.pyc | Bin 25269 -> 0 bytes
.../_internal/__pycache__/locations.cpython-37.pyc | Bin 4446 -> 0 bytes
.../__pycache__/pep425tags.cpython-37.pyc | Bin 8178 -> 0 bytes
.../_internal/__pycache__/pyproject.cpython-37.pyc | Bin 3195 -> 0 bytes
.../_internal/__pycache__/resolve.cpython-37.pyc | Bin 9113 -> 0 bytes
.../pip/_internal/__pycache__/wheel.cpython-37.pyc | Bin 25946 -> 0 bytes
.../pip/_internal/build_env.py | 215 -
.../pip-19.0.3-py3.7.egg/pip/_internal/cache.py | 224 -
.../pip/_internal/cli/__init__.py | 4 -
.../cli/__pycache__/__init__.cpython-37.pyc | Bin 290 -> 0 bytes
.../cli/__pycache__/autocompletion.cpython-37.pyc | Bin 5103 -> 0 bytes
.../cli/__pycache__/base_command.cpython-37.pyc | Bin 7831 -> 0 bytes
.../cli/__pycache__/cmdoptions.cpython-37.pyc | Bin 16906 -> 0 bytes
.../cli/__pycache__/main_parser.cpython-37.pyc | Bin 2376 -> 0 bytes
.../cli/__pycache__/parser.cpython-37.pyc | Bin 8954 -> 0 bytes
.../cli/__pycache__/status_codes.cpython-37.pyc | Bin 419 -> 0 bytes
.../pip/_internal/cli/autocompletion.py | 152 -
.../pip/_internal/cli/base_command.py | 341 -
.../pip/_internal/cli/cmdoptions.py | 809 -
.../pip/_internal/cli/main_parser.py | 104 -
.../pip/_internal/cli/parser.py | 261 -
.../pip/_internal/cli/status_codes.py | 8 -
.../pip/_internal/commands/__init__.py | 79 -
.../commands/__pycache__/__init__.cpython-37.pyc | Bin 2518 -> 0 bytes
.../commands/__pycache__/check.cpython-37.pyc | Bin 1343 -> 0 bytes
.../commands/__pycache__/completion.cpython-37.pyc | Bin 3092 -> 0 bytes
.../__pycache__/configuration.cpython-37.pyc | Bin 6444 -> 0 bytes
.../commands/__pycache__/download.cpython-37.pyc | Bin 4731 -> 0 bytes
.../commands/__pycache__/freeze.cpython-37.pyc | Bin 2888 -> 0 bytes
.../commands/__pycache__/hash.cpython-37.pyc | Bin 2082 -> 0 bytes
.../commands/__pycache__/help.cpython-37.pyc | Bin 1258 -> 0 bytes
.../commands/__pycache__/install.cpython-37.pyc | Bin 12475 -> 0 bytes
.../commands/__pycache__/list.cpython-37.pyc | Bin 8724 -> 0 bytes
.../commands/__pycache__/search.cpython-37.pyc | Bin 4324 -> 0 bytes
.../commands/__pycache__/show.cpython-37.pyc | Bin 5905 -> 0 bytes
.../commands/__pycache__/uninstall.cpython-37.pyc | Bin 2714 -> 0 bytes
.../commands/__pycache__/wheel.cpython-37.pyc | Bin 5017 -> 0 bytes
.../pip/_internal/commands/check.py | 41 -
.../pip/_internal/commands/completion.py | 94 -
.../pip/_internal/commands/configuration.py | 227 -
.../pip/_internal/commands/download.py | 176 -
.../pip/_internal/commands/freeze.py | 96 -
.../pip/_internal/commands/hash.py | 57 -
.../pip/_internal/commands/help.py | 37 -
.../pip/_internal/commands/install.py | 566 -
.../pip/_internal/commands/list.py | 301 -
.../pip/_internal/commands/search.py | 135 -
.../pip/_internal/commands/show.py | 168 -
.../pip/_internal/commands/uninstall.py | 78 -
.../pip/_internal/commands/wheel.py | 186 -
.../pip/_internal/configuration.py | 387 -
.../pip-19.0.3-py3.7.egg/pip/_internal/download.py | 971 -
.../pip/_internal/exceptions.py | 274 -
.../pip-19.0.3-py3.7.egg/pip/_internal/index.py | 990 -
.../pip/_internal/locations.py | 211 -
.../pip/_internal/models/__init__.py | 2 -
.../models/__pycache__/__init__.cpython-37.pyc | Bin 278 -> 0 bytes
.../models/__pycache__/candidate.cpython-37.pyc | Bin 1327 -> 0 bytes
.../__pycache__/format_control.cpython-37.pyc | Bin 2281 -> 0 bytes
.../models/__pycache__/index.cpython-37.pyc | Bin 1182 -> 0 bytes
.../models/__pycache__/link.cpython-37.pyc | Bin 5016 -> 0 bytes
.../pip/_internal/models/candidate.py | 31 -
.../pip/_internal/models/format_control.py | 73 -
.../pip/_internal/models/index.py | 31 -
.../pip/_internal/models/link.py | 163 -
.../pip/_internal/operations/__init__.py | 0
.../operations/__pycache__/__init__.cpython-37.pyc | Bin 214 -> 0 bytes
.../operations/__pycache__/check.cpython-37.pyc | Bin 3644 -> 0 bytes
.../operations/__pycache__/freeze.cpython-37.pyc | Bin 5629 -> 0 bytes
.../operations/__pycache__/prepare.cpython-37.pyc | Bin 10290 -> 0 bytes
.../pip/_internal/operations/check.py | 155 -
.../pip/_internal/operations/freeze.py | 247 -
.../pip/_internal/operations/prepare.py | 413 -
.../pip/_internal/pep425tags.py | 381 -
.../pip/_internal/pyproject.py | 171 -
.../pip/_internal/req/__init__.py | 77 -
.../req/__pycache__/__init__.cpython-37.pyc | Bin 1711 -> 0 bytes
.../req/__pycache__/constructors.cpython-37.pyc | Bin 7631 -> 0 bytes
.../req/__pycache__/req_file.cpython-37.pyc | Bin 9209 -> 0 bytes
.../req/__pycache__/req_install.cpython-37.pyc | Bin 25046 -> 0 bytes
.../req/__pycache__/req_set.cpython-37.pyc | Bin 6046 -> 0 bytes
.../req/__pycache__/req_tracker.cpython-37.pyc | Bin 3160 -> 0 bytes
.../req/__pycache__/req_uninstall.cpython-37.pyc | Bin 17003 -> 0 bytes
.../pip/_internal/req/constructors.py | 339 -
.../pip/_internal/req/req_file.py | 382 -
.../pip/_internal/req/req_install.py | 1021 -
.../pip/_internal/req/req_set.py | 197 -
.../pip/_internal/req/req_tracker.py | 88 -
.../pip/_internal/req/req_uninstall.py | 596 -
.../pip-19.0.3-py3.7.egg/pip/_internal/resolve.py | 393 -
.../pip/_internal/utils/__init__.py | 0
.../utils/__pycache__/__init__.cpython-37.pyc | Bin 209 -> 0 bytes
.../utils/__pycache__/appdirs.cpython-37.pyc | Bin 8056 -> 0 bytes
.../utils/__pycache__/compat.cpython-37.pyc | Bin 6157 -> 0 bytes
.../utils/__pycache__/deprecation.cpython-37.pyc | Bin 2583 -> 0 bytes
.../utils/__pycache__/encoding.cpython-37.pyc | Bin 1286 -> 0 bytes
.../utils/__pycache__/filesystem.cpython-37.pyc | Bin 678 -> 0 bytes
.../utils/__pycache__/glibc.cpython-37.pyc | Bin 1697 -> 0 bytes
.../utils/__pycache__/hashes.cpython-37.pyc | Bin 3616 -> 0 bytes
.../utils/__pycache__/logging.cpython-37.pyc | Bin 7843 -> 0 bytes
.../utils/__pycache__/misc.cpython-37.pyc | Bin 25748 -> 0 bytes
.../utils/__pycache__/models.cpython-37.pyc | Bin 1958 -> 0 bytes
.../utils/__pycache__/outdated.cpython-37.pyc | Bin 4094 -> 0 bytes
.../utils/__pycache__/packaging.cpython-37.pyc | Bin 2630 -> 0 bytes
.../__pycache__/setuptools_build.cpython-37.pyc | Bin 404 -> 0 bytes
.../utils/__pycache__/temp_dir.cpython-37.pyc | Bin 4931 -> 0 bytes
.../utils/__pycache__/typing.cpython-37.pyc | Bin 1353 -> 0 bytes
.../_internal/utils/__pycache__/ui.cpython-37.pyc | Bin 12315 -> 0 bytes
.../pip/_internal/utils/appdirs.py | 270 -
.../pip/_internal/utils/compat.py | 264 -
.../pip/_internal/utils/deprecation.py | 90 -
.../pip/_internal/utils/encoding.py | 39 -
.../pip/_internal/utils/filesystem.py | 30 -
.../pip/_internal/utils/glibc.py | 93 -
.../pip/_internal/utils/hashes.py | 115 -
.../pip/_internal/utils/logging.py | 318 -
.../pip/_internal/utils/misc.py | 1040 -
.../pip/_internal/utils/models.py | 40 -
.../pip/_internal/utils/outdated.py | 164 -
.../pip/_internal/utils/packaging.py | 85 -
.../pip/_internal/utils/setuptools_build.py | 8 -
.../pip/_internal/utils/temp_dir.py | 155 -
.../pip/_internal/utils/typing.py | 29 -
.../pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py | 441 -
.../pip/_internal/vcs/__init__.py | 534 -
.../vcs/__pycache__/__init__.cpython-37.pyc | Bin 15400 -> 0 bytes
.../vcs/__pycache__/bazaar.cpython-37.pyc | Bin 3817 -> 0 bytes
.../_internal/vcs/__pycache__/git.cpython-37.pyc | Bin 9459 -> 0 bytes
.../vcs/__pycache__/mercurial.cpython-37.pyc | Bin 3790 -> 0 bytes
.../vcs/__pycache__/subversion.cpython-37.pyc | Bin 6002 -> 0 bytes
.../pip/_internal/vcs/bazaar.py | 114 -
.../pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py | 369 -
.../pip/_internal/vcs/mercurial.py | 103 -
.../pip/_internal/vcs/subversion.py | 200 -
.../pip-19.0.3-py3.7.egg/pip/_internal/wheel.py | 1095 -
.../pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py | 111 -
.../_vendor/__pycache__/__init__.cpython-37.pyc | Bin 2897 -> 0 bytes
.../pip/_vendor/__pycache__/appdirs.cpython-37.pyc | Bin 20626 -> 0 bytes
.../_vendor/__pycache__/pyparsing.cpython-37.pyc | Bin 220624 -> 0 bytes
.../_vendor/__pycache__/retrying.cpython-37.pyc | Bin 8107 -> 0 bytes
.../pip/_vendor/__pycache__/six.cpython-37.pyc | Bin 26431 -> 0 bytes
.../pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py | 604 -
.../pip/_vendor/cachecontrol/__init__.py | 11 -
.../__pycache__/__init__.cpython-37.pyc | Bin 567 -> 0 bytes
.../__pycache__/adapter.cpython-37.pyc | Bin 3053 -> 0 bytes
.../cachecontrol/__pycache__/cache.cpython-37.pyc | Bin 1783 -> 0 bytes
.../cachecontrol/__pycache__/compat.cpython-37.pyc | Bin 774 -> 0 bytes
.../__pycache__/controller.cpython-37.pyc | Bin 7653 -> 0 bytes
.../__pycache__/filewrapper.cpython-37.pyc | Bin 2171 -> 0 bytes
.../__pycache__/serialize.cpython-37.pyc | Bin 4255 -> 0 bytes
.../__pycache__/wrapper.cpython-37.pyc | Bin 675 -> 0 bytes
.../pip/_vendor/cachecontrol/_cmd.py | 57 -
.../pip/_vendor/cachecontrol/adapter.py | 133 -
.../pip/_vendor/cachecontrol/cache.py | 39 -
.../pip/_vendor/cachecontrol/caches/__init__.py | 2 -
.../caches/__pycache__/__init__.cpython-37.pyc | Bin 311 -> 0 bytes
.../caches/__pycache__/file_cache.cpython-37.pyc | Bin 3245 -> 0 bytes
.../caches/__pycache__/redis_cache.cpython-37.pyc | Bin 1567 -> 0 bytes
.../pip/_vendor/cachecontrol/caches/file_cache.py | 146 -
.../pip/_vendor/cachecontrol/caches/redis_cache.py | 33 -
.../pip/_vendor/cachecontrol/compat.py | 29 -
.../pip/_vendor/cachecontrol/controller.py | 367 -
.../pip/_vendor/cachecontrol/filewrapper.py | 80 -
.../pip/_vendor/cachecontrol/heuristics.py | 135 -
.../pip/_vendor/cachecontrol/serialize.py | 186 -
.../pip/_vendor/cachecontrol/wrapper.py | 29 -
.../pip/_vendor/certifi/__init__.py | 3 -
.../pip/_vendor/certifi/__main__.py | 2 -
.../certifi/__pycache__/__init__.cpython-37.pyc | Bin 274 -> 0 bytes
.../certifi/__pycache__/core.cpython-37.pyc | Bin 535 -> 0 bytes
.../pip/_vendor/certifi/cacert.pem | 4512 -
.../pip/_vendor/certifi/core.py | 20 -
.../pip/_vendor/chardet/__init__.py | 39 -
.../chardet/__pycache__/__init__.cpython-37.pyc | Bin 861 -> 0 bytes
.../chardet/__pycache__/big5freq.cpython-37.pyc | Bin 27196 -> 0 bytes
.../chardet/__pycache__/big5prober.cpython-37.pyc | Bin 1137 -> 0 bytes
.../__pycache__/chardistribution.cpython-37.pyc | Bin 6323 -> 0 bytes
.../__pycache__/charsetgroupprober.cpython-37.pyc | Bin 2244 -> 0 bytes
.../__pycache__/charsetprober.cpython-37.pyc | Bin 3454 -> 0 bytes
.../__pycache__/codingstatemachine.cpython-37.pyc | Bin 2901 -> 0 bytes
.../chardet/__pycache__/compat.cpython-37.pyc | Bin 372 -> 0 bytes
.../chardet/__pycache__/cp949prober.cpython-37.pyc | Bin 1144 -> 0 bytes
.../chardet/__pycache__/enums.cpython-37.pyc | Bin 2635 -> 0 bytes
.../chardet/__pycache__/escprober.cpython-37.pyc | Bin 2622 -> 0 bytes
.../chardet/__pycache__/escsm.cpython-37.pyc | Bin 7083 -> 0 bytes
.../chardet/__pycache__/eucjpprober.cpython-37.pyc | Bin 2430 -> 0 bytes
.../chardet/__pycache__/euckrfreq.cpython-37.pyc | Bin 12080 -> 0 bytes
.../chardet/__pycache__/euckrprober.cpython-37.pyc | Bin 1145 -> 0 bytes
.../chardet/__pycache__/euctwfreq.cpython-37.pyc | Bin 27200 -> 0 bytes
.../chardet/__pycache__/euctwprober.cpython-37.pyc | Bin 1145 -> 0 bytes
.../chardet/__pycache__/gb2312freq.cpython-37.pyc | Bin 19124 -> 0 bytes
.../__pycache__/gb2312prober.cpython-37.pyc | Bin 1153 -> 0 bytes
.../__pycache__/hebrewprober.cpython-37.pyc | Bin 2987 -> 0 bytes
.../chardet/__pycache__/jisfreq.cpython-37.pyc | Bin 22152 -> 0 bytes
.../chardet/__pycache__/jpcntx.cpython-37.pyc | Bin 38031 -> 0 bytes
.../__pycache__/langbulgarianmodel.cpython-37.pyc | Bin 23645 -> 0 bytes
.../__pycache__/langcyrillicmodel.cpython-37.pyc | Bin 29101 -> 0 bytes
.../__pycache__/langgreekmodel.cpython-37.pyc | Bin 23603 -> 0 bytes
.../__pycache__/langhebrewmodel.cpython-37.pyc | Bin 22232 -> 0 bytes
.../__pycache__/langthaimodel.cpython-37.pyc | Bin 22211 -> 0 bytes
.../__pycache__/langturkishmodel.cpython-37.pyc | Bin 22234 -> 0 bytes
.../__pycache__/latin1prober.cpython-37.pyc | Bin 2944 -> 0 bytes
.../__pycache__/mbcharsetprober.cpython-37.pyc | Bin 2249 -> 0 bytes
.../__pycache__/mbcsgroupprober.cpython-37.pyc | Bin 1140 -> 0 bytes
.../chardet/__pycache__/mbcssm.cpython-37.pyc | Bin 15695 -> 0 bytes
.../__pycache__/sbcharsetprober.cpython-37.pyc | Bin 3002 -> 0 bytes
.../__pycache__/sbcsgroupprober.cpython-37.pyc | Bin 1630 -> 0 bytes
.../chardet/__pycache__/sjisprober.cpython-37.pyc | Bin 2456 -> 0 bytes
.../__pycache__/universaldetector.cpython-37.pyc | Bin 5846 -> 0 bytes
.../chardet/__pycache__/utf8prober.cpython-37.pyc | Bin 1987 -> 0 bytes
.../chardet/__pycache__/version.cpython-37.pyc | Bin 456 -> 0 bytes
.../pip/_vendor/chardet/big5freq.py | 386 -
.../pip/_vendor/chardet/big5prober.py | 47 -
.../pip/_vendor/chardet/chardistribution.py | 233 -
.../pip/_vendor/chardet/charsetgroupprober.py | 106 -
.../pip/_vendor/chardet/charsetprober.py | 145 -
.../pip/_vendor/chardet/cli/__init__.py | 1 -
.../pip/_vendor/chardet/cli/chardetect.py | 85 -
.../pip/_vendor/chardet/codingstatemachine.py | 88 -
.../pip/_vendor/chardet/compat.py | 34 -
.../pip/_vendor/chardet/cp949prober.py | 49 -
.../pip/_vendor/chardet/enums.py | 76 -
.../pip/_vendor/chardet/escprober.py | 101 -
.../pip/_vendor/chardet/escsm.py | 246 -
.../pip/_vendor/chardet/eucjpprober.py | 92 -
.../pip/_vendor/chardet/euckrfreq.py | 195 -
.../pip/_vendor/chardet/euckrprober.py | 47 -
.../pip/_vendor/chardet/euctwfreq.py | 387 -
.../pip/_vendor/chardet/euctwprober.py | 46 -
.../pip/_vendor/chardet/gb2312freq.py | 283 -
.../pip/_vendor/chardet/gb2312prober.py | 46 -
.../pip/_vendor/chardet/hebrewprober.py | 292 -
.../pip/_vendor/chardet/jisfreq.py | 325 -
.../pip/_vendor/chardet/jpcntx.py | 233 -
.../pip/_vendor/chardet/langbulgarianmodel.py | 228 -
.../pip/_vendor/chardet/langcyrillicmodel.py | 333 -
.../pip/_vendor/chardet/langgreekmodel.py | 225 -
.../pip/_vendor/chardet/langhebrewmodel.py | 200 -
.../pip/_vendor/chardet/langhungarianmodel.py | 225 -
.../pip/_vendor/chardet/langthaimodel.py | 199 -
.../pip/_vendor/chardet/langturkishmodel.py | 193 -
.../pip/_vendor/chardet/latin1prober.py | 145 -
.../pip/_vendor/chardet/mbcharsetprober.py | 91 -
.../pip/_vendor/chardet/mbcsgroupprober.py | 54 -
.../pip/_vendor/chardet/mbcssm.py | 572 -
.../pip/_vendor/chardet/sbcharsetprober.py | 132 -
.../pip/_vendor/chardet/sbcsgroupprober.py | 73 -
.../pip/_vendor/chardet/sjisprober.py | 92 -
.../pip/_vendor/chardet/universaldetector.py | 286 -
.../pip/_vendor/chardet/utf8prober.py | 82 -
.../pip/_vendor/chardet/version.py | 9 -
.../pip/_vendor/colorama/__init__.py | 6 -
.../colorama/__pycache__/__init__.cpython-37.pyc | Bin 461 -> 0 bytes
.../colorama/__pycache__/ansi.cpython-37.pyc | Bin 3359 -> 0 bytes
.../__pycache__/ansitowin32.cpython-37.pyc | Bin 7615 -> 0 bytes
.../colorama/__pycache__/initialise.cpython-37.pyc | Bin 1680 -> 0 bytes
.../colorama/__pycache__/win32.cpython-37.pyc | Bin 3874 -> 0 bytes
.../colorama/__pycache__/winterm.cpython-37.pyc | Bin 4622 -> 0 bytes
.../pip/_vendor/colorama/ansi.py | 102 -
.../pip/_vendor/colorama/ansitowin32.py | 257 -
.../pip/_vendor/colorama/initialise.py | 80 -
.../pip/_vendor/colorama/win32.py | 152 -
.../pip/_vendor/colorama/winterm.py | 169 -
.../pip/_vendor/distlib/__init__.py | 23 -
.../distlib/__pycache__/__init__.cpython-37.pyc | Bin 1059 -> 0 bytes
.../distlib/__pycache__/compat.cpython-37.pyc | Bin 32069 -> 0 bytes
.../distlib/__pycache__/resources.cpython-37.pyc | Bin 10903 -> 0 bytes
.../distlib/__pycache__/scripts.cpython-37.pyc | Bin 11093 -> 0 bytes
.../distlib/__pycache__/util.cpython-37.pyc | Bin 47971 -> 0 bytes
.../pip/_vendor/distlib/_backport/__init__.py | 6 -
.../pip/_vendor/distlib/_backport/misc.py | 41 -
.../pip/_vendor/distlib/_backport/shutil.py | 761 -
.../pip/_vendor/distlib/_backport/sysconfig.cfg | 84 -
.../pip/_vendor/distlib/_backport/sysconfig.py | 788 -
.../pip/_vendor/distlib/_backport/tarfile.py | 2607 -
.../pip/_vendor/distlib/compat.py | 1120 -
.../pip/_vendor/distlib/database.py | 1339 -
.../pip/_vendor/distlib/index.py | 516 -
.../pip/_vendor/distlib/locators.py | 1295 -
.../pip/_vendor/distlib/manifest.py | 393 -
.../pip/_vendor/distlib/markers.py | 131 -
.../pip/_vendor/distlib/metadata.py | 1094 -
.../pip/_vendor/distlib/resources.py | 355 -
.../pip/_vendor/distlib/scripts.py | 417 -
.../pip/_vendor/distlib/t32.exe | Bin 92672 -> 0 bytes
.../pip/_vendor/distlib/t64.exe | Bin 102400 -> 0 bytes
.../pip/_vendor/distlib/util.py | 1756 -
.../pip/_vendor/distlib/version.py | 736 -
.../pip/_vendor/distlib/w32.exe | Bin 89088 -> 0 bytes
.../pip/_vendor/distlib/w64.exe | Bin 99328 -> 0 bytes
.../pip/_vendor/distlib/wheel.py | 988 -
.../pip-19.0.3-py3.7.egg/pip/_vendor/distro.py | 1197 -
.../pip/_vendor/html5lib/__init__.py | 35 -
.../html5lib/__pycache__/__init__.cpython-37.pyc | Bin 1330 -> 0 bytes
.../html5lib/__pycache__/_ihatexml.cpython-37.pyc | Bin 13777 -> 0 bytes
.../__pycache__/_inputstream.cpython-37.pyc | Bin 22668 -> 0 bytes
.../html5lib/__pycache__/_tokenizer.cpython-37.pyc | Bin 41569 -> 0 bytes
.../html5lib/__pycache__/_utils.cpython-37.pyc | Bin 3322 -> 0 bytes
.../html5lib/__pycache__/constants.cpython-37.pyc | Bin 66234 -> 0 bytes
.../__pycache__/html5parser.cpython-37.pyc | Bin 97831 -> 0 bytes
.../html5lib/__pycache__/serializer.cpython-37.pyc | Bin 10847 -> 0 bytes
.../pip/_vendor/html5lib/_ihatexml.py | 288 -
.../pip/_vendor/html5lib/_inputstream.py | 923 -
.../pip/_vendor/html5lib/_tokenizer.py | 1721 -
.../pip/_vendor/html5lib/_trie/__init__.py | 14 -
.../_trie/__pycache__/__init__.cpython-37.pyc | Bin 443 -> 0 bytes
.../_trie/__pycache__/_base.cpython-37.pyc | Bin 1526 -> 0 bytes
.../_trie/__pycache__/datrie.cpython-37.pyc | Bin 2045 -> 0 bytes
.../html5lib/_trie/__pycache__/py.cpython-37.pyc | Bin 2248 -> 0 bytes
.../pip/_vendor/html5lib/_trie/_base.py | 37 -
.../pip/_vendor/html5lib/_trie/datrie.py | 44 -
.../pip/_vendor/html5lib/_trie/py.py | 67 -
.../pip/_vendor/html5lib/_utils.py | 124 -
.../pip/_vendor/html5lib/constants.py | 2947 -
.../pip/_vendor/html5lib/filters/__init__.py | 0
.../html5lib/filters/alphabeticalattributes.py | 29 -
.../pip/_vendor/html5lib/filters/base.py | 12 -
.../html5lib/filters/inject_meta_charset.py | 73 -
.../pip/_vendor/html5lib/filters/lint.py | 93 -
.../pip/_vendor/html5lib/filters/optionaltags.py | 207 -
.../pip/_vendor/html5lib/filters/sanitizer.py | 896 -
.../pip/_vendor/html5lib/filters/whitespace.py | 38 -
.../pip/_vendor/html5lib/html5parser.py | 2791 -
.../pip/_vendor/html5lib/serializer.py | 409 -
.../pip/_vendor/html5lib/treeadapters/__init__.py | 30 -
.../pip/_vendor/html5lib/treeadapters/genshi.py | 54 -
.../pip/_vendor/html5lib/treeadapters/sax.py | 50 -
.../pip/_vendor/html5lib/treebuilders/__init__.py | 88 -
.../__pycache__/__init__.cpython-37.pyc | Bin 3338 -> 0 bytes
.../treebuilders/__pycache__/base.cpython-37.pyc | Bin 11261 -> 0 bytes
.../treebuilders/__pycache__/etree.cpython-37.pyc | Bin 11870 -> 0 bytes
.../pip/_vendor/html5lib/treebuilders/base.py | 417 -
.../pip/_vendor/html5lib/treebuilders/dom.py | 236 -
.../pip/_vendor/html5lib/treebuilders/etree.py | 340 -
.../_vendor/html5lib/treebuilders/etree_lxml.py | 366 -
.../pip/_vendor/html5lib/treewalkers/__init__.py | 154 -
.../__pycache__/__init__.cpython-37.pyc | Bin 4015 -> 0 bytes
.../pip/_vendor/html5lib/treewalkers/base.py | 252 -
.../pip/_vendor/html5lib/treewalkers/dom.py | 43 -
.../pip/_vendor/html5lib/treewalkers/etree.py | 130 -
.../pip/_vendor/html5lib/treewalkers/etree_lxml.py | 213 -
.../pip/_vendor/html5lib/treewalkers/genshi.py | 69 -
.../pip/_vendor/idna/__init__.py | 2 -
.../idna/__pycache__/__init__.cpython-37.pyc | Bin 275 -> 0 bytes
.../_vendor/idna/__pycache__/core.cpython-37.pyc | Bin 9078 -> 0 bytes
.../idna/__pycache__/idnadata.cpython-37.pyc | Bin 21449 -> 0 bytes
.../idna/__pycache__/intranges.cpython-37.pyc | Bin 1815 -> 0 bytes
.../idna/__pycache__/package_data.cpython-37.pyc | Bin 229 -> 0 bytes
.../pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py | 118 -
.../pip/_vendor/idna/compat.py | 12 -
.../pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py | 396 -
.../pip/_vendor/idna/idnadata.py | 1979 -
.../pip/_vendor/idna/intranges.py | 53 -
.../pip/_vendor/idna/package_data.py | 2 -
.../pip/_vendor/idna/uts46data.py | 8205 --
.../pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py | 2419 -
.../pip/_vendor/lockfile/__init__.py | 347 -
.../lockfile/__pycache__/__init__.cpython-37.pyc | Bin 9925 -> 0 bytes
.../__pycache__/linklockfile.cpython-37.pyc | Bin 2306 -> 0 bytes
.../__pycache__/mkdirlockfile.cpython-37.pyc | Bin 2668 -> 0 bytes
.../pip/_vendor/lockfile/linklockfile.py | 73 -
.../pip/_vendor/lockfile/mkdirlockfile.py | 84 -
.../pip/_vendor/lockfile/pidlockfile.py | 190 -
.../pip/_vendor/lockfile/sqlitelockfile.py | 156 -
.../pip/_vendor/lockfile/symlinklockfile.py | 70 -
.../pip/_vendor/msgpack/__init__.py | 66 -
.../msgpack/__pycache__/__init__.cpython-37.pyc | Bin 2087 -> 0 bytes
.../msgpack/__pycache__/_version.cpython-37.pyc | Bin 236 -> 0 bytes
.../msgpack/__pycache__/exceptions.cpython-37.pyc | Bin 2192 -> 0 bytes
.../msgpack/__pycache__/fallback.cpython-37.pyc | Bin 24564 -> 0 bytes
.../pip/_vendor/msgpack/_version.py | 1 -
.../pip/_vendor/msgpack/exceptions.py | 41 -
.../pip/_vendor/msgpack/fallback.py | 977 -
.../pip/_vendor/packaging/__about__.py | 27 -
.../pip/_vendor/packaging/__init__.py | 26 -
.../packaging/__pycache__/__about__.cpython-37.pyc | Bin 749 -> 0 bytes
.../packaging/__pycache__/__init__.cpython-37.pyc | Bin 587 -> 0 bytes
.../packaging/__pycache__/_compat.cpython-37.pyc | Bin 1027 -> 0 bytes
.../__pycache__/_structures.cpython-37.pyc | Bin 2879 -> 0 bytes
.../packaging/__pycache__/markers.cpython-37.pyc | Bin 8882 -> 0 bytes
.../__pycache__/requirements.cpython-37.pyc | Bin 4000 -> 0 bytes
.../__pycache__/specifiers.cpython-37.pyc | Bin 19777 -> 0 bytes
.../packaging/__pycache__/utils.cpython-37.pyc | Bin 1465 -> 0 bytes
.../packaging/__pycache__/version.cpython-37.pyc | Bin 11969 -> 0 bytes
.../pip/_vendor/packaging/_compat.py | 31 -
.../pip/_vendor/packaging/_structures.py | 68 -
.../pip/_vendor/packaging/markers.py | 296 -
.../pip/_vendor/packaging/requirements.py | 138 -
.../pip/_vendor/packaging/specifiers.py | 749 -
.../pip/_vendor/packaging/utils.py | 57 -
.../pip/_vendor/packaging/version.py | 420 -
.../pip/_vendor/pep517/__init__.py | 4 -
.../pep517/__pycache__/__init__.cpython-37.pyc | Bin 300 -> 0 bytes
.../pep517/__pycache__/compat.cpython-37.pyc | Bin 1036 -> 0 bytes
.../pep517/__pycache__/wrappers.cpython-37.pyc | Bin 5501 -> 0 bytes
.../pip/_vendor/pep517/_in_process.py | 207 -
.../pip/_vendor/pep517/build.py | 108 -
.../pip/_vendor/pep517/check.py | 202 -
.../pip/_vendor/pep517/colorlog.py | 115 -
.../pip/_vendor/pep517/compat.py | 23 -
.../pip/_vendor/pep517/envbuild.py | 158 -
.../pip/_vendor/pep517/wrappers.py | 163 -
.../pip/_vendor/pkg_resources/__init__.py | 3171 -
.../__pycache__/__init__.cpython-37.pyc | Bin 96837 -> 0 bytes
.../__pycache__/py31compat.cpython-37.pyc | Bin 660 -> 0 bytes
.../pip/_vendor/pkg_resources/py31compat.py | 23 -
.../pip/_vendor/progress/__init__.py | 127 -
.../progress/__pycache__/__init__.cpython-37.pyc | Bin 3928 -> 0 bytes
.../progress/__pycache__/bar.cpython-37.pyc | Bin 2750 -> 0 bytes
.../progress/__pycache__/helpers.cpython-37.pyc | Bin 3034 -> 0 bytes
.../progress/__pycache__/spinner.cpython-37.pyc | Bin 1509 -> 0 bytes
.../pip/_vendor/progress/bar.py | 94 -
.../pip/_vendor/progress/counter.py | 48 -
.../pip/_vendor/progress/helpers.py | 91 -
.../pip/_vendor/progress/spinner.py | 44 -
.../pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py | 6452 --
.../pip/_vendor/pytoml/__init__.py | 4 -
.../pytoml/__pycache__/__init__.cpython-37.pyc | Bin 394 -> 0 bytes
.../_vendor/pytoml/__pycache__/core.cpython-37.pyc | Bin 957 -> 0 bytes
.../pytoml/__pycache__/parser.cpython-37.pyc | Bin 10074 -> 0 bytes
.../_vendor/pytoml/__pycache__/test.cpython-37.pyc | Bin 1257 -> 0 bytes
.../pytoml/__pycache__/utils.cpython-37.pyc | Bin 2156 -> 0 bytes
.../pytoml/__pycache__/writer.cpython-37.pyc | Bin 3591 -> 0 bytes
.../pip/_vendor/pytoml/core.py | 13 -
.../pip/_vendor/pytoml/parser.py | 341 -
.../pip/_vendor/pytoml/test.py | 30 -
.../pip/_vendor/pytoml/utils.py | 67 -
.../pip/_vendor/pytoml/writer.py | 106 -
.../pip/_vendor/requests/__init__.py | 133 -
.../requests/__pycache__/__init__.cpython-37.pyc | Bin 3505 -> 0 bytes
.../__pycache__/__version__.cpython-37.pyc | Bin 568 -> 0 bytes
.../__pycache__/_internal_utils.cpython-37.pyc | Bin 1326 -> 0 bytes
.../requests/__pycache__/adapters.cpython-37.pyc | Bin 16903 -> 0 bytes
.../requests/__pycache__/api.cpython-37.pyc | Bin 6509 -> 0 bytes
.../requests/__pycache__/auth.cpython-37.pyc | Bin 8360 -> 0 bytes
.../requests/__pycache__/certs.cpython-37.pyc | Bin 651 -> 0 bytes
.../requests/__pycache__/compat.cpython-37.pyc | Bin 1630 -> 0 bytes
.../requests/__pycache__/cookies.cpython-37.pyc | Bin 18805 -> 0 bytes
.../requests/__pycache__/exceptions.cpython-37.pyc | Bin 5523 -> 0 bytes
.../requests/__pycache__/hooks.cpython-37.pyc | Bin 998 -> 0 bytes
.../requests/__pycache__/models.cpython-37.pyc | Bin 24126 -> 0 bytes
.../requests/__pycache__/packages.cpython-37.pyc | Bin 528 -> 0 bytes
.../requests/__pycache__/sessions.cpython-37.pyc | Bin 19446 -> 0 bytes
.../__pycache__/status_codes.cpython-37.pyc | Bin 4184 -> 0 bytes
.../requests/__pycache__/structures.cpython-37.pyc | Bin 4397 -> 0 bytes
.../requests/__pycache__/utils.cpython-37.pyc | Bin 22057 -> 0 bytes
.../pip/_vendor/requests/__version__.py | 14 -
.../pip/_vendor/requests/_internal_utils.py | 42 -
.../pip/_vendor/requests/adapters.py | 533 -
.../pip/_vendor/requests/api.py | 158 -
.../pip/_vendor/requests/auth.py | 305 -
.../pip/_vendor/requests/certs.py | 18 -
.../pip/_vendor/requests/compat.py | 74 -
.../pip/_vendor/requests/cookies.py | 549 -
.../pip/_vendor/requests/exceptions.py | 126 -
.../pip/_vendor/requests/help.py | 119 -
.../pip/_vendor/requests/hooks.py | 34 -
.../pip/_vendor/requests/models.py | 953 -
.../pip/_vendor/requests/packages.py | 16 -
.../pip/_vendor/requests/sessions.py | 770 -
.../pip/_vendor/requests/status_codes.py | 120 -
.../pip/_vendor/requests/structures.py | 103 -
.../pip/_vendor/requests/utils.py | 977 -
.../pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py | 267 -
.../pip-19.0.3-py3.7.egg/pip/_vendor/six.py | 952 -
.../pip/_vendor/urllib3/__init__.py | 92 -
.../urllib3/__pycache__/__init__.cpython-37.pyc | Bin 2133 -> 0 bytes
.../__pycache__/_collections.cpython-37.pyc | Bin 10697 -> 0 bytes
.../urllib3/__pycache__/connection.cpython-37.pyc | Bin 10166 -> 0 bytes
.../__pycache__/connectionpool.cpython-37.pyc | Bin 23671 -> 0 bytes
.../urllib3/__pycache__/exceptions.cpython-37.pyc | Bin 10418 -> 0 bytes
.../urllib3/__pycache__/fields.cpython-37.pyc | Bin 5886 -> 0 bytes
.../urllib3/__pycache__/filepost.cpython-37.pyc | Bin 2778 -> 0 bytes
.../urllib3/__pycache__/poolmanager.cpython-37.pyc | Bin 12738 -> 0 bytes
.../urllib3/__pycache__/request.cpython-37.pyc | Bin 5600 -> 0 bytes
.../urllib3/__pycache__/response.cpython-37.pyc | Bin 18765 -> 0 bytes
.../pip/_vendor/urllib3/_collections.py | 329 -
.../pip/_vendor/urllib3/connection.py | 391 -
.../pip/_vendor/urllib3/connectionpool.py | 896 -
.../pip/_vendor/urllib3/contrib/__init__.py | 0
.../contrib/__pycache__/__init__.cpython-37.pyc | Bin 217 -> 0 bytes
.../__pycache__/_appengine_environ.cpython-37.pyc | Bin 1113 -> 0 bytes
.../contrib/__pycache__/socks.cpython-37.pyc | Bin 4923 -> 0 bytes
.../_vendor/urllib3/contrib/_appengine_environ.py | 30 -
.../urllib3/contrib/_securetransport/__init__.py | 0
.../urllib3/contrib/_securetransport/bindings.py | 593 -
.../urllib3/contrib/_securetransport/low_level.py | 346 -
.../pip/_vendor/urllib3/contrib/appengine.py | 289 -
.../pip/_vendor/urllib3/contrib/ntlmpool.py | 111 -
.../pip/_vendor/urllib3/contrib/pyopenssl.py | 466 -
.../pip/_vendor/urllib3/contrib/securetransport.py | 804 -
.../pip/_vendor/urllib3/contrib/socks.py | 192 -
.../pip/_vendor/urllib3/exceptions.py | 246 -
.../pip/_vendor/urllib3/fields.py | 178 -
.../pip/_vendor/urllib3/filepost.py | 98 -
.../pip/_vendor/urllib3/packages/__init__.py | 5 -
.../packages/__pycache__/__init__.cpython-37.pyc | Bin 331 -> 0 bytes
.../packages/__pycache__/six.cpython-37.pyc | Bin 24419 -> 0 bytes
.../_vendor/urllib3/packages/backports/__init__.py | 0
.../_vendor/urllib3/packages/backports/makefile.py | 53 -
.../pip/_vendor/urllib3/packages/six.py | 868 -
.../packages/ssl_match_hostname/__init__.py | 19 -
.../__pycache__/__init__.cpython-37.pyc | Bin 572 -> 0 bytes
.../packages/ssl_match_hostname/_implementation.py | 156 -
.../pip/_vendor/urllib3/poolmanager.py | 450 -
.../pip/_vendor/urllib3/request.py | 150 -
.../pip/_vendor/urllib3/response.py | 705 -
.../pip/_vendor/urllib3/util/__init__.py | 54 -
.../util/__pycache__/__init__.cpython-37.pyc | Bin 1009 -> 0 bytes
.../util/__pycache__/connection.cpython-37.pyc | Bin 3184 -> 0 bytes
.../urllib3/util/__pycache__/queue.cpython-37.pyc | Bin 1058 -> 0 bytes
.../util/__pycache__/request.cpython-37.pyc | Bin 3239 -> 0 bytes
.../util/__pycache__/response.cpython-37.pyc | Bin 1987 -> 0 bytes
.../urllib3/util/__pycache__/retry.cpython-37.pyc | Bin 12673 -> 0 bytes
.../urllib3/util/__pycache__/ssl_.cpython-37.pyc | Bin 9565 -> 0 bytes
.../util/__pycache__/timeout.cpython-37.pyc | Bin 8788 -> 0 bytes
.../urllib3/util/__pycache__/url.cpython-37.pyc | Bin 5198 -> 0 bytes
.../urllib3/util/__pycache__/wait.cpython-37.pyc | Bin 3150 -> 0 bytes
.../pip/_vendor/urllib3/util/connection.py | 134 -
.../pip/_vendor/urllib3/util/queue.py | 21 -
.../pip/_vendor/urllib3/util/request.py | 118 -
.../pip/_vendor/urllib3/util/response.py | 87 -
.../pip/_vendor/urllib3/util/retry.py | 411 -
.../pip/_vendor/urllib3/util/ssl_.py | 381 -
.../pip/_vendor/urllib3/util/timeout.py | 242 -
.../pip/_vendor/urllib3/util/url.py | 230 -
.../pip/_vendor/urllib3/util/wait.py | 150 -
.../pip/_vendor/webencodings/__init__.py | 342 -
.../__pycache__/__init__.cpython-37.pyc | Bin 9693 -> 0 bytes
.../webencodings/__pycache__/labels.cpython-37.pyc | Bin 4107 -> 0 bytes
.../pip/_vendor/webencodings/labels.py | 231 -
.../pip/_vendor/webencodings/mklabels.py | 59 -
.../pip/_vendor/webencodings/tests.py | 153 -
.../pip/_vendor/webencodings/x_user_defined.py | 325 -
.../site-packages/pylint-2.4.4.dist-info/COPYING | 340 -
.../site-packages/pylint-2.4.4.dist-info/INSTALLER | 1 -
.../site-packages/pylint-2.4.4.dist-info/METADATA | 202 -
.../site-packages/pylint-2.4.4.dist-info/RECORD | 161 -
.../Lib/site-packages/pylint-2.4.4.dist-info/WHEEL | 5 -
.../pylint-2.4.4.dist-info/entry_points.txt | 6 -
.../pylint-2.4.4.dist-info/top_level.txt | 1 -
.../venv/Lib/site-packages/pylint/__init__.py | 43 -
.../venv/Lib/site-packages/pylint/__main__.py | 7 -
.../venv/Lib/site-packages/pylint/__pkginfo__.py | 85 -
.../pylint/__pycache__/__init__.cpython-37.pyc | Bin 1084 -> 0 bytes
.../pylint/__pycache__/__main__.cpython-37.pyc | Bin 210 -> 0 bytes
.../pylint/__pycache__/__pkginfo__.cpython-37.pyc | Bin 2632 -> 0 bytes
.../pylint/__pycache__/config.cpython-37.pyc | Bin 25815 -> 0 bytes
.../pylint/__pycache__/constants.cpython-37.pyc | Bin 1018 -> 0 bytes
.../pylint/__pycache__/epylint.cpython-37.pyc | Bin 4958 -> 0 bytes
.../pylint/__pycache__/exceptions.cpython-37.pyc | Bin 1361 -> 0 bytes
.../pylint/__pycache__/graph.cpython-37.pyc | Bin 5211 -> 0 bytes
.../pylint/__pycache__/interfaces.cpython-37.pyc | Bin 3665 -> 0 bytes
.../pylint/__pycache__/lint.cpython-37.pyc | Bin 45362 -> 0 bytes
.../pylint/__pycache__/testutils.cpython-37.pyc | Bin 9521 -> 0 bytes
.../Lib/site-packages/pylint/checkers/__init__.py | 64 -
.../checkers/__pycache__/__init__.cpython-37.pyc | Bin 1580 -> 0 bytes
.../checkers/__pycache__/async.cpython-37.pyc | Bin 2722 -> 0 bytes
.../checkers/__pycache__/base.cpython-37.pyc | Bin 61785 -> 0 bytes
.../__pycache__/base_checker.cpython-37.pyc | Bin 6481 -> 0 bytes
.../checkers/__pycache__/classes.cpython-37.pyc | Bin 44537 -> 0 bytes
.../__pycache__/design_analysis.cpython-37.pyc | Bin 11667 -> 0 bytes
.../checkers/__pycache__/exceptions.cpython-37.pyc | Bin 15668 -> 0 bytes
.../checkers/__pycache__/format.cpython-37.pyc | Bin 31580 -> 0 bytes
.../checkers/__pycache__/imports.cpython-37.pyc | Bin 25427 -> 0 bytes
.../checkers/__pycache__/logging.cpython-37.pyc | Bin 10919 -> 0 bytes
.../checkers/__pycache__/misc.cpython-37.pyc | Bin 4597 -> 0 bytes
.../checkers/__pycache__/newstyle.cpython-37.pyc | Bin 2422 -> 0 bytes
.../checkers/__pycache__/python3.cpython-37.pyc | Bin 34941 -> 0 bytes
.../__pycache__/raw_metrics.cpython-37.pyc | Bin 3254 -> 0 bytes
.../__pycache__/refactoring.cpython-37.pyc | Bin 45321 -> 0 bytes
.../checkers/__pycache__/similar.cpython-37.pyc | Bin 12304 -> 0 bytes
.../checkers/__pycache__/spelling.cpython-37.pyc | Bin 9755 -> 0 bytes
.../checkers/__pycache__/stdlib.cpython-37.pyc | Bin 12738 -> 0 bytes
.../checkers/__pycache__/strings.cpython-37.pyc | Bin 17427 -> 0 bytes
.../checkers/__pycache__/typecheck.cpython-37.pyc | Bin 40274 -> 0 bytes
.../checkers/__pycache__/utils.cpython-37.pyc | Bin 31460 -> 0 bytes
.../checkers/__pycache__/variables.cpython-37.pyc | Bin 44587 -> 0 bytes
.../Lib/site-packages/pylint/checkers/async.py | 89 -
.../venv/Lib/site-packages/pylint/checkers/base.py | 2333 -
.../site-packages/pylint/checkers/base_checker.py | 187 -
.../Lib/site-packages/pylint/checkers/classes.py | 1844 -
.../pylint/checkers/design_analysis.py | 496 -
.../site-packages/pylint/checkers/exceptions.py | 546 -
.../Lib/site-packages/pylint/checkers/format.py | 1332 -
.../Lib/site-packages/pylint/checkers/imports.py | 981 -
.../Lib/site-packages/pylint/checkers/logging.py | 384 -
.../venv/Lib/site-packages/pylint/checkers/misc.py | 171 -
.../Lib/site-packages/pylint/checkers/newstyle.py | 127 -
.../Lib/site-packages/pylint/checkers/python3.py | 1398 -
.../site-packages/pylint/checkers/raw_metrics.py | 119 -
.../site-packages/pylint/checkers/refactoring.py | 1510 -
.../Lib/site-packages/pylint/checkers/similar.py | 452 -
.../Lib/site-packages/pylint/checkers/spelling.py | 411 -
.../Lib/site-packages/pylint/checkers/stdlib.py | 452 -
.../Lib/site-packages/pylint/checkers/strings.py | 755 -
.../Lib/site-packages/pylint/checkers/typecheck.py | 1770 -
.../Lib/site-packages/pylint/checkers/utils.py | 1253 -
.../Lib/site-packages/pylint/checkers/variables.py | 1987 -
.../python/venv/Lib/site-packages/pylint/config.py | 913 -
.../venv/Lib/site-packages/pylint/constants.py | 43 -
.../venv/Lib/site-packages/pylint/epylint.py | 197 -
.../venv/Lib/site-packages/pylint/exceptions.py | 29 -
.../site-packages/pylint/extensions/__init__.py | 0
.../extensions/__pycache__/__init__.cpython-37.pyc | Bin 181 -> 0 bytes
.../__pycache__/_check_docs_utils.cpython-37.pyc | Bin 18819 -> 0 bytes
.../__pycache__/bad_builtin.cpython-37.pyc | Bin 1967 -> 0 bytes
.../__pycache__/broad_try_clause.cpython-37.pyc | Bin 1702 -> 0 bytes
.../__pycache__/check_docs.cpython-37.pyc | Bin 685 -> 0 bytes
.../__pycache__/check_elif.cpython-37.pyc | Bin 2647 -> 0 bytes
.../__pycache__/comparetozero.cpython-37.pyc | Bin 1959 -> 0 bytes
.../__pycache__/docparams.cpython-37.pyc | Bin 14746 -> 0 bytes
.../extensions/__pycache__/docstyle.cpython-37.pyc | Bin 2503 -> 0 bytes
.../__pycache__/emptystring.cpython-37.pyc | Bin 2035 -> 0 bytes
.../extensions/__pycache__/mccabe.cpython-37.pyc | Bin 5579 -> 0 bytes
.../overlapping_exceptions.cpython-37.pyc | Bin 2604 -> 0 bytes
.../redefined_variable_type.cpython-37.pyc | Bin 3248 -> 0 bytes
.../pylint/extensions/_check_docs_utils.py | 792 -
.../site-packages/pylint/extensions/bad_builtin.py | 69 -
.../pylint/extensions/broad_try_clause.py | 59 -
.../site-packages/pylint/extensions/check_docs.py | 23 -
.../site-packages/pylint/extensions/check_elif.py | 77 -
.../pylint/extensions/comparetozero.py | 74 -
.../site-packages/pylint/extensions/docparams.py | 536 -
.../site-packages/pylint/extensions/docstyle.py | 89 -
.../site-packages/pylint/extensions/emptystring.py | 74 -
.../Lib/site-packages/pylint/extensions/mccabe.py | 196 -
.../pylint/extensions/overlapping_exceptions.py | 88 -
.../pylint/extensions/redefined_variable_type.py | 116 -
.../python/venv/Lib/site-packages/pylint/graph.py | 197 -
.../venv/Lib/site-packages/pylint/interfaces.py | 102 -
.../python/venv/Lib/site-packages/pylint/lint.py | 1817 -
.../Lib/site-packages/pylint/message/__init__.py | 54 -
.../message/__pycache__/__init__.cpython-37.pyc | Bin 664 -> 0 bytes
.../message/__pycache__/message.cpython-37.pyc | Bin 1225 -> 0 bytes
.../__pycache__/message_definition.cpython-37.pyc | Bin 2982 -> 0 bytes
.../message_definition_store.cpython-37.pyc | Bin 4075 -> 0 bytes
.../message_handler_mix_in.cpython-37.pyc | Bin 11049 -> 0 bytes
.../__pycache__/message_id_store.cpython-37.pyc | Bin 4925 -> 0 bytes
.../Lib/site-packages/pylint/message/message.py | 53 -
.../pylint/message/message_definition.py | 84 -
.../pylint/message/message_definition_store.py | 90 -
.../pylint/message/message_handler_mix_in.py | 393 -
.../pylint/message/message_id_store.py | 128 -
.../Lib/site-packages/pylint/pyreverse/__init__.py | 8 -
.../pyreverse/__pycache__/__init__.cpython-37.pyc | Bin 241 -> 0 bytes
.../__pycache__/diadefslib.cpython-37.pyc | Bin 7621 -> 0 bytes
.../pyreverse/__pycache__/diagrams.cpython-37.pyc | Bin 8716 -> 0 bytes
.../pyreverse/__pycache__/inspector.cpython-37.pyc | Bin 10187 -> 0 bytes
.../pyreverse/__pycache__/main.cpython-37.pyc | Bin 4522 -> 0 bytes
.../pyreverse/__pycache__/utils.cpython-37.pyc | Bin 5787 -> 0 bytes
.../pyreverse/__pycache__/vcgutils.cpython-37.pyc | Bin 4697 -> 0 bytes
.../pyreverse/__pycache__/writer.cpython-37.pyc | Bin 7286 -> 0 bytes
.../site-packages/pylint/pyreverse/diadefslib.py | 238 -
.../Lib/site-packages/pylint/pyreverse/diagrams.py | 268 -
.../site-packages/pylint/pyreverse/inspector.py | 357 -
.../Lib/site-packages/pylint/pyreverse/main.py | 214 -
.../Lib/site-packages/pylint/pyreverse/utils.py | 220 -
.../Lib/site-packages/pylint/pyreverse/vcgutils.py | 229 -
.../Lib/site-packages/pylint/pyreverse/writer.py | 213 -
.../Lib/site-packages/pylint/reporters/__init__.py | 34 -
.../reporters/__pycache__/__init__.cpython-37.pyc | Bin 823 -> 0 bytes
.../__pycache__/base_reporter.cpython-37.pyc | Bin 2767 -> 0 bytes
.../__pycache__/collecting_reporter.cpython-37.pyc | Bin 817 -> 0 bytes
.../__pycache__/json_reporter.cpython-37.pyc | Bin 2003 -> 0 bytes
.../reports_handler_mix_in.cpython-37.pyc | Bin 3028 -> 0 bytes
.../reporters/__pycache__/text.cpython-37.pyc | Bin 7263 -> 0 bytes
.../pylint/reporters/base_reporter.py | 66 -
.../pylint/reporters/collecting_reporter.py | 21 -
.../pylint/reporters/json_reporter.py | 58 -
.../pylint/reporters/reports_handler_mix_in.py | 79 -
.../Lib/site-packages/pylint/reporters/text.py | 247 -
.../pylint/reporters/ureports/__init__.py | 96 -
.../ureports/__pycache__/__init__.cpython-37.pyc | Bin 3065 -> 0 bytes
.../ureports/__pycache__/nodes.cpython-37.pyc | Bin 6062 -> 0 bytes
.../__pycache__/text_writer.cpython-37.pyc | Bin 3673 -> 0 bytes
.../pylint/reporters/ureports/nodes.py | 188 -
.../pylint/reporters/ureports/text_writer.py | 94 -
.../venv/Lib/site-packages/pylint/testutils.py | 298 -
.../Lib/site-packages/pylint/utils/__init__.py | 64 -
.../utils/__pycache__/__init__.cpython-37.pyc | Bin 869 -> 0 bytes
.../utils/__pycache__/ast_walker.cpython-37.pyc | Bin 2078 -> 0 bytes
.../utils/__pycache__/file_state.cpython-37.pyc | Bin 3852 -> 0 bytes
.../pylint/utils/__pycache__/utils.cpython-37.pyc | Bin 10339 -> 0 bytes
.../Lib/site-packages/pylint/utils/ast_walker.py | 79 -
.../Lib/site-packages/pylint/utils/file_state.py | 138 -
.../venv/Lib/site-packages/pylint/utils/utils.py | 371 -
.../Lib/site-packages/setuptools-40.8.0-py3.7.egg | Bin 571911 -> 0 bytes
.../python/venv/Lib/site-packages/setuptools.pth | 1 -
.../site-packages/six-1.14.0.dist-info/INSTALLER | 1 -
.../Lib/site-packages/six-1.14.0.dist-info/LICENSE | 18 -
.../site-packages/six-1.14.0.dist-info/METADATA | 49 -
.../Lib/site-packages/six-1.14.0.dist-info/RECORD | 8 -
.../Lib/site-packages/six-1.14.0.dist-info/WHEEL | 6 -
.../six-1.14.0.dist-info/top_level.txt | 1 -
src/main/python/venv/Lib/site-packages/six.py | 980 -
.../typed_ast-1.4.1.dist-info/INSTALLER | 1 -
.../typed_ast-1.4.1.dist-info/LICENSE | 290 -
.../typed_ast-1.4.1.dist-info/METADATA | 28 -
.../site-packages/typed_ast-1.4.1.dist-info/RECORD | 18 -
.../site-packages/typed_ast-1.4.1.dist-info/WHEEL | 5 -
.../typed_ast-1.4.1.dist-info/top_level.txt | 3 -
.../venv/Lib/site-packages/typed_ast/__init__.py | 1 -
.../typed_ast/__pycache__/__init__.cpython-37.pyc | Bin 197 -> 0 bytes
.../typed_ast/__pycache__/ast27.cpython-37.pyc | Bin 12419 -> 0 bytes
.../typed_ast/__pycache__/ast3.cpython-37.pyc | Bin 13335 -> 0 bytes
.../__pycache__/conversions.cpython-37.pyc | Bin 7916 -> 0 bytes
.../typed_ast/_ast27.cp37-win_amd64.pyd | Bin 165888 -> 0 bytes
.../typed_ast/_ast3.cp37-win_amd64.pyd | Bin 186368 -> 0 bytes
.../venv/Lib/site-packages/typed_ast/ast27.py | 324 -
.../venv/Lib/site-packages/typed_ast/ast3.py | 348 -
.../Lib/site-packages/typed_ast/conversions.py | 232 -
.../tests/__pycache__/test_basics.cpython-37.pyc | Bin 7451 -> 0 bytes
.../site-packages/typed_ast/tests/test_basics.py | 326 -
.../wrapt-1.11.2-py3.7.egg-info/PKG-INFO | 166 -
.../wrapt-1.11.2-py3.7.egg-info/SOURCES.txt | 10 -
.../dependency_links.txt | 1 -
.../installed-files.txt | 12 -
.../wrapt-1.11.2-py3.7.egg-info/top_level.txt | 1 -
.../venv/Lib/site-packages/wrapt/__init__.py | 16 -
.../wrapt/__pycache__/__init__.cpython-37.pyc | Bin 984 -> 0 bytes
.../wrapt/__pycache__/decorators.cpython-37.pyc | Bin 8918 -> 0 bytes
.../wrapt/__pycache__/importer.cpython-37.pyc | Bin 4242 -> 0 bytes
.../wrapt/__pycache__/wrappers.cpython-37.pyc | Bin 24030 -> 0 bytes
.../venv/Lib/site-packages/wrapt/decorators.py | 514 -
.../venv/Lib/site-packages/wrapt/importer.py | 230 -
.../venv/Lib/site-packages/wrapt/wrappers.py | 943 -
src/main/python/venv/Scripts/Activate.ps1 | 51 -
src/main/python/venv/Scripts/activate | 76 -
src/main/python/venv/Scripts/activate.bat | 45 -
src/main/python/venv/Scripts/deactivate.bat | 21 -
.../python/venv/Scripts/easy_install-3.7-script.py | 12 -
src/main/python/venv/Scripts/easy_install-3.7.exe | Bin 74752 -> 0 bytes
.../python/venv/Scripts/easy_install-script.py | 12 -
src/main/python/venv/Scripts/easy_install.exe | Bin 74752 -> 0 bytes
src/main/python/venv/Scripts/epylint.exe | Bin 102800 -> 0 bytes
src/main/python/venv/Scripts/isort.exe | Bin 102790 -> 0 bytes
src/main/python/venv/Scripts/pip-script.py | 12 -
src/main/python/venv/Scripts/pip.exe | Bin 74752 -> 0 bytes
src/main/python/venv/Scripts/pip3-script.py | 12 -
src/main/python/venv/Scripts/pip3.7-script.py | 12 -
src/main/python/venv/Scripts/pip3.7.exe | Bin 74752 -> 0 bytes
src/main/python/venv/Scripts/pip3.exe | Bin 74752 -> 0 bytes
src/main/python/venv/Scripts/pylint.exe | Bin 102798 -> 0 bytes
src/main/python/venv/Scripts/pyreverse.exe | Bin 102804 -> 0 bytes
src/main/python/venv/Scripts/python.exe | Bin 522768 -> 0 bytes
src/main/python/venv/Scripts/python_d.exe | Bin 688128 -> 0 bytes
src/main/python/venv/Scripts/pythonw.exe | Bin 522256 -> 0 bytes
src/main/python/venv/Scripts/pythonw_d.exe | Bin 687104 -> 0 bytes
src/main/python/venv/Scripts/symilar.exe | Bin 102800 -> 0 bytes
src/main/python/venv/pyvenv.cfg | 3 -
.../resources/base/icons/AdiabaticCompressor.png | Bin 740 -> 0 bytes
.../resources/base/icons/AdiabaticExpander.png | Bin 741 -> 0 bytes
src/main/resources/base/icons/CentrifugalPump.png | Bin 1620 -> 0 bytes
src/main/resources/base/icons/Column.png | Bin 4681 -> 0 bytes
.../resources/base/icons/CompoundSeparator.png | Bin 1708 -> 0 bytes
src/main/resources/base/icons/Cooler.png | Bin 3042 -> 0 bytes
.../resources/base/icons/DistillationColumn.png | Bin 4361 -> 0 bytes
src/main/resources/base/icons/Flash.png | Bin 2431 -> 0 bytes
src/main/resources/base/icons/Heater.png | Bin 2750 -> 0 bytes
src/main/resources/base/icons/MaterialStream.png | Bin 527 -> 0 bytes
src/main/resources/base/icons/Mixer.png | Bin 1008 -> 0 bytes
src/main/resources/base/icons/ShortcutColumn.png | Bin 4361 -> 0 bytes
src/main/resources/base/icons/Splitter.png | Bin 1068 -> 0 bytes
src/main/resources/base/icons/Valve.png | Bin 1498 -> 0 bytes
src/main/resources/base/icons/bpe.png | Bin 1695 -> 0 bytes
src/main/resources/base/icons/compound.png | Bin 4849 -> 0 bytes
src/main/resources/base/icons/eq.png | Bin 5162 -> 0 bytes
src/main/resources/base/icons/help.png | Bin 4967 -> 0 bytes
src/main/resources/base/icons/icon_1.svg | 868 -
src/main/resources/base/icons/images.png | Bin 2938 -> 0 bytes
src/main/resources/base/icons/logo.png | Bin 1391 -> 0 bytes
src/main/resources/base/icons/new.png | Bin 2812 -> 0 bytes
src/main/resources/base/icons/open.png | Bin 3316 -> 0 bytes
src/main/resources/base/icons/redo.png | Bin 3833 -> 0 bytes
src/main/resources/base/icons/save.png | Bin 3711 -> 0 bytes
src/main/resources/base/icons/simulating.png | Bin 6777 -> 0 bytes
src/main/resources/base/icons/sq.png | Bin 8725 -> 0 bytes
src/main/resources/base/icons/stop.png | Bin 5514 -> 0 bytes
src/main/resources/base/icons/undo.png | Bin 3817 -> 0 bytes
src/main/resources/base/icons/zoo.png | Bin 6707 -> 0 bytes
src/main/resources/base/icons/zoom_in.png | Bin 4908 -> 0 bytes
src/main/resources/base/icons/zoom_out.png | Bin 4865 -> 0 bytes
src/main/resources/base/icons/zoom_reset.png | Bin 5052 -> 0 bytes
.../DistillationColumnStagewiseResults.ui | 68 -
src/main/ui/DockWidgets/DockWidget.ui | 169 -
.../ui/DockWidgets/DockWidgetCompoundSeparator.ui | 45 -
.../ui/DockWidgets/DockWidgetCompressorExpander.ui | 214 -
.../ui/DockWidgets/DockWidgetDistillationColumn.ui | 323 -
src/main/ui/DockWidgets/DockWidgetFlash.ui | 161 -
.../ui/DockWidgets/DockWidgetMaterialStream.ui | 490 -
src/main/ui/DockWidgets/DockWidgetMixer.ui | 137 -
.../ui/DockWidgets/DockWidgetShortcutColumn.ui | 360 -
src/main/ui/DockWidgets/DockWidgetSplitter.ui | 200 -
src/main/ui/utils/Binary_Phase_Env.ui | 271 -
src/main/ui/utils/ComponentSelector.ui | 130 -
src/main/ui/utils/main.ui | 2199 -
1696 files changed, 286688 deletions(-)
delete mode 100644 src/main/Simulator/BinaryEnvelopes.mo
delete mode 100644 src/main/Simulator/Databases/Databases.py
delete mode 100644 src/main/Simulator/Databases/__pycache__/Databases.cpython-36.pyc
delete mode 100644 src/main/Simulator/Databases/__pycache__/Databases.cpython-37.pyc
delete mode 100644 src/main/Simulator/Databases/chemsep1.xml
delete mode 100644 src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeNRTL.mo
delete mode 100644 src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopePR.mo
delete mode 100644 src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIFAC.mo
delete mode 100644 src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIQUAC.mo
delete mode 100644 src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.mo
delete mode 100644 src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.order
delete mode 100644 src/main/Simulator/Simulator/Examples/Absorption.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/CR.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/CompositeMS.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/CompoundSeparator.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Compressor.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Cooler.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Distillation.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/EquilibriumReactor.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Expander.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Flash.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/HeatExchanger.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Heater.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/MaterialStream.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Mixer.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/PFR.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Pump.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/ShortcutColumn.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Splitter.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/Valve.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/package.mo
delete mode 100644 src/main/Simulator/Simulator/Examples/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acenaphthene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetaldehyde.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticanhydride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetonitrile.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylonitrile.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Adipicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Air.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ammonia.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Aniline.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Anisole.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Argon.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzoicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Biphenyl.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Butanal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Butylvinylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondioxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonmonoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbontetrachloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Chlorine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Chloroform.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Chrysene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneFourdimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwobutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwohexene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwopentene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cisdecahydronaphthalene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumenehydroperoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclobutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/DiButylCarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/DiEthylCarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/DiPhenylCarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetaldehyde.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetylchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dicyclopentadiene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyleneglycol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylenetriamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisobutylketone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylketone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylacetylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylcarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylterephthalate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinbutylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Diphenyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Disecbutylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ditertbutyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/EthylPhenylCarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenecarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenediamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneglycol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylformate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmethyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylpropyldisulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyltertpentylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/FivemethylTwohexanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fivemethylnonane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluoranthene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Formaldehyde.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethylmxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethyloxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourheptanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethylcisTwopentene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylnonane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethyloctane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethyltransTwopentene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Furfural.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/GeneralProperties.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Glycerol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/HeliumFour.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Heptanal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Hexanal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogen.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogenchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogencyanide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogeniodide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogensulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Indane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Indene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Iodobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isoprene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylbutylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ketene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Krypton.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicanhydride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcresol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcymene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdichlorobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdiethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mesitylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylonitrile.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylDiEthanolAmine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylEthylCarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylPhenylCarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylketone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylformate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyliodide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylketone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylketone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmethacrylate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylpropionate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltbutylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertbutylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertpentylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltpentylsulfide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mnitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Monochlorobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Monoethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Mxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylpiperazine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Naphthalene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutyricacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndocosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndodecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Neicosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Neon.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Neopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheneicosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptacosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptadecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexacosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexadecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitroethane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogen.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogendioxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentetroxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentrioxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitromethane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrousoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylacetamide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylformamide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonacosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonadecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctacosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctadecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentacosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentadecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylformate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetracosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetradecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntricosane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntridecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Nundecane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocresol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocymene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Odichlorobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Odiethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oethyltoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourbutanediol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourdioxane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOneTwotrichloroethane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedichloroethane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneThreebutadiene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourFivetetramethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrichlorobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrimethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFivetetramethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFourtetramethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreetrimethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwobutadiene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwodichloroethane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwopropyleneoxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylFournpropylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylOneethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylThreenpropylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylindene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylnaphthalene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitrobutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitropropane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenonene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneoctene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onephenylnaphthalene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepropanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneundecene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Onitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Otoluicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxalicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxygen.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ozone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcresol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcymene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdichlorobenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiethylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiisopropylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pentanal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pethyltoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenanthrene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Phosgene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Phthalicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Piperazine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pnitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pphenylenediamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propadiene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propanal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionitrile.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylenecarbonate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Ptoluicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyrene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyridine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Salicylicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Squalane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Styrene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfolane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurdioxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurhexafluoride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurtrioxide.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Terephthalicacid.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylbenzene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylethylether.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylmercaptan.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetraethyleneglycol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetrahydrofuran.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Thiophene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFivedinitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdinitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreeFivetrimethylheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreediethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylTwobutanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeheptanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threehexanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylOnebutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylThreeethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylnonane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethyloctane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Threepentanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Toluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneFourdimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclohexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclopentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwobutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwohexene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwopentene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Transdecahydronaphthalene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetaldehyde.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetylchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroethylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethanolamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethylamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethyleneglycol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Trimethylamine.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Two6dinitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedinitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFour6trinitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourFourtrimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdinitrotoluene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethoxyTwoMethylHeptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethylTwoHeptanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeFourtrimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreeFourtetramethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreetrimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylbutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFivetrimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourFourtetramethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourtrimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeFourtetramethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylbutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylbutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylOnepropanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylbutane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethyloctane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twobutanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylmxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylpxylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoheptanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twohexanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOneheptene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepentene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepropanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylThreeethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwopropanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylheptane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylhexane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylindene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnaphthalene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnonane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethyloctane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpentane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpropanal.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twonitropropane.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanol.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanone.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetate.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetylene.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylchloride.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Water.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/Xenon.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ChemsepDatabase/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/AbsorptionColumn.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/AdiabaticCompressor.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/AdiabaticExpander.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/CentrifugalPump.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/CompoundSeparator.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/ConversionReactor.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/Cooler.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/DistillationColumn.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/EnergyStream.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/EquilibriumReactor.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/Flash.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/HeatExchanger.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/Heater.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/MaterialStream.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/Mixer.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/PFR.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/Splitter.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/Valve.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Icons/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/Interfaces/enConn.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Interfaces/matConn.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Interfaces/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Interfaces/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/Interfaces/trayConn.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/Flash.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/Arhenious.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/BaseCalc.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/ConversionReaction.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/EquilibriumReaction.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/KineticReaction.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/Stoichiometrycheck.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/ReactionManager/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/Models/gammaNRTL.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/Models/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/OtherFunctions/colBoolCalc.mo
delete mode 100644 src/main/Simulator/Simulator/Files/OtherFunctions/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/OtherFunctions/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPNRTL.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPPR.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPUNIQUAC.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Dens.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/DensityRacket.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstant1V.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantII.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantIII.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstants.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/FindString.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HLiqId.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HV.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HVapId.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiqCpId.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiquidFugacityCoeffcient.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/PoyntingCF.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Psat.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SId.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SolublityParameter.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/TowUNIQUAC.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/VapCpId.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/index.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/GraysonStreed.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/NRTL.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/PengRobinson.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/RaoultsLaw.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIFAC.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIQUAC.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/TransportProperties/LiqK.mo
delete mode 100644 src/main/Simulator/Simulator/Files/TransportProperties/LiqVis.mo
delete mode 100644 src/main/Simulator/Simulator/Files/TransportProperties/VapK.mo
delete mode 100644 src/main/Simulator/Simulator/Files/TransportProperties/VapVisc.mo
delete mode 100644 src/main/Simulator/Simulator/Files/TransportProperties/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/TransportProperties/package.order
delete mode 100644 src/main/Simulator/Simulator/Files/package.mo
delete mode 100644 src/main/Simulator/Simulator/Files/package.order
delete mode 100644 src/main/Simulator/Simulator/GuessModels/GuessInput.mo
delete mode 100644 src/main/Simulator/Simulator/GuessModels/InitialGuess.mo
delete mode 100644 src/main/Simulator/Simulator/GuessModels/package.mo
delete mode 100644 src/main/Simulator/Simulator/GuessModels/package.order
delete mode 100644 src/main/Simulator/Simulator/Streams/EnergyStream.mo
delete mode 100644 src/main/Simulator/Simulator/Streams/MaterialStream.mo
delete mode 100644 src/main/Simulator/Simulator/Streams/package.mo
delete mode 100644 src/main/Simulator/Simulator/Streams/package.order
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsCol.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsTray.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.order
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/AdiabaticCompressor.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/AdiabaticExpander.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/CentrifugalPump.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/CompoundSeparator.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/ConversionReactor.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/Cooler.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Cond.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistCol.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistTray.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Reb.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.order
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/EquilibriumReactor.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/Flash.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/HeatExchanger.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/Heater.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/Mixer.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/PFR/Integral.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/PFR/PFR.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/PFR/PerformancePFR.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/PFR/package.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/PFR/package.order
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/RecycleBlock.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/ShortcutColumn.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/Splitter.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/Valve.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/package.mo
delete mode 100644 src/main/Simulator/Simulator/UnitOperations/package.order
delete mode 100644 src/main/Simulator/Simulator/package.mo
delete mode 100644 src/main/Simulator/Simulator/package.order
delete mode 100644 src/main/python/DockWidgets/DistillationColumnStagewiseResults.py
delete mode 100644 src/main/python/DockWidgets/DockWidget.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetCompoundSeparator.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetCompressorExpander.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetDistillationColumn.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetFlash.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetMaterialStream.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetMixer.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetShortcutColumn.py
delete mode 100644 src/main/python/DockWidgets/DockWidgetSplitter.py
delete mode 100644 src/main/python/DockWidgets/__init__.py
delete mode 100644 src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidget.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-36.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
delete mode 100644 src/main/python/DockWidgets/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/OMChem/CompSep.py
delete mode 100644 src/main/python/OMChem/ConvReactor.py
delete mode 100644 src/main/python/OMChem/Cooler.py
delete mode 100644 src/main/python/OMChem/DistCol.py
delete mode 100644 src/main/python/OMChem/EngStm.py
delete mode 100644 src/main/python/OMChem/Flash.py
delete mode 100644 src/main/python/OMChem/Flowsheet.py
delete mode 100644 src/main/python/OMChem/Heater.py
delete mode 100644 src/main/python/OMChem/Mixer.py
delete mode 100644 src/main/python/OMChem/Pump.py
delete mode 100644 src/main/python/OMChem/ShortcutColumn.py
delete mode 100644 src/main/python/OMChem/Splitter.py
delete mode 100644 src/main/python/OMChem/Valve.py
delete mode 100644 src/main/python/OMChem/__init__.py
delete mode 100644 src/main/python/OMChem/__pycache__/EngStm.cpython-36.pyc
delete mode 100644 src/main/python/OMChem/__pycache__/EngStm.cpython-37.pyc
delete mode 100644 src/main/python/OMChem/__pycache__/Flowsheet.cpython-36.pyc
delete mode 100644 src/main/python/OMChem/__pycache__/Flowsheet.cpython-37.pyc
delete mode 100644 src/main/python/OMChem/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/OMChem/adiabatic_comp.py
delete mode 100644 src/main/python/OMChem/adiabatic_exp.py
delete mode 100644 src/main/python/OMChem/setup.py
delete mode 100644 src/main/python/mainApp.py
delete mode 100644 src/main/python/utils/Bin_Phase_env.py
delete mode 100644 src/main/python/utils/ComponentSelector.py
delete mode 100644 src/main/python/utils/Container.py
delete mode 100644 src/main/python/utils/Graphics.py
delete mode 100644 src/main/python/utils/Streams.py
delete mode 100644 src/main/python/utils/UnitOperations.py
delete mode 100644 src/main/python/utils/__init__.py
delete mode 100644 src/main/python/utils/__pycache__/Bin_Phase_env.cpython-37.pyc
delete mode 100644 src/main/python/utils/__pycache__/ComponentSelector.cpython-37.pyc
delete mode 100644 src/main/python/utils/__pycache__/Container.cpython-37.pyc
delete mode 100644 src/main/python/utils/__pycache__/Graphics.cpython-37.pyc
delete mode 100644 src/main/python/utils/__pycache__/Streams.cpython-37.pyc
delete mode 100644 src/main/python/utils/__pycache__/UnitOperations.cpython-37.pyc
delete mode 100644 src/main/python/utils/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/utils/thermopackage.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/__pycache__/mccabe.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/__pycache__/six.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING.LESSER
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pkginfo__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/__pkginfo__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/_ast.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/arguments.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/as_string.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/bases.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/builder.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/context.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/decorators.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/helpers.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/inference.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/manager.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/mixins.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/modutils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/node_classes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/nodes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/objects.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/protocols.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/raw_building.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/rebuilder.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/scoped_nodes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/test_utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/transforms.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/__pycache__/util.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/_ast.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/arguments.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/as_string.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/bases.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_argparse.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_attrs.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_builtin_inference.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_collections.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_crypt.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_curses.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dataclasses.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dateutil.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_fstrings.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_functools.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_gi.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_hashlib.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_http.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_io.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_mechanize.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_multiprocessing.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_namedtuple_enum.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_nose.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_fromnumeric.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_function_base.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_multiarray.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numeric.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numerictypes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_umath.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_ndarray.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_random_mtrand.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pkg_resources.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pytest.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_qt.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_random.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_re.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_six.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_ssl.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_subprocess.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_threading.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_typing.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_uuid.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_argparse.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_attrs.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_builtin_inference.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_collections.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_crypt.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_curses.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_dataclasses.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_dateutil.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_fstrings.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_functools.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_gi.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_hashlib.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_http.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_io.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_mechanize.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_multiprocessing.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_namedtuple_enum.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_nose.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_fromnumeric.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_function_base.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_multiarray.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numeric.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numerictypes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_umath.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_ndarray.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_random_mtrand.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_pkg_resources.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_pytest.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_qt.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_random.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_re.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_six.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_ssl.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_subprocess.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_threading.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_typing.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/brain/brain_uuid.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/builder.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/context.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/decorators.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/helpers.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/inference.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/dunder_lookup.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/objectmodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/spec.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/util.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/spec.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/util.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/dunder_lookup.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/interpreter/objectmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/manager.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/mixins.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/modutils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/node_classes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/nodes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/objects.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/protocols.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/raw_building.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/rebuilder.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/scoped_nodes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/test_utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/transforms.py
delete mode 100644 src/main/python/venv/Lib/site-packages/astroid/util.py
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama-0.4.3.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama-0.4.3.dist-info/LICENSE.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama-0.4.3.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama-0.4.3.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama-0.4.3.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama-0.4.3.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__pycache__/ansi.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__pycache__/ansitowin32.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__pycache__/initialise.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__pycache__/win32.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/__pycache__/winterm.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/ansi.py
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/ansitowin32.py
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/initialise.py
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/win32.py
delete mode 100644 src/main/python/venv/Lib/site-packages/colorama/winterm.py
delete mode 100644 src/main/python/venv/Lib/site-packages/easy-install.pth
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/LICENSE
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/entry_points.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/isort-4.3.21.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__main__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/__main__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/finders.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/hooks.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/isort.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/main.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/natural.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/pie_slice.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/pylama_isort.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/settings.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/finders.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/hooks.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/isort.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/main.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/natural.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/pie_slice.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/pylama_isort.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/settings.py
delete mode 100644 src/main/python/venv/Lib/site-packages/isort/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/AUTHORS.rst
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/LICENSE
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy-1.4.3.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__pycache__/_version.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__pycache__/simple.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__pycache__/slots.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/_version.py
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/cext.cp37-win_amd64.pyd
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/simple.py
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/slots.py
delete mode 100644 src/main/python/venv/Lib/site-packages/lazy_object_proxy/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/DESCRIPTION.rst
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/entry_points.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/metadata.json
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe-0.6.1.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/mccabe.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/__pycache__/__main__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/build_env.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/cache.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/configuration.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/download.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/index.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/locations.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/pep425tags.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/pyproject.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/resolve.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/wheel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/autocompletion.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/base_command.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/cmdoptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/main_parser.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/parser.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/status_codes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/check.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/completion.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/configuration.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/download.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/freeze.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/hash.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/help.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/install.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/list.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/search.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/show.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/uninstall.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/wheel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/candidate.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/format_control.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/index.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/link.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/check.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/freeze.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/prepare.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/constructors.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_file.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_install.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_set.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_tracker.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_uninstall.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/appdirs.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/deprecation.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/encoding.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/filesystem.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/glibc.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/hashes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/logging.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/misc.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/models.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/outdated.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/packaging.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/setuptools_build.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/temp_dir.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/typing.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/ui.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/bazaar.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/git.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/mercurial.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/subversion.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/appdirs.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/pyparsing.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/retrying.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/six.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/cache.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/controller.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__pycache__/core.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/big5freq.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/big5prober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/chardistribution.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/charsetprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/cp949prober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/enums.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/escprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/escsm.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euckrprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euctwprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/jisfreq.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/jpcntx.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/latin1prober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcssm.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sjisprober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/universaldetector.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/utf8prober.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/version.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/ansi.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/initialise.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/win32.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/winterm.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/resources.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/scripts.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/util.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/constants.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/html5parser.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/serializer.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/datrie.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/core.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/idnadata.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/intranges.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/package_data.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/linklockfile.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/mkdirlockfile.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/_version.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/fallback.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/__about__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/_compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/_structures.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/markers.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/requirements.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/specifiers.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/version.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/wrappers.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/bar.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/helpers.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/spinner.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/core.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/parser.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/test.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/writer.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/__version__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/_internal_utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/adapters.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/api.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/auth.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/certs.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/compat.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/cookies.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/hooks.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/models.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/packages.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/sessions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/status_codes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/structures.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/_collections.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/connection.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/fields.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/filepost.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/request.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/response.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__pycache__/six.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/connection.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/queue.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/request.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/response.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/retry.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/url.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/wait.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__pycache__/labels.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/COPYING
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/entry_points.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint-2.4.4.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__main__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pkginfo__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/__main__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/__pkginfo__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/config.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/constants.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/epylint.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/graph.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/interfaces.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/lint.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/__pycache__/testutils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/async.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/base.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/base_checker.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/classes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/design_analysis.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/format.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/imports.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/logging.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/misc.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/newstyle.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/python3.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/raw_metrics.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/refactoring.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/similar.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/spelling.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/stdlib.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/strings.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/typecheck.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/__pycache__/variables.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/async.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/base.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/base_checker.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/classes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/design_analysis.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/format.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/imports.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/logging.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/misc.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/newstyle.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/python3.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/raw_metrics.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/refactoring.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/similar.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/spelling.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/stdlib.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/strings.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/typecheck.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/checkers/variables.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/config.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/constants.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/epylint.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/_check_docs_utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/bad_builtin.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/broad_try_clause.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/check_docs.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/check_elif.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/comparetozero.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/docparams.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/docstyle.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/emptystring.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/mccabe.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/overlapping_exceptions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/__pycache__/redefined_variable_type.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/_check_docs_utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/bad_builtin.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/broad_try_clause.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/check_docs.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/check_elif.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/comparetozero.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/docparams.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/docstyle.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/emptystring.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/mccabe.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/overlapping_exceptions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/extensions/redefined_variable_type.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/graph.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/interfaces.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/lint.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__pycache__/message.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__pycache__/message_definition.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__pycache__/message_definition_store.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__pycache__/message_handler_mix_in.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/__pycache__/message_id_store.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/message.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/message_definition.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/message_definition_store.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/message_handler_mix_in.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/message/message_id_store.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/diadefslib.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/diagrams.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/inspector.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/main.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/vcgutils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/__pycache__/writer.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/diadefslib.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/diagrams.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/inspector.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/main.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/vcgutils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/pyreverse/writer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__pycache__/base_reporter.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__pycache__/collecting_reporter.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__pycache__/json_reporter.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__pycache__/reports_handler_mix_in.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/__pycache__/text.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/base_reporter.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/collecting_reporter.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/json_reporter.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/reports_handler_mix_in.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/text.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/ureports/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/ureports/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/ureports/__pycache__/nodes.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/ureports/__pycache__/text_writer.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/ureports/nodes.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/reporters/ureports/text_writer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/testutils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/__pycache__/ast_walker.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/__pycache__/file_state.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/__pycache__/utils.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/ast_walker.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/file_state.py
delete mode 100644 src/main/python/venv/Lib/site-packages/pylint/utils/utils.py
delete mode 100644 src/main/python/venv/Lib/site-packages/setuptools-40.8.0-py3.7.egg
delete mode 100644 src/main/python/venv/Lib/site-packages/setuptools.pth
delete mode 100644 src/main/python/venv/Lib/site-packages/six-1.14.0.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/six-1.14.0.dist-info/LICENSE
delete mode 100644 src/main/python/venv/Lib/site-packages/six-1.14.0.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/six-1.14.0.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/six-1.14.0.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/six-1.14.0.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/six.py
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast-1.4.1.dist-info/INSTALLER
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast-1.4.1.dist-info/LICENSE
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast-1.4.1.dist-info/METADATA
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast-1.4.1.dist-info/RECORD
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast-1.4.1.dist-info/WHEEL
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast-1.4.1.dist-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/__pycache__/ast27.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/__pycache__/ast3.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/__pycache__/conversions.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/_ast27.cp37-win_amd64.pyd
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/_ast3.cp37-win_amd64.pyd
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/ast27.py
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/ast3.py
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/conversions.py
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/tests/__pycache__/test_basics.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/typed_ast/tests/test_basics.py
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt-1.11.2-py3.7.egg-info/PKG-INFO
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt-1.11.2-py3.7.egg-info/SOURCES.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt-1.11.2-py3.7.egg-info/dependency_links.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt-1.11.2-py3.7.egg-info/installed-files.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt-1.11.2-py3.7.egg-info/top_level.txt
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/__init__.py
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/__pycache__/__init__.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/__pycache__/decorators.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/__pycache__/importer.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/__pycache__/wrappers.cpython-37.pyc
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/decorators.py
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/importer.py
delete mode 100644 src/main/python/venv/Lib/site-packages/wrapt/wrappers.py
delete mode 100644 src/main/python/venv/Scripts/Activate.ps1
delete mode 100644 src/main/python/venv/Scripts/activate
delete mode 100644 src/main/python/venv/Scripts/activate.bat
delete mode 100644 src/main/python/venv/Scripts/deactivate.bat
delete mode 100644 src/main/python/venv/Scripts/easy_install-3.7-script.py
delete mode 100644 src/main/python/venv/Scripts/easy_install-3.7.exe
delete mode 100644 src/main/python/venv/Scripts/easy_install-script.py
delete mode 100644 src/main/python/venv/Scripts/easy_install.exe
delete mode 100644 src/main/python/venv/Scripts/epylint.exe
delete mode 100644 src/main/python/venv/Scripts/isort.exe
delete mode 100644 src/main/python/venv/Scripts/pip-script.py
delete mode 100644 src/main/python/venv/Scripts/pip.exe
delete mode 100644 src/main/python/venv/Scripts/pip3-script.py
delete mode 100644 src/main/python/venv/Scripts/pip3.7-script.py
delete mode 100644 src/main/python/venv/Scripts/pip3.7.exe
delete mode 100644 src/main/python/venv/Scripts/pip3.exe
delete mode 100644 src/main/python/venv/Scripts/pylint.exe
delete mode 100644 src/main/python/venv/Scripts/pyreverse.exe
delete mode 100644 src/main/python/venv/Scripts/python.exe
delete mode 100644 src/main/python/venv/Scripts/python_d.exe
delete mode 100644 src/main/python/venv/Scripts/pythonw.exe
delete mode 100644 src/main/python/venv/Scripts/pythonw_d.exe
delete mode 100644 src/main/python/venv/Scripts/symilar.exe
delete mode 100644 src/main/python/venv/pyvenv.cfg
delete mode 100644 src/main/resources/base/icons/AdiabaticCompressor.png
delete mode 100644 src/main/resources/base/icons/AdiabaticExpander.png
delete mode 100644 src/main/resources/base/icons/CentrifugalPump.png
delete mode 100644 src/main/resources/base/icons/Column.png
delete mode 100644 src/main/resources/base/icons/CompoundSeparator.png
delete mode 100644 src/main/resources/base/icons/Cooler.png
delete mode 100644 src/main/resources/base/icons/DistillationColumn.png
delete mode 100644 src/main/resources/base/icons/Flash.png
delete mode 100644 src/main/resources/base/icons/Heater.png
delete mode 100644 src/main/resources/base/icons/MaterialStream.png
delete mode 100644 src/main/resources/base/icons/Mixer.png
delete mode 100644 src/main/resources/base/icons/ShortcutColumn.png
delete mode 100644 src/main/resources/base/icons/Splitter.png
delete mode 100644 src/main/resources/base/icons/Valve.png
delete mode 100644 src/main/resources/base/icons/bpe.png
delete mode 100644 src/main/resources/base/icons/compound.png
delete mode 100644 src/main/resources/base/icons/eq.png
delete mode 100644 src/main/resources/base/icons/help.png
delete mode 100644 src/main/resources/base/icons/icon_1.svg
delete mode 100644 src/main/resources/base/icons/images.png
delete mode 100644 src/main/resources/base/icons/logo.png
delete mode 100644 src/main/resources/base/icons/new.png
delete mode 100644 src/main/resources/base/icons/open.png
delete mode 100644 src/main/resources/base/icons/redo.png
delete mode 100644 src/main/resources/base/icons/save.png
delete mode 100644 src/main/resources/base/icons/simulating.png
delete mode 100644 src/main/resources/base/icons/sq.png
delete mode 100644 src/main/resources/base/icons/stop.png
delete mode 100644 src/main/resources/base/icons/undo.png
delete mode 100644 src/main/resources/base/icons/zoo.png
delete mode 100644 src/main/resources/base/icons/zoom_in.png
delete mode 100644 src/main/resources/base/icons/zoom_out.png
delete mode 100644 src/main/resources/base/icons/zoom_reset.png
delete mode 100644 src/main/ui/DockWidgets/DistillationColumnStagewiseResults.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidget.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetCompoundSeparator.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetCompressorExpander.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetDistillationColumn.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetFlash.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetMaterialStream.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetMixer.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetShortcutColumn.ui
delete mode 100644 src/main/ui/DockWidgets/DockWidgetSplitter.ui
delete mode 100644 src/main/ui/utils/Binary_Phase_Env.ui
delete mode 100644 src/main/ui/utils/ComponentSelector.ui
delete mode 100644 src/main/ui/utils/main.ui
(limited to 'src')
diff --git a/src/main/Simulator/BinaryEnvelopes.mo b/src/main/Simulator/BinaryEnvelopes.mo
deleted file mode 100644
index 590888d..0000000
--- a/src/main/Simulator/BinaryEnvelopes.mo
+++ /dev/null
@@ -1,23 +0,0 @@
-package BinaryEnvelopes
- model NRTL
- parameter Integer Nc;
- parameter Integer data_points;
- parameter Real BIP[Nc, Nc, 2] = Simulator.Files.ThermodynamicFunctions.BIPNRTL(Nc, comp.CAS);
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc];
- Simulator.BinaryPhaseEnvelope.BinaryPhaseEnvelopeNRTL.base points[data_points](each Nc = Nc, each comp = comp, each BIP = BIP);
- Real x[data_points, Nc], y[data_points, Nc], P[data_points], T[data_points];
- equation
- points[:].x = x;
- points[:].y = y;
- points[:].P = P;
- points[:].T = T;
- for i in 1:data_points loop
- x[i, 1] = 0 + (i - 1) * 1/(data_points-1);
- end for;
- end NRTL;
-
-
-
-
-
-end BinaryEnvelopes;
diff --git a/src/main/Simulator/Databases/Databases.py b/src/main/Simulator/Databases/Databases.py
deleted file mode 100644
index f6e6584..0000000
--- a/src/main/Simulator/Databases/Databases.py
+++ /dev/null
@@ -1,434 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-Created on Wed Dec 25 17:41:56 2019
-
-@author: Eshika Mahajan
-"""
-
-import xml.dom.minidom
-import os
-current = os.path.dirname(os.path.realpath(__file__))
-DOMTree = xml.dom.minidom.parse(current+"/chemsep1.xml")
-compounds = DOMTree.documentElement
-compound = compounds.getElementsByTagName("compound")
-
-class ChemsepDatabase():
-
- def __init__(self):
- self.comp_name_list=list()
- self.name = 'chemsep'
- for comp in compound:
- self.compName=comp.getElementsByTagName('CompoundID')[0].getAttribute('value')
- self.comp_name_list.append(self.compName+'(' + self.name + ')')
- self.comp_prop_list=list()
-
- def get_comp_name_list(self):
- return self.comp_name_list
-
- #attrib:
- #CAS fro CAS Number
- #CompoundID for Name
- #Smiles for Molecular Formula
- #MolecularWeight for Molecular Weight
-
-
-#GETTING 'ATTRIBUTE''S VALUE OF THE COMPOUND 'COMPS'
-#COMP IS AN ITERATING VALUE IN THE XML TAG COMPOUND
- def get_value(self,comps,attrib):
- self.comps=comps
- self.x=''
- for comp in compound:
- compName = comp.getElementsByTagName("CompoundID")[0].getAttribute("value")
- if compName==comps:
- try:
- self.x=comp.getElementsByTagName(attrib)[0].getAttribute("value")
- except IndexError:
- self.x = "-"
- return (self.x)
-
-#CREATING comp_prop_list LIST OF THE COMPOUND SELECTED
-
- def get_comp_prop(self,comps):
- #i=1
- self.comps = comps
- for comp in compound:
- compName = comp.getElementsByTagName("CompoundID")[0].getAttribute("value")
- if compName==self.comps:
- CompName = compName.replace(" ","")
- CompName = CompName.replace("-","")
- CompName = CompName.replace(",","")
- CompName = CompName.replace("1","One")
- CompName = CompName.replace("2","Two")
- CompName = CompName.replace("3","Three")
- CompName = CompName.replace("4","Four")
- CompName = CompName.replace("5","Five")
-
- CAS = comp.getElementsByTagName("CAS")[0].getAttribute("value")
- CriticalTemp = comp.getElementsByTagName("CriticalTemperature")[0].getAttribute("value")
- CriticalPres = comp.getElementsByTagName("CriticalPressure")[0].getAttribute("value")
- CriticalVol = comp.getElementsByTagName("CriticalVolume")[0].getAttribute("value")
- CriticalComp = comp.getElementsByTagName("CriticalCompressibility")[0].getAttribute("value")
-
- try:
- NormalBoilPoint = comp.getElementsByTagName("NormalBoilingPointTemperature")[0].getAttribute("value")
- except IndexError:
- NormalBoilPoint = "0"
- try:
- NormalMeltingPoint = comp.getElementsByTagName("NormalMeltingPointTemperature")[0].getAttribute("value")
- except IndexError:
- NormalMeltingPoint = "0"
- try:
- TripPntTemp = comp.getElementsByTagName("TriplePointTemperature")[0].getAttribute("value")
- except IndexError:
- TripPntTemp = "0"
- try:
- TripPntPres = comp.getElementsByTagName("TriplePointPressure")[0].getAttribute("value")
- except IndexError:
- TripPntPres = "0"
- MolWt = comp.getElementsByTagName("MolecularWeight")[0].getAttribute("value")
- try:
- LiqVolAtBoilPnt = comp.getElementsByTagName("LiquidVolumeAtNormalBoilingPoint")[0].getAttribute("value")
- except IndexError:
- LiqVolAtBoilPnt = "0"
- try:
- AcenFactor = comp.getElementsByTagName("AcentricityFactor")[0].getAttribute("value")
- except IndexError:
- AcenFactor = "0"
- try:
- SolParam = comp.getElementsByTagName("SolubilityParameter")[0].getAttribute("value")
- except IndexError:
- SolParam = "0"
- try:
- DipoleMoment = comp.getElementsByTagName("DipoleMoment")[0].getAttribute("value")
- except IndexError:
- DipoleMoment = "0"
- try:
- IGHF = comp.getElementsByTagName("HeatOfFormation")[0].getAttribute("value")
- except IndexError:
- IGHF = "0"
- try:
- GEF = comp.getElementsByTagName("GibbsEnergyOfFormation")[0].getAttribute("value")
- except IndexError:
- GEF = "0"
- try:
- AbsEntropy = comp.getElementsByTagName("AbsEntropy")[0].getAttribute("value")
- except IndexError:
- AbsEntropy = "0"
- try:
- HeatFusionMeltPnt = comp.getElementsByTagName("HeatOfFusionAtMeltingPoint")[0].getAttribute("value")
- except IndexError:
- HeatFusionMeltPnt = "0"
- try:
- HOC = comp.getElementsByTagName("HeatOfCombustion")[0].getAttribute("value")
- except IndexError:
- HOC = "0"
- try:
- UniquacR = comp.getElementsByTagName("UniquacR")[0].getAttribute("value")
- except IndexError:
- UniquacR = "0"
- try:
- UniquacQ = comp.getElementsByTagName("UniquacQ")[0].getAttribute("value")
- except IndexError:
- UniquacQ = "0"
- try:
- RacketParam = comp.getElementsByTagName("RacketParameter")[0].getAttribute("value")
- except IndexError:
- RacketParam = "0"
-
- try:
- LiqDen = comp.getElementsByTagName("LiquidDensity")[0]
- LiqDenEqn = LiqDen.getElementsByTagName("eqno")[0].getAttribute("value")
- A=LiqDen.getElementsByTagName("A")[0].getAttribute("value")
- B=LiqDen.getElementsByTagName("B")[0].getAttribute("value")
- C=LiqDen.getElementsByTagName("C")[0].getAttribute("value")
- D=LiqDen.getElementsByTagName("D")[0].getAttribute("value")
- try:
- E=LiqDen.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- E = "0"
- except IndexError:
- LiqDenEqn = "0"
- A = "0"
- B = "0"
- C = "0"
- D = "0"
- E = "0"
- try:
- VapPres = comp.getElementsByTagName("VaporPressure")[0]
- VapPresEqn = VapPres.getElementsByTagName("eqno")[0].getAttribute("value")
- VA=VapPres.getElementsByTagName("A")[0].getAttribute("value")
- VB=VapPres.getElementsByTagName("B")[0].getAttribute("value")
- VC=VapPres.getElementsByTagName("C")[0].getAttribute("value")
- try:
- VD=VapPres.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- VD = "0"
- try:
- VE=VapPres.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- VE = "0"
- except IndexError:
- VapPresEqn = "0"
- VA = "0"
- VB = "0"
- VC = "0"
- VD = "0"
- VE = "0"
- try:
- LiqCp = comp.getElementsByTagName("LiquidHeatCapacityCp")[0]
- LiqCpEqn = LiqCp.getElementsByTagName("eqno")[0].getAttribute("value")
- LCpA=LiqCp.getElementsByTagName("A")[0].getAttribute("value")
- LCpB=LiqCp.getElementsByTagName("B")[0].getAttribute("value")
- LCpC=LiqCp.getElementsByTagName("C")[0].getAttribute("value")
- try:
- LCpD=LiqCp.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- LCpD = "0"
- try:
- LCpE=LiqCp.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- LCpE = "0"
- except IndexError:
- LiqCpEqn = "0"
- LCpA = "0"
- LCpB = "0"
- LCpC = "0"
- LCpD = "0"
- LCpE = "0"
- try:
- HOV = comp.getElementsByTagName("HeatOfVaporization")[0]
- HOVEqn = HOV.getElementsByTagName("eqno")[0].getAttribute("value")
- HOVA=HOV.getElementsByTagName("A")[0].getAttribute("value")
- HOVB=HOV.getElementsByTagName("B")[0].getAttribute("value")
- HOVC=HOV.getElementsByTagName("C")[0].getAttribute("value")
- try:
- HOVD=HOV.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- HOVD = "0"
- try:
- HOVE=HOV.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- HOVE = "0"
- except IndexError:
- HOVEqn = "0"
- HOVA = "0"
- HOVB = "0"
- HOVC = "0"
- HOVD = "0"
- HOVE = "0"
- if (float(NormalBoilPoint) > 298.15 ):
- HA = float(HOVA)
- HB = float(HOVB)
- HC = float(HOVC)
- HD = float(HOVD)
- HE = float(HOVE)
- Tr = 298.15/float(CriticalTemp)
- SHOV = HA*(pow((1-Tr),(HB + HC*Tr + HD*pow(Tr,2) + HE*pow(Tr,3))))
- AbsEnthalpy = float(IGHF) - SHOV
- else:
- AbsEnthalpy = float(IGHF)
- SH = str(AbsEnthalpy)
- try:
- VapCp = comp.getElementsByTagName("IdealGasHeatCapacityCp")[0]
- VapCpEqn = VapCp.getElementsByTagName("eqno")[0].getAttribute("value")
- VCpA=VapCp.getElementsByTagName("A")[0].getAttribute("value")
- VCpB=VapCp.getElementsByTagName("B")[0].getAttribute("value")
- VCpC=VapCp.getElementsByTagName("C")[0].getAttribute("value")
- try:
- VCpD=VapCp.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- VCpD = "0"
- try:
- VCpE=VapCp.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- VCpE = "0"
- except IndexError:
- VapCpEqn = "0"
- VCpA = "0"
- VCpB = "0"
- VCpC = "0"
- VCpD = "0"
- VCpE = "0"
-
- try:
- LiqVis = comp.getElementsByTagName("LiquidViscosity")[0]
- LiqVisEqn = LiqVis.getElementsByTagName("eqno")[0].getAttribute("value")
- LiqVisA=LiqVis.getElementsByTagName("A")[0].getAttribute("value")
- LiqVisB=LiqVis.getElementsByTagName("B")[0].getAttribute("value")
- LiqVisC=LiqVis.getElementsByTagName("C")[0].getAttribute("value")
- try:
- LiqVisD=LiqVis.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- LiqVisD = "0"
- try:
- LiqVisE=LiqVis.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- LiqVisE = "0"
- except IndexError:
- LiqVisEqn = "0"
- LiqVisA = "0"
- LiqVisB = "0"
- LiqVisC = "0"
- LiqVisD = "0"
- LiqVisE = "0"
-
- try:
- VapVis = comp.getElementsByTagName("VaporViscosity")[0]
- VapVisEqn = VapVis.getElementsByTagName("eqno")[0].getAttribute("value")
- VapVisA = VapVis.getElementsByTagName("A")[0].getAttribute("value")
- VapVisB = VapVis.getElementsByTagName("B")[0].getAttribute("value")
- VapVisC = VapVis.getElementsByTagName("C")[0].getAttribute("value")
- try:
- VapVisD = VapVis.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- VapVisD = "0"
- try:
- VapVisE = VapVis.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- VapVisE = "0"
- except IndexError:
- VapVisEqn = "0"
- VapVisA = "0"
- VapVisB = "0"
- VapVisC = "0"
- VapVisD = "0"
- VapVisE = "0"
-
- try:
- LiqK = comp.getElementsByTagName("LiquidThermalConductivity")[0]
- LiqKEqn = LiqK.getElementsByTagName("eqno")[0].getAttribute("value")
- LiqKA = LiqK.getElementsByTagName("A")[0].getAttribute("value")
- LiqKB = LiqK.getElementsByTagName("B")[0].getAttribute("value")
- LiqKC = LiqK.getElementsByTagName("C")[0].getAttribute("value")
- try:
- LiqKD = LiqK.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- LiqKD = "0"
- try:
- LiqKE=LiqK.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- LiqKE = "0"
- except IndexError:
- iqKEqn = "0"
- LiqKA = "0"
- LiqKB = "0"
- LiqKC = "0"
- LiqKD = "0"
- LiqKE = "0"
-
- try:
- VapK = comp.getElementsByTagName("VaporThermalConductivity")[0]
- VapKEqn = VapK.getElementsByTagName("eqno")[0].getAttribute("value")
- VapKA=VapK.getElementsByTagName("A")[0].getAttribute("value")
- VapKB=VapK.getElementsByTagName("B")[0].getAttribute("value")
- VapKC=VapK.getElementsByTagName("C")[0].getAttribute("value")
- try:
- VapKD=VapK.getElementsByTagName("D")[0].getAttribute("value")
- except IndexError:
- VapKD = "0"
- try:
- VapKE=VapK.getElementsByTagName("E")[0].getAttribute("value")
- except IndexError:
- VapKE = "0"
- except IndexError:
- VapKEqn = "0"
- VapKA = "0"
- VapKB = "0"
- VapKC = "0"
- VapKD = "0"
- VapKE = "0"
-
- try:
- ChaoSeadAF = comp.getElementsByTagName("ChaoSeaderAcentricFactor")[0].getAttribute("value")
- except IndexError:
- ChaoSeadAF = 0
- try:
- ChaoSeadSP = comp.getElementsByTagName("ChaoSeaderSolubilityParameter")[0].getAttribute("value")
- except IndexError:
- ChaoSeadSP = 0
- try:
- ChaoSeadLV = comp.getElementsByTagName("ChaoSeaderLiquidVolume")[0].getAttribute("value")
- except IndexError:
- ChaoSeadLV = 0
-
- #f.write('Package database')
- self.comp_prop_list.append('model '+CompName)
- #f.write('\n')
- self.comp_prop_list.append(' extends Simulator.Files.ChemsepDatabase.GeneralProperties(')
- #f.write('\n')
- #self.comp_prop_list.append(' SN ' + '= ' + str(i) +', ')
- # f.write('\n')
- self.comp_prop_list.append('name ' + '= ' + '"'+ CompName + '", ')
- # f.write('\n')
- self.comp_prop_list.append('CAS = "' + str(CAS) + '", ')
- # f.write(format(' CAS = "{CAS}"'))
- self.comp_prop_list.append('Tc ' + '= ' + CriticalTemp + ', ')
- # f.write('\n')
- self.comp_prop_list.append('Pc ' + '= ' + CriticalPres + ', ')
- # f.write('\n')
- self.comp_prop_list.append('Vc ' + '= ' + CriticalVol + ', ')
- # f.write('\n')
- self.comp_prop_list.append('Cc ' + '= ' + CriticalComp + ', ')
- # f.write('\n')
- self.comp_prop_list.append('Tb ' + '= ' + NormalBoilPoint + ', ')
- # f.write('\n')
- self.comp_prop_list.append('Tm ' + '= ' + NormalMeltingPoint + ', ')
- # f.write('\n')
- self.comp_prop_list.append('TT ' + '= ' + TripPntTemp + ', ')
- # f.write('\n')
- self.comp_prop_list.append('TP ' + '= ' + TripPntPres + ', ')
- # f.write('\n')
- self.comp_prop_list.append('MW ' + '= ' + MolWt + ', ')
- # f.write('\n')
- self.comp_prop_list.append('LVB ' + '= ' + LiqVolAtBoilPnt + ', ')
- # f.write('\n')
- self.comp_prop_list.append('AF ' + '= ' + AcenFactor + ', ')
- # f.write('\n')
- self.comp_prop_list.append('SP ' + '= ' + SolParam + ', ')
- # f.write('\n')
- self.comp_prop_list.append('DM ' + '= ' + DipoleMoment + ', ')
- # f.write('\n')
- # f.write('SH ' + '= ' + SH + ', ')
- # f.write('\n')
- self.comp_prop_list.append('IGHF ' + '= ' + IGHF + ', ')
- # f.write('\n')
- self.comp_prop_list.append('GEF ' + '= ' + GEF + ', ')
- # f.write('\n')
- self.comp_prop_list.append('AS ' + '= ' + AbsEntropy + ', ')
- # f.write('\n')
- self.comp_prop_list.append('HFMP ' + '= ' + HeatFusionMeltPnt + ', ')
- # f.write('\n')
- self.comp_prop_list.append('HOC ' + '= ' + HOC + ', ')
- # f.write('\n')
- self.comp_prop_list.append('LiqDen = {'+LiqDenEqn+","+A+","+B+","+C+","+D+","+E+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('VP = {'+VapPresEqn+","+VA+","+VB+","+VC+","+VD+","+VE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('LiqCp = {'+LiqCpEqn+","+LCpA+","+LCpB+","+LCpC+","+LCpD+","+LCpE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('HOV = {'+HOVEqn+","+HOVA+","+HOVB+","+HOVC+","+HOVD+","+HOVE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('VapCp = {'+VapCpEqn+","+VCpA+","+VCpB+","+VCpC+","+VCpD+","+VCpE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('LiqVis = {'+LiqVisEqn+","+LiqVisA+","+LiqVisB+","+LiqVisC+","+LiqVisD+","+LiqVisE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('VapVis = {'+VapVisEqn+","+VapVisA+","+VapVisB+","+VapVisC+","+VapVisD+","+VapVisE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('LiqK = {'+LiqKEqn+","+LiqKA+","+LiqKB+","+LiqKC+","+LiqKD+","+LiqKE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('VapK = {'+VapKEqn+","+VapKA+","+VapKB+","+VapKC+","+VapKD+","+VapKE+'}, ')
- # f.write('\n')
- self.comp_prop_list.append('Racketparam = '+RacketParam +', ')
- # f.write('\n')
- self.comp_prop_list.append('UniquacR = '+ UniquacR + ', ')
- # f.write('\n')
- self.comp_prop_list.append('UniquacQ = '+ UniquacQ + ', ')
- # f.write('\n')
- self.comp_prop_list.append('ChaoSeadAF = ' + str(ChaoSeadAF) + ', ')
- self.comp_prop_list.append('ChaoSeadSP = ' + str(ChaoSeadSP) + ', ')
- self.comp_prop_list.append('ChaoSeadLV = ' + str(ChaoSeadLV) + ');\n')
- self.comp_prop_list.append('end '+CompName+';')
-
- #return self.comp_prop_list
- return self.comp_prop_list
-
\ No newline at end of file
diff --git a/src/main/Simulator/Databases/__pycache__/Databases.cpython-36.pyc b/src/main/Simulator/Databases/__pycache__/Databases.cpython-36.pyc
deleted file mode 100644
index 816bd50..0000000
Binary files a/src/main/Simulator/Databases/__pycache__/Databases.cpython-36.pyc and /dev/null differ
diff --git a/src/main/Simulator/Databases/__pycache__/Databases.cpython-37.pyc b/src/main/Simulator/Databases/__pycache__/Databases.cpython-37.pyc
deleted file mode 100644
index 861284c..0000000
Binary files a/src/main/Simulator/Databases/__pycache__/Databases.cpython-37.pyc and /dev/null differ
diff --git a/src/main/Simulator/Databases/chemsep1.xml b/src/main/Simulator/Databases/chemsep1.xml
deleted file mode 100644
index 547e246..0000000
--- a/src/main/Simulator/Databases/chemsep1.xml
+++ /dev/null
@@ -1,94686 +0,0 @@
-
-
-
-
-
-
-
-a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeNRTL.mo b/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeNRTL.mo
deleted file mode 100644
index 212e013..0000000
--- a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeNRTL.mo
+++ /dev/null
@@ -1,96 +0,0 @@
-within Simulator.BinaryPhaseEnvelope;
-
-package BinaryPhaseEnvelopeNRTL
- extends Modelica.Icons.ExamplesPackage;
- model NRTLmodel
- import Simulator.Files.ThermodynamicFunctions.*;
- gammaNRTLmodel Gamma(Nc = Nc, comp = comp, molFrac = x[:], T = T);
- Real density[Nc], BIPS[Nc, Nc, 2];
- equation
- gamma = Gamma.gamma;
- BIPS = Gamma.BIPS;
- for i in 1:Nc loop
- density[i] = Dens(comp[i].LiqDen, comp[i].Tc, T, P);
- end for;
- for i in 1:Nc loop
- K[i] = gamma[i] * Psat(comp[i].VP, T) / P;
- end for;
- end NRTLmodel;
-
- model gammaNRTLmodel
- parameter Integer Nc;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc];
- Real molFrac[Nc], T;
- Real gamma[Nc];
- Real tau[Nc, Nc], G[Nc, Nc], alpha[Nc, Nc], A[Nc, Nc], BIPS[Nc, Nc, 2];
- Real sum1[Nc], sum2[Nc];
- constant Real R = 1.98721;
- equation
- A = BIPS[:, :, 1];
- alpha = BIPS[:, :, 2];
- tau = A ./ (R * T);
- for i in 1:Nc loop
- for j in 1:Nc loop
- G[i, j] = exp(-alpha[i, j] * tau[i, j]);
- end for;
- end for;
- for i in 1:Nc loop
- sum1[i] = sum(molFrac[:] .* G[:, i]);
- sum2[i] = sum(molFrac[:] .* tau[:, i] .* G[:, i]);
- end for;
- for i in 1:Nc loop
- log(gamma[i]) = sum(molFrac[:] .* tau[:, i] .* G[:, i]) / sum(molFrac[:] .* G[:, i]) + sum(molFrac[:] .* G[i, :] ./ sum1[:] .* (tau[i, :] .- sum2[:] ./ sum1[:]));
- end for;
- end gammaNRTLmodel;
-
- model base
- import data = Simulator.Files.ChemsepDatabase;
- parameter Integer Nc;
- parameter Real BIP[Nc, Nc, 2];
- parameter data.GeneralProperties comp[Nc];
- extends NRTLmodel(BIPS = BIP);
- Real P, T(start = 300), gamma[Nc], K[Nc], x[Nc](each start = 0.5), y[Nc];
- equation
- y[:] = K[:] .* x[:];
- sum(x[:]) = 1;
- sum(y[:]) = 1;
- end base;
-
- model OnehexeneAcetoneTxy
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Onehexene ohex;
- parameter data.Acetone acet;
- parameter Integer Nc = 2;
- parameter Real BIP[Nc, Nc, 2] = Simulator.Files.ThermodynamicFunctions.BIPNRTL(Nc, comp.CAS);
- parameter data.GeneralProperties comp[Nc] = {ohex, acet};
- base points[41](each P = 1013250, each Nc = Nc, each comp = comp, each BIP = BIP);
- Real x[41, Nc], y[41, Nc], T[41];
- equation
- points[:].x = x;
- points[:].y = y;
- points[:].T = T;
- for i in 1:41 loop
- x[i, 1] = 0 + (i - 1) * 0.025;
- end for;
- end OnehexeneAcetoneTxy;
-
- model OnehexeneAcetonePxy
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Onehexene ohex;
- parameter data.Acetone acet;
- parameter Integer Nc = 2;
- parameter Real BIP[Nc, Nc, 2] = Simulator.Files.ThermodynamicFunctions.BIPNRTL(Nc, comp.CAS);
- parameter data.GeneralProperties comp[Nc] = {ohex, acet};
- base points[41](each T = 424, each Nc = Nc, each comp = comp, each BIP = BIP);
- Real x[41, Nc], y[41, Nc], P[41];
- equation
- points[:].x = x;
- points[:].y = y;
- points[:].P = P;
- for i in 1:41 loop
- x[i, 1] = 0 + (i - 1) * 0.025;
- end for;
- end OnehexeneAcetonePxy;
-end BinaryPhaseEnvelopeNRTL;
diff --git a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopePR.mo b/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopePR.mo
deleted file mode 100644
index be47c1c..0000000
--- a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopePR.mo
+++ /dev/null
@@ -1,170 +0,0 @@
-within Simulator.BinaryPhaseEnvelope;
-
-package BinaryPhaseEnvelopePR
- extends Modelica.Icons.ExamplesPackage;
- function CompresseblityFactor
- extends Modelica.Icons.Function;
- input Real b[Nc];
- input Real aij[Nc, Nc];
- input Real P;
- input Real T;
- input Integer Nc;
- input Real m[Nc];
- output Real am;
- output Real bm;
- output Real A;
- output Real B;
- output Real Z[3];
- protected
- Real R = 8.314;
- Real C[4];
- Real ZR[3, 2];
- algorithm
- am := sum({{m[i] * m[j] * aij[i, j] for i in 1:Nc} for j in 1:Nc});
- bm := sum(b .* m);
- A := am * P / (R * T) ^ 2;
- B := bm * P / (R * T);
- C[1] := 1;
- C[2] := B - 1;
- C[3] := A - 3 * B ^ 2 - 2 * B;
- C[4] := B ^ 3 + B ^ 2 - A * B;
- ZR := Modelica.Math.Vectors.Utilities.roots(C);
- Z := {ZR[i, 1] for i in 1:3};
- end CompresseblityFactor;
-
- model PR
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc];
- parameter Integer Nc;
- parameter Real R = 8.314;
- parameter Real kij[Nc, Nc] = Simulator.Files.ThermodynamicFunctions.BIPPR(Nc, comp.name);
- Real Tr[Nc];
- Real b[Nc];
- Real m[Nc];
- Real q[Nc];
- Real a[Nc];
- Real aij[Nc, Nc];
- Real amL, bmL;
- Real AL, BL, Z_L[3];
- Real ZL;
- Real sum_xa[Nc];
- Real liqfugcoeff[Nc];
- Real amV, bmV;
- Real AV, BV, Z_V[3];
- Real ZV;
- Real sum_ya[Nc];
- Real vapfugcoeff[Nc];
- Real P;
- Real T(start = 273);
- Real Psat[Nc];
- //Bubble and Dew Point Calculation
- Real Tr_bubl[Nc];
- Real a_bubl[Nc];
- Real aij_bubl[Nc, Nc];
- Real Psat_bubl[Nc];
- Real amL_bubl, bmL_bubl;
- Real AL_bubl, BL_bubl, Z_L_bubl[3];
- Real ZL_bubl;
- Real sum_xa_bubl[Nc];
- Real liqfugcoeff_bubl[Nc];
- Real gammaBubl[Nc];
- Real Tbubl(start = 273);
- equation
- for i in 1:Nc loop
- Psat_bubl[i] = Simulator.Files.ThermodynamicFunctions.Psat(comp[i].VP, Tbubl);
- Psat[i] = Simulator.Files.ThermodynamicFunctions.Psat(comp[i].VP, T);
- end for;
-//Bubble Point and Dew Point Calculation Routine
- Tr_bubl = Tbubl ./ comp.Tc;
- a_bubl = q .* (1 .+ m .* (1 .- sqrt(Tr_bubl))) .^ 2;
- aij_bubl = {{(1 - kij[i, j]) * sqrt(a_bubl[i] * a_bubl[j]) for i in 1:Nc} for j in 1:Nc};
- (amL_bubl, bmL_bubl, AL_bubl, BL_bubl, Z_L_bubl) = CompresseblityFactor(b, aij_bubl, P, Tbubl, Nc, x[:]);
- ZL_bubl = min({Z_L_bubl});
- sum_xa_bubl = {sum({x[j] * aij_bubl[i, j] for j in 1:Nc}) for i in 1:Nc};
- liqfugcoeff_bubl = exp(AL_bubl / (BL_bubl * sqrt(8)) * log((ZL_bubl + 2.4142135 * BL_bubl) / (ZL_bubl - 0.414213 * BL_bubl)) .* (b / bmL_bubl .- 2 * sum_xa_bubl / amL_bubl) .+ (ZL_bubl - 1) * (b / bmL_bubl) .- log(ZL_bubl - BL_bubl));
- liqfugcoeff_bubl[:] = gammaBubl[:] .* P ./ Psat_bubl[:];
- P = sum(gammaBubl[:] .* x[:] .* exp(comp[:].VP[2] + comp[:].VP[3] / Tbubl + comp[:].VP[4] * log(Tbubl) + comp[:].VP[5] .* Tbubl .^ comp[:].VP[6]) ./ liqfugcoeff_bubl[:]);
-//Calculation of Temperatures at different compositions
- Tr = T ./ comp.Tc;
- b = 0.0778 * R * comp.Tc ./ comp.Pc;
- m = 0.37464 .+ 1.54226 * comp.AF .- 0.26992 * comp.AF .^ 2;
- q = 0.45724 * R ^ 2 * comp.Tc .^ 2 ./ comp.Pc;
- a = q .* (1 .+ m .* (1 .- sqrt(Tr))) .^ 2;
- aij = {{(1 - kij[i, j]) * sqrt(a[i] * a[j]) for i in 1:Nc} for j in 1:Nc};
-//Liquid Phase Calculation Routine
- (amL, bmL, AL, BL, Z_L) = CompresseblityFactor(b, aij, P, T, Nc, x[:]);
- ZL = min({Z_L});
- sum_xa = {sum({x[j] * aij[i, j] for j in 1:Nc}) for i in 1:Nc};
- liqfugcoeff = exp(AL / (BL * sqrt(8)) * log((ZL + 2.4142135 * BL) / (ZL - 0.414213 * BL)) .* (b / bmL .- 2 * sum_xa / amL) .+ (ZL - 1) * (b / bmL) .- log(ZL - BL));
-//Vapour Phase Calculation Routine
- (amV, bmV, AV, BV, Z_V) = CompresseblityFactor(b, aij, P, T, Nc, y[:]);
- ZV = max({Z_V});
- sum_ya = {sum({y[j] * aij[i, j] for j in 1:Nc}) for i in 1:Nc};
- vapfugcoeff = exp(AV / (BV * sqrt(8)) * log((ZV + 2.4142135 * BV) / (ZV - 0.414213 * BV)) .* (b / bmV .- 2 * sum_ya / amV) .+ (ZV - 1) * (b / bmV) .- log(ZV - BV));
- end PR;
-
- model PhaseEquilibria
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethane eth;
- parameter data.Propane prop;
- extends PR(Nc = 2, comp = {eth, prop});
- Real P, T(start = 273), K[Nc], x[Nc](each start = 0.5), y[Nc], Tbubl(start = 273);
- equation
- K[:] = liqfugcoeff[:] ./ vapfugcoeff[:];
- y[:] = K[:] .* x[:];
- sum(x[:]) = 1;
- sum(y[:]) = 1;
- end PhaseEquilibria;
-
- model PengRobinsonPxy
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethane eth;
- parameter data.Propane prop;
- parameter Integer Nc = 2;
- parameter Integer N = 2;
- parameter data.GeneralProperties comp[Nc] = {eth, prop};
- PhaseEquilibria points[N](each T = 210, each Nc = Nc, each comp = comp, each T(start = 273), each Tbubl(start = 273), each x(each start = 0.5), each y(each start = 0.5));
- Real x1[N], y1[N], x2[N], y2[N], P[N](each start = 101325), Tbubl[N], Temp[N];
- equation
-//Generation of Points to compute Bubble Temperature
- points[:].x[1] = x1[:];
- points[:].y[1] = y1[:];
- points[:].x[2] = x2[:];
- points[:].y[2] = y2[:];
- points[:].P = P;
- points[:].Tbubl = Tbubl;
- Temp[1] = Tbubl[1];
- Temp[N] = Tbubl[N];
- for i in 2:N - 1 loop
- Temp[i] = points[i].T;
- end for;
- for i in 1:N loop
- x1[i] = 0.5 + (i - 1) * 0.025;
- end for;
- end PengRobinsonPxy;
-
- model PengRobinsonTxy
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethane eth;
- parameter data.Propane prop;
- parameter Integer Nc = 2;
- parameter Integer N = 10;
- parameter data.GeneralProperties comp[Nc] = {eth, prop};
- PhaseEquilibria points[N](each P = 101325, each Nc = Nc, each comp = comp, each T(start = 273), each Tbubl(start = 273), each x(each start = 0.5), each y(each start = 0.5));
- Real x[N, Nc], y[N, Nc], T[N], Tbubl[N], T_PR[N];
- equation
- points[:].x = x;
- points[:].y = y;
- points[:].T = T;
- points[:].Tbubl = Tbubl;
- T_PR[1] = Tbubl[1];
- T_PR[N] = Tbubl[N];
- for i in 2:N - 1 loop
- T_PR[i] = T[i];
- end for;
- for i in 1:N loop
- x[i, 1] = 0 + (i - 1) * 0.025;
- end for;
- end PengRobinsonTxy;
-end BinaryPhaseEnvelopePR;
diff --git a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIFAC.mo b/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIFAC.mo
deleted file mode 100644
index ba6ab71..0000000
--- a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIFAC.mo
+++ /dev/null
@@ -1,267 +0,0 @@
-within Simulator.BinaryPhaseEnvelope;
-
-package BinaryPhaseEnvelopeUNIFAC
- extends Modelica.Icons.ExamplesPackage;
- model PxyUNIFAC
- extends Modelica.Icons.Example;
- //Libraries
- import Simulator.*;
- //Extension of Chemsep Database
- Simulator.Files.ChemsepDatabase data;
- //Parameter Section
- //Selection of compounds
- parameter data.Methylethylketone meth;
- parameter data.Aceticacid eth;
- //Instantiation of selected compounds
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc] = {meth, eth};
- parameter Integer Nc = 2 "Number of components";
- parameter Integer Choice = 1 "System choice of Txy or Pxy";
- parameter Real T(unit = "K") = 375 "System Temperature";
- parameter Integer N = 40 "Number of points of data generation";
- parameter Integer m = 4 "Interaction parameter index";
- parameter Integer k = 4 "Number of Functional groups present in the compound";
- parameter Real a[m, k] = {{0, 0, 476.4, 663.5}, {0, 0, 476.4, 663.5}, {26.76, 26.76, 0, 669.4}, {315.3, 315.3, -297.8, 0}} "Binary intraction parameter";
- parameter Real V[Nc, k] = {{1, 1, 1, 0}, {1, 0, 0, 1}} "Number of group of kind k in molecule ";
- parameter Real R[Nc, k] = {{0.9011, 0.6744, 1.6724, 0.0}, {0.9011, 0, 0, 1.3013}} "Group volume of group k ";
- parameter Real Q[Nc, k] = {{0.848, 0.540, 1.448, 0}, {0.848, 0, 0, 1.224}} "Group surface area of group k";
- //Gas constant
- parameter Real R_gas = 1.98721;
- //Variable Section
- Real delta "Increment step";
- Real e[k, Nc];
- Real B[Nc, k];
- Real q[Nc] "Van der waal molecular surface area";
- Real r[Nc] "Van der waal molecular volume";
- Real tow[m, k] "Empherical Parameter (tow) at the system temperature";
- //Mole Fractions (x-axis) of the P-x-y plot
- Real z1[N + 1], z2[N + 1];
- //Intermediate parameters used to calculate the Combinatorial contribution"
- Real J1_bubl[N + 1], J2_bubl[N + 1];
- Real L1_bubl[N + 1], L2_bubl[N + 1];
- Real gammac1_bubl[N + 1], gammac2_bubl[N + 1];
- //Intermediate parameters used to calculate the Residual contribution"
- Real teta1_bubl[N + 1, k];
- Real S1_bubl[N + 1, k];
- Real sum1_bubl[N + 1, k], sum2_bubl[N + 1, k];
- Real sum_bubl[N + 1], summ_bubl[N + 1];
- Real gammar1_bubl[N + 1], gammar2_bubl[N + 1];
- //Activity coefficients at different Pressures
- Real gammaBubl1[N + 1](each start = 0.5), gammaBubl2[N + 1];
- //Bubble Pressure
- Real P[N + 1](each unit = "Pa", each start = 117018);
- //Distribution coefficient
- Real K1[N + 1];
- //Vapour Phase Mole Fraction
- Real y1[N + 1](each start = 0.5), y2[N + 1](each start = 0.5);
- //Vapour Pressure at the chosen temperature
- Real Psat[Nc](each unit = "Pa") "Vapour Pressure";
- //===========================================================================================
- //Equation Section
- equation
-//Calculation of Vapour Pressure at the input temperature
-//Thermodynamic Function Psat is instantiated from Simulator Package
- for i in 1:Nc loop
- Psat[i] = Simulator.Files.ThermodynamicFunctions.Psat(comp[i].VP, T);
- end for;
-//Calculation of increment step for the total number of points
- delta = 1 / N;
-//Calculation of Unifac parameter R and Q for the induvidual compounds
- for i in 1:Nc loop
- for j in 1:k loop
- B[i, j] = sum(e[:, i] .* tow[:, j]);
- end for;
- end for;
- for i in 1:Nc loop
- r[i] = sum(V[i, :] .* R[i, :]);
- q[i] = sum(V[i, :] .* Q[i, :]);
- e[:, i] = V[i, :] .* Q[i, :] / q[i];
- end for;
-//Calculation of Empherical parameter (tow) at the system temperature
- for i in 1:m loop
- tow[i, :] = exp((-a[i, :]) / T);
- end for;
-//Generation of mole fraction from 0 to 1 in steps of "delta"
- z1[1] = 0;
- for i in 2:N + 1 loop
- z1[i] = z1[i - 1] + delta;
- end for;
- for i in 1:N + 1 loop
- z2[i] = 1 - z1[i];
- end for;
-//Calculation of combinatorial contribution parameter used to compute activity coefficient at the corresponding compositions
- for i in 1:N + 1 loop
- J1_bubl[i] = r[1] / (r[1] * z1[i] + r[2] * z2[i]);
- J2_bubl[i] = r[2] / (r[1] * z1[i] + r[2] * z2[i]);
- L1_bubl[i] = q[1] / (q[1] * z1[i] + q[2] * z2[i]);
- L2_bubl[i] = q[2] / (q[1] * z1[i] + q[2] * z2[i]);
- gammac1_bubl[i] = exp(1 - J1_bubl[i] + log(J1_bubl[i]) + (-5 * q[1] * (1 - J1_bubl[i] / L1_bubl[i] + log(J1_bubl[i] / L1_bubl[i]))));
- gammac2_bubl[i] = exp(1 - J2_bubl[i] + log(J2_bubl[i]) + (-5 * q[2] * (1 - J2_bubl[i] / L2_bubl[i] + log(J2_bubl[i] / L2_bubl[i]))));
- end for;
-//Calculation of residual contribution parameter used to compute activity coefficient at the corresponding compositions
- for i in 1:N + 1 loop
- teta1_bubl[i, :] = (z1[i] * q[1] .* e[:, 1] + z2[i] * q[2] .* e[:, 2]) / (z1[i] * q[1] + z2[i] * q[2]);
- end for;
- for i in 1:N + 1 loop
- for j in 1:k loop
- S1_bubl[i, j] = sum(teta1_bubl[i, :] .* tow[:, j]);
- sum1_bubl[i, j] = teta1_bubl[i, j] * B[1, j] / S1_bubl[i, j] - e[j, 1] * log(B[1, j] / S1_bubl[i, j]);
- sum2_bubl[i, j] = teta1_bubl[i, j] * B[2, j] / S1_bubl[i, j] - e[j, 2] * log(B[2, j] / S1_bubl[i, j]);
- end for;
- end for;
- for i in 1:N + 1 loop
- gammar1_bubl[i] = exp(q[1] * (1 - sum_bubl[i]));
- gammar2_bubl[i] = exp(q[2] * (1 - summ_bubl[i]));
- sum_bubl[i] = sum(sum1_bubl[i, :]);
- summ_bubl[i] = sum(sum2_bubl[i, :]);
- gammaBubl1[i] = exp(log(gammac1_bubl[i]) + log(gammar1_bubl[i]));
- gammaBubl2[i] = exp(log(gammac2_bubl[i]) + log(gammar2_bubl[i]));
- end for;
-//Bubble point calculation
- for i in 1:N + 1 loop
- P[i] = gammaBubl1[i] * z1[i] * exp(comp[1].VP[2] + comp[1].VP[3] / T + comp[1].VP[4] * log(T) + comp[1].VP[5] * T ^ comp[1].VP[6]) + gammaBubl2[i] * z2[i] * exp(comp[2].VP[2] + comp[2].VP[3] / T + comp[2].VP[4] * log(T) + comp[2].VP[5] * T ^ comp[2].VP[6]);
- end for;
-//Phase Equilibria
- for i in 1:N + 1 loop
- K1[i] = gammaBubl1[i] * (Psat[1] / P[i]);
- y1[i] = K1[i] * z1[i];
- y2[i] = 1 - y1[i];
- end for;
- end PxyUNIFAC;
-
- //====================================================================================================
-
- model TxyUNIFAC
- extends Modelica.Icons.Example;
- //Libraries
- import Simulator.*;
- //Extension of Chemsep Database
- Simulator.Files.ChemsepDatabase data;
- //Parameter Section
- //Selection of compounds
- parameter data.Methylethylketone meth;
- parameter data.Aceticacid eth;
- //Instantiation of selected compounds
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc] = {meth, eth};
- parameter Real Z = 10 "Compressiblity Factor";
- parameter Integer Choice = 2 "System choice of Txy or Pxy";
- parameter Integer Nc = 2 "Number of components";
- parameter Real P(unit = "Pa") = 101325 "System Pressure";
- parameter Integer N = 40 "Number of points of data generation";
- parameter Integer m = 4 "Interaction parameter index", k = 4 "Number of Functional groups present in the compound";
- parameter Real a[m, k] = {{0, 0, 476.4, 663.5}, {0, 0, 476.4, 663.5}, {26.76, 26.76, 0, 669.4}, {315.3, 315.3, -297.8, 0}} "Binary intraction parameter";
- parameter Real V[Nc, k] = {{1, 1, 1, 0}, {1, 0, 0, 1}} "number of group of kind k in molecule ";
- parameter Real R[Nc, k] = {{0.9011, 0.6744, 1.6724, 0.0}, {0.9011, 0, 0, 1.3013}} "group volume of group k ";
- parameter Real Q[Nc, k] = {{0.848, 0.540, 1.448, 0}, {0.848, 0, 0, 1.224}} "group surface area of group k";
- //Gas constant
- parameter Real R_gas = 1.98721;
- //Variable Section
- Real delta "Increment step";
- Real e[k, Nc];
- Real B[N + 1, Nc, k];
- Real q[Nc] "van der walls molecular surface area";
- Real r[Nc] "van der walls molecular volume";
- //Empherical parameter (tow) at different temperatures
- Real tow[N + 1, m, k];
- //Intermediate parameters used to calculate the Combinatorial contribution"
- Real J1_bubl[N + 1], J2_bubl[N + 1];
- Real L1_bubl[N + 1], L2_bubl[N + 1];
- Real gammac1_bubl[N + 1], gammac2_bubl[N + 1];
- //Intermediate parameters used to calculate the Residual contribution"
- Real teta1_bubl[N + 1, k];
- Real S1_bubl[N + 1, k];
- Real sum1_bubl[N + 1, k], sum2_bubl[N + 1, k];
- Real sum_bubl[N + 1], summ_bubl[N + 1];
- Real gammar1_bubl[N + 1], gammar2_bubl[N + 1];
- //Activity coefficients at different Temperatures
- Real gammaBubl1[N + 1](each start = 0.5), gammaBubl2[N + 1];
- //Mole Fractions (x-axis) of the T-x-y plot
- Real z1[N + 1], z2[N + 1];
- //Bubble Temperature
- Real T[N + 1](unit = "K", each start = 300);
- //Distribution coefficient
- Real K1[N + 1];
- //Vapour Phase Mole Fraction
- Real y1[N + 1](each start = 0.5), y2[N + 1](each start = 0.5);
- //Vapour Pressure at the chosen temperature range
- Real Psat[N + 1, 1];
- //======================================================================================================
- equation
-//Calculation of increment step for the total number of points
- delta = 1 / N;
-//Calculation of vapour pressures at different temperatures
- for i in 1:N + 1 loop
- Psat[i, 1] = Simulator.Files.ThermodynamicFunctions.Psat(comp[1].VP, T[i]);
- end for;
-//Generation of mole fraction from 0 to 1 in steps of "delta"
- z1[1] = 0;
- for i in 2:N + 1 loop
- z1[i] = z1[i - 1] + delta;
- end for;
- for i in 1:N + 1 loop
- z2[i] = 1 - z1[i];
- end for;
-//Calculation of r and q for compounds
- for l in 1:N + 1 loop
- for i in 1:Nc loop
- for j in 1:k loop
- B[l, i, j] = sum(e[:, i] .* tow[l, :, j]);
- end for;
- end for;
- end for;
- for i in 1:Nc loop
- r[i] = sum(V[i, :] .* R[i, :]);
- q[i] = sum(V[i, :] .* Q[i, :]);
- e[:, i] = V[i, :] .* Q[i, :] / q[i];
- end for;
-//Empherical parameter (towk) is calculated at different temperatures in the T-x-y mode of operation
- for j in 1:N + 1 loop
- for i in 1:m loop
- tow[j, i, :] = exp((-a[i, :]) / T[j]);
- end for;
- end for;
-//Calculation of combinatorial contribution parameter used to compute activity coefficient at the corresponding compositions
- for i in 1:N + 1 loop
- J1_bubl[i] = r[1] / (r[1] * z1[i] + r[2] * z2[i]);
- J2_bubl[i] = r[2] / (r[1] * z1[i] + r[2] * z2[i]);
- L1_bubl[i] = q[1] / (q[1] * z1[i] + q[2] * z2[i]);
- L2_bubl[i] = q[2] / (q[1] * z1[i] + q[2] * z2[i]);
- gammac1_bubl[i] = exp(1 - J1_bubl[i] + log(J1_bubl[i]) + (-5 * q[1] * (1 - J1_bubl[i] / L1_bubl[i] + log(J1_bubl[i] / L1_bubl[i]))));
- gammac2_bubl[i] = exp(1 - J2_bubl[i] + log(J2_bubl[i]) + (-5 * q[2] * (1 - J2_bubl[i] / L2_bubl[i] + log(J2_bubl[i] / L2_bubl[i]))));
- end for;
-//Calculation of residual contribution parameter used to compute activity coefficient at the corresponding compositions
- for i in 1:N + 1 loop
- teta1_bubl[i, :] = (z1[i] * q[1] .* e[:, 1] + z2[i] * q[2] .* e[:, 2]) / (z1[i] * q[1] + z2[i] * q[2]);
- end for;
- for i in 1:N + 1 loop
- for j in 1:k loop
- S1_bubl[i, j] = sum(teta1_bubl[i, :] .* tow[i, :, j]);
- end for;
- end for;
- for i in 1:N + 1 loop
- for j in 1:k loop
- sum1_bubl[i, j] = teta1_bubl[i, j] * B[i, 1, j] / S1_bubl[i, j] - e[j, 1] * log(B[i, 1, j] / S1_bubl[i, j]);
- sum2_bubl[i, j] = teta1_bubl[i, j] * B[i, 2, j] / S1_bubl[i, j] - e[j, 2] * log(B[i, 2, j] / S1_bubl[i, j]);
- end for;
- end for;
- for i in 1:N + 1 loop
- gammar1_bubl[i] = exp(q[1] * (1 - sum_bubl[i]));
- gammar2_bubl[i] = exp(q[2] * (1 - summ_bubl[i]));
- sum_bubl[i] = sum(sum1_bubl[i, :]);
- summ_bubl[i] = sum(sum2_bubl[i, :]);
- gammaBubl1[i] = exp(log(gammac1_bubl[i]) + log(gammar1_bubl[i]));
- gammaBubl2[i] = exp(log(gammac2_bubl[i]) + log(gammar2_bubl[i]));
- end for;
-//Bubble point calculation
- for i in 1:N + 1 loop
- P = gammaBubl1[i] * z1[i] * exp(comp[1].VP[2] + comp[1].VP[3] / T[i] + comp[1].VP[4] * log(T[i]) + comp[1].VP[5] * T[i] ^ comp[1].VP[6]) + gammaBubl2[i] * z2[i] * exp(comp[2].VP[2] + comp[2].VP[3] / T[i] + comp[2].VP[4] * log(T[i]) + comp[2].VP[5] * T[i] ^ comp[2].VP[6]);
- end for;
-//Phase Equlibria
- for i in 1:N + 1 loop
- K1[i] = gammaBubl1[i] * (Psat[i, 1] / P);
- y1[i] = K1[i] * z1[i];
- y2[i] = 1 - y1[i];
- end for;
- end TxyUNIFAC;
-
- //================================================================================================================
-end BinaryPhaseEnvelopeUNIFAC;
diff --git a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIQUAC.mo b/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIQUAC.mo
deleted file mode 100644
index 1679004..0000000
--- a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/BinaryPhaseEnvelopeUNIQUAC.mo
+++ /dev/null
@@ -1,258 +0,0 @@
-within Simulator.BinaryPhaseEnvelope;
-
-package BinaryPhaseEnvelopeUNIQUAC
- extends Modelica.Icons.ExamplesPackage;
- //==============================================================================================================
-
- function GammaUNIQUAC
- extends Modelica.Icons.Function;
- input Integer Choice "Enter if choice of VLE curve is Pxy or Txy";
- //Note : Choice = 1 = P-x-y-Envelope
- // Choice = 2 = T-x-y-Envelope
- input Integer N "Number of data points", Nc "Total number of components";
- input Real z1[N + 1], z2[N + 1];
- input Real R[Nc], Q[Nc];
- input Real tow[Nc, Nc];
- input Real towk[N + 1, Nc, Nc];
- parameter Real Z = 10 "Compresseblity Factor";
- parameter Real R_gas = 1.98721 "Gas Constant";
- //Activity coefficients
- output Real gammaBubl1[N + 1], gammaBubl2[N + 1];
- protected
- //Intermediate parameters used to calculate the Combinatorial and Residual contribution"
- Real r_bubl[N + 1], q_bubl[N + 1];
- Real teta1_bubl[N + 1], teta2_bubl[N + 1];
- Real S1_bubl[N + 1], S2_bubl[N + 1];
- Real sum1_bubl[N + 1], sum2_bubl[N + 1];
- //Residual contribution term of Activity coefficient
- Real gammar1_bubl[N + 1], gammar2_bubl[N + 1];
- //Cobinatorial contribution term of Activity coefficient
- Real gammac1_bubl[N + 1], gammac2_bubl[N + 1];
- //Empherical Parameter at different temperatures
- Real toww[N, Nc, Nc];
- //=========================================================================================
- algorithm
- for i in 1:N + 1 loop
- r_bubl[i] := z1[i] * R[1] + z2[i] * R[2];
- q_bubl[i] := z1[i] * Q[1] + z2[i] * Q[2];
- end for;
- if Choice == 1 then
- for i in 1:N + 1 loop
- teta1_bubl[i] := z1[i] * Q[1] * (1 / q_bubl[i]);
- teta2_bubl[i] := z2[i] * Q[2] * (1 / q_bubl[i]);
- S1_bubl[i] := teta1_bubl[i] * tow[1, 1] + teta2_bubl[i] * tow[1, 2];
- S2_bubl[i] := teta1_bubl[i] * tow[2, 1] + teta2_bubl[i] * tow[2, 2];
- sum1_bubl[i] := teta1_bubl[i] * (tow[1, 1] / S1_bubl[i]) + teta2_bubl[i] * (tow[1, 2] / S2_bubl[i]);
- sum2_bubl[i] := teta1_bubl[i] * (tow[2, 1] / S1_bubl[i]) + teta2_bubl[i] * (tow[2, 2] / S2_bubl[i]);
- gammar1_bubl[i] := exp(Q[1] * (1 - log(S1_bubl[i]) - sum1_bubl[i]));
- gammar2_bubl[i] := exp(Q[2] * (1 - log(S2_bubl[i]) - sum2_bubl[i]));
- gammac1_bubl[i] := exp(1 - R[1] / r_bubl[i] + log(R[1] / r_bubl[i]) + (-Z / 2 * Q[1] * (1 - R[1] / r_bubl[i] / (Q[1] / q_bubl[i]) + log(R[1] / r_bubl[i] / (Q[1] / q_bubl[i])))));
- gammac2_bubl[i] := exp(1 - R[2] / r_bubl[i] + log(R[2] / r_bubl[i]) + (-Z / 2 * Q[2] * (1 - R[2] / r_bubl[i] / (Q[2] / q_bubl[i]) + log(R[2] / r_bubl[i] / (Q[2] / q_bubl[i])))));
- gammaBubl1[i] := exp(log(gammac1_bubl[i]) + log(gammar1_bubl[i]));
- gammaBubl2[i] := exp(log(gammac2_bubl[i]) + log(gammar2_bubl[i]));
- end for;
- else
- for i in 1:N + 1 loop
- teta1_bubl[i] := z1[i] * Q[1] * (1 / q_bubl[i]);
- teta2_bubl[i] := z2[i] * Q[2] * (1 / q_bubl[i]);
- S1_bubl[i] := teta1_bubl[i] * towk[i, 1, 1] + teta2_bubl[i] * towk[i, 1, 2];
- S2_bubl[i] := teta1_bubl[i] * towk[i, 2, 1] + teta2_bubl[i] * towk[i, 2, 2];
- sum1_bubl[i] := teta1_bubl[i] * (towk[i, 1, 1] / S1_bubl[i]) + teta2_bubl[i] * (towk[i, 1, 2] / S2_bubl[i]);
- sum2_bubl[i] := teta1_bubl[i] * (towk[i, 2, 1] / S1_bubl[i]) + teta2_bubl[i] * (towk[i, 2, 2] / S2_bubl[i]);
- gammar1_bubl[i] := exp(Q[1] * (1 - log(S1_bubl[i]) - sum1_bubl[i]));
- gammar2_bubl[i] := exp(Q[2] * (1 - log(S2_bubl[i]) - sum2_bubl[i]));
- gammac1_bubl[i] := exp(1 - R[1] / r_bubl[i] + log(R[1] / r_bubl[i]) + (-Z / 2 * Q[1] * (1 - R[1] / r_bubl[i] / (Q[1] / q_bubl[i]) + log(R[1] / r_bubl[i] / (Q[1] / q_bubl[i])))));
- gammac2_bubl[i] := exp(1 - R[2] / r_bubl[i] + log(R[2] / r_bubl[i]) + (-Z / 2 * Q[2] * (1 - R[2] / r_bubl[i] / (Q[2] / q_bubl[i]) + log(R[2] / r_bubl[i] / (Q[2] / q_bubl[i])))));
- gammaBubl1[i] := exp(log(gammac1_bubl[i]) + log(gammar1_bubl[i]));
- gammaBubl2[i] := exp(log(gammac2_bubl[i]) + log(gammar2_bubl[i]));
- end for;
- end if;
-//Calculation of Activity coefficients at different pressures( P-x-y calculation routine)
-//Calculation of residual contribution term of activity coefficient
-//Calculation of combinatorial term of activity coefficient
-//Calculation of activity coefficients at different temperatures (T-x-y calculation routine)
-//Calculation of residual contribution term of activity coefficient
-//Calculation of combinatorial term of activity coefficient
- end GammaUNIQUAC;
-
- //================================================================================================
- //Binary Phase Envelope
- //Envelope Type : P-x-y
- //Thermodynamic-Model : UNIQUAC
- //Nature of System : Azeotropic System
- //========================================================================================
-
- model PxyUNIQUAC
- extends Modelica.Icons.Example;
- //Libraries
- import Simulator.*;
- //Extension of Chemsep Database
- Simulator.Files.ChemsepDatabase data;
- //Parameter Section
- //Selection of compounds
- parameter data.Water wat;
- parameter data.Ethanol eth;
- //Instantiation of selected compounds
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc] = {wat, eth};
- parameter Integer Nc = 2 "Number of components";
- parameter Integer Choice = 1 "System choice of Txy or Pxy";
- parameter Real T(unit = "K") = 315 "System Temperature";
- //Empherical parameter (towk) at different temperatures
- //Note : The below value will be active only in the T-x-y phase envelope routine
- Real towk[N + 1, Nc, Nc];
- parameter Integer N = 40 "Number of points of data generation";
- Real delta "Increment step";
- parameter Real a[Nc, Nc] = Simulator.Files.ThermodynamicFunctions.BIPUNIQUAC(Nc, comp.name) "Interaction Parameters";
- //UNIQUAC parameters instantiated from Chemsep Database
- parameter Real R[Nc] = comp.UniquacR;
- parameter Real Q[Nc] = comp.UniquacQ;
- //Variable Section
- //Empherical Parameter (tow) at the system temperature
- Real tow[Nc, Nc];
- //Mole Fractions (x-axis) of the P-x-y plot
- Real z1[N + 1], z2[N + 1];
- //Activity coefficients at different Pressures
- Real gammaBubl1[N + 1], gammaBubl2[N + 1];
- //Bubble Pressure
- Real P[N + 1](each unit = "Pa", each start = 776454);
- //Distribution coefficient
- Real K1[N + 1];
- //Vapour Phase Mole Fraction
- Real y1[N + 1](each start = 0.5), y2[N + 1](each start = 0.5);
- //Vapour Pressure at the chosen temperature
- Real Psat[Nc](unit = "Pa") "Vapour Pressure";
- //=========================================================================================
- //Equation Section
- equation
-//Calculation of Vapour Pressure at the input temperature
-//Thermodynamic Function Psat is instantiated from Simulator Package
- for i in 1:Nc loop
- Psat[i] = Simulator.Files.ThermodynamicFunctions.Psat(comp[i].VP, T);
- end for;
-//Calculation of increment step for the total number of points
- delta = 1 / N;
-//Empherical parameter (towk) is assigned to 1 for P-x-y mode of operation
- for k in 1:N + 1 loop
- for i in 1:Nc loop
- for j in 1:Nc loop
- towk[k, i, j] = 1;
- end for;
- end for;
- end for;
-//Calculation of Empherical parameter (tow) at the system temperature
- tow = Simulator.Files.ThermodynamicFunctions.TowUNIQUAC(Nc, a, T);
-//Generation of mole fraction from 0 to 1 in steps of "delta"
- z1[1] = 0;
- for i in 2:N + 1 loop
- z1[i] = z1[i - 1] + delta;
- end for;
- for i in 1:N + 1 loop
- z2[i] = 1 - z1[i];
- end for;
-//Calculation of Activity coefficients at different conditions using the function "Gamma_UNIQUAC"
- (gammaBubl1, gammaBubl2) = BinaryPhaseEnvelopeUNIQUAC.GammaUNIQUAC(Choice, N, Nc, z1, z2, R, Q, tow, towk);
-//Bubble point calculation
- for i in 1:N + 1 loop
- P[i] = gammaBubl1[i] * z1[i] * exp(comp[1].VP[2] + comp[1].VP[3] / T + comp[1].VP[4] * log(T) + comp[1].VP[5] * T ^ comp[1].VP[6]) + gammaBubl2[i] * z2[i] * exp(comp[2].VP[2] + comp[2].VP[3] / T + comp[2].VP[4] * log(T) + comp[2].VP[5] * T ^ comp[2].VP[6]);
- end for;
-//Phase Equlibria
- for i in 1:N + 1 loop
- K1[i] = gammaBubl1[i] * (Psat[1] / P[i]);
- y1[i] = K1[i] * z1[i];
- y2[i] = 1 - y1[i];
- end for;
- end PxyUNIQUAC;
-
- //=====================================================================================================
-
- model TxyUNIQUAC
- extends Modelica.Icons.Example;
- //Libraries
- import Simulator.*;
- //Extension of Chemsep database
- Simulator.Files.ChemsepDatabase data;
- //Parameter Section
- //Selection of compounds
- parameter data.Water wat;
- parameter data.Ethanol eth;
- //Instantiation of selected compounds
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties comp[Nc] = {wat, eth};
- parameter Integer Choice = 2 "System choice of Txy or Pxy";
- parameter Integer Nc = 2 "Number of components";
- parameter Real P(unit = "Pa") = 101325 "System Pressure";
- parameter Integer N = 40 "Number of points of data generation";
- //UNIQUAC Parameters
- parameter Real R[Nc] = comp.UniquacR;
- parameter Real Q[Nc] = comp.UniquacQ;
- parameter Real a[Nc, Nc] = Simulator.Files.ThermodynamicFunctions.BIPUNIQUAC(Nc, comp.name) "Interaction temperatures";
- //Variable Section
- Real delta "Increment step";
- //Empherical parameter (towk) at different temperatures
- //Note : The below value will be active only in the T-x-y phase envelope routine
- Real towk[N + 1, Nc, Nc];
- //Empherical Parameter (tow) at the system temperature
- //Note : The below value will be active only in the P-x-y phase envelope routine
- Real tow[Nc, Nc];
- //Mole Fractions (x-axis) of the T-x-y plot
- Real z1[N + 1], z2[N + 1];
- //Bubble Temperature
- Real T[N + 1](each unit = "K", each start = 300);
- //Distribution coefficient
- Real K1[N + 1];
- //Vapour Phase Mole Fraction
- Real y1[N + 1](each start = 0.5), y2[N + 1](each start = 0.5);
- //Vapour Pressure at the chosen temperature range
- Real Psat[N + 1, 1](each unit = "Pa");
- //Activity coefficients at different Temperatures
- Real gammaBubl1[N + 1], gammaBubl2[N + 1];
- //Gas constant
- parameter Real R_gas = 1.98721;
- //=======================================================================================================
- //Equation Section
- equation
-//Calculation of increment step for the total number of points
- delta = 1 / N;
-//Empherical parameter (towk) is calculated at different temperatures in the T-x-y mode of operation
- for k in 1:N + 1 loop
- for i in 1:Nc loop
- for j in 1:Nc loop
- towk[k, i, j] = exp(-a[i, j] / (R_gas * T[k]));
- end for;
- end for;
- end for;
-//Empherical parameter (tow) is assigned to 1 for T-x-y mode of operation
- for i in 1:Nc loop
- for j in 1:Nc loop
- tow[i, j] = 1;
- end for;
- end for;
-//Generation of mole fraction from 0 to 1 in steps of "delta"
- z1[1] = 0;
- for i in 2:N + 1 loop
- z1[i] = z1[i - 1] + delta;
- end for;
- for i in 1:N + 1 loop
- z2[i] = 1 - z1[i];
- end for;
-//Calculation of Activity coefficients at different conditions using the function "Gamma_UNIQUAC"
- (gammaBubl1, gammaBubl2) = BinaryPhaseEnvelopeUNIQUAC.GammaUNIQUAC(Choice, N, Nc, z1, z2, R, Q, tow, towk);
-//Bubble point calculation
- for i in 1:N + 1 loop
- P = gammaBubl1[i] * z1[i] * exp(comp[1].VP[2] + comp[1].VP[3] / T[i] + comp[1].VP[4] * log(T[i]) + comp[1].VP[5] * T[i] ^ comp[1].VP[6]) + gammaBubl2[i] * z2[i] * exp(comp[2].VP[2] + comp[2].VP[3] / T[i] + comp[2].VP[4] * log(T[i]) + comp[2].VP[5] * T[i] ^ comp[2].VP[6]);
- end for;
-//Phase Equilibria
- for i in 1:N + 1 loop
- K1[i] = gammaBubl1[i] * (Psat[i, 1] / P);
- y1[i] = K1[i] * z1[i];
- y2[i] = 1 - y1[i];
- end for;
-//Calculation of vapour pressures at different temperatures
- for i in 1:N + 1 loop
- Psat[i, 1] = Simulator.Files.ThermodynamicFunctions.Psat(comp[1].VP, T[i]);
- end for;
- end TxyUNIQUAC;
-
- //================================================================================================
- //==============================================================================================================
- //================================================================================================================
-end BinaryPhaseEnvelopeUNIQUAC;
diff --git a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.mo b/src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.mo
deleted file mode 100644
index 463d7b1..0000000
--- a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.mo
+++ /dev/null
@@ -1,4 +0,0 @@
-within Simulator;
-package BinaryPhaseEnvelope
- extends Modelica.Icons.VariantsPackage;
-end BinaryPhaseEnvelope;
diff --git a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.order b/src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.order
deleted file mode 100644
index 9e3f81f..0000000
--- a/src/main/Simulator/Simulator/BinaryPhaseEnvelope/package.order
+++ /dev/null
@@ -1,4 +0,0 @@
-BinaryPhaseEnvelopeUNIQUAC
-BinaryPhaseEnvelopeUNIFAC
-BinaryPhaseEnvelopePR
-BinaryPhaseEnvelopeNRTL
diff --git a/src/main/Simulator/Simulator/Examples/Absorption.mo b/src/main/Simulator/Simulator/Examples/Absorption.mo
deleted file mode 100644
index f958807..0000000
--- a/src/main/Simulator/Simulator/Examples/Absorption.mo
+++ /dev/null
@@ -1,56 +0,0 @@
-within Simulator.Examples;
-
-package Absorption
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model Tray
- extends Simulator.UnitOperations.AbsorptionColumn.AbsTray;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end Tray;
-
- model AbsColumn
- extends Simulator.UnitOperations.AbsorptionColumn.AbsCol;
- Tray tray[Nt](each Nc = Nc, each C = C);
- end AbsColumn;
-
- model Test
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter Integer Nc = 3;
- parameter data.Acetone acet;
- parameter data.Air air;
- parameter data.Water wat;
- parameter data.GeneralProperties C[Nc] = {acet, air, wat};
- Simulator.Examples.Absorption.ms water(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-90, 66}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Absorption.ms air_acetone(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-88, -84}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Absorption.AbsColumn abs(Nc = Nc, C = C, Nt = 10) annotation(
- Placement(visible = true, transformation(origin = {-20, -6}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
- Simulator.Examples.Absorption.ms top(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {62, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Absorption.ms bottom(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {70, -86}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(air_acetone.Out, abs.In_Bot) annotation(
- Line(points = {{-78, -84}, {-69, -84}, {-69, -54}, {-60, -54}}));
- connect(water.Out, abs.In_Top) annotation(
- Line(points = {{-80, 66}, {-69, 66}, {-69, 42}, {-60, 42}}));
- connect(abs.Out_Top, top.In) annotation(
- Line(points = {{20, 42}, {38, 42}, {38, 62}, {52, 62}}));
- connect(abs.Out_Bot, bottom.In) annotation(
- Line(points = {{20, -54}, {36.5, -54}, {36.5, -86}, {60, -86}}));
- water.P = 101325;
- water.T = 325;
- water.F_p[1] = 30;
- water.x_pc[1, :] = {0, 0, 1};
- air_acetone.P = 101325;
- air_acetone.T = 335;
- air_acetone.F_p[1] = 30;
- air_acetone.x_pc[1, :] = {0.5, 0.5, 0};
- end Test;
-end Absorption;
diff --git a/src/main/Simulator/Simulator/Examples/CR.mo b/src/main/Simulator/Simulator/Examples/CR.mo
deleted file mode 100644
index e9c755e..0000000
--- a/src/main/Simulator/Simulator/Examples/CR.mo
+++ /dev/null
@@ -1,49 +0,0 @@
-within Simulator.Examples;
-
-package CR
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.NRTL;
- end ms;
-
- model test
- extends Modelica.Icons.Example;
- //=================================================================
- //Header Files and Parameters
- import data = Simulator.Files.ChemsepDatabase;
- parameter Integer Nc = 4;
- parameter data.Ethylacetate etac;
- parameter data.Water wat;
- parameter data.Aceticacid aa;
- parameter data.Ethanol eth;
- parameter data.GeneralProperties C[Nc] = {etac, wat, aa, eth};
- //==================================================================
- //Instantiation of Streams and Blocks
- Simulator.Examples.CR.ms S1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-89, -1}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- Simulator.Examples.CR.ms S2(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {90, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.CR.conv_react B1(Nc = Nc, C = C, Nr = 1, BC_r = {3}, Coef_cr = {{1}, {1}, {-1}, {-1}}, X_r = {0.3}, CalcMode = "Isothermal", Tdef = 300) annotation(
- Placement(visible = true, transformation(origin = {7, -1}, extent = {{-29, -29}, {29, 29}}, rotation = 0)));
-
- equation
-//==================================================================
-//Connections
- connect(B1.Out, S2.In) annotation(
- Line(points = {{36, 0}, {80, 0}, {80, 0}, {80, 0}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-78, 0}, {-22, 0}, {-22, 0}, {-22, 0}}, color = {0, 70, 70}));
-//==================================================================
-//Inputs and Specifications
- S1.P = 101325;
- S1.T = 300;
- S1.x_pc[1, :] = {0, 0, 0.4, 0.6};
- S1.F_p[1] = 100;
- end test;
-
- model conv_react
- extends Simulator.UnitOperations.ConversionReactor;
- extends Simulator.Files.Models.ReactionManager.ConversionReaction;
- end conv_react;
-end CR;
diff --git a/src/main/Simulator/Simulator/Examples/CompositeMS.mo b/src/main/Simulator/Simulator/Examples/CompositeMS.mo
deleted file mode 100644
index 0fdb681..0000000
--- a/src/main/Simulator/Simulator/Examples/CompositeMS.mo
+++ /dev/null
@@ -1,29 +0,0 @@
-within Simulator.Examples;
-
-package CompositeMS
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model main
- extends Modelica.Icons.Example;
- //instance of database
- import data = Simulator.Files.ChemsepDatabase;
- //instance of components
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- //declaration of Nc and comp
- parameter Integer Nc = 2;
- parameter data.GeneralProperties C[Nc] = {benz, tol};
- //instance of composite material stream
- Simulator.Examples.CompositeMS.ms ms1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-79, -31}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- equation
- ms1.P = 101325;
- ms1.T = 368;
- ms1.F_p[1] = 100;
- ms1.x_pc[1, :] = {0.5, 0.5};
- end main;
-end CompositeMS;
diff --git a/src/main/Simulator/Simulator/Examples/CompoundSeparator.mo b/src/main/Simulator/Simulator/Examples/CompoundSeparator.mo
deleted file mode 100644
index eeec442..0000000
--- a/src/main/Simulator/Simulator/Examples/CompoundSeparator.mo
+++ /dev/null
@@ -1,40 +0,0 @@
-within Simulator.Examples;
-
-package CompoundSeparator
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream(Nc = 2, C = {benz, tol});
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model main
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- ms Inlet(Nc = 2, C = {benz, tol}) annotation(
- Placement(visible = true, transformation(origin = {-82, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms Outlet1(Nc = 2, C = {benz, tol}) annotation(
- Placement(visible = true, transformation(origin = {64, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.CompoundSeparator.ms Outlet2(Nc = 2, C = {benz, tol}) annotation(
- Placement(visible = true, transformation(origin = {66, -20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream Energy annotation(
- Placement(visible = true, transformation(origin = {-40, -50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.UnitOperations.CompoundSeparator compound_Separator1(Nc = 2, C = {benz, tol}, SepFact_c = {"Molar_Flow", "Mass_Flow"}, SepStrm = 1) annotation(
- Placement(visible = true, transformation(origin = {-20, 8}, extent = {{-10, -20}, {10, 20}}, rotation = 0)));
- equation
- connect(Inlet.Out, compound_Separator1.In) annotation(
- Line(points = {{-72, -2}, {-43, -2}, {-43, 8}, {-32, 8}}));
- connect(compound_Separator1.Out1, Outlet1.In) annotation(
- Line(points = {{-8, 14}, {22, 14}, {22, 18}, {54, 18}}));
- connect(compound_Separator1.Out2, Outlet2.In) annotation(
- Line(points = {{-8, 3}, {26, 3}, {26, -20}, {56, -20}}));
- connect(Energy.Out, compound_Separator1.En) annotation(
- Line(points = {{-30, -50}, {-20, -50}, {-20, -5}}, color = {255, 0, 0}));
- Inlet.P = 101325;
- Inlet.T = 298.15;
- Inlet.x_pc[1, :] = {0.5, 0.5};
- Inlet.F_p[1] = 100;
- compound_Separator1.SepVal_c = {20, 1500};
- end main;
-end CompoundSeparator;
diff --git a/src/main/Simulator/Simulator/Examples/Compressor.mo b/src/main/Simulator/Simulator/Examples/Compressor.mo
deleted file mode 100644
index c3e9e6e..0000000
--- a/src/main/Simulator/Simulator/Examples/Compressor.mo
+++ /dev/null
@@ -1,52 +0,0 @@
-within Simulator.Examples;
-
-package Compressor
- extends Modelica.Icons.ExamplesPackage;
- model ms
- //This model will be instantiated in adia_comp model as outlet stream of heater. Dont run this model. Run adia_comp model for test
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model compres
- extends UnitOperations.AdiabaticCompressor;
- extends Files.ThermodynamicPackages.RaoultsLaw;
- end compres;
-
- model main
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Benzene ben;
- //instantiation of methanol
- parameter data.Toluene tol;
- //instantiation of ethanol
- parameter Integer Nc = 2;
- parameter data.GeneralProperties C[Nc] = {ben, tol};
- Simulator.Examples.Compressor.compres adiabatic_Compressor1(Nc = Nc, C = C, Eff = 0.75) annotation(
- Placement(visible = true, transformation(origin = {-17, 7}, extent = {{-15, -15}, {15, 15}}, rotation = 0)));
- Simulator.Examples.Compressor.ms inlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-78, 8}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms outlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {58, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream power annotation(
- Placement(visible = true, transformation(origin = {-50, -56}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(inlet.Out, adiabatic_Compressor1.In) annotation(
- Line(points = {{-68, 8}, {-50, 8}, {-50, 17}, {-32, 17}}));
- connect(adiabatic_Compressor1.Out, outlet.In) annotation(
- Line(points = {{-2, 17}, {31, 17}, {31, 6}, {48, 6}}));
- connect(power.Out, adiabatic_Compressor1.En) annotation(
- Line(points = {{-40, -56}, {-17, -56}, {-17, 7}}));
- inlet.x_pc[1, :] = {0.5, 0.5};
-//mixture molar composition
- inlet.P = 202650;
-//input pressure
- inlet.T = 372;
-//input temperature
- inlet.F_p[1] = 100;
-//input molar flow
- adiabatic_Compressor1.Pdel = 10000;
-//pressure increase
- end main;
-end Compressor;
diff --git a/src/main/Simulator/Simulator/Examples/Cooler.mo b/src/main/Simulator/Simulator/Examples/Cooler.mo
deleted file mode 100644
index e6c7af3..0000000
--- a/src/main/Simulator/Simulator/Examples/Cooler.mo
+++ /dev/null
@@ -1,51 +0,0 @@
-within Simulator.Examples;
-
-package Cooler
- extends Modelica.Icons.ExamplesPackage;
- model ms
- //This model will be instantiated in maintest model as outlet stream of cooler. Dont run this model. Run maintest model for cooler test
- extends Simulator.Streams.MaterialStream(Nc = 2);
- //material stream extended
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //thermodynamic package Raoults law is extended
- end ms;
-
- model cool
- extends Modelica.Icons.Example;
- //use non linear solver hybrid to simulate this model
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Methanol meth;
- //instantiation of methanol
- parameter data.Ethanol eth;
- //instantiation of ethanol
- parameter data.Water wat;
- //instantiation of water
- Simulator.UnitOperations.Cooler cooler1(Pdel = 0, Eff = 1, Nc = 3, C = {meth, eth, wat}) annotation(
- Placement(visible = true, transformation(origin = {-8, 18}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- Simulator.Examples.Cooler.ms inlet(Nc = 3, C = {meth, eth, wat}) annotation(
- Placement(visible = true, transformation(origin = {-72, 18}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- Simulator.Examples.Cooler.ms outlet(Nc = 3, C = {meth, eth, wat}) annotation(
- Placement(visible = true, transformation(origin = {60, 12}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- Simulator.Streams.EnergyStream energy annotation(
- Placement(visible = true, transformation(origin = {47, -27}, extent = {{-13, -13}, {13, 13}}, rotation = 0)));
- equation
- connect(cooler1.En, energy.In) annotation(
- Line(points = {{6, 4}, {6, -27}, {34, -27}}, color = {255, 0, 0}));
- connect(cooler1.Out, outlet.In) annotation(
- Line(points = {{6, 18}, {26, 18}, {26, 12}, {48, 12}}));
- connect(inlet.Out, cooler1.In) annotation(
- Line(points = {{-60, 18}, {-22, 18}}));
- equation
- inlet.x_pc[1, :] = {0.33, 0.33, 0.34};
-//mixture molar composition
- inlet.P = 101325;
-//input pressure
- inlet.T = 353;
-//input temperature
- inlet.F_p[1] = 100;
-//input molar flow
- cooler1.Q = 200000;
-//heat removed
- end cool;
-end Cooler;
diff --git a/src/main/Simulator/Simulator/Examples/Distillation.mo b/src/main/Simulator/Simulator/Examples/Distillation.mo
deleted file mode 100644
index fab504a..0000000
--- a/src/main/Simulator/Simulator/Examples/Distillation.mo
+++ /dev/null
@@ -1,239 +0,0 @@
-within Simulator.Examples;
-
-package Distillation
- extends Modelica.Icons.ExamplesPackage;
- model Condenser
- extends Simulator.UnitOperations.DistillationColumn.Cond;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end Condenser;
-
- model Tray
- extends Simulator.UnitOperations.DistillationColumn.DistTray;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end Tray;
-
- model Reboiler
- extends Simulator.UnitOperations.DistillationColumn.Reb;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end Reboiler;
-
- model DistColumn
- extends Simulator.UnitOperations.DistillationColumn.DistCol;
- Condenser condenser(Nc = Nc, C = C, Ctype = Ctype, Bin = Bin_t[1]);
- Reboiler reboiler(Nc = Nc, C = C, Bin = Bin_t[Nt]);
- Tray tray[Nt - 2](each Nc = Nc, each C = C, Bin = Bin_t[2:Nt - 1]);
- end DistColumn;
-
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model Test
- extends Modelica.Icons.Example;
- parameter Integer Nc = 2;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {benz, tol};
- Simulator.Examples.Distillation.DistColumn distCol(Nc = Nc, C = C, Nt = 4, Ni = 1, InT_s = {3}, Ctype = "Partial") annotation(
- Placement(visible = true, transformation(origin = {-22, 8}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms feed(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-76, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms distillate(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {64, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms bottoms(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream cond_duty annotation(
- Placement(visible = true, transformation(origin = {38, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream reb_duty annotation(
- Placement(visible = true, transformation(origin = {48, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(distCol.Cduty, cond_duty.In) annotation(
- Line(points = {{3, 68}, {14.5, 68}, {14.5, 62}, {28, 62}}));
- connect(distCol.Rduty, reb_duty.In) annotation(
- Line(points = {{3, -52}, {38, -52}}));
- connect(distCol.Bot, bottoms.In) annotation(
- Line(points = {{3, -22}, {29.5, -22}, {29.5, -16}, {58, -16}}));
- connect(distCol.Dist, distillate.In) annotation(
- Line(points = {{3, 38}, {26.5, 38}, {26.5, 22}, {54, 22}}));
- connect(feed.Out, distCol.In_s[1]) annotation(
- Line(points = {{-66, 2}, {-57.5, 2}, {-57.5, 8}, {-47, 8}}));
- feed.P = 101325;
- feed.T = 298.15;
- feed.F_p[1] = 100;
- feed.x_pc[1, :] = {0.5, 0.5};
- distCol.condenser.P = 101325;
- distCol.reboiler.P = 101325;
- distCol.RR = 2;
- bottoms.F_p[1] = 50;
- end Test;
-
- model Test2
- extends Modelica.Icons.Example;
- parameter Integer Nc = 2;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {benz, tol};
- DistColumn distCol(Nc = Nc, C = C, Nt = 12, Ni = 1, InT_s = {7}) annotation(
- Placement(visible = true, transformation(origin = {-3, 3}, extent = {{-25, -25}, {25, 25}}, rotation = 0)));
- ms feed(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-76, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms distillate(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {64, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms bottoms(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream cond_duty annotation(
- Placement(visible = true, transformation(origin = {38, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream reb_duty annotation(
- Placement(visible = true, transformation(origin = {48, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(distCol.Cduty, cond_duty.In) annotation(
- Line(points = {{12, 28}, {12, 28}, {12, 62}, {28, 62}, {28, 62}}));
- connect(distCol.Rduty, reb_duty.In) annotation(
- Line(points = {{16, -22}, {16, -22}, {16, -52}, {38, -52}, {38, -52}}));
- connect(distCol.Bot, bottoms.In) annotation(
- Line(points = {{22, -14}, {56, -14}, {56, -16}, {58, -16}}));
- connect(distCol.Dist, distillate.In) annotation(
- Line(points = {{22, 22}, {54, 22}, {54, 22}, {54, 22}}));
- connect(feed.Out, distCol.In_s[1]) annotation(
- Line(points = {{-66, 2}, {-30, 2}, {-30, 2}, {-28, 2}}));
- feed.P = 101325;
- feed.T = 298.15;
- feed.F_p[1] = 100;
- feed.x_pc[1, :] = {0.5, 0.5};
- distCol.condenser.P = 101325;
- distCol.reboiler.P = 101325;
- distCol.RR = 2;
- bottoms.F_p[1] = 50;
- end Test2;
-
- model Test3
- extends Modelica.Icons.Example;
- parameter Integer Nc = 2;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {benz, tol};
- DistColumn distCol(Nc = Nc, C = C, Ni = 1, Nt = 22, InT_s = {10}) annotation(
- Placement(visible = true, transformation(origin = {-3, 3}, extent = {{-25, -25}, {25, 25}}, rotation = 0)));
- ms feed(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-76, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms distillate(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {64, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms bottoms(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream cond_duty annotation(
- Placement(visible = true, transformation(origin = {38, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream reb_duty annotation(
- Placement(visible = true, transformation(origin = {48, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(distCol.Cduty, cond_duty.In) annotation(
- Line(points = {{12, 28}, {12, 28}, {12, 62}, {28, 62}, {28, 62}}));
- connect(distCol.Rduty, reb_duty.In) annotation(
- Line(points = {{16, -22}, {16, -22}, {16, -52}, {38, -52}, {38, -52}}));
- connect(distCol.Bot, bottoms.In) annotation(
- Line(points = {{22, -14}, {56, -14}, {56, -16}, {58, -16}}));
- connect(distCol.Dist, distillate.In) annotation(
- Line(points = {{22, 22}, {54, 22}, {54, 22}, {54, 22}}));
- connect(feed.Out, distCol.In_s[1]) annotation(
- Line(points = {{-66, 2}, {-30, 2}, {-30, 2}, {-28, 2}}));
- feed.P = 101325;
- feed.T = 298.15;
- feed.F_p[1] = 100;
- feed.x_pc[1, :] = {0.3, 0.7};
- distCol.condenser.P = 101325;
- distCol.reboiler.P = 101325;
- distCol.RR = 1.5;
- bottoms.F_p[1] = 70;
- end Test3;
-
- model Test4
- extends Modelica.Icons.Example;
- parameter Integer Nc = 2;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {benz, tol};
- DistColumn distCol(Nc = Nc, C = C, Nt = 22, Ni = 1, InT_s = {10}, condenser.Ctype = "Partial") annotation(
- Placement(visible = true, transformation(origin = {-3, 3}, extent = {{-25, -25}, {25, 25}}, rotation = 0)));
- ms feed(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-76, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms distillate(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {64, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms bottoms(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream cond_duty annotation(
- Placement(visible = true, transformation(origin = {38, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream reb_duty annotation(
- Placement(visible = true, transformation(origin = {48, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(distCol.Cduty, cond_duty.In) annotation(
- Line(points = {{12, 28}, {12, 28}, {12, 62}, {28, 62}, {28, 62}}));
- connect(distCol.Rduty, reb_duty.In) annotation(
- Line(points = {{16, -22}, {16, -22}, {16, -52}, {38, -52}, {38, -52}}));
- connect(distCol.Bot, bottoms.In) annotation(
- Line(points = {{22, -14}, {56, -14}, {56, -16}, {58, -16}}));
- connect(distCol.Dist, distillate.In) annotation(
- Line(points = {{22, 22}, {54, 22}, {54, 22}, {54, 22}}));
- connect(feed.Out, distCol.In_s[1]) annotation(
- Line(points = {{-66, 2}, {-30, 2}, {-30, 2}, {-28, 2}}));
- feed.P = 101325;
- feed.T = 298.15;
- feed.F_p[1] = 96.8;
- feed.x_pc[1, :] = {0.3, 0.7};
- distCol.condenser.P = 151325;
- distCol.reboiler.P = 101325;
- distCol.RR = 1.5;
- bottoms.F_p[1] = 70;
- end Test4;
-
- model multiFeedTest
- extends Modelica.Icons.Example;
- parameter Integer Nc = 2;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {benz, tol};
- DistColumn distCol(Nc = Nc, C = C, Nt = 5, Ni = 2, InT_s = {3, 4}) annotation(
- Placement(visible = true, transformation(origin = {-3, 3}, extent = {{-25, -25}, {25, 25}}, rotation = 0)));
- ms feed(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-76, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms distillate(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {64, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms bottoms(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream cond_duty annotation(
- Placement(visible = true, transformation(origin = {38, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream reb_duty annotation(
- Placement(visible = true, transformation(origin = {48, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms ms1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-80, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(ms1.Out, distCol.In_s[2]) annotation(
- Line(points = {{-70, 50}, {-26, 50}, {-26, 2}, {-28, 2}}));
- connect(distCol.Cduty, cond_duty.In) annotation(
- Line(points = {{12, 28}, {12, 28}, {12, 62}, {28, 62}, {28, 62}}));
- connect(distCol.Rduty, reb_duty.In) annotation(
- Line(points = {{16, -22}, {16, -22}, {16, -52}, {38, -52}, {38, -52}}));
- connect(distCol.Bot, bottoms.In) annotation(
- Line(points = {{22, -14}, {56, -14}, {56, -16}, {58, -16}}));
- connect(distCol.Dist, distillate.In) annotation(
- Line(points = {{22, 22}, {54, 22}, {54, 22}, {54, 22}}));
- connect(feed.Out, distCol.In_s[1]) annotation(
- Line(points = {{-66, 2}, {-30, 2}, {-30, 2}, {-28, 2}}));
- feed.P = 101325;
- feed.T = 298.15;
- feed.F_p[1] = 100;
- feed.x_pc[1, :] = {0.5, 0.5};
- distCol.condenser.P = 101325;
- distCol.reboiler.P = 101325;
- distCol.RR = 2;
- bottoms.F_p[1] = 50;
- ms1.P = 101325;
- ms1.T = 298.15;
- ms1.F_p[1] = 100;
- ms1.x_pc[1, :] = {0.5, 0.5};
- end multiFeedTest;
-end Distillation;
diff --git a/src/main/Simulator/Simulator/Examples/EquilibriumReactor.mo b/src/main/Simulator/Simulator/Examples/EquilibriumReactor.mo
deleted file mode 100644
index 36f51bb..0000000
--- a/src/main/Simulator/Simulator/Examples/EquilibriumReactor.mo
+++ /dev/null
@@ -1,81 +0,0 @@
-within Simulator.Examples;
-
-package EquilibriumReactor
-
-extends Modelica.Icons.ExamplesPackage;
-
-model ms
- extends Simulator.Streams.MaterialStream;
- //material stream extended
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //thermodynamic package Raoults law is extended
-end ms;
-
-model EqRxr
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of ethanol
- parameter data.Hydrogen hyd;
- //instantiation of acetic acid
- parameter data.Carbonmonoxide com;
- //instantiation of water
- parameter data.Methanol meth;
-
- parameter Integer Nc = 3;
- parameter data.GeneralProperties C[Nc] = {hyd,com,meth};
- Simulator.Examples.EquilibriumReactor.ms Inlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-108, 46}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
- Simulator.Examples.EquilibriumReactor.ms Outlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {88, -46}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
- Simulator.UnitOperations.EquilibriumReactor Eqreactor(Basis = "Activity",C = C, Coef_cr = {{-2}, {-1}, {1}}, Kg = {0.5}, Mode = "Isothermal", Nc = Nc, Phase = "Vapour", Rmode = "ConstantK") annotation(
- Placement(visible = true, transformation(origin = {-2, 10}, extent = {{28, 28}, {-28, -28}}, rotation = 180)));
-equation
-
- Inlet.T = 366.5;
- Inlet.P = 101325;
- Inlet.F_p[1] = 27.7778;
- Inlet.x_pc[1, :] = {0.667,0.333,0};
- connect(Inlet.Out, Eqreactor.In) annotation(
- Line(points = {{-88, 46}, {-30, 46}, {-30, 10}, {-30, 10}}, color = {0, 70, 70}));
- connect(Eqreactor.Out, Outlet.In) annotation(
- Line(points = {{26, 10}, {28, 10}, {28, -46}, {68, -46}, {68, -46}}, color = {0, 70, 70}));
- annotation(
- Icon(coordinateSystem(initialScale = 0)));
- annotation(
- Icon(coordinateSystem(initialScale = 0)));
-
-end EqRxr;
-
-model EqRxra
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of ethanol
- parameter data.Ethanol eth;
- //instantiation of acetic acid
- parameter data.Aceticacid acid;
- //instantiation of water
- parameter data.Water wat;
- // instantiation of ethyl acetate
- parameter data.Ethylacetate eac;
- parameter Integer Nc = 4;
- parameter data.GeneralProperties C[Nc] = {eth, acid, wat, eac};
- Simulator.Examples.EquilibriumReactor .ms Inlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-118, 48}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
- Simulator.Examples.EquilibriumReactor .ms Outlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {88, -46}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
- Simulator.UnitOperations.EquilibriumReactor Eqreactor(C = C, Nc = Nc, Mode = "Adiabatic", Basis = "PartialPressure", Phase = "Vapour") annotation(
- Placement(visible = true, transformation(origin = {-4, 10}, extent = {{28, 28}, {-28, -28}}, rotation = 180)));
- equation
- Inlet.T = 343.15;
- Inlet.P = 101325;
- Inlet.F_p[1] = 10;
- Inlet.x_pc[1, :] = {0.5, 0.5, 0, 0};
- connect(Inlet.Out, Eqreactor.In) annotation(
- Line(points = {{-98, 48}, {-32, 48}, {-32, 10}, {-32, 10}}, color = {0, 70, 70}));
- connect(Eqreactor.Out, Outlet.In) annotation(
- Line(points = {{24, 10}, {24, 10}, {24, -46}, {68, -46}, {68, -46}}, color = {0, 70, 70}));
-
-end EqRxra;
-
-
-end EquilibriumReactor;
diff --git a/src/main/Simulator/Simulator/Examples/Expander.mo b/src/main/Simulator/Simulator/Examples/Expander.mo
deleted file mode 100644
index 28c5655..0000000
--- a/src/main/Simulator/Simulator/Examples/Expander.mo
+++ /dev/null
@@ -1,56 +0,0 @@
-within Simulator.Examples;
-
-package Expander
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model Exp
- extends Simulator.UnitOperations.AdiabaticExpander;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end Exp;
-
- model main
- extends Modelica.Icons.Example;
- //================================================================
- //Header files and Parameters
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene ben;
- parameter data.Toluene tol;
- parameter Integer Nc = 2;
- parameter data.GeneralProperties C[Nc] = {ben, tol};
-
- //================================================================
- //Instantiation of Streams and Blocks
- Simulator.Examples.Compressor.ms S1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-82, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Expander.ms S2(Nc = Nc, C = C, T(start = 374)) annotation(
- Placement(visible = true, transformation(origin = {62, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Expander.Exp B1(Nc = Nc, C = C, Eff = 0.75) annotation(
- Placement(visible = true, transformation(origin = {-3, -1}, extent = {{-23, -23}, {23, 23}}, rotation = 0)));
- Simulator.Streams.EnergyStream E1 annotation(
- Placement(visible = true, transformation(origin = {-30, -60}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
-
- //================================================================
- //Connections
- connect(E1.Out, B1.En) annotation(
- Line(points = {{-20, -60}, {-2, -60}, {-2, -16}, {-2, -16}}, color = {255, 0, 0}));
- connect(B1.Out, S2.In) annotation(
- Line(points = {{20, 0}, {52, 0}, {52, 0}, {52, 0}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-72, 0}, {-26, 0}, {-26, 0}, {-26, 0}}, color = {0, 70, 70}));
-
- //================================================================
- //Inputs and Specifications
- S1.x_pc[1, :] = {0.5, 0.5};
- S1.P = 131325;
- S1.T = 372;
- S1.F_p[1] = 100;
- B1.Pdel = 10000;
-
- end main;
-end Expander;
diff --git a/src/main/Simulator/Simulator/Examples/Flash.mo b/src/main/Simulator/Simulator/Examples/Flash.mo
deleted file mode 100644
index e128397..0000000
--- a/src/main/Simulator/Simulator/Examples/Flash.mo
+++ /dev/null
@@ -1,54 +0,0 @@
-within Simulator.Examples;
-
-package Flash
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model fls
- extends Simulator.UnitOperations.Flash;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end fls;
-
- model test
- extends Modelica.Icons.Example;
- //=====================================================================
- //Header Files and Parameters
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Integer Nc = 2;
- parameter data.GeneralProperties C[Nc] = {benz, tol};
-
- //=====================================================================
- //Instantiation of Streams and Blocks
- ms S1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-70, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Flash.ms S2(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {56, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Flash.ms S3(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {54, 28}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Flash.fls B1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-14, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
-
- //=====================================================================
- //Connections
- connect(B1.Out2, S2.In) annotation(
- Line(points = {{-4, -6}, {32, -6}, {32, -16}, {46, -16}, {46, -16}}, color = {0, 70, 70}));
- connect(B1.Out1, S3.In) annotation(
- Line(points = {{-4, 10}, {32, 10}, {32, 28}, {44, 28}, {44, 28}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-60, 2}, {-24, 2}, {-24, 2}, {-24, 2}}, color = {0, 70, 70}));
-
- //=====================================================================
- //Inputs and Specifications
- S1.P = 101325;
- S1.T = 368;
- S1.x_pc[1, :] = {0.5, 0.5};
- S1.F_p[1] = 100;
- end test;
-end Flash;
diff --git a/src/main/Simulator/Simulator/Examples/HeatExchanger.mo b/src/main/Simulator/Simulator/Examples/HeatExchanger.mo
deleted file mode 100644
index 29fd96f..0000000
--- a/src/main/Simulator/Simulator/Examples/HeatExchanger.mo
+++ /dev/null
@@ -1,95 +0,0 @@
-within Simulator.Examples;
-
-package HeatExchanger
- //Model of a General Purpouse Heat Exchanger operating with multiple modes
- //================================================================================================================
- extends Modelica.Icons.ExamplesPackage;
- model MS
- extends Simulator.Streams.MaterialStream;
- //material stream extended
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //thermodynamic package Raoults law is extended
- end MS;
-
- model HX_Test
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of ethanol
- parameter data.Styrene sty;
- //instantiation of acetic acid
- parameter data.Toluene tol;
- parameter Integer Nc = 2;
- parameter data.GeneralProperties C[Nc] = {sty, tol};
- Simulator.UnitOperations.HeatExchanger HX(Cmode = "Outlet_Temparatures", Qloss = 0, Mode = "CounterCurrent", Nc = Nc, C = C, Pdelc = 0, Pdelh = 0) annotation(
- Placement(visible = true, transformation(origin = {-16, -2}, extent = {{-22, -22}, {22, 22}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS In_Hot(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-86, 38}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS Out_Hot(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, 70}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS In_Cold(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-22, 64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS Out_Cold(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {46, -48}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- connect(In_Hot.Out, HX.In_Hot) annotation(
- Line(points = {{-76, 38}, {-76, -2}, {-38, -2}}));
- connect(HX.Out_Hot, Out_Hot.In) annotation(
- Line(points = {{6, -2}, {6, 45}, {58, 45}, {58, 70}}));
- connect(HX.Out_Cold, Out_Cold.In) annotation(
- Line(points = {{-16, -24}, {-16, -48}, {36, -48}}));
- connect(In_Cold.Out, HX.In_Cold) annotation(
- Line(points = {{-12, 64}, {-12, 38}, {-16, 38}, {-16, 20}}));
- In_Hot.x_pc[1, :] = {1, 0};
- In_Cold.x_pc[1, :] = {0, 1};
- In_Hot.F_p[1] = 181.46776;
- In_Cold.F_p[1] = 170.93083;
- In_Hot.T = 422.03889;
- In_Cold.T = 310.92778;
- In_Hot.P = 344737.24128;
- In_Cold.P = 620527.03429;
- HX.U = 300;
- HX.Qact = 2700E03;
- end HX_Test;
-
- model HX_Design
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
-
- parameter data.Water wat;
- parameter data.Noctane oct;
- parameter data.Nnonane non;
- parameter data.Ndecane dec;
-
- parameter Integer Nc = 4;
- parameter data.GeneralProperties C[Nc] = {wat,oct,non,dec};
-
- Simulator.UnitOperations.HeatExchanger HX( C = C,Cmode = "Design", Mode = "CounterCurrent", Nc = Nc, Pdelc = 0, Pdelh = 0, Qloss = 0) annotation(
- Placement(visible = true, transformation(origin = {-16, -2}, extent = {{-22, -22}, {22, 22}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS In_Hot(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-86, 38}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS Out_Hot(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {68, 70}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS In_Cold(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-22, 64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.HeatExchanger.MS Out_Cold(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {46, -48}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
- connect(In_Hot.Out, HX.In_Hot) annotation(
- Line(points = {{-76, 38}, {-76, -2}, {-38, -2}}));
- connect(HX.Out_Hot, Out_Hot.In) annotation(
- Line(points = {{6, -2}, {6, 45}, {58, 45}, {58, 70}}));
- connect(HX.Out_Cold, Out_Cold.In) annotation(
- Line(points = {{-16, -24}, {-16, -48}, {36, -48}}));
- connect(In_Cold.Out, HX.In_Cold) annotation(
- Line(points = {{-12, 64}, {-12, 38}, {-16, 38}, {-16, 20}}));
- In_Hot.x_pc[1, :] = {0, 0,0.1,0.9};
- In_Cold.x_pc[1, :] = {1,0,0,0};
- In_Hot.F_p[1] =212.94371;
- In_Cold.F_p[1] = 3077.38424;
- In_Hot.T = 377.03889;
- In_Cold.T = 304.26111;
- In_Hot.P =1116948.66173;
- In_Cold.P = 606737.54464;
- end HX_Design;
-end HeatExchanger;
diff --git a/src/main/Simulator/Simulator/Examples/Heater.mo b/src/main/Simulator/Simulator/Examples/Heater.mo
deleted file mode 100644
index dd28183..0000000
--- a/src/main/Simulator/Simulator/Examples/Heater.mo
+++ /dev/null
@@ -1,54 +0,0 @@
-within Simulator.Examples;
-
-package Heater
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- //material stream extended
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //thermodynamic package Raoults law is extended
- end ms;
-
- model heat
- extends Modelica.Icons.Example;
- //instance of chemsep database
- import data = Simulator.Files.ChemsepDatabase;
- //instance of methanol
- parameter data.Methanol meth;
- //instance of ethanol
- parameter data.Ethanol eth;
- //instance of water
- parameter data.Water wat;
- //instance of heater
- parameter Integer Nc = 3;
- parameter data.GeneralProperties C[Nc] = {meth, eth, wat};
- Simulator.UnitOperations.Heater heater1(Pdel = 101325, Eff = 1, Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-26, -4}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //instances of composite material stream
- Simulator.Examples.Heater.ms inlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-80, 4}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- Simulator.Examples.Heater.ms outlet(Nc = Nc, C = C, T(start = 353), x_pc(start = {{0.33, 0.33, 0.34}, {0.24, 0.31, 0.43}, {0.44, 0.34, 0.31}}), P(start = 101325)) annotation(
- Placement(visible = true, transformation(origin = {20, 8}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- //instance of energy stream
- Simulator.Streams.EnergyStream energy annotation(
- Placement(visible = true, transformation(origin = {-75, -35}, extent = {{-13, -13}, {13, 13}}, rotation = 0)));
- equation
- connect(heater1.Out, outlet.In) annotation(
- Line(points = {{-16, -4}, {8, -4}, {8, 8}}));
- connect(inlet.Out, heater1.In) annotation(
- Line(points = {{-68, 4}, {-58, 4}, {-58, -4}, {-36, -4}}));
- connect(energy.Out, heater1.En) annotation(
- Line(points = {{-62, -35}, {-62, -34.5}, {-36, -34.5}, {-36, -14}}));
- equation
- inlet.x_pc[1, :] = {0.33, 0.33, 0.34};
-//mixture molar composition
- inlet.P = 202650;
-//input pressure
- inlet.T = 320;
-//input temperature
- inlet.F_p[1] = 100;
-//input molar flow
- heater1.Q = 2000000;
-//heat added
- end heat;
-end Heater;
diff --git a/src/main/Simulator/Simulator/Examples/MaterialStream.mo b/src/main/Simulator/Simulator/Examples/MaterialStream.mo
deleted file mode 100644
index 73d749c..0000000
--- a/src/main/Simulator/Simulator/Examples/MaterialStream.mo
+++ /dev/null
@@ -1,186 +0,0 @@
-within Simulator.Examples;
-
-package MaterialStream
- extends Modelica.Icons.ExamplesPackage;
-
- model TPflash
-
- //we have to first instance components to give to material stream model.
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Methanol meth;
- //instantiation of methanol
- parameter data.Ethanol eth;
- //instantiation of ethanol
- parameter data.Water wat;
- //instantiation of water
- extends Streams.MaterialStream(Nc = 3, C = {meth, eth, wat});
- //material stream model is extended and values of parameters Nc and comp are given. These parameters are declared in Material stream model. We are only giving them values here.
- //Nc - number of components, comp - component array.
- //start values are given for convergence
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //Thermodynamic package is extended. We can use other thermodynamics also(not yet added) after little modification and inclusion of residual properties equations.
- equation
-//These are the values to be specified by user. In this P, T, mixture mole fraction and mixture molar flow is specified. These variables are declared in Material stream model, only values are given here.
- P = 101325;
- T = 351;
- x_pc[1, :] = {0.33, 0.33, 0.34};
- F_p[1] = 100;
- end TPflash;
-
- model TVFflash
- // database and components are instantiated, material stream and thermodynamic package extended
- Simulator.Files.ChemsepDatabase data;
- parameter data.Methanol meth;
- parameter data.Ethanol eth;
- parameter data.Water wat;
- extends Streams.MaterialStream(Nc = 3, C = {meth, eth, wat});
- //Nc - number of components, comp - component array.
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- equation
-//Here vapor phase mole fraction, temperature, mixture component mole fraction and mixture molar flow is given.
- xvap = 0.036257;
- T = 351;
- x_pc[1, :] = {0.33, 0.33, 0.34};
- F_p[1] = 31.346262;
- end TVFflash;
-
- model PVFflash
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Methanol meth;
- parameter data.Ethanol eth;
- parameter data.Water wat;
- extends Streams.MaterialStream(Nc = 3, C = {meth, eth, wat});
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- equation
- P = 101325;
- xvap = 0.036257;
- x_pc[1, :] = {0.33, 0.33, 0.34};
- F_p[1] = 100;
- end PVFflash;
-
-
-
- model PHflash
- //we have to first instance components to give to material stream model.
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Methanol meth;
- //instantiation of methanol
- parameter data.Ethanol eth;
- //instantiation of ethanol
- parameter data.Water wat;
- //instantiation of water
- extends Streams.MaterialStream(Nc = 3, C = {meth, eth, wat});
- //material stream model is extended and values of parameters Nc and comp are given. These parameters are declred in Material stream model. We are only giving them values here.
- //we need to give proper initialization values for converging, Initialization values are provided for totMolFlo, compMolFrac and T while extending.
- //Nc - number of components, comp - component array.
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //Thermodynamic package is extended. We can use other thermodynamics also(not yet added) after little modification and inclusion of residual properties equations.
- equation
-//These are the values to be specified by user. In this P, mixture molar enthalpy, mixture mole fraction and mixture molar flow is specified. These variables are declared in Material stream model, only values are given here.
- P = 101325;
- H_p[1] = -34452;
- x_pc[1, :] = {0.33, 0.33, 0.34};
-//1 stands for mixture
- F_p[1] = 31.346262;
-//1 stands for mixture
- end PHflash;
-
- model PSflash
- //we have to first instance components to give to material stream model.
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Methanol meth;
- //instantiation of methanol
- parameter data.Ethanol eth;
- //instantiation of ethanol
- parameter data.Water wat;
- //instantiation of water
- extends Streams.MaterialStream(Nc = 3, C = {meth, eth, wat});
- //material stream model is extended and values of parameters Nc and comp are given. These parameters are declred in Material stream model. We are only giving them values here.
- //we need to give proper initialization values for converging, Initialization values are provided for totMolFlo, compMolFrac and T while extending.
- //Nc - number of components, comp - component array.
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //Thermodynamic package is extended. We can use other thermodynamics also(not yet added) after little modification and inclusion of residual properties equations.
- equation
-//These are the values to be specified by user. In this P, mixture molar enthalpy, mixture mole fraction and mixture molar flow is specified. These variables are declared in Material stream model, only values are given here.
- P = 101325;
- S_p[1] = -84.39;
- x_pc[1, :] = {0.33, 0.33, 0.34};
-//1 stands for mixture
- F_p[1] = 31.346262;
-//1 stands for mixture
- end PSflash;
-
- model BelBubl "material stream below bubble point"
- //we have to first instance components to give to material stream model.
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Methanol meth;
- //instantiation of methanol
- parameter data.Ethanol eth;
- //instantiation of ethanol
- parameter data.Water wat;
- //instantiation of water
- extends Streams.MaterialStream(Nc = 3, C = {meth, eth, wat});
- //material stream model is extended and values of parameters Nc and comp are given. These parameters are declared in Material stream model. We are only giving them values here.
- //Nc - number of components, comp - component array.
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //Thermodynamic package is extended. We can use other thermodynamics also(not yet added) after little modification and inclusion of residual properties equations.
- equation
-//These are the values to be specified by user. In this P, T, mixture mole fraction and mixture molar flow is specified. These variables are declared in Material stream model, only values are given here.
- P = 202650;
- T = 320;
- x_pc[1, :] = {0.33, 0.33, 0.34};
-//1 stands for mixture
- F_p[1] = 31.346262;
-//1 stands for mixture
- end BelBubl;
-
- model UNIQUAC
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethanol eth;
- parameter data.Water wat;
- extends Simulator.Streams.MaterialStream(Nc = 2, C = {eth, wat}, Pbubl(start = 101325), Pdew(start = 101325), x_pc(each start = 0.33), xvap(start = 0.68));
- extends Simulator.Files.ThermodynamicPackages.UNIQUAC;
- equation
- x_pc[1, :] = {0.5, 0.5};
- F_p[1] = 50;
- P = 101325;
- T = 354;
- end UNIQUAC;
-
- model NRTL
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Onehexene ohex;
- parameter data.Ethanol eth;
- extends Simulator.Streams.MaterialStream(Nc = 2, C = {ohex, eth}, x_pc(each start = 0.33));
- extends Simulator.Files.ThermodynamicPackages.NRTL;
- equation
- x_pc[1, :] = {0.5, 0.5};
- F_p[1] = 100;
- P = 101325;
- T = 330;
- end NRTL;
-
- model GraysonStreed
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethylene eth;
- parameter data.Acetylene acet;
- parameter data.OneOnedichloroethane dich;
- parameter data.Propadiene prop;
- //w=Acentric Factor
- //Sp = Solublity Parameter
- //V = Molar Volume
- //All the above three parameters have to be mentioned as arguments while extending the thermodynamic Package Grayson Streed as shown below
- extends Simulator.Files.ThermodynamicPackages.GraysonStreed(W_c = {0.0949, 0.1841, 0.244612, 0.3125}, SP_c = {0.00297044, 0.00449341, 0.00437069, 0.00419199}, V_c = {61, 42.1382, 84.7207, 60.4292});
- extends Simulator.Streams.MaterialStream(Nc = 4, C = {eth, acet, dich, prop});
- //Equations
- equation
- P = 101325;
- T = 210.246;
- x_pc[1, :] = {0.4, 0.2, 0.3, 0.1};
- F_p[1] = 50;
- end GraysonStreed;
-end MaterialStream;
diff --git a/src/main/Simulator/Simulator/Examples/Mixer.mo b/src/main/Simulator/Simulator/Examples/Mixer.mo
deleted file mode 100644
index 1f4b19c..0000000
--- a/src/main/Simulator/Simulator/Examples/Mixer.mo
+++ /dev/null
@@ -1,79 +0,0 @@
-within Simulator.Examples;
-
-package Mixer
- extends Modelica.Icons.ExamplesPackage;
- model ms
- //This model will be instantiated in maintest model as material streams
- extends Simulator.Streams.MaterialStream;
- //material stream extended
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //thermodynamic package Raoults law is extended
- end ms;
-
- model mix
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethanol eth;
- parameter data.Methanol meth;
- parameter data.Water wat;
- parameter Integer Nc = 3;
- parameter data.GeneralProperties C[Nc] = {meth, eth, wat};
- ms ms1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-84, 88}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms ms2(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-84, 58}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms ms3(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-86, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms ms4(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-84, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms ms5(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-84, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- ms ms6(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-82, -86}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.UnitOperations.Mixer mixer1(Nc = Nc, NI = 6, C = C, outPress = "Inlet_Average") annotation(
- Placement(visible = true, transformation(origin = {-8, 2}, extent = {{-20, -20}, {20, 20}}, rotation = 0)));
- ms out1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {62, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
-
- equation
- connect(mixer1.outlet, out1.In) annotation(
- Line(points = {{12, 2}, {52, 2}, {52, 2}, {52, 2}}, color = {0, 70, 70}));
- connect(ms6.Out, mixer1.inlet[6]) annotation(
- Line(points = {{-72, -86}, {-28, -86}, {-28, 2}, {-28, 2}}, color = {0, 70, 70}));
- connect(ms5.Out, mixer1.inlet[5]) annotation(
- Line(points = {{-74, -52}, {-28, -52}, {-28, 2}, {-28, 2}}, color = {0, 70, 70}));
- connect(ms4.Out, mixer1.inlet[4]) annotation(
- Line(points = {{-74, -16}, {-28, -16}, {-28, 2}, {-28, 2}}, color = {0, 70, 70}));
- connect(ms3.Out, mixer1.inlet[3]) annotation(
- Line(points = {{-76, 24}, {-28, 24}, {-28, 2}, {-28, 2}}, color = {0, 70, 70}));
- connect(ms2.Out, mixer1.inlet[2]) annotation(
- Line(points = {{-74, 58}, {-28, 58}, {-28, 2}, {-28, 2}}, color = {0, 70, 70}));
- connect(ms1.Out, mixer1.inlet[1]) annotation(
- Line(points = {{-74, 88}, {-28, 88}, {-28, 2}, {-28, 2}}, color = {0, 70, 70}));
- ms1.P = 101325;
- ms2.P = 202650;
- ms3.P = 126523;
- ms4.P = 215365;
- ms5.P = 152365;
- ms6.P = 152568;
- ms1.T = 353;
- ms2.T = 353;
- ms3.T = 353;
- ms4.T = 353;
- ms5.T = 353;
- ms6.T = 353;
- ms1.F_p[1] = 100;
- ms2.F_p[1] = 100;
- ms3.F_p[1] = 300;
- ms4.F_p[1] = 500;
- ms5.F_p[1] = 400;
- ms6.F_p[1] = 200;
- ms1.x_pc[1, :] = {0.25, 0.25, 0.5};
- ms2.x_pc[1, :] = {0, 0, 1};
- ms3.x_pc[1, :] = {0.3, 0.3, 0.4};
- ms4.x_pc[1, :] = {0.25, 0.25, 0.5};
- ms5.x_pc[1, :] = {0.2, 0.4, 0.4};
- ms6.x_pc[1, :] = {0, 1, 0};
- end mix;
-end Mixer;
diff --git a/src/main/Simulator/Simulator/Examples/PFR.mo b/src/main/Simulator/Simulator/Examples/PFR.mo
deleted file mode 100644
index b89f5f4..0000000
--- a/src/main/Simulator/Simulator/Examples/PFR.mo
+++ /dev/null
@@ -1,52 +0,0 @@
-within Simulator.Examples;
-
-package PFR
- extends Modelica.Icons.ExamplesPackage;
- model MS
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end MS;
-
- model PFR_Test_II
- extends Modelica.Icons.Example;
- //*****Advicable to Select the First Component as the Base Component*****\\
- //========================================================================
- //Header Files and Packages
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Ethyleneoxide eth;
- parameter data.Ethyleneglycol eg;
- parameter data.Water wat;
- parameter Integer Nc = 3;
- parameter data.GeneralProperties C[Nc] = {eth, wat, eg};
-
- //========================================================================
- //Instantiation of Streams and Blocks
- Simulator.Examples.PFR.MS S1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-70, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.PFR.MS S2(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {90, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.UnitOperations.PFR.PFR B1(C = {eth, wat, eg}, Mode = "Isothermal",Nc = 3, Nr = 1, Pdel = 90.56, Phase = "Mixture", Tdef = 360,Basis="Molar Concentration") annotation(
- Placement(visible = true, transformation(origin = { 3, -1}, extent = {{-33, -33}, {33, 33}}, rotation = 0)));
- Simulator.Streams.EnergyStream Energy annotation(
- Placement(visible = true, transformation(origin = {-14, -54}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
-
- //========================================================================
- //Connections
- connect(Energy.Out, B1.En) annotation(
- Line(points = {{-4, -54}, {2, -54}, {2, 0}, {4, 0}}, color = {255, 0, 0}));
- connect(B1.Out, S2.In) annotation(
- Line(points = {{36, 0}, {80, 0}, {80, 0}, {80, 0}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-60, 0}, {-30, 0}, {-30, 0}, {-30, 0}}, color = {0, 70, 70}));
-
- //========================================================================
- //Inputs and Specifications
- S1.x_pc[1, :] = {0.2, 0.8, 0};
- S1.P = 100000;
- S1.T = 360;
- S1.F_p[1] = 100;
- B1.X_r[1] =0.0991;
- end PFR_Test_II;
-end PFR;
diff --git a/src/main/Simulator/Simulator/Examples/Pump.mo b/src/main/Simulator/Simulator/Examples/Pump.mo
deleted file mode 100644
index 939ab5a..0000000
--- a/src/main/Simulator/Simulator/Examples/Pump.mo
+++ /dev/null
@@ -1,47 +0,0 @@
-within Simulator.Examples;
-
-package Pump
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model main
- extends Modelica.Icons.Example;
- //=====================================================================
- //Header Files and Parameters
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- //=====================================================================
- //Instantiation of Streams and Blocks
- Simulator.Examples.Pump.ms S1(Nc = 2, C = {benz, tol}) annotation(
- Placement(visible = true, transformation(origin = {-70, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.UnitOperations.CentrifugalPump B1(C = {benz, tol}, Nc = 2, Eff = 0.75) annotation(
- Placement(visible = true, transformation(origin = {-8.99281e-15, -2}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- Simulator.Examples.Pump.ms S2(Nc = 2, C = {benz, tol}) annotation(
- Placement(visible = true, transformation(origin = {64, 12}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Streams.EnergyStream E1 annotation(
- Placement(visible = true, transformation(origin = {-38, -44}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
-
- //=====================================================================
- //Connections
- connect(E1.Out, B1.En) annotation(
- Line(points = {{-28, -44}, {0, -44}, {0, -12}, {0, -12}}, color = {255, 0, 0}));
- connect(B1.Out, S2.In) annotation(
- Line(points = {{14, 12}, {54, 12}, {54, 12}, {54, 12}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-60, 0}, {-14, 0}}, color = {0, 70, 70}));
-
- //=====================================================================
-//Inputs and Specifications
- S1.F_p[1] = 100;
- S1.x_pc[1, :] = {0.5, 0.5};
- S1.P = 101325;
- S1.T = 300;
- B1.Pdel = 101325;
- end main;
-end Pump;
diff --git a/src/main/Simulator/Simulator/Examples/ShortcutColumn.mo b/src/main/Simulator/Simulator/Examples/ShortcutColumn.mo
deleted file mode 100644
index ebcd218..0000000
--- a/src/main/Simulator/Simulator/Examples/ShortcutColumn.mo
+++ /dev/null
@@ -1,70 +0,0 @@
-within Simulator.Examples;
-
-package ShortcutColumn
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model Shortcut
- extends Simulator.UnitOperations.ShortcutColumn;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end Shortcut;
-
- model main
- extends Modelica.Icons.Example;
-
- //******Use Non-Linear Solver "Homotopy" for Solving this Model******\\
- //============================================================================
- //Header Files and Parameters
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Integer Nc = 2;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {benz, tol};
-
- //============================================================================
- //Instantiation of Streams and Blocks
- Simulator.Examples.ShortcutColumn.ms S1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-70, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.ShortcutColumn.ms S3(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {62, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.ShortcutColumn.ms S2(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {62, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream E1 annotation(
- Placement(visible = true, transformation(origin = {60, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Streams.EnergyStream E2 annotation(
- Placement(visible = true, transformation(origin = {62, -60}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
- Simulator.Examples.ShortcutColumn.Shortcut B1(Nc = Nc, C = C, HKey = 2, LKey = 1) annotation(
- Placement(visible = true, transformation(origin = {4, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
-
-
- //============================================================================
- //Connections
- connect(B1.En1, E1.In) annotation(
- Line(points = {{30, 60}, {50, 60}, {50, 60}, {50, 60}}, color = {255, 0, 0}));
- connect(E2.Out, B1.En2) annotation(
- Line(points = {{52, -60}, {28, -60}, {28, -60}, {30, -60}}, color = {255, 0, 0}));
- connect(B1.Out2, S3.In) annotation(
- Line(points = {{30, -30}, {52, -30}, {52, -30}, {52, -30}}, color = {0, 70, 70}));
- connect(B1.Out1, S2.In) annotation(
- Line(points = {{30, 30}, {52, 30}, {52, 30}, {52, 30}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-60, 0}, {-20, 0}, {-20, 0}, {-20, 0}}, color = {0, 70, 70}));
-
- //============================================================================
-//Inputs and Specifications
- S1.P = 101325;
- S1.T = 370;
- S1.x_pc[1, :] = {0.5, 0.5};
- S1.F_p[1] = 100;
- B1.Preb = 101325;
- B1.Pcond = 101325;
- B1.x_pc[2, B1.LKey] = 0.01;
- B1.x_pc[3, B1.HKey] = 0.01;
- B1.RR = 2;
- end main;
-end ShortcutColumn;
diff --git a/src/main/Simulator/Simulator/Examples/Splitter.mo b/src/main/Simulator/Simulator/Examples/Splitter.mo
deleted file mode 100644
index cd39347..0000000
--- a/src/main/Simulator/Simulator/Examples/Splitter.mo
+++ /dev/null
@@ -1,51 +0,0 @@
-within Simulator.Examples;
-
-package Splitter
- extends Modelica.Icons.ExamplesPackage;
- model ms
- extends Simulator.Streams.MaterialStream;
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- end ms;
-
- model main
- extends Modelica.Icons.Example;
- //===============================================================
- //Header Files and Parameters
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.Benzene benz;
- parameter data.Toluene tol;
- parameter Integer Nc = 2;
- parameter data.GeneralProperties C[Nc] = {benz, tol};
-
- //===============================================================
- //Instantiation of Streams and Blocks
- Simulator.Examples.Splitter.ms S1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-70, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Splitter.ms S2(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {38, 12}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Splitter.ms S3(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {38, -16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.UnitOperations.Splitter B1(Nc = Nc, C = C, No = 2, CalcType = "Molar_Flow") annotation(
- Placement(visible = true, transformation(origin = {-10, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- equation
-
-
- //===============================================================
- //Connections
- connect(B1.Out[2], S3.In) annotation(
- Line(points = {{0, 0}, {12, 0}, {12, -16}, {28, -16}}, color = {0, 70, 70}));
- connect(B1.Out[1], S2.In) annotation(
- Line(points = {{0, 0}, {12, 0}, {12, 12}, {28, 12}}, color = {0, 70, 70}));
- connect(S1.Out, B1.In) annotation(
- Line(points = {{-60, 0}, {-20, 0}, {-20, 0}, {-20, 0}}, color = {0, 70, 70}));
-
- //===============================================================
- //Inputs and Specifications
- S1.P = 101325;
- S1.T = 300;
- S1.x_pc[1, :] = {0.5, 0.5};
- S1.F_p[1] = 100;
- B1.SpecVal_s = {20, 80};
- end main;
-end Splitter;
diff --git a/src/main/Simulator/Simulator/Examples/Valve.mo b/src/main/Simulator/Simulator/Examples/Valve.mo
deleted file mode 100644
index a1f3766..0000000
--- a/src/main/Simulator/Simulator/Examples/Valve.mo
+++ /dev/null
@@ -1,47 +0,0 @@
-within Simulator.Examples;
-
-package Valve
- extends Modelica.Icons.ExamplesPackage;
- model ms
- //This model will be instantiated in maintest model as outlet stream of valve. Dont run this model. Run maintest model for valve test
- extends Simulator.Streams.MaterialStream;
- //material stream extended
- extends Simulator.Files.ThermodynamicPackages.RaoultsLaw;
- //thermodynamic package Raoults law is extended
- end ms;
-
- model valve
- extends Modelica.Icons.Example;
- import data = Simulator.Files.ChemsepDatabase;
- //instantiation of chemsep database
- parameter data.Methanol meth;
- //instantiation of methanol
- parameter data.Ethanol eth;
- //instantiation of ethanol
- parameter data.Water wat;
- //instantiation of water
- parameter Integer Nc = 3;
- parameter data.GeneralProperties C[Nc] = {meth, eth, wat};
- Simulator.UnitOperations.Valve valve1(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {0, 4}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- Simulator.Examples.Valve.ms inlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {-74, 4}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Examples.Valve.ms outlet(Nc = Nc, C = C) annotation(
- Placement(visible = true, transformation(origin = {71, 3}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- equation
- connect(valve1.Out, outlet.In) annotation(
- Line(points = {{14, 4}, {35, 4}, {35, 3}, {60, 3}}, color = {0, 70, 70}));
- connect(inlet.Out, valve1.In) annotation(
- Line(points = {{-64, 4}, {-14, 4}}, color = {0, 70, 70}));
- inlet.x_pc[1, :] = {0.33, 0.33, 0.34};
-//mixture molar composition
- inlet.P = 202650;
-//input pressure
- valve1.Pdel = 101325;
-//Pressure Drop
- inlet.T = 372;
-//input temperature
- inlet.F_p[1] = 100;
-//input molar flow
- end valve;
-end Valve;
diff --git a/src/main/Simulator/Simulator/Examples/package.mo b/src/main/Simulator/Simulator/Examples/package.mo
deleted file mode 100644
index 8be84f5..0000000
--- a/src/main/Simulator/Simulator/Examples/package.mo
+++ /dev/null
@@ -1,4 +0,0 @@
-within Simulator;
-package Examples
- extends Modelica.Icons.ExamplesPackage;
-end Examples;
diff --git a/src/main/Simulator/Simulator/Examples/package.order b/src/main/Simulator/Simulator/Examples/package.order
deleted file mode 100644
index 7e198d6..0000000
--- a/src/main/Simulator/Simulator/Examples/package.order
+++ /dev/null
@@ -1,19 +0,0 @@
-MaterialStream
-CompositeMS
-Heater
-HeatExchanger
-Cooler
-Valve
-Mixer
-CompoundSeparator
-ShortcutColumn
-Flash
-Splitter
-Pump
-Compressor
-Expander
-Distillation
-PFR
-CR
-Absorption
-EquilibriumReactor
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acenaphthene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acenaphthene.mo
deleted file mode 100644
index 9eaf293..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acenaphthene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acenaphthene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 177, name = "Acenaphthene", CAS = "83-32-9", Tc = 803.15, Pc = 3100000, Vc = 0.553, Cc = 0.257, Tb = 550.54, Tm = 366.56, TT = 366.56, TP = 199.997, MW = 154.208, LVB = 0.149792, AF = 0.381147, SP = 19480, DM = 8.5E-31, SH = -168070000.0, IGHF = 1.55E+08, GEF = 2.602E+08, AS = 368900, HFMP = 2.1462E+07, HOC = -6.0014E+09, LiqDen = {105, 0.39942, 0.22066, 803.15, 0.24043, 0}, VP = {101, 73.737, -9735.5, -7.1321, 0.0000016079, 2}, LiqCp = {16, 173930, 379.65, 5.6292, 0.017939, -0.000013551}, HOV = {106, 3.785978E+08, 10.14483, -25.41937, 26.03775, -9.982155}, VapCp = {16, 60762, -515.4, 13.307, -0.000026823, -1.013E-08}, LiqVis = {101, -8.2073, 1373.2, -0.25871, -0.0000036859, 2}, VapVis = {102, 0.0000015547, 0.4064, 630.11, 26.274, 0}, LiqK = {16, 0.059552, -91.592, -1.7169, -0.0019056, 1.2951E-07}, VapK = {102, 0.000078027, 1.0286, 593.39, 37622, 0}, Racketparam = 0.257114, UniquacR = 5.997356, UniquacQ = 3.96, ChaoSeadAF = 0.382, ChaoSeadSP = 19480.5, ChaoSeadLV = 0.149792);
-end Acenaphthene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetaldehyde.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetaldehyde.mo
deleted file mode 100644
index 2dfb3e9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetaldehyde.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acetaldehyde
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 46, name = "Acetaldehyde", CAS = "75-07-0", Tc = 466, Pc = 5550000, Vc = 0.154, Cc = 0.221, Tb = 294, Tm = 150.15, TT = 150.15, TP = 0.323203, MW = 44.0526, LVB = 0.0568878, AF = 0.290734, SP = 20110, DM = 8.97E-30, SH = -166400000.0, IGHF = -1.664E+08, GEF = -1.333E+08, AS = 264200, HFMP = 3220000, HOC = -1.1045E+09, LiqDen = {105, 1.2346, 0.22392, 466, 0.25025, 0}, VP = {101, 132.6058, -7086.883, -17.42481, 0.0000237457, 2}, LiqCp = {16, 72077, 1068.4, -6.4275, 0.06878, -0.000079154}, HOV = {106, 1.4565E+07, -6.1925, 18.559, -20.707, 8.5605}, VapCp = {16, 42578, -730.39, 11.883, 0.000033485, -3.0296E-08}, LiqVis = {101, -4.0316, 623.05, -1.1589, 8.4583E-07, 2}, VapVis = {102, 1.1933E-07, 0.78879, 65.293, 1023.3, 0}, LiqK = {16, 0.014392, -40.45, -0.67323, -0.0036191, 0.0000011083}, VapK = {102, 3.2627E-07, 1.8293, -23.073, 3397.7, 0}, Racketparam = 0, UniquacR = 1.9, UniquacQ = 1.8, ChaoSeadAF = 0.316685, ChaoSeadSP = 19818.5, ChaoSeadLV = 0.0564965);
-end Acetaldehyde;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticacid.mo
deleted file mode 100644
index 33cadcf..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Aceticacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 48, name = "Aceticacid", CAS = "64-19-7", Tc = 594.45, Pc = 5790000, Vc = 0.171, Cc = 0.2, Tb = 391.04, Tm = 289.81, TT = 289.81, TP = 1280, MW = 60.053, LVB = 0.05753, AF = 0.46, SP = 19060, DM = 5.8E-30, SH = -52630000.0, IGHF = -4.328E+08, GEF = -3.745E+08, AS = 282500, HFMP = 1.173E+07, HOC = -7.866E+08, LiqDen = {105, 1.0627, 0.22174, 594.76, 0.22566, 0}, VP = {101, 87.50607, -7603.906, -9.655308, 7.168835E-06, 2}, LiqCp = {16, 49034, 1051.1, 0.77564, 0.031667, -0.000028344}, HOV = {106, 6.6203E+07, 6.7121, -17.45, 17.2, -6.0038}, VapCp = {16, 40110, -588.24, 12.017, 0.00016249, -8.6918E-08}, LiqVis = {101, -58.528, 2990.9, 7.4911, -0.000011028, 2}, VapVis = {102, 4.3395E-09, 1.24, -175.09, 25013, 0}, LiqK = {16, 0.11159, -531.13, 1.6359, -0.009369, -7.1996E-07}, VapK = {102, 0.34137, -0.80579, -824.3, 175840, 0}, Racketparam = 0, UniquacR = 2.23, UniquacQ = 2.04, ChaoSeadAF = 0.4566, ChaoSeadSP = 18501.7, ChaoSeadLV = 0.0575804);
-end Aceticacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticanhydride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticanhydride.mo
deleted file mode 100644
index 6218d86..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aceticanhydride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Aceticanhydride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 404, name = "Aceticanhydride", CAS = "108-24-7", Tc = 569.15, Pc = 4280000, Vc = 0.29, Cc = 0.23, Tb = 413.15, Tm = 200.15, TT = 200.15, TP = 0.0219995, MW = 102.089, LVB = 0.0949602, AF = 0.809524, SP = 22010, DM = 9.3E-30, SH = -22600000.0, IGHF = -5.735E+08, GEF = -4.767E+08, AS = 389900, HFMP = 1.05E+07, HOC = -1.675E+09, LiqDen = {105, 1.3543, 0.3062, 584.65, 0.43334, 0}, VP = {101, 94.79499, -8627.117, -10.49847, 0.0000051448, 2}, LiqCp = {16, -76055, 674.26, 4.7415, 0.026829, -0.000028167}, HOV = {106, 4.787557E+07, -0.639261, 1.651354, -0.778133, -0.0411955}, VapCp = {16, 63862, -716.36, 13.016, -0.00041944, 1.1702E-07}, LiqVis = {101, -13.196, 1321.3, 0.29135, 3.1938E-07, 2}, VapVis = {102, 1.3132E-07, 0.7781, 96.036, 3593.8, 0}, LiqK = {16, 0.0017236, -11.978, -1.3413, -0.0012823, -6.1388E-07}, VapK = {102, 0.0003967, 0.81349, 426.6, 140300, 0}, Racketparam = 0.23, UniquacR = 3.586025, UniquacQ = 3.224, ChaoSeadAF = 0.453, ChaoSeadSP = 22010, ChaoSeadLV = 0.0949602);
-end Aceticanhydride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetone.mo
deleted file mode 100644
index 81c392a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acetone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 62, name = "Acetone", CAS = "67-64-1", Tc = 508.1, Pc = 4700000, Vc = 0.209, Cc = 0.233, Tb = 329.22, Tm = 178.45, TT = 178.45, TP = 2.78509, MW = 58.08, LVB = 0.07394, AF = 0.307, SP = 19730, DM = 9.61E-30, SH = 20230000.0, IGHF = -2.157E+08, GEF = -1.513E+08, AS = 295400, HFMP = 5774000, HOC = -1.659E+09, LiqDen = {105, 1.1051, 0.24556, 508.21, 0.27409, 0}, VP = {101, 72.77713, -5752.936, -7.680083, 6.83076E-06, 2}, LiqCp = {16, 107130, 725.57, 0.95296, 0.025981, -0.00001439}, HOV = {106, 6.6943E+07, 3.4736, -8.9271, 10.062, -4.1656}, VapCp = {16, 52915, -669.27, 12.201, 0.00012839, -5.8844E-08}, LiqVis = {101, -14.064, 1000.7, 0.45349, 3.9456E-07, 2}, VapVis = {102, 3.1012E-08, 0.97616, 23.042, 14.834, 0}, LiqK = {16, 0.01013, -95.32, -0.21151, -0.0052616, 0.0000023043}, VapK = {102, -26.882, 0.9036, -1.2095E+08, -6.0879E+08, 0}, Racketparam = 0, UniquacR = 2.5735, UniquacQ = 2.336, ChaoSeadAF = 0.3099, ChaoSeadSP = 19729.7, ChaoSeadLV = 0.0738386);
-end Acetone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetonitrile.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetonitrile.mo
deleted file mode 100644
index 767102b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetonitrile.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acetonitrile
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 42, name = "Acetonitrile", CAS = "75-05-8", Tc = 545.5, Pc = 4830000, Vc = 0.173, Cc = 0.184, Tb = 354.75, Tm = 229.32, TT = 229.32, TP = 186.945, MW = 41.0519, LVB = 0.0528577, AF = 0.337886, SP = 24050, DM = 1.31E-29, SH = 28450000.0, IGHF = 7.404E+07, GEF = 9.1868E+07, AS = 243290, HFMP = 8167000, HOC = -1.19043E+09, LiqDen = {105, 1.3064, 0.22597, 545.5, 0.28678, 0}, VP = {101, 63.90188, -5635.018, -6.338065, 5.801644E-06, 2}, LiqCp = {16, 78687, 635.92, 1.7473, 0.02389, -0.000017421}, HOV = {106, 4.416703E+07, 0.0989791, 1.817987, -3.443548, 1.854664}, VapCp = {16, 41003, -679.99, 11.578, 0.00010104, -4.1014E-08}, LiqVis = {101, -31.531, 1522.1, 3.3306, -0.0000059061, 2}, VapVis = {102, 5.1905E-08, 0.88581, 38.325, 87.034, 0}, LiqK = {16, 0.18265, 8401.9, -103.1, 0.40559, -0.00056286}, VapK = {102, 4.7622E-08, 2.1156, 30.88, -14671, 0}, Racketparam = 0.260911, UniquacR = 1.87, UniquacQ = 1.72, ChaoSeadAF = 0.338174, ChaoSeadSP = 24093.5, ChaoSeadLV = 0.0526772);
-end Acetonitrile;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylchloride.mo
deleted file mode 100644
index 4b14708..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acetylchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 40, name = "Acetylchloride", CAS = "75-36-5", Tc = 508, Pc = 5740000, Vc = 0.196, Cc = 0.266, Tb = 323.9, Tm = 160.3, TT = 160.3, TP = 0.0945737, MW = 78.4976, LVB = 0.0713449, AF = 0.334018, SP = 19730, DM = 9.07E-30, SH = 28450000.0, IGHF = -2.4351E+08, GEF = -2.058E+08, AS = 295000, HFMP = 2.75307E+08, HOC = -8.7599E+08, LiqDen = {105, 1.4254, 0.27938, 508, 0.26304, 0}, VP = {101, 99.17638, -7177.914, -11.22425, -0.0000057394, 2}, LiqCp = {16, 42690, 1356.4, -2.0032, 0.038796, -0.000032805}, HOV = {106, 4.0E+07, 0.3, 0, 0, 0}, VapCp = {16, 55490, -733.46, 11.97, -0.00022853, 6.1958E-08}, LiqVis = {101, 4.4371, 130.26, -2.2299, -8.5166E-07, 2}, VapVis = {102, 5.0377E-08, 0.94052, 79.768, -9041.6, 0}, LiqK = {16, 0.11965, 1957.5, -32.911, 0.1548, -0.00027429}, VapK = {102, -27944, 0.34599, -4.878E+09, -7.8546E+10, 0}, Racketparam = 0.26125, UniquacR = 2.438365, UniquacQ = 2.208, ChaoSeadAF = 0.334018, ChaoSeadSP = 20189.2, ChaoSeadLV = 0.0712327);
-end Acetylchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylene.mo
deleted file mode 100644
index 9991dc1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acetylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acetylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 37, name = "Acetylene", CAS = "74-86-2", Tc = 308.3, Pc = 6114000, Vc = 0.1122, Cc = 0.268, Tb = 188.4, Tm = 192.4, TT = 192.4, TP = 127445, MW = 26.038, LVB = 0.04347, AF = 0.189, SP = 7921, DM = 0, SH = 228200000.0, IGHF = 2.282E+08, GEF = 2.1068E+08, AS = 200810, HFMP = 3770000, HOC = -1.257E+09, LiqDen = {105, 2.8265, 0.29316, 308.3, 0.31711, 0}, VP = {101, 82.22155, -3603.253, -10.0271, 0.0000269397, 2}, LiqCp = {16, 79227, 3177.2, -44.249, 0.23814, -0.00030171}, HOV = {106, 3.8817E+07, 1.497, -1.0261, 0.037348, -0.024401}, VapCp = {16, 28271.69, -404.2493, 11.05572, -0.000229636, 1.424209E-07}, LiqVis = {101, -10.822, 283.23, 0.22007, -0.0000091126, 2}, VapVis = {102, 0.0000010997, 0.50414, 259.72, 2787.3, 0}, LiqK = {16, -0.060328, -110.3, 0.44567, -0.0073832, 0.0000024581}, VapK = {102, 0.000078096, 1.0286, -36.515, 33144, 0}, Racketparam = 0.2712, UniquacR = 1.52, UniquacQ = 1.39, ChaoSeadAF = 0.1841, ChaoSeadSP = 18813, ChaoSeadLV = 0.0421382);
-end Acetylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylicacid.mo
deleted file mode 100644
index f8f90b4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acrylicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 394, name = "Acrylicacid", CAS = "79-10-7", Tc = 654.15, Pc = 5664070, Vc = 0.210712, Cc = 0.23, Tb = 414.15, Tm = 286.15, TT = 286.15, TP = 257.117, MW = 72.0627, LVB = 0.068927, AF = 0.220736, SP = 19230, DM = 4.87E-30, SH = -22600000.0, IGHF = -3.371E+08, GEF = -2.861E+08, AS = 315000, HFMP = 1.117E+07, HOC = -1.28022E+09, LiqDen = {105, 0.11535, 0.078693, 654.15, 0.16945, 0}, VP = {101, 55.86645, -7062.889, -4.564151, 1.238643E-06, 2}, LiqCp = {16, 142250, 1837.1, -38.373, 0.21763, -0.00027035}, HOV = {106, 6.9258E+07, 1.9796, 2.7587, -12.283, 8.2823}, VapCp = {16, 49916, -589.6, 12.259, -0.00013536, 3.0855E-08}, LiqVis = {101, -113.67, 5526.6, 15.75, -0.000015983, 2}, VapVis = {102, 2.4666E-07, 0.69704, 207.66, -6104.4, 0}, LiqK = {16, -0.40695, 33.472, -0.79449, 0.00078306, -0.0000013868}, VapK = {102, 0.00092475, 0.70367, 626.1, 112700, 0}, Racketparam = 0.23, UniquacR = 2.6467, UniquacQ = 2.4, ChaoSeadAF = 0.538324, ChaoSeadSP = 19230, ChaoSeadLV = 0.068927);
-end Acrylicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylonitrile.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylonitrile.mo
deleted file mode 100644
index 558c0c3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Acrylonitrile.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Acrylonitrile
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 58, name = "Acrylonitrile", CAS = "107-13-1", Tc = 535, Pc = 4480000, Vc = 0.212, Cc = 0.214, Tb = 350.5, Tm = 189.63, TT = 189.63, TP = 3.68289, MW = 53.0626, LVB = 0.0662367, AF = 0.349801, SP = 21560, DM = 1.29E-29, SH = -47150000.0, IGHF = 1.837E+08, GEF = 1.937E+08, AS = 275300, HFMP = 6230000, HOC = -1.69E+09, LiqDen = {105, 1.0816, 0.2293, 535, 0.28939, 0}, VP = {101, 74.54771, -6259.727, -7.785577, 4.08032E-06, 2}, LiqCp = {16, 83847, 240.59, 6.8887, 0.0095277, -0.0000046046}, HOV = {106, 5.224752E+07, 0.877802, -0.432396, -0.672186, 0.607598}, VapCp = {16, 42651, -533.04, 11.728, 0.00013096, -6.2176E-08}, LiqVis = {101, -0.5429, 318.29, -1.481, -8.3759E-07, 2}, VapVis = {102, 4.616E-08, 0.90278, 67.424, -1672.6, 0}, LiqK = {16, -0.15669, 19.22, -1.0721, 0.00025871, -0.0000022582}, VapK = {102, 0.0012317, 1.2472, 60863, -1968600, 0}, Racketparam = 0.259865, UniquacR = 2.31, UniquacQ = 2.05, ChaoSeadAF = 0.349801, ChaoSeadSP = 21555.4, ChaoSeadLV = 0.0662367);
-end Acrylonitrile;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Adipicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Adipicacid.mo
deleted file mode 100644
index 09b05d3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Adipicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Adipicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 400, name = "Adipicacid", CAS = "124-04-9", Tc = 809, Pc = 3530000, Vc = 0.4, Cc = 0.21, Tb = 611, Tm = 426.15, TT = 425.5, TP = 78.0827, MW = 146.141, LVB = 0.133942, AF = 1.05065, SP = 25370, DM = 7.74E-30, SH = -22600000.0, IGHF = -8.65E+08, GEF = -6.82E+08, AS = 482000, HFMP = 1.67E+07, HOC = -2.58E+09, LiqDen = {105, 0.64797, 0.25918, 809, 0.28198, 0}, VP = {101, 255.2237, -23233.92, -32.83085, 0.000013435, 2}, LiqCp = {16, 235940, -32.997, 10.809, 0.0032672, -0.0000019456}, HOV = {106, 1.949255E+08, 0.823008, 2.518159, -5.646327, 2.784565}, VapCp = {16, 85474, -423.41, 12.745, 0.00026178, -1.1462E-07}, LiqVis = {101, -8.4738, 3093.2, -0.68319, 4.5668E-07, 2}, VapVis = {102, 8.6397E-08, 0.79699, 129.04, -83.45, 0}, LiqK = {16, -0.15138, 31.723, -1.1417, 0.000072402, -7.2467E-07}, VapK = {102, 0.00019846, 0.87712, 520.45, 62013, 0}, Racketparam = 0.21, UniquacR = 5.3002, UniquacQ = 4.608, ChaoSeadAF = 1.05065, ChaoSeadSP = 25370, ChaoSeadLV = 0.133942);
-end Adipicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Air.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Air.mo
deleted file mode 100644
index 2b397f4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Air.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Air
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 1, name = "Air", CAS = "132259-10-0", Tc = 132.45, Pc = 3774000, Vc = 0.09147, Cc = 0.313, Tb = 78.67, Tm = 59.15, TT = 59.15, TP = 5642.15, MW = 28.96, LVB = 0.0329147, AF = 0, SP = 12750, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 199000, HFMP = 0, HOC = 0, LiqDen = {105, 2.6731, 0.25637, 132.51, 0.26788, 0}, VP = {101, 14.794, -599.85, 1.0009, -3.9938E-07, 2}, LiqCp = {16, 53628, 4511.1, -143.29, 1.582, -0.0051332}, HOV = {106, 7385651, 0.276676, 0.211253, -0.836764, 0.722737}, VapCp = {100, 29562.29, -7.164949, 0.0216294, -0.0000139748, 2.89195E-09}, LiqVis = {101, -72.336, 813.48, 12.687, -0.00033062, 2}, VapVis = {102, 0.000001592, 0.48975, 123.45, -829.58, 0}, LiqK = {16, -0.21199, -16.311, -0.23057, -0.0076197, 0.0000025018}, VapK = {102, 0.0003511, 0.76492, 16.071, 1084.4, 0}, Racketparam = 0.29056, UniquacR = 0, UniquacQ = 0, ChaoSeadAF = -0.00787976, ChaoSeadSP = 12749.8, ChaoSeadLV = 0.0329147);
-end Air;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ammonia.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ammonia.mo
deleted file mode 100644
index 055eefc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ammonia.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ammonia
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 16, name = "Ammonia", CAS = "7664-41-7", Tc = 405.4, Pc = 1.1353E+07, Vc = 0.07247, Cc = 0.255, Tb = 239.82, Tm = 195.41, TT = 195.41, TP = 6111.09, MW = 17.031, LVB = 0.02496, AF = 0.256, SP = 24790, DM = 4.9E-30, SH = -45898000.0, IGHF = -4.5898E+07, GEF = -1.64E+07, AS = 192660, HFMP = 5657000, HOC = -3.1683E+08, LiqDen = {105, 4.0518, 0.27129, 405.4, 0.31349, 0}, VP = {101, 62.8849, -4136.862, -6.320663, 9.203947E-06, 2}, LiqCp = {16, 77659, -45330, 445.74, -1.4197, 0.0015508}, HOV = {106, 2.4542E+07, -1.3178, 4.7194, -5.4808, 2.4196}, VapCp = {16, 33239, -913.64, 10.802, 0.00021047, -4.1739E-08}, LiqVis = {101, -39.742, 1486.5, 4.7749, -0.000015796, 2}, VapVis = {102, 0.0000000459, 0.96936, 48.366, -2671.4, 0}, LiqK = {16, -0.95309, 14.684, 0.56768, -0.00028968, -0.0000019238}, VapK = {102, 0.000016165, 1.3146, 75.168, -8202.1, 0}, Racketparam = 0, UniquacR = 0.9097, UniquacQ = 0.98, ChaoSeadAF = 0.2517, ChaoSeadSP = 29224.9, ChaoSeadLV = 0.0249801);
-end Ammonia;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aniline.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aniline.mo
deleted file mode 100644
index 9ea052b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Aniline.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Aniline
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 127, name = "Aniline", CAS = "62-53-3", Tc = 699, Pc = 5310000, Vc = 0.2739, Cc = 0.256, Tb = 457.17, Tm = 267.13, TT = 267.13, TP = 7.13219, MW = 93.128, LVB = 0.09152, AF = 0.38, SP = 24120, DM = 5.1E-30, SH = -168070000.0, IGHF = 8.71E+07, GEF = 1.668E+08, AS = 319800, HFMP = 1.054E+07, HOC = -3.239E+09, LiqDen = {105, 1.0034, 0.27828, 699.16, 0.26553, 0}, VP = {101, 51.415, -7256.776, -3.968851, 1.89237E-06, 1.941839}, LiqCp = {16, 113560, -229.45, 12.348, -0.001777, 0.0000025731}, HOV = {106, 6.518054E+07, -0.829815, 5.221579, -7.587726, 3.672676}, VapCp = {16, 53776, -561.43, 12.878, -0.00018357, 4.6595E-08}, LiqVis = {101, -411.9909, 17880.72, 61.83069, -0.0000659764, 2}, VapVis = {102, 1.8398E-07, 0.71832, 209.33, -5579.1, 0}, LiqK = {16, 0.065783, -186.09, -0.85045, -0.0016475, -0.0000028261}, VapK = {102, 0.00025341, 0.90822, 897.01, -19862, 0}, Racketparam = 0, UniquacR = 3.72, UniquacQ = 2.82, ChaoSeadAF = 0.404143, ChaoSeadSP = 24125.7, ChaoSeadLV = 0.0916034);
-end Aniline;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Anisole.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Anisole.mo
deleted file mode 100644
index 8628dc6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Anisole.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Anisole
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 334, name = "Anisole", CAS = "100-66-3", Tc = 642.15, Pc = 4180000, Vc = 0.337, Cc = 0.267, Tb = 426.95, Tm = 235.85, TT = 235.65, TP = 2.44662, MW = 108.138, LVB = 0.109167, AF = 0.350169, SP = 20110, DM = 4.54E-30, SH = -216400000.0, IGHF = -6.8E+07, GEF = 2.27E+07, AS = 361000, HFMP = 9600000, HOC = -3.6018E+09, LiqDen = {105, 0.67524, 0.24431, 645.61, 0.26239, 0}, VP = {101, 117.0581, -9318.991, -14.12565, 9.850515E-06, 2}, LiqCp = {16, 128070, -77.615, 10.002, 0.0059631, -0.0000043683}, HOV = {106, 6.1782E+07, 0.29654, 0.81637, -1.3762, 0.64684}, VapCp = {16, -116340, -170.41, 12.829, 0.00034368, -1.0767E-07}, LiqVis = {101, -16.864, 1572.6, 0.82898, -2.2828E-07, 2}, VapVis = {102, 1.7587E-07, 0.71998, 171.18, 1705.8, 0}, LiqK = {16, -0.15959, 21.142, -1.1373, -0.0000023738, -0.0000009757}, VapK = {102, 0.00055356, 0.7624, 342.48, 235670, 0}, Racketparam = 0.267, UniquacR = 4.1667, UniquacQ = 3.208, ChaoSeadAF = 0.350169, ChaoSeadSP = 20110, ChaoSeadLV = 0.109167);
-end Anisole;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Argon.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Argon.mo
deleted file mode 100644
index 3241716..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Argon.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Argon
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 2, name = "Argon", CAS = "7440-37-1", Tc = 150.86, Pc = 4898000, Vc = 0.07457, Cc = 0.291, Tb = 87.27, Tm = 83.8039, TT = 83.8, TP = 68906.1, MW = 39.948, LVB = 0.0291, AF = -0.002, SP = 14138.3, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 154732, HFMP = 1184900, HOC = 0, LiqDen = {105, 3.803, 0.286, 150.86, 0.2984, 0}, VP = {101, 44.369, -1126.1, -4.5688, 0.000062339, 2}, LiqCp = {16, 46085, -1304.5, 21.195, -0.015382, 0.000033063}, HOV = {106, 7981000, 0.099752, 0.32009, -0.11898, 0.031141}, VapCp = {16, 20786, 0, 0, 0, 0}, LiqVis = {101, -99.903, 1347.5, 17.615, -0.00032893, 2}, VapVis = {102, 0.0000010023, 0.5922, 85.563, 238.26, 0}, LiqK = {16, -0.30397, -0.82999, -0.71462, -0.00039294, -0.000012209}, VapK = {102, 0.00013095, 0.81923, -122.33, 13993, 0}, Racketparam = 0, UniquacR = 1.1074, UniquacQ = 1.068, ChaoSeadAF = -0.002, ChaoSeadSP = 14138.3, ChaoSeadLV = 0.0285865);
-end Argon;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzene.mo
deleted file mode 100644
index 73a5082..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Benzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 125, name = "Benzene", CAS = "71-43-2", Tc = 562.05, Pc = 4895000, Vc = 0.256, Cc = 0.268, Tb = 353.24, Tm = 278.68, TT = 278.68, TP = 4764.22, MW = 78.114, LVB = 0.08941, AF = 0.209, SP = 18700, DM = 0, SH = -168070000.0, IGHF = 8.288E+07, GEF = 1.296E+08, AS = 269300, HFMP = 9866000, HOC = -3.136E+09, LiqDen = {105, 0.99938, 0.26348, 562.05, 0.27856, 0}, VP = {101, 88.368, -6712.9, -10.022, 0.000007694, 2}, LiqCp = {16, 111460, -1854.3, 22.399, -0.028936, 0.000028991}, HOV = {106, 4.881E+07, 0.61066, -0.25882, 0.032238, 0.022475}, VapCp = {16, 34010.24, -588.0978, 12.81777, -0.000197306, 5.142899E-08}, LiqVis = {101, -24.61, 1576.5, 2.1698, -0.0000051366, 2}, VapVis = {102, 3.1366E-08, 0.9675, 8.0285, -35.629, 0}, LiqK = {16, 0.049539, -177.97, 0.19475, -0.0073805, 0.0000027938}, VapK = {102, 0.0000049549, 1.4519, 154.14, 26202, 0}, Racketparam = 0.2696, UniquacR = 3.1878, UniquacQ = 2.4, ChaoSeadAF = 0.213, ChaoSeadSP = 18736.78, ChaoSeadLV = 0.0894);
-end Benzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzoicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzoicacid.mo
deleted file mode 100644
index 561a8a9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Benzoicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Benzoicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 396, name = "Benzoicacid", CAS = "65-85-0", Tc = 751, Pc = 4470000, Vc = 0.344, Cc = 0.246, Tb = 523.15, Tm = 395.55, TT = 395.45, TP = 795.501, MW = 122.121, LVB = 0.112442, AF = 0.602794, SP = 24590, DM = 3.34E-30, SH = -22600000.0, IGHF = -2.902E+08, GEF = -2.142E+08, AS = 369000, HFMP = 1.807E+07, HOC = -3.0951E+09, LiqDen = {105, 0.7147, 0.24811, 751, 0.28445, 0}, VP = {101, 444.4847, -30166.81, -61.25117, 0.000029739, 2}, LiqCp = {16, 78008, 1056.8, 2.5621, 0.02421, -0.000017579}, HOV = {106, 6.7437E+07, 0.13946, -2.3071, 5.0416, -2.5138}, VapCp = {16, 71253, -905.31, 13.682, -0.00087786, 2.5351E-07}, LiqVis = {101, -204.19, 11713, 28.642, -0.000020228, 2}, VapVis = {102, 7.426E-08, 0.8289, 91.171, 5.6616, 0}, LiqK = {16, -0.26694, 24.352, -0.89204, 0.00010336, -5.9141E-07}, VapK = {102, 0.000021559, 1.1593, 126.16, 64371, 0}, Racketparam = 0.246, UniquacR = 4.323, UniquacQ = 3.344, ChaoSeadAF = 0.602794, ChaoSeadSP = 24590, ChaoSeadLV = 0.112442);
-end Benzoicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Biphenyl.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Biphenyl.mo
deleted file mode 100644
index 1aa21e6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Biphenyl.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Biphenyl
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 178, name = "Biphenyl", CAS = "92-52-4", Tc = 789.26, Pc = 3847270, Vc = 0.491118, Cc = 0.294, Tb = 528.15, Tm = 342.35, TT = 342.372, TP = 84.2725, MW = 154.211, LVB = 0.155536, AF = 0.3643, SP = 19383, DM = 0, SH = -168070000.0, IGHF = 1.82088E+08, GEF = 2.80077E+08, AS = 392668, HFMP = 1.85769E+07, HOC = -6.0317E+09, LiqDen = {105, 0.50803, 0.25417, 789.26, 0.2795, 0}, VP = {101, 154.3401, -13555.42, -19.05582, 8.30386E-06, 2}, LiqCp = {16, 24132, -12.395, 11.585, 0.0029407, -0.0000014331}, HOV = {106, 8.680865E+07, 0.473092, 1.061004, -2.226343, 1.156876}, VapCp = {16, 79583, -635.84, 13.574, -0.00034935, 9.291E-08}, LiqVis = {101, -10.998, 1574.4, -0.022671, -3.4058E-07, 2}, VapVis = {102, 1.7776E-07, 0.70632, 118.6, 61798, 0}, LiqK = {16, 0.086277, -343.48, 0.36261, -0.00791, 0.0000032504}, VapK = {102, 0.000031971, 1.1528, 215.14, 115000, 0}, Racketparam = 0, UniquacR = 6.0434, UniquacQ = 4.24, ChaoSeadAF = 0.3643, ChaoSeadSP = 19383, ChaoSeadLV = 0.155536);
-end Biphenyl;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromine.mo
deleted file mode 100644
index 1503635..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Bromine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 3, name = "Bromine", CAS = "7726-95-6", Tc = 584.15, Pc = 1.03E+07, Vc = 0.135, Cc = 0.286, Tb = 331.9, Tm = 265.9, TT = 265.85, TP = 5853.37, MW = 159.808, LVB = 0.0514795, AF = 0.128997, SP = 23590, DM = 0, SH = 0.0, IGHF = 3.091E+07, GEF = 3140000, AS = 245350, HFMP = 1.057E+07, HOC = 0, LiqDen = {105, 2.0603, 0.28982, 584.15, 0.28948, 0}, VP = {101, 63.657, -5321.6, -6.3199, 0.0000054412, 2}, LiqCp = {16, 75351, -4.87E+07, 54033, 102.73, 0.43775}, HOV = {106, 3.8419E+07, -0.26282, 2.1808, -2.7529, 1.1823}, VapCp = {16, 35000, -410, 8.5, -0.00016, -0.00000001}, LiqVis = {101, -5.9813, 410.55, -0.30036, -0.000006936, 2}, VapVis = {102, 1.1438E-07, 0.88111, 59.595, -6723.3, 0}, LiqK = {16, -0.69183, 27.775, -0.38966, 0.00057103, -8.8462E-07}, VapK = {102, 0.0000065648, 1.4785, 4505.6, -870500, 0}, Racketparam = 0.279241, UniquacR = 1.8985, UniquacQ = 1.672, ChaoSeadAF = 0.108, ChaoSeadSP = 23591.8, ChaoSeadLV = 0.0514795);
-end Bromine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromobenzene.mo
deleted file mode 100644
index 7d9ec50..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Bromobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Bromobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 121, name = "Bromobenzene", CAS = "108-86-1", Tc = 670.15, Pc = 4519100, Vc = 0.324, Cc = 0.263, Tb = 429.236, Tm = 242.43, TT = 242.43, TP = 7.8364, MW = 157.008, LVB = 0.105567, AF = 0.250575, SP = 19940, DM = 5.67059E-30, SH = -168070000.0, IGHF = 1.05018E+08, GEF = 1.38532E+08, AS = 324386, HFMP = 1.06274E+07, HOC = -3.01917E+09, LiqDen = {105, 0.8226, 0.26632, 670.15, 0.2821, 0}, VP = {101, 146.6319, -10375.07, -18.74897, 0.0000147083, 2}, LiqCp = {16, 97487, 953.8, 2.1839, 0.023716, -0.000017458}, HOV = {106, 5.656362E+07, 0.347537, 0.135082, 0.0123621, -0.140849}, VapCp = {16, 65656, -767.67, 13.165, -0.00063667, 1.8215E-07}, LiqVis = {101, -54.93, 2754.4, 6.973, -0.000009784, 2}, VapVis = {102, 2.2327E-07, 0.71456, 185.02, -22.393, 0}, LiqK = {16, 0.032562, -180.04, -0.56464, -0.0046562, 1.7973E-07}, VapK = {102, 0.00025787, 0.79923, 269.79, 163730, 0}, Racketparam = 0, UniquacR = 3.9709, UniquacQ = 2.952, ChaoSeadAF = 0.250575, ChaoSeadSP = 19944.7, ChaoSeadLV = 0.105567);
-end Bromobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Butanal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Butanal.mo
deleted file mode 100644
index 2c2a578..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Butanal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Butanal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 319, name = "Butanal", CAS = "123-72-8", Tc = 521.15, Pc = 4000000, Vc = 0.263, Cc = 0.25, Tb = 347.95, Tm = 176.75, TT = 176.75, TP = 0.316993, MW = 72.1057, LVB = 0.0904328, AF = 0.277417, SP = 18660, DM = 9.07E-30, SH = -1209000000.0, IGHF = -2.07E+08, GEF = -1.1539E+08, AS = 344900, HFMP = 1.109E+07, HOC = -2.3035E+09, LiqDen = {105, 1.0715, 0.2723, 521.3, 0.27225, 0}, VP = {101, 99.51827, -7112.269, -11.7407, 9.521179E-06, 2}, LiqCp = {16, 146790, -6569.4, 41.653, -0.01116, -0.000075065}, HOV = {106, 4.118197E+07, -1.36073, 5.949252, -7.213209, 2.926745}, VapCp = {16, 84791, -954.83, 13.167, -0.00050103, 1.5222E-07}, LiqVis = {101, -14.207, 1014.9, 0.55992, -0.0000018129, 2}, VapVis = {102, 9.4037E-07, 0.50713, 464.89, -11049, 0}, LiqK = {16, 0.054171, 0.30189, -1.9042, -0.00054405, -0.0000037387}, VapK = {102, 784.27, 0.98392, 6.406E+09, -1.3461E+11, 0}, Racketparam = 0.25, UniquacR = 3.2479, UniquacQ = 2.876, ChaoSeadAF = 0.277417, ChaoSeadSP = 18660, ChaoSeadLV = 0.0904328);
-end Butanal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Butylvinylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Butylvinylether.mo
deleted file mode 100644
index 592ef17..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Butylvinylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Butylvinylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 333, name = "Butylvinylether", CAS = "111-34-2", Tc = 540.5, Pc = 3200000, Vc = 0.38362, Cc = 0.273, Tb = 367.131, Tm = 181.15, TT = 181.15, TP = 0.134811, MW = 100.163, LVB = 0.130251, AF = 0.358, SP = 16460, DM = 4.16955E-30, SH = -216400000.0, IGHF = -1.83E+08, GEF = -3.61974E+07, AS = 428000, HFMP = 1.38E+07, HOC = -3.59144E+09, LiqDen = {105, 0.51202, 0.22443, 540.5, 0.25269, 0}, VP = {101, 80.48089, -6835.53, -8.641032, 5.192611E-06, 2}, LiqCp = {16, 179060, 294.15, 4.464, 0.023293, -0.000021892}, HOV = {106, 5.9857E+07, 1.4054, -2.9112, 3.3585, -1.4378}, VapCp = {16, 70271, -440.11, 12.531, 0.00054467, -2.1666E-07}, LiqVis = {101, -13.973, 1139.1, 0.44727, -0.0000011861, 2}, VapVis = {102, 9.4315E-08, 0.78571, 41.584, 9100.4, 0}, LiqK = {16, -0.13174, 16.987, -1.2513, -0.000050242, -0.000001447}, VapK = {102, 0.00002407, 1.1842, 65.04, 40153, 0}, Racketparam = 0.273, UniquacR = 4.7403, UniquacQ = 4.192, ChaoSeadAF = 0.358, ChaoSeadSP = 16460, ChaoSeadLV = 0.130251);
-end Butylvinylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondioxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondioxide.mo
deleted file mode 100644
index 21e9927..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondioxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Carbondioxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 6, name = "Carbondioxide", CAS = "124-38-9", Tc = 304.21, Pc = 7383000, Vc = 0.094, Cc = 0.274, Tb = 0, Tm = 216.58, TT = 216.58, TP = 518672, MW = 44.0095, LVB = 0.0616782, AF = 0.223621, SP = 14560, DM = 0, SH = -393510000.0, IGHF = -3.9351E+08, GEF = -3.9437E+08, AS = 213677, HFMP = 9019000, HOC = 0, LiqDen = {105, 2.768, 0.26212, 304.21, 0.2908, 0}, VP = {101, 95.478, -4070, -12.07, 0.000029505, 2}, LiqCp = {16, 80592, 108.83, -6.9126, 0.059647, 0.0000069922}, HOV = {106, 2.1092E+07, 0.35366, -0.46134, 0.43554, 0.037671}, VapCp = {16, 28933, -494.28, 10.658, -0.000027375, 3.3268E-09}, LiqVis = {101, -7.7022, -166.34, 0.38094, -0.00004018, 2}, VapVis = {102, 0.0000022464, 0.45495, 292.64, 1669.1, 0}, LiqK = {16, -0.24975, -55.106, 0.41735, -0.0051067, 0.0000020157}, VapK = {102, 5.804, -0.44522, 794.13, 2139600, 0}, Racketparam = 0.270937, UniquacR = 1.2986, UniquacQ = 1.292, ChaoSeadAF = 0.231, ChaoSeadSP = 14563.8, ChaoSeadLV = 0.0372744);
-end Carbondioxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondisulfide.mo
deleted file mode 100644
index 020c77b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbondisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Carbondisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 7, name = "Carbondisulfide", CAS = "75-15-0", Tc = 552, Pc = 7900000, Vc = 0.16, Cc = 0.275, Tb = 319.375, Tm = 161.58, TT = 161.11, TP = 1.4944, MW = 76.1407, LVB = 0.0606387, AF = 0.110697, SP = 20400, DM = 0, SH = -393510000.0, IGHF = 1.169E+08, GEF = 6.68E+07, AS = 237900, HFMP = 4393000, HOC = -1.0769E+09, LiqDen = {105, 1.7976, 0.28757, 552, 0.32269, 0}, VP = {101, 52.62041, -4546.02, -4.744246, 4.881551E-06, 2}, LiqCp = {16, 69032, 671.75, 2.3423, 0.015972, -0.0000043479}, HOV = {106, 3.9758E+07, 0.68679, 0.18227, -1.7985, 1.3658}, VapCp = {16, 26779, -222.87, 10.557, 0.00011062, -5.3772E-08}, LiqVis = {101, -9.8702, 691.26, -0.072299, 1.6489E-07, 2}, VapVis = {102, 5.9681E-08, 0.92304, 48.01, -162.47, 0}, LiqK = {16, 0.12378, -150.01, -0.453, -0.0078739, -0.0000032002}, VapK = {102, 0.00033762, 0.73827, 483.3, -4769.2, 0}, Racketparam = 0, UniquacR = 2.057, UniquacQ = 1.65, ChaoSeadAF = 0.107865, ChaoSeadSP = 20410.7, ChaoSeadLV = 0.0606387);
-end Carbondisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonmonoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonmonoxide.mo
deleted file mode 100644
index 306c5c8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonmonoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Carbonmonoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 5, name = "Carbonmonoxide", CAS = "630-08-0", Tc = 132.85, Pc = 3494000, Vc = 0.0931, Cc = 0.292, Tb = 81.66, Tm = 68.15, TT = 68.15, TP = 15400, MW = 28.01, LVB = 0.03488, AF = 0.045, SP = 6402, DM = 3.74E-31, SH = -110530000.0, IGHF = -1.1053E+08, GEF = -1.3715E+08, AS = 197556, HFMP = 840984, HOC = -2.83E+08, LiqDen = {105, 2.2423, 0.2437, 132.93, 0.24196, 0}, VP = {101, 42.283, -1035.1, -4.2012, 0.000062546, 2}, LiqCp = {16, 63364, -10524, 359.6, -3.9494, 0.014624}, HOV = {106, 8585000, 0.4921, -0.326, 0.2231, 0}, VapCp = {16, 29100, -1979.753, 10.58274, -0.0000790406, -1.99685E-07}, LiqVis = {101, -82.158, 1037.8, 14.229, -0.00028204, 2}, VapVis = {102, 0.0000012713, 0.51494, 105.97, -231.11, 0}, LiqK = {16, -0.23621, -3.5251, -0.55788, -0.0039362, -0.0000082725}, VapK = {102, 0.00061581, 0.6828, 61.287, 221.32, 0}, Racketparam = 0.2918, UniquacR = 1.0679, UniquacQ = 1.112, ChaoSeadAF = 0.093, ChaoSeadSP = 6402.36, ChaoSeadLV = 0.0354426);
-end Carbonmonoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbontetrachloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbontetrachloride.mo
deleted file mode 100644
index 262543d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbontetrachloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Carbontetrachloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 4, name = "Carbontetrachloride", CAS = "56-23-5", Tc = 556.3, Pc = 4557000, Vc = 0.276, Cc = 0.271, Tb = 349.79, Tm = 250.33, TT = 250.33, TP = 1122.46, MW = 153.822, LVB = 0.09707, AF = 0.187, SP = 17550, DM = 0, SH = 0.0, IGHF = -9.581E+07, GEF = -5.354E+07, AS = 309910, HFMP = 2535000, HOC = -2.653E+08, LiqDen = {105, 1.0721, 0.28328, 556.3, 0.30092, 0}, VP = {101, 82.671, -6304.2, -9.2247, 0.0000074352, 2}, LiqCp = {16, 129390, 1959.2, -18.833, 0.080834, -0.000047491}, HOV = {106, 3.1764E+07, -1.5729, 5.2158, -5.5259, 2.1931}, VapCp = {16, 37588.04, -242.5309, 11.66726, -0.000446049, 1.391101E-07}, LiqVis = {101, -22.297, 1645, 1.7588, -0.0000028163, 2}, VapVis = {102, 0.0000029947, 0.37756, 454.35, 5708.3, 0}, LiqK = {16, 0.034432, -227.95, -0.38117, -0.0048371, -0.0000011782}, VapK = {102, 0.0001208, 0.98541, 1411.1, -36584, 0}, Racketparam = 0, UniquacR = 3.33, UniquacQ = 2.82, ChaoSeadAF = 1.695, ChaoSeadSP = 17546.4, ChaoSeadLV = 0.0971395);
-end Carbontetrachloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonylsulfide.mo
deleted file mode 100644
index 8c50c86..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Carbonylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Carbonylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 202, name = "Carbonylsulfide", CAS = "463-58-1", Tc = 375.15, Pc = 6349000, Vc = 0.14, Cc = 0.272, Tb = 223.15, Tm = 134.35, TT = 134.3, TP = 101.325, MW = 60.0751, LVB = 0.0510474, AF = 0.137779, SP = 14270, DM = 2.37E-30, SH = -138410000.0, IGHF = -1.3841E+08, GEF = -1.692E+08, AS = 231470, HFMP = 4725000, HOC = -5.4827E+08, LiqDen = {105, 1.8896, 0.27226, 378.81, 0.25315, 0}, VP = {101, 74.34266, -3813.497, -8.620386, 0.0000180431, 2}, LiqCp = {16, 71808, -8528.4, 73.159, -0.16854, 0.00016953}, HOV = {106, 3.0555E+07, 0.84937, -0.32129, -0.52716, 0.40226}, VapCp = {16, 28351, -363.89, 10.752, -0.00019902, 7.0945E-08}, LiqVis = {101, -9.091, 494.42, -0.20653, -6.4588E-07, 2}, VapVis = {102, 0.000010184, 0.2938, 1012.7, -12250, 0}, LiqK = {16, 0.032218, -41.011, -0.83624, -0.0051268, 0.0000012154}, VapK = {102, 0.0012701, 0.60437, 545.23, 3627.6, 0}, Racketparam = 0.272, UniquacR = 1.707317, UniquacQ = 1.620988, ChaoSeadAF = 0.096, ChaoSeadSP = 14270, ChaoSeadLV = 0.0510474);
-end Carbonylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chlorine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chlorine.mo
deleted file mode 100644
index f097352..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chlorine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Chlorine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 11, name = "Chlorine", CAS = "7782-50-5", Tc = 417, Pc = 7700000, Vc = 0.124, Cc = 0.275, Tb = 239.12, Tm = 172.12, TT = 172.12, TP = 1366.04, MW = 70.905, LVB = 0.04536, AF = 0.073, SP = 17360, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 222972, HFMP = 6406000, HOC = 0, LiqDen = {105, 1.8293, 0.25, 417.16, 0.26753, 0}, VP = {101, 45.776, -3292.7, -3.7926, 0.0000049863, 2}, LiqCp = {16, 66547, 12488, -246.3, -2.7266, -0.021518}, HOV = {106, 2.9601E+07, 0.77334, -1.0279, 0.93368, -0.2926}, VapCp = {16, 28958, -398.03, 10.125, -0.0010681, 3.8414E-07}, LiqVis = {101, -11.351, 502.6, 0.30506, -9.5237E-07, 2}, VapVis = {102, 2.5899E-07, 0.74273, 97.463, -22.488, 0}, LiqK = {16, -0.48743, 13.229, -0.49371, 0.00052989, -0.0000020491}, VapK = {102, 0.00096588, 0.54995, 434.26, 3605.9, 0}, Racketparam = 0, UniquacR = 1.5887, UniquacQ = 1.524, ChaoSeadAF = 0.0547, ChaoSeadSP = 20120, ChaoSeadLV = 0.0455063);
-end Chlorine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chloroform.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chloroform.mo
deleted file mode 100644
index 4f21713..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chloroform.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Chloroform
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 26, name = "Chloroform", CAS = "67-66-3", Tc = 536.5, Pc = 5500000, Vc = 0.24, Cc = 0.296, Tb = 334.33, Tm = 209.63, TT = 209.63, TP = 68.1479, MW = 119.377, LVB = 0.08068, AF = 0.226, SP = 18920, DM = 3.37E-30, SH = -296840000.0, IGHF = -1.029E+08, GEF = -7.01E+07, AS = 295600, HFMP = 9540000, HOC = -3.8E+08, LiqDen = {105, 0.53556, 0.18404, 536.5, 0.18541, 0}, VP = {101, 99.91512, -6781.559, -11.93873, 0.0000115883, 2}, LiqCp = {16, 93132, 645.44, 2.3739, 0.024457, -0.000021097}, HOV = {106, 5.1382E+07, 0.7027, 0.36748, -1.351, 0.69236}, VapCp = {16, 36659, -308.1, 11.299, 0.00003137, -3.3538E-08}, LiqVis = {101, -20.923, 1248.9, 1.655, -0.0000024787, 2}, VapVis = {102, 1.8024E-07, 0.76204, 109.36, -1373.9, 0}, LiqK = {16, 0.061417, -66.692, -1.6802, -0.001962, -0.0000044192}, VapK = {102, 0.00041167, 0.84476, 1870.6, -7829.5, 0}, Racketparam = 0, UniquacR = 2.7, UniquacQ = 2.34, ChaoSeadAF = 0.2059, ChaoSeadSP = 18919.5, ChaoSeadLV = 0.0805048);
-end Chloroform;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chrysene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chrysene.mo
deleted file mode 100644
index d35c72d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Chrysene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Chrysene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 189, name = "Chrysene", CAS = "218-01-9", Tc = 979, Pc = 2390000, Vc = 0.749, Cc = 0.22, Tb = 714.15, Tm = 531.15, TT = 531.15, TP = 1028.09, MW = 228.288, LVB = 0.223221, AF = 0.603008, SP = 18920, DM = 2.33E-30, SH = -168070000.0, IGHF = 2.698E+08, GEF = 4.03E+08, AS = 440000, HFMP = 2.62E+07, HOC = -8.6796E+09, LiqDen = {105, 0.30846, 0.21991, 979, 0.32162, 0}, VP = {101, 171.0845, -19845.5, -20.41887, 4.689312E-06, 2}, LiqCp = {16, 314190, 239.97, 9.0147, 0.0068894, -0.0000035685}, HOV = {106, 1.2779E+08, 0.96651, -1.3609, 1.2985, -0.49651}, VapCp = {16, 124010, -668.94, 14.001, -0.0004632, 1.3177E-07}, LiqVis = {101, -12.612, 2823.3, -0.058693, 2.8981E-08, 2}, VapVis = {102, 3.4146E-07, 0.54263, 230.08, -3.8758, 0}, LiqK = {16, 0.032525, -322.45, -0.056163, -0.0034819, 4.4935E-07}, VapK = {102, 0.0001111, 0.947, 689.64, 45041, 0}, Racketparam = 0.237646, UniquacR = 8.250494, UniquacQ = 5.304, ChaoSeadAF = 0.603954, ChaoSeadSP = 19486.9, ChaoSeadLV = 0.210334);
-end Chrysene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneFourdimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneFourdimethylcyclohexane.mo
deleted file mode 100644
index c0e931f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneFourdimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisOneFourdimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 279, name = "CisOneFourdimethylcyclohexane", CAS = "624-29-3", Tc = 598.15, Pc = 2938430, Vc = 0.46, Cc = 0.272, Tb = 397.48, Tm = 185.744, TT = 185.72, TP = 0.0704204, MW = 112.213, LVB = 0.144106, AF = 0.2348, SP = 15980, DM = 0, SH = -1209000000.0, IGHF = -1.76648E+08, GEF = 3.79489E+07, AS = 370451, HFMP = 9307730, HOC = -4.86704E+09, LiqDen = {105, 0.53336, 0.24533, 598.15, 0.2771, 0}, VP = {101, 79.163, -7004.6, -8.4779, 0.0000046053, 2}, LiqCp = {16, 110770, 140.07, 8.7617, 0.0091373, -0.0000048302}, HOV = {106, 7.1514E+07, 2.3724, -5.2021, 5.4751, -2.1521}, VapCp = {16, 101700, -844.25, 13.931, -0.00056374, 1.5762E-07}, LiqVis = {101, -20.704, 1391.4, 1.6378, -0.0000047953, 2}, VapVis = {102, 0.0000024207, 0.36412, 666.44, 4231, 0}, LiqK = {16, -0.063527, 3.3026, -1.4941, -0.0004362, -0.0000011663}, VapK = {102, 0.016747, 0.34072, -1.7965, 898230, 0}, Racketparam = 0.272, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.2348, ChaoSeadSP = 15980, ChaoSeadLV = 0.144106);
-end CisOneFourdimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclohexane.mo
deleted file mode 100644
index 4b17200..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisOneThreedimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 277, name = "CisOneThreedimethylcyclohexane", CAS = "638-04-0", Tc = 591.15, Pc = 2938430, Vc = 0.45, Cc = 0.269, Tb = 393.24, Tm = 197.61, TT = 197.58, TP = 0.562747, MW = 112.213, LVB = 0.147281, AF = 0.2414, SP = 15640, DM = 0, SH = -1209000000.0, IGHF = -1.84765E+08, GEF = 2.98319E+07, AS = 370451, HFMP = 1.08211E+07, HOC = -4.85972E+09, LiqDen = {105, 0.56146, 0.25431, 591.15, 0.28196, 0}, VP = {101, 80.304, -6952.9, -8.6838, 0.000005071, 2}, LiqCp = {16, 91638, 67.51, 9.6813, 0.0069535, -0.0000034278}, HOV = {106, 6.8345E+07, 2.0984, -4.3187, 4.4054, -1.7047}, VapCp = {16, 100690, -836.69, 13.908, -0.00051206, 1.3582E-07}, LiqVis = {101, -19.068, 1358.3, 1.3526, -0.0000038202, 2}, VapVis = {102, 0.0000012434, 0.44274, 472.75, 75.213, 0}, LiqK = {16, -0.04198, -3.8682, -1.5284, -0.00074068, -0.0000011056}, VapK = {102, 0.015195, 0.35206, -46.167, 870770, 0}, Racketparam = 0.269, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.2414, ChaoSeadSP = 15640, ChaoSeadLV = 0.147281);
-end CisOneThreedimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclopentane.mo
deleted file mode 100644
index 0fae579..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneThreedimethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisOneThreedimethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 269, name = "CisOneThreedimethylcyclopentane", CAS = "2532-58-3", Tc = 551, Pc = 3400000, Vc = 0.3633, Cc = 0.277, Tb = 364.71, Tm = 139.45, TT = 139.45, TP = 0.000172698, MW = 98.188, LVB = 0.13191, AF = 0.276, SP = 15490, DM = 0, SH = -1209000000.0, IGHF = -1.3585E+08, GEF = 3.9204E+07, AS = 366810, HFMP = 7397000, HOC = -4.2771E+09, LiqDen = {105, 0.77224, 0.27858, 551, 0.31293, 0}, VP = {101, 59.262, -5561.3, -5.5932, 0.0000039124, 2}, LiqCp = {16, 65786, -81.345, 11.138, 0.0032931, -0.0000013405}, HOV = {106, 5.964754E+07, 1.992198, -3.906039, 3.442342, -1.064932}, VapCp = {16, 86318, -831.43, 13.758, -0.00059782, 1.8276E-07}, LiqVis = {101, -11.311, 1000.6, 0.063555, -2.0388E-07, 2}, VapVis = {102, 4.8359E-07, 0.57388, 271.6, -5017.7, 0}, LiqK = {16, -0.041732, 3.5995, -1.581, -0.00048911, -0.0000016476}, VapK = {102, 0.0021721, 0.62882, 203.61, 446440, 0}, Racketparam = 0.277, UniquacR = 4.7192, UniquacQ = 3.772, ChaoSeadAF = 0.276, ChaoSeadSP = 15490, ChaoSeadLV = 0.13191);
-end CisOneThreedimethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclohexane.mo
deleted file mode 100644
index bea2d5b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisOneTwodimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 275, name = "CisOneTwodimethylcyclohexane", CAS = "2207-01-4", Tc = 606.15, Pc = 2938430, Vc = 0.46, Cc = 0.268, Tb = 402.94, Tm = 223.16, TT = 223.16, TP = 6.41394, MW = 112.213, LVB = 0.141645, AF = 0.2363, SP = 16250, DM = 0, SH = -1209000000.0, IGHF = -1.72172E+08, GEF = 4.12124E+07, AS = 374510, HFMP = 1645150, HOC = -4.87084E+09, LiqDen = {105, 0.52003, 0.24148, 606.15, 0.2655, 0}, VP = {101, 79.675, -7110.6, -8.5422, 0.0000045741, 2}, LiqCp = {16, 111710, 52.625, 9.3729, 0.0077553, -0.0000040932}, HOV = {106, 6.6247E+07, 1.824, -3.744, 3.9502, -1.5633}, VapCp = {16, 99210, -835.35, 13.925, -0.00054754, 1.5043E-07}, LiqVis = {101, -12.312, 1465.3, 0.097955, -4.4792E-07, 2}, VapVis = {102, 8.4568E-07, 0.48702, 397.94, 11.816, 0}, LiqK = {16, -0.013234, -31.366, -1.3892, -0.0016087, -0.0000006162}, VapK = {102, 0.015824, 0.34516, -25.388, 892770, 0}, Racketparam = 0.268, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.2363, ChaoSeadSP = 16250, ChaoSeadLV = 0.141645);
-end CisOneTwodimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclopentane.mo
deleted file mode 100644
index 60002c2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisOneTwodimethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisOneTwodimethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 267, name = "CisOneTwodimethylcyclopentane", CAS = "1192-18-3", Tc = 565.15, Pc = 3445050, Vc = 0.37, Cc = 0.271, Tb = 372.68, Tm = 219.26, TT = 219.26, TP = 24.1041, MW = 98.1861, LVB = 0.127822, AF = 0.2692, SP = 16160, DM = 0, SH = -1209000000.0, IGHF = -1.29453E+08, GEF = 4.58148E+07, AS = 366142, HFMP = 1657280, HOC = -4.28203E+09, LiqDen = {105, 0.72465, 0.26829, 565.15, 0.28378, 0}, VP = {101, 88.755, -6920, -10.09, 0.0000077797, 2}, LiqCp = {16, 91966, 30.661, 9.7483, 0.0064492, -0.0000032985}, HOV = {106, 5.8904E+07, 1.2615, -1.6517, 1.1747, -0.3566}, VapCp = {16, 85421, -827.36, 13.75, -0.00058187, 1.7604E-07}, LiqVis = {101, -30.744, 1578.9, 3.2397, -0.0000069313, 2}, VapVis = {102, 5.0794E-07, 0.561, 243.58, 7280.5, 0}, LiqK = {16, -0.014002, -51.607, -1.1286, -0.0024368, 4.2617E-08}, VapK = {102, 0.011269, 0.40836, 151.71, 760020, 0}, Racketparam = 0.271, UniquacR = 4.7192, UniquacQ = 3.772, ChaoSeadAF = 0.2692, ChaoSeadSP = 16160, ChaoSeadLV = 0.127822);
-end CisOneTwodimethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwobutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwobutene.mo
deleted file mode 100644
index 9bd8d97..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwobutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisTwobutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 79, name = "CisTwobutene", CAS = "590-18-1", Tc = 435.5, Pc = 4210000, Vc = 0.2338, Cc = 0.269, Tb = 276.87, Tm = 134.26, TT = 134.26, TP = 0.272, MW = 56.108, LVB = 0.09101, AF = 0.203, SP = 14720, DM = 1.0E-30, SH = -7400000.0, IGHF = -7400000, GEF = 6.536E+07, AS = 301200, HFMP = 7309400, HOC = -2.5339E+09, LiqDen = {105, 1.1591, 0.27085, 435.5, 0.28116, 0}, VP = {101, 82.92441, -5022.628, -9.652369, 0.0000133961, 2}, LiqCp = {16, 79532, 110.96, 9.7654, -0.0036798, 0.000019578}, HOV = {106, 3.4358E+07, 0.38004, 0, 0, 0}, VapCp = {16, 53149, -719.47, 12.619, -0.000047815, 4.5198E-10}, LiqVis = {101, -17.96838, 892.0637, 1.159883, -2.883463E-06, 2}, VapVis = {102, 4.0697E-08, 0.91942, -12.143, 1343.2, 0}, LiqK = {16, -0.032373, 19.125, -1.716, 0.00030408, -0.0000042934}, VapK = {102, 0.000075196, 1.0578, -53.701, 131760, 0}, Racketparam = 0.2705, UniquacR = 2.9189, UniquacQ = 2.563, ChaoSeadAF = 0.2575, ChaoSeadSP = 13827.58, ChaoSeadLV = 0.0912);
-end CisTwobutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwohexene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwohexene.mo
deleted file mode 100644
index 9a146b2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwohexene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisTwohexene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 257, name = "CisTwohexene", CAS = "7688-21-3", Tc = 511.4, Pc = 3160000, Vc = 0.345, Cc = 0.256, Tb = 342.03, Tm = 132, TT = 132.03, TP = 0.000232, MW = 84.1595, LVB = 0.1234, AF = 0.287374, SP = 15360, DM = 1.015E-30, SH = -1209000000.0, IGHF = -4.856E+07, GEF = 8.025E+07, AS = 386500, HFMP = 8857530, HOC = -3.728E+09, LiqDen = {105, 0.77464, 0.2672, 511.4, 0.28571, 0}, VP = {101, 104.3995, -6791.221, -12.84602, 0.0000165576, 2}, LiqCp = {16, 135610, 570.7, 1.6392, 0.033591, -0.000032605}, HOV = {106, 4.9E+07, 1.281, -2.4971, 2.499, -0.86824}, VapCp = {16, 88576, -789.82, 13.286, -0.00034537, 1.0091E-07}, LiqVis = {101, -10.864, 787.8, 0.0025561, -7.6676E-08, 2}, VapVis = {102, 3.6061E-08, 0.91362, -8.4415, 1515.2, 0}, LiqK = {16, -0.038625, 3.4165, -1.4421, -0.00078927, -0.0000017176}, VapK = {102, 0.000053674, 1.0887, -86.934, 155330, 0}, Racketparam = 0.256, UniquacR = 4.2677, UniquacQ = 3.643, ChaoSeadAF = 0.287374, ChaoSeadSP = 15360, ChaoSeadLV = 0.1234);
-end CisTwohexene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwopentene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwopentene.mo
deleted file mode 100644
index 8a535f1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/CisTwopentene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model CisTwopentene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 109, name = "CisTwopentene", CAS = "627-20-3", Tc = 475, Pc = 3690000, Vc = 0.3021, Cc = 0.273, Tb = 310.07, Tm = 121.75, TT = 121.75, TP = 0.000554, MW = 70.134, LVB = 0.10785, AF = 0.253, SP = 15060, DM = 1.008E-30, SH = -27600000.0, IGHF = -2.63E+07, GEF = 7.37E+07, AS = 346300, HFMP = 7112000, HOC = -3.123E+09, LiqDen = {105, 0.90921, 0.26313, 475, 0.30422, 0}, VP = {101, 87.54937, -5782.462, -10.18969, 0.00001126, 2}, LiqCp = {16, 132080, -10569, 112.64, -0.34846, 0.00041161}, HOV = {106, 3.808893E+07, 0.541071, -0.876512, 1.300916, -0.612383}, VapCp = {16, 68358, -741.07, 12.923, -0.00013529, 3.1324E-08}, LiqVis = {101, -10.01, 644.41, -0.11124, 1.3682E-07, 2}, VapVis = {102, 7.0321E-08, 0.83123, 33.115, -394.35, 0}, LiqK = {16, -0.06994, -6.3331, -1.1883, -0.0013351, -7.8623E-07}, VapK = {102, 0.00017973, 0.95148, 124.65, 170420, 0}, Racketparam = 0, UniquacR = 3.5933, UniquacQ = 3.103, ChaoSeadAF = 0.206, ChaoSeadSP = 14420.78, ChaoSeadLV = 0.1078);
-end CisTwopentene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cisdecahydronaphthalene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cisdecahydronaphthalene.mo
deleted file mode 100644
index b5e9e47..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cisdecahydronaphthalene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cisdecahydronaphthalene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 190, name = "Cisdecahydronaphthalene", CAS = "493-01-6", Tc = 702.25, Pc = 3242400, Vc = 0.48, Cc = 0.267, Tb = 468.965, Tm = 230.17, TT = 230.2, TP = 0.157166, MW = 138.253, LVB = 0.154615, AF = 0.294204, SP = 17625.3, DM = 0, SH = -168070000.0, IGHF = -1.6924E+08, GEF = 8.552E+07, AS = 377730, HFMP = 9489000, HOC = -5.89213E+09, LiqDen = {105, 0.5563, 0.26613, 702.25, 0.2872, 0}, VP = {101, 133.51, -10671, -16.446, 0.0000090618, 2}, LiqCp = {16, 22875, 183.22, 9.7191, 0.0080113, -0.0000053261}, HOV = {106, 7.893812E+07, 1.120046, -0.590284, -0.648808, 0.601197}, VapCp = {16, 90923, -788.66, 14.021, -0.00046171, 0.0000001235}, LiqVis = {101, -102.87, 5387.9, 14.086, -0.000014127, 2}, VapVis = {102, 7.2745E-07, 0.51364, 404.18, 49.274, 0}, LiqK = {16, 0.087597, -101, -1.0253, -0.0090174, 0.0000045064}, VapK = {102, 0.0000017593, 1.7742, 317.62, 37605, 0}, Racketparam = 0.264744, UniquacR = 6.289, UniquacQ = 4.776, ChaoSeadAF = 0.294204, ChaoSeadSP = 17625.3, ChaoSeadLV = 0.154615);
-end Cisdecahydronaphthalene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumene.mo
deleted file mode 100644
index a8b9af8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cumene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 163, name = "Cumene", CAS = "98-82-8", Tc = 631, Pc = 3209000, Vc = 0.4347, Cc = 0.261, Tb = 425.52, Tm = 177.14, TT = 177.14, TP = 0.000471313, MW = 120.194, LVB = 0.14017, AF = 0.326, SP = 17420, DM = 1.3E-30, SH = -168070000.0, IGHF = 4000000, GEF = 1.379E+08, AS = 386000, HFMP = 7326000, HOC = -4.951E+09, LiqDen = {105, 0.50221, 0.23722, 631.11, 0.26133, 0}, VP = {101, 118.1491, -9251.635, -14.30054, 9.196883E-06, 2}, LiqCp = {16, 41467, -297.98, 13.905, -0.0047724, 0.0000064694}, HOV = {106, 5.766E+07, 0.38939, 0, 0, 0}, VapCp = {16, 86134, -649.19, 13.375, -0.00027067, 7.9617E-08}, LiqVis = {101, -16.711, 1557.8, 0.70915, 0.000002636, 2}, VapVis = {102, 3.9385E-07, 0.59572, 281.33, -806.82, 0}, LiqK = {16, 0.085857, 481.58, -8.587, 0.025021, -0.000042138}, VapK = {102, 1.6743E-07, 1.8369, -449.46, 112760, 0}, Racketparam = 0.2617, UniquacR = 5.2708, UniquacQ = 4.044, ChaoSeadAF = 0.3353, ChaoSeadSP = 17436.2, ChaoSeadLV = 0.139854);
-end Cumene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumenehydroperoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumenehydroperoxide.mo
deleted file mode 100644
index 6eb1e89..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cumenehydroperoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cumenehydroperoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 410, name = "Cumenehydroperoxide", CAS = "80-15-9", Tc = 605, Pc = 3340000, Vc = 0.463, Cc = 0.278, Tb = 442.7, Tm = 264.26, TT = 264.26, TP = 0.00236574, MW = 152.19, LVB = 0.145892, AF = 0.995, SP = 21500, DM = 5.95412E-30, SH = -61100000.0, IGHF = -7.84E+07, GEF = 9.6E+07, AS = 455000, HFMP = 0, HOC = -4.8444E+09, LiqDen = {105, 0.6643, 0.27801, 605, 0.28637, 0}, VP = {101, 156.523, -16668.56, -17.98221, 0.0000113017, 2}, LiqCp = {16, 83403, -35.074, 9.3262, 0.010979, -0.00001071}, HOV = {106, 7.2836E+07, 0.18056, -0.22381, -0.21673, 0.35898}, VapCp = {16, 70090, -408.89, 12.927, 0.00036839, -1.5886E-07}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {102, 1.9678E-07, 0.71936, 203.36, -7639, 0}, LiqK = {16, -0.022189, -77.144, -1.2225, -0.0023354, 4.0588E-08}, VapK = {102, 0.00018194, 0.94296, 592.69, 22533, 0}, Racketparam = 0.278, UniquacR = 5.817402, UniquacQ = 4.648, ChaoSeadAF = 0.995, ChaoSeadSP = 21500, ChaoSeadLV = 0.145892);
-end Cumenehydroperoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclobutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclobutane.mo
deleted file mode 100644
index 3608bfc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclobutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cyclobutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 427, name = "Cyclobutane", CAS = "287-23-0", Tc = 459.93, Pc = 4980000, Vc = 0.21, Cc = 0.273, Tb = 285.66, Tm = 182.48, TT = 182.48, TP = 180.101, MW = 56.1063, LVB = 0.0814243, AF = 0.18474, SP = 16020, DM = 0, SH = 28500000.0, IGHF = 2.85E+07, GEF = 1.122E+08, AS = 265400, HFMP = 1088000, HOC = -2.5678E+09, LiqDen = {105, 1.407691, 0.295395, 459.93, 0.248729, 0}, VP = {101, 60.70694, -4389.85, -6.086364, 7.387074E-06, 2}, LiqCp = {16, -3355.973, 25.71519, 11.14976, -0.0000199586, 4.55626E-06}, HOV = {106, 3.344974E+07, 0.35995, -0.0547115, 0.0583309, -0.0233634}, VapCp = {16, 37380.05, -673.6637, 12.72112, -0.000063263, 1.539025E-09}, LiqVis = {16, 0.0000263799, 486.4199, -9.034853, -0.00420404, 4.708051E-07}, VapVis = {16, 2.344771E-06, -353.1514, -11.15186, 0.000996526, -0.0000002755}, LiqK = {16, 0.0169674, 14.7154, -1.831383, -0.000155026, -0.0000048849}, VapK = {16, 0.00541541, -765.5803, -2.581507, 0.00174448, -3.307726E-07}, Racketparam = 0, UniquacR = 0, UniquacQ = 0, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Cyclobutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexane.mo
deleted file mode 100644
index 518f5b7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 129, name = "Cyclohexane", CAS = "110-82-7", Tc = 553.5, Pc = 4073000, Vc = 0.308, Cc = 0.273, Tb = 353.93, Tm = 279.69, TT = 279.69, TP = 5362.51, MW = 84.161, LVB = 0.10875, AF = 0.211, SP = 16740, DM = 0, SH = -168070000.0, IGHF = -1.233E+08, GEF = 3.191E+07, AS = 297276, HFMP = 2740000, HOC = -3.656E+09, LiqDen = {105, 0.93459, 0.28022, 553.5, 0.29409, 0}, VP = {101, 79.82965, -6246.688, -8.778766, 6.933726E-06, 2}, LiqCp = {16, 116110, 127.67, 6.7654, 0.01311, -0.0000060013}, HOV = {106, 4.4856E+07, 0.35691, 0.26181, -0.47647, 0.25741}, VapCp = {16, 42569, -588.9, 12.962, 0.00028376, -1.4009E-07}, LiqVis = {101, -132.2852, 5905.41, 18.88092, -0.000023942, 2}, VapVis = {102, 6.7726E-08, 0.83665, 36.786, -20.301, 0}, LiqK = {16, 0.073881, -301.5, 0.30119, -0.0068406, -0.0000028646}, VapK = {102, 8.5865E-07, 1.771, 243.16, -9.1779, 0}, Racketparam = 0.2729, UniquacR = 4.0464, UniquacQ = 3.24, ChaoSeadAF = 0.2032, ChaoSeadSP = 16773.1, ChaoSeadLV = 0.1087);
-end Cyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanol.mo
deleted file mode 100644
index bad1870..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cyclohexanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 132, name = "Cyclohexanol", CAS = "108-93-0", Tc = 650.1, Pc = 4260000, Vc = 0.322, Cc = 0.254, Tb = 434, Tm = 296.6, TT = 296.6, TP = 76.4997, MW = 100.159, LVB = 0.105751, AF = 0.369047, SP = 23730, DM = 6.2E-30, SH = -168070000.0, IGHF = -2.862E+08, GEF = -1.095E+08, AS = 327700, HFMP = 1783000, HOC = -3.4639E+09, LiqDen = {105, 0.90826, 0.27716, 650.1, 0.30685, 0}, VP = {101, -31.63718, -3989.985, 9.013268, -0.0000126698, 2}, LiqCp = {16, -69485, 774.7, 4.4167, 0.025384, -0.000022994}, HOV = {106, 7.128838E+07, 0.392061, -2.168338, 5.552036, -3.376933}, VapCp = {16, 82477, -807.95, 13.526, -0.00028702, 2.5016E-08}, LiqVis = {101, -437.51, 22529, 63.787, -0.000049001, 2}, VapVis = {102, 8.1528E-08, 0.83387, 90.96, 4936.6, 0}, LiqK = {16, 0.075187, -249.81, -0.16784, -0.0068233, 0.0000026882}, VapK = {102, 0.0030349, 0.6097, 669.35, 478820, 0}, Racketparam = 0.24, UniquacR = 4.27, UniquacQ = 3.51, ChaoSeadAF = 0.514148, ChaoSeadSP = 23672.2, ChaoSeadLV = 0.104294);
-end Cyclohexanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanone.mo
deleted file mode 100644
index 1c791b1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cyclohexanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 128, name = "Cyclohexanone", CAS = "108-94-1", Tc = 653, Pc = 4000000, Vc = 0.311, Cc = 0.229, Tb = 428.58, Tm = 242, TT = 242, TP = 6.80118, MW = 98.143, LVB = 0.104111, AF = 0.299006, SP = 20250, DM = 1.03E-29, SH = -168070000.0, IGHF = -2.261E+08, GEF = -9.028E+07, AS = 334260, HFMP = 1190000, HOC = -3.299E+09, LiqDen = {105, 0.8601, 0.26829, 653, 0.29808, 0}, VP = {101, 69.93885, -7280.529, -6.943105, 3.624646E-06, 2}, LiqCp = {16, 17987, -72.539, 10.794, 0.0063056, -0.0000049607}, HOV = {106, 6.763E+07, 1.0666, -1.0647, 0.39633, 0.019258}, VapCp = {16, 63931, -772.15, 13.468, -0.00038098, 7.7306E-08}, LiqVis = {101, -37.877, 3012.8, 3.7501, 0.0000021994, 2}, VapVis = {102, 5.3484E-08, 0.89115, 65.345, -657.26, 0}, LiqK = {16, 0.11507, -853.65, 4.7946, -0.021722, 0.0000091954}, VapK = {102, -1104.9, -0.018396, 479160, -8.1392E+09, 0}, Racketparam = 0.23, UniquacR = 4.07, UniquacQ = 3.11, ChaoSeadAF = 0.445, ChaoSeadSP = 20139.4, ChaoSeadLV = 0.104167);
-end Cyclohexanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexene.mo
deleted file mode 100644
index 10208f1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclohexene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cyclohexene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 265, name = "Cyclohexene", CAS = "110-83-8", Tc = 560.42, Pc = 4350000, Vc = 0.291, Cc = 0.272, Tb = 356.12, Tm = 169.67, TT = 169.67, TP = 0.103772, MW = 82.1436, LVB = 0.101877, AF = 0.212302, SP = 17420, DM = 1.83E-30, SH = -1209000000.0, IGHF = -4520000, GEF = 1.077E+08, AS = 310750, HFMP = 3290000, HOC = -3.532E+09, LiqDen = {105, 0.807, 0.25253, 560.42, 0.26738, 0}, VP = {101, 82.052, -6388.7, -9.1035, 0.0000071317, 2}, LiqCp = {16, 97738, 2.3363, 7.7626, 0.013772, -0.000011653}, HOV = {106, 5.794402E+07, 1.587579, -2.225474, 1.109627, 0.041589}, VapCp = {16, 48919, -644.33, 13.16, -0.0002758, 9.0717E-08}, LiqVis = {101, -11.901, 1159.3, 0.11228, -1.9651E-07, 2}, VapVis = {102, 0.0000013322, 0.45371, 444.45, 117.38, 0}, LiqK = {16, 0.11174, 816.81, -14.373, 0.055987, -0.00010104}, VapK = {102, 0.000094336, 1.0783, 568.3, 34471, 0}, Racketparam = 0.272, UniquacR = 3.8143, UniquacQ = 3.027, ChaoSeadAF = 0.212302, ChaoSeadSP = 17420, ChaoSeadLV = 0.101877);
-end Cyclohexene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclopentane.mo
deleted file mode 100644
index 12394f3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Cyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Cyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 104, name = "Cyclopentane", CAS = "287-92-3", Tc = 511.6, Pc = 4508000, Vc = 0.26, Cc = 0.276, Tb = 322.38, Tm = 179.311, TT = 179.28, TP = 9.07217, MW = 70.134, LVB = 0.09473, AF = 0.194, SP = 16550, DM = 0, SH = -134990000.0, IGHF = -7.703E+07, GEF = 3.885E+07, AS = 292900, HFMP = 608800, HOC = -3.0709E+09, LiqDen = {105, 0.92461, 0.26305, 511.77, 0.22002, 0}, VP = {101, -74.77148, -401.0576, 15.6271, -0.0000260872, 2}, LiqCp = {16, 84725, 368.5, 3.0559, 0.030633, -0.000031124}, HOV = {106, 4.513618E+07, 1.248318, -2.311302, 2.401073, -0.943348}, VapCp = {16, 39785, -704.2, 13.082, -0.00014913, 2.4491E-08}, LiqVis = {101, -5.1843, 670.87, -0.84082, -7.0656E-07, 2}, VapVis = {102, 2.1433E-07, 0.68815, 135.42, -1597.6, 0}, LiqK = {16, 0.10961, -598.59, 3.5098, -0.016258, -0.0000091635}, VapK = {102, 0.0000098408, 1.4611, 639.53, 7396.1, 0}, Racketparam = 0.2687, UniquacR = 3.3, UniquacQ = 2.47, ChaoSeadAF = 0.2051, ChaoSeadSP = 16589.01, ChaoSeadLV = 0.0947);
-end Cyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiButylCarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiButylCarbonate.mo
deleted file mode 100644
index ae5d2ab..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiButylCarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model DiButylCarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 431, name = "DiButylCarbonate", CAS = "542-52-9", Tc = 577.9457, Pc = 2554740, Vc = 0.48029, Cc = 0.255346, Tb = 480.6, Tm = 0, TT = 0, TP = 0, MW = 174.2374, LVB = 0.16285, AF = 0.380499, SP = 14896.02, DM = 0, SH = 28500000.0, IGHF = -3.824176E+07, GEF = 1.508667E+07, AS = 1355409, HFMP = 0, HOC = -5.683778E+09, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {10, 22.02883, 4492.482, -50.81, 0, 0}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {0, 0, 0, 0, 0, 0}, VapCp = {0, 0, 0, 0, 0, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {100, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0, UniquacR = 0, UniquacQ = 0, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end DiButylCarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiEthylCarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiEthylCarbonate.mo
deleted file mode 100644
index 571b504..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiEthylCarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model DiEthylCarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 413, name = "DiEthylCarbonate", CAS = "105-58-8", Tc = 577, Pc = 3420000, Vc = 0.35725, Cc = 0.254676, Tb = 399.95, Tm = 230.15, TT = 0, TP = 0, MW = 118.1322, LVB = 0.12721, AF = 0.3544, SP = 18727.86, DM = 0, SH = -61100000.0, IGHF = 4.443408E+07, GEF = -1.919535, AS = 1202641, HFMP = 0, HOC = -3.223334, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {10, 20.45386, 2817.834, -84.304, 0, 0}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 2.9807E+07, 0.38, 0, 0, 0}, VapCp = {4, -748.0008, 383.84, -0.1938, 0.0000364, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.254676, UniquacR = 4.731, UniquacQ = 4.166, ChaoSeadAF = 0.3544, ChaoSeadSP = 0, ChaoSeadLV = 0.12721);
-end DiEthylCarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiPhenylCarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiPhenylCarbonate.mo
deleted file mode 100644
index 407a754..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/DiPhenylCarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model DiPhenylCarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 417, name = "DiPhenylCarbonate", CAS = "102-09-0", Tc = 799.32, Pc = 2796500, Vc = 0.59685, Cc = 0.251145, Tb = 572.99, Tm = 352.15, TT = 0, TP = 0, MW = 214.2202, LVB = 0.18261, AF = 0.55805, SP = 18788.28, DM = 0, SH = -61100000.0, IGHF = 1.832592E+08, GEF = 2.719642E+08, AS = 737371.8, HFMP = 0, HOC = -6.512399E+09, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {10, 23.41177, 6810.358, 0, 0, 0}, LiqCp = {3, -164882.8, 994.6407, -0.464037, 0, 0}, HOV = {106, 7.141145E+07, 0.38, 0, 0, 0}, VapCp = {4, -72586.55, 927.9609, -0.573626, 0.000147143, 0}, LiqVis = {101, -49.44655, 15931.93, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {3, 0.101839, 0.000518198, -1.230409E-06, 0, 0}, VapK = {3, -0.0506874, 0.00020251, -1.156856E-07, 0, 0}, Racketparam = 0.251145, UniquacR = 7.6234, UniquacQ = 5.63, ChaoSeadAF = 0.55805, ChaoSeadSP = 0, ChaoSeadLV = 0.18261);
-end DiPhenylCarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetaldehyde.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetaldehyde.mo
deleted file mode 100644
index 13877e8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetaldehyde.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dichloroacetaldehyde
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 38, name = "Dichloroacetaldehyde", CAS = "79-02-7", Tc = 555, Pc = 4950000, Vc = 0.239, Cc = 0.256, Tb = 362, Tm = 223, TT = 223, TP = 30.4712, MW = 112.943, LVB = 0.0800261, AF = 0.343679, SP = 21090, DM = 7.87E-30, SH = 228200000.0, IGHF = -1.8E+08, GEF = -1.387E+08, AS = 329000, HFMP = 1.4E+07, HOC = -8.11E+08, LiqDen = {105, 1.0695, 0.25535, 555, 0.28663, 0}, VP = {101, 90.61988, -7239.82, -10.19237, 7.278159E-06, 2}, LiqCp = {16, 79819, -93.388, 10.443, 0.0030492, -0.0000015371}, HOV = {106, 5.4311E+07, 0.74287, -0.97767, 1.092, -0.46681}, VapCp = {16, 68025, -873.5, 12.537, -0.00086712, 2.2298E-07}, LiqVis = {101, -19.012, 2548.4, 0.73092, -0.0000016452, 2}, VapVis = {102, 3.0229E-07, 0.67781, 216.84, -7478.9, 0}, LiqK = {16, -0.006509, -45.732, -1.1121, -0.0023494, -2.6574E-07}, VapK = {102, 0.00042346, 0.72759, 609.27, 10645, 0}, Racketparam = 0.260402, UniquacR = 3.058668, UniquacQ = 2.632, ChaoSeadAF = 0.343679, ChaoSeadSP = 21250.9, ChaoSeadLV = 0.0788193);
-end Dichloroacetaldehyde;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetylchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetylchloride.mo
deleted file mode 100644
index 915e539..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dichloroacetylchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dichloroacetylchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 35, name = "Dichloroacetylchloride", CAS = "79-36-7", Tc = 585, Pc = 4610000, Vc = 0.283, Cc = 0.268, Tb = 380.45, Tm = 230, TT = 230, TP = 27.15, MW = 147.388, LVB = 0.0969971, AF = 0.308927, SP = 19510, DM = 5.27E-30, SH = -22970000.0, IGHF = -2.4033E+08, GEF = -1.915E+08, AS = 350000, HFMP = 0, HOC = -6.2647E+08, LiqDen = {105, 0.94766, 0.26857, 585, 0.28586, 0}, VP = {101, 74.72886, -6808.875, -7.735182, 4.475716E-06, 2}, LiqCp = {16, 140380, -122.15, 7.1438, 0.0089927, -3.0698E-07}, HOV = {106, 1.182114E+08, 5.662305, -14.25375, 15.19267, -6.032208}, VapCp = {16, 54272, -346.01, 11.744, -0.00014147, 6.1056E-08}, LiqVis = {101, -11.762, 1691.3, -0.020172, 2.8483E-09, 2}, VapVis = {102, 1.4668E-07, 0.7617, 110.57, -0.0060267, 0}, LiqK = {16, 0.045516, -168.82, -0.6335, -0.0052944, 0.0000014358}, VapK = {102, 0.00049754, 0.6638, 622.43, -0.0085753, 0}, Racketparam = 0, UniquacR = 3.597891, UniquacQ = 3.044, ChaoSeadAF = 0.370509, ChaoSeadSP = 19942.4, ChaoSeadLV = 0.097018);
-end Dichloroacetylchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dicyclopentadiene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dicyclopentadiene.mo
deleted file mode 100644
index 618e864..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dicyclopentadiene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dicyclopentadiene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 170, name = "Dicyclopentadiene", CAS = "77-73-6", Tc = 660, Pc = 3060000, Vc = 0.445, Cc = 0.248, Tb = 443, Tm = 305.15, TT = 305.15, TP = 566.19, MW = 132.202, LVB = 0.134736, AF = 0.288011, SP = 17800, DM = 0, SH = -168070000.0, IGHF = 1.961E+08, GEF = 3.75E+08, AS = 240000, HFMP = 2090000, HOC = -5.535E+09, LiqDen = {105, 0.41899, 0.20539, 660, 0.34053, 0}, VP = {101, 72.31496, -7292.827, -7.388294, 3.746895E-06, 2}, LiqCp = {16, 83937, -392.22, 13.886, -0.0031138, 0.000003368}, HOV = {106, 7.0543E+07, 1.9867, -4.6545, 5.1772, -2.0831}, VapCp = {16, 38735, -535.99, 13.553, -0.00031277, 0.0000001075}, LiqVis = {101, -11.633, 1272.8, 0.067676, -1.2999E-07, 2}, VapVis = {102, 0.0000004337, 0.561, 232.6, -0.00081701, 0}, LiqK = {16, 0.029848, 47.178, -2.5363, 0.0023572, -0.0000058893}, VapK = {102, 0.00025878, 0.8604, 51.14, 244020, 0}, Racketparam = 0, UniquacR = 5.8156, UniquacQ = 4.548, ChaoSeadAF = 0.285111, ChaoSeadSP = 17445.1, ChaoSeadLV = 0.138585);
-end Dicyclopentadiene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethanolamine.mo
deleted file mode 100644
index 46bcf60..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 368, name = "Diethanolamine", CAS = "111-42-2", Tc = 736.6, Pc = 4720000, Vc = 0.349, Cc = 0.243, Tb = 542, Tm = 301.15, TT = 301.15, TP = 0.102031, MW = 105.136, LVB = 0.096244, AF = 0.991515, SP = 29260, DM = 2.84E-30, SH = -22600000.0, IGHF = -3.73E+08, GEF = -2.2574E+08, AS = 429000, HFMP = 2.5104E+07, HOC = -2.4439E+09, LiqDen = {105, 0.5251, 0.20924, 736.61, 0.18363, 0}, VP = {10, 23.735, 5441.7, -95.519, 0, 0}, LiqCp = {4, 88234.68, 483.2566, 0.294569, -0.000214761, 0}, HOV = {106, 7.90134E+07, -1.865152, 6.820965, -7.963053, 3.251551}, VapCp = {16, 92216, -624.1, 12.938, -0.00014779, 6.6337E-08}, LiqVis = {101, -0.28702, 6080.5, -3.8708, 0.00001517, 2}, VapVis = {102, 4.7852E-08, 0.89857, 99.058, -7265.2, 0}, LiqK = {16, -0.91328, 16.824, -0.15997, 0.0011516, -0.0000013756}, VapK = {102, -10221, 0.42596, -2.5172E+09, -7.9932E+10, 0}, Racketparam = 0.243, UniquacR = 5.2302, UniquacQ = 4.956, ChaoSeadAF = 0.952882, ChaoSeadSP = 29260, ChaoSeadLV = 0.096244);
-end Diethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylamine.mo
deleted file mode 100644
index d5e23cc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethylamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 100, name = "Diethylamine", CAS = "109-89-7", Tc = 496.6, Pc = 3710000, Vc = 0.301, Cc = 0.27, Tb = 328.6, Tm = 223.35, TT = 223.35, TP = 374.108, MW = 73.138, LVB = 0.10424, AF = 0.303856, SP = 16610, DM = 3.07E-30, SH = -134990000.0, IGHF = -7.142E+07, GEF = 7.308E+07, AS = 352200, HFMP = 1.14E+07, HOC = -2.8003E+09, LiqDen = {105, 0.73036, 0.23814, 496.66, 0.24991, 0}, VP = {101, 64.68388, -5484.939, -6.37255, 4.185124E-06, 2}, LiqCp = {16, 107090, 694.46, 2.8508, 0.027204, -0.000024864}, HOV = {106, 3.911798E+07, 0.292165, -0.28266, 0.355094, 0.0257197}, VapCp = {16, 85298, -793.64, 13.085, -0.00026826, 6.6572E-08}, LiqVis = {101, -21.138, 1492, 1.4401, -0.0000012994, 2}, VapVis = {102, 4.3797E-07, 0.60244, 253.34, -614.36, 0}, LiqK = {16, 0.066644, -97.786, -0.73312, -0.0054502, -7.5663E-08}, VapK = {102, 0.000016939, 1.2488, -114.17, 77881, 0}, Racketparam = 0.27, UniquacR = 3.68, UniquacQ = 3.17, ChaoSeadAF = 0.303733, ChaoSeadSP = 16543.3, ChaoSeadLV = 0.104234);
-end Diethylamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyldisulfide.mo
deleted file mode 100644
index 98ec750..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 360, name = "Diethyldisulfide", CAS = "110-81-6", Tc = 642, Pc = 3870000, Vc = 0.358, Cc = 0.26, Tb = 427.15, Tm = 171.65, TT = 171.64, TP = 0.000220562, MW = 122.252, LVB = 0.12376, AF = 0.346925, SP = 18630, DM = 6.54E-30, SH = -22600000.0, IGHF = -7.47E+07, GEF = 2.301E+07, AS = 414000, HFMP = 9406000, HOC = -3.257E+09, LiqDen = {105, 0.77633, 0.27774, 642, 0.3008, 0}, VP = {101, 177.1651, -11358.16, -23.65597, 0.0000232121, 2}, LiqCp = {16, 184820, 1402.4, -9.485, 0.072797, -0.00007939}, HOV = {106, 5.898575E+07, 0.279736, 0.523521, -0.500907, 0.0214669}, VapCp = {16, 100900, -621.21, 12.713, -0.0000050655, -1.705E-08}, LiqVis = {101, -12.559, 1373.4, 0.15118, -3.7692E-07, 2}, VapVis = {102, 6.5143E-08, 0.87157, 110.73, -9132.4, 0}, LiqK = {16, -0.047803, 3.9799, -1.4697, -0.00042308, -0.0000011998}, VapK = {102, 0.00017171, 0.93356, 610.03, 20030, 0}, Racketparam = 0.26, UniquacR = 4.5748, UniquacQ = 3.816, ChaoSeadAF = 0.346925, ChaoSeadSP = 18630, ChaoSeadLV = 0.12376);
-end Diethyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyleneglycol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyleneglycol.mo
deleted file mode 100644
index 816243e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethyleneglycol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethyleneglycol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 99, name = "Diethyleneglycol", CAS = "111-46-6", Tc = 744.6, Pc = 4600000, Vc = 0.312, Cc = 0.232, Tb = 517.95, Tm = 262.7, TT = 262.7, TP = 0.00319709, MW = 106.12, LVB = 0.0952681, AF = 0.622105, SP = 28920, DM = 8.41E-30, SH = -134990000.0, IGHF = -5.464E+08, GEF = -3.84E+08, AS = 440000, HFMP = 1.3481E+07, HOC = -2.155E+09, LiqDen = {105, 0.81894, 0.25823, 744.6, 0.23979, 0}, VP = {101, 46.26595, -10205.15, -2.102723, -7.036466E-06, 2}, LiqCp = {16, 188290, 227.63, 5.7157, 0.020545, -0.000018798}, HOV = {106, 1.0853E+08, -0.00876655, 1.770951, -1.359893, -0.0210292}, VapCp = {16, 82107, -687.16, 13.353, -0.00070647, 2.4155E-07}, LiqVis = {101, -374.29, 18192, 55.132, -0.000049166, 2}, VapVis = {102, 6.4523E-08, 0.8468, 24.322, 7352.9, 0}, LiqK = {16, -0.11579, 8.2246, -1.6466, 0.002673, -0.0000035412}, VapK = {102, 500.16, 1.0276, 7.9617E+09, -7.5258E+11, 0}, Racketparam = 0, UniquacR = 4.9415, UniquacQ = 4.8, ChaoSeadAF = 0.621104, ChaoSeadSP = 27775.2, ChaoSeadLV = 0.0952681);
-end Diethyleneglycol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylenetriamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylenetriamine.mo
deleted file mode 100644
index 36c1b7b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylenetriamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethylenetriamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 373, name = "Diethylenetriamine", CAS = "111-40-0", Tc = 676, Pc = 4220000, Vc = 0.426, Cc = 0.257, Tb = 480, Tm = 234, TT = 234.15, TP = 0.0524649, MW = 103.166, LVB = 0.108088, AF = 0.70022, SP = 22210, DM = 0, SH = -22600000.0, IGHF = -5860000, GEF = 2.07293E+08, AS = 444000, HFMP = 1.97E+07, HOC = -3.08E+09, LiqDen = {105, 0.75082, 0.25686, 676, 0.285, 0}, VP = {101, 100.1854, -10608.36, -10.96201, 4.74905E-06, 2}, LiqCp = {16, 42291, -130.86, 11.696, 0.0024243, -0.0000011576}, HOV = {106, 6.200873E+07, -0.521717, 2.922507, -3.785965, 1.591946}, VapCp = {16, 73737, -451.7, 12.705, 0.00030197, -1.0181E-07}, LiqVis = {101, -10.117, 2075.7, -0.40711, 6.9322E-07, 2}, VapVis = {102, 5.7285E-08, 0.85783, 72.519, -3817.5, 0}, LiqK = {16, -0.078667, 1.4114, -1.3167, -0.00041656, -8.7844E-07}, VapK = {102, 0.00017737, 0.94914, 591.08, 27011, 0}, Racketparam = 0.257, UniquacR = 4.6198, UniquacQ = 3.948, ChaoSeadAF = 0.70022, ChaoSeadSP = 22210, ChaoSeadLV = 0.108088);
-end Diethylenetriamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylethanolamine.mo
deleted file mode 100644
index de1fbfd..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethylethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 425, name = "Diethylethanolamine", CAS = "100-37-8", Tc = 616, Pc = 2650000, Vc = 0.4231, Cc = 0.218914, Tb = 434.15, Tm = 235.15, TT = 253, TP = 4.85244, MW = 117.189, LVB = 0.132864, AF = 0.781757, SP = 19100, DM = 8.11E-30, SH = -61100000.0, IGHF = -2.575E+08, GEF = -3.323E+07, AS = 459800, HFMP = 1.84E+07, HOC = -4.03338E+09, LiqDen = {105, 0.63795, 0.25988, 592, 0.27186, 0}, VP = {101, 442.3122, -22650.03, -64.35227, 0.0000641088, 2}, LiqCp = {4, 28933.37, 738.1104, -0.669126, 0.000593149, 0}, HOV = {106, 6.442525E+07, -0.590881, 4.028331, -5.586056, 2.388691}, VapCp = {16, 91061, -562.7, 13.172, -0.000023606, 6.7111E-09}, LiqVis = {101, -83.307, 6061.8, 10.089, -1.4583E-07, 2}, VapVis = {102, 1.3335E-07, 0.7599, 186.08, -6648.4, 0}, LiqK = {16, -0.0045149, -46.605, -1.1875, -0.0019723, -5.2781E-08}, VapK = {102, 0.00013877, 0.99774, 582.26, 23748, 0}, Racketparam = 0.259, UniquacR = 5.315095, UniquacQ = 4.532, ChaoSeadAF = 0.781757, ChaoSeadSP = 19100, ChaoSeadLV = 0.132864);
-end Diethylethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylether.mo
deleted file mode 100644
index 25ae98d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 98, name = "Diethylether", CAS = "60-29-7", Tc = 466.7, Pc = 3640000, Vc = 0.28, Cc = 0.263, Tb = 307.59, Tm = 156.85, TT = 156.85, TP = 0.395447, MW = 74.123, LVB = 0.10475, AF = 0.281, SP = 15420, DM = 3.84E-30, SH = -134990000.0, IGHF = -2.521E+08, GEF = -1.221E+08, AS = 342300, HFMP = 7190000, HOC = -2.5035E+09, LiqDen = {105, 0.97479, 0.27114, 466.7, 0.28433, 0}, VP = {101, 75.39748, -5436.852, -8.193869, 7.812562E-06, 2}, LiqCp = {16, 145290, -2.8208, 5.9722, 0.017041, -0.0000078238}, HOV = {106, 5.331574E+07, 0.876213, 0.475413, -1.944676, 1.061631}, VapCp = {16, 81727, -660.7, 12.61, 0.00016979, -7.4028E-08}, LiqVis = {101, 10.139, -61.707, -3.2168, -9.5022E-09, 2}, VapVis = {102, 0.0000019481, 0.40997, 495.46, 85.073, 0}, LiqK = {16, -0.14221, 30.008, -1.3139, 0.00048013, -0.0000026572}, VapK = {102, -0.0044909, 0.61494, -3258.3, 85.806, 0}, Racketparam = 0, UniquacR = 3.39, UniquacQ = 3.02, ChaoSeadAF = 0.284607, ChaoSeadSP = 15530.3, ChaoSeadLV = 0.104692);
-end Diethylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylsulfide.mo
deleted file mode 100644
index a7076ed..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diethylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diethylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 359, name = "Diethylsulfide", CAS = "352-93-2", Tc = 557, Pc = 3960000, Vc = 0.318, Cc = 0.269, Tb = 365.25, Tm = 169.22, TT = 169.2, TP = 0.099321, MW = 90.189, LVB = 0.10851, AF = 0.295, SP = 17490, DM = 5.14E-30, SH = -22600000.0, IGHF = -8.347E+07, GEF = 1.778E+07, AS = 368000, HFMP = 1.19035E+07, HOC = -2.9607E+09, LiqDen = {105, 0.71845, 0.24674, 557.16, 0.25292, 0}, VP = {101, 70.99138, -6108.92, -7.37143, 5.835752E-06, 2}, LiqCp = {16, 145900, 1485.7, -9.9348, 0.077005, -0.000088463}, HOV = {106, 4.6317E+07, 0.40563, -0.17525, 0.12561, 0.018959}, VapCp = {16, 84916, -751.54, 12.969, -0.00026179, 6.4336E-08}, LiqVis = {101, -2.9987, 606.92, -1.2077, 8.2651E-07, 2}, VapVis = {102, 6.8477E-08, 0.85168, 55.152, 236.99, 0}, LiqK = {16, -0.07619, 7.9978, -1.3835, -0.00020735, -0.0000016592}, VapK = {102, 0.0017352, 0.67658, 1116.5, 181260, 0}, Racketparam = 0.269, UniquacR = 3.8629, UniquacQ = 3.296, ChaoSeadAF = 0.295, ChaoSeadSP = 17490, ChaoSeadLV = 0.10851);
-end Diethylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisobutylketone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisobutylketone.mo
deleted file mode 100644
index 65a2e4f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisobutylketone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diisobutylketone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 316, name = "Diisobutylketone", CAS = "108-83-8", Tc = 620, Pc = 2530000, Vc = 0.522, Cc = 0.253, Tb = 441.4, Tm = 227, TT = 227.17, TP = 0.249815, MW = 142.239, LVB = 0.177418, AF = 0.511608, SP = 16450, DM = 8.87E-30, SH = -1209000000.0, IGHF = -3.576E+08, GEF = -1.13E+08, AS = 509000, HFMP = 0, HOC = -5.31E+09, LiqDen = {105, 0.3783, 0.23231, 620, 0.24664, 0}, VP = {101, 122.1783, -10064.3, -14.70184, 8.652147E-06, 2}, LiqCp = {16, 85834, -102.6, 11.702, 0.0033978, -0.0000021321}, HOV = {106, 4.9161E+07, -1.6509, 5.8937, -6.6307, 2.7354}, VapCp = {16, 118320, -505.35, 13.11, 0.00028036, -1.0389E-07}, LiqVis = {101, -74.692, 4018.6, 9.6018, -0.0000061216, 2}, VapVis = {102, 1.3916E-07, 0.72063, 190.96, -7816.5, 0}, LiqK = {16, -0.12088, 22.25, -1.2974, 0.0000088903, -0.0000012079}, VapK = {102, -380230, 0.02484, 1.3363E+08, -3.9523E+12, 0}, Racketparam = 0.253, UniquacR = 6.6183, UniquacQ = 5.568, ChaoSeadAF = 0.511608, ChaoSeadSP = 16450, ChaoSeadLV = 0.177418);
-end Diisobutylketone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropanolamine.mo
deleted file mode 100644
index aedf05f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diisopropanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 426, name = "Diisopropanolamine", CAS = "110-97-4", Tc = 672, Pc = 3600000, Vc = 0.454, Cc = 0.293, Tb = 521.9, Tm = 315, TT = 318.15, TP = 0.217912, MW = 133.189, LVB = 0.134763, AF = 1.38914, SP = 26610, DM = 0, SH = -61100000.0, IGHF = -4.54E+08, GEF = -2.15E+08, AS = 513000, HFMP = 2.636E+07, HOC = -3.82E+09, LiqDen = {105, 0.54022, 0.24621, 672, 0.22052, 0}, VP = {101, 339.329, -25910.98, -45.42461, 0.0000223088, 2}, LiqCp = {4, 119382.9, 778.3072, -0.00245385, -1.190941E-06, -0.0000013464}, HOV = {106, 1.4113E+08, 0.38119, 1.0156, -1.8242, 0.83437}, VapCp = {16, 104010, -559.93, 13.272, -0.00018865, 9.0295E-08}, LiqVis = {101, -158.9768, 13684.82, 19.79212, 0.0000178855, 1.442815}, VapVis = {102, 1.7289E-07, 0.71286, 205.1, -6089.6, 0}, LiqK = {16, -0.070378, -101.18, -0.46641, -0.0021528, 2.0992E-07}, VapK = {102, 0.0002313, 0.90558, 651.81, 18136, 0}, Racketparam = 0.293, UniquacR = 6.5774, UniquacQ = 6.028, ChaoSeadAF = 1.38914, ChaoSeadSP = 26610, ChaoSeadLV = 0.134763);
-end Diisopropanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylamine.mo
deleted file mode 100644
index 626097d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diisopropylamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 371, name = "Diisopropylamine", CAS = "108-18-9", Tc = 522.15, Pc = 3200000, Vc = 0.031, Cc = 0.308, Tb = 357.05, Tm = 176.85, TT = 176.85, TP = 0.00447237, MW = 101.19, LVB = 0.141919, AF = 0.388315, SP = 15060, DM = 0, SH = -22600000.0, IGHF = -1.5E+08, GEF = 6.42E+07, AS = 412000, HFMP = 6530000, HOC = -3.99E+09, LiqDen = {105, 0.72754, 0.27918, 522.15, 0.29458, 0}, VP = {101, 237.36, -12403, -33.276, 0.000035165, 2}, LiqCp = {16, 150380, 276.56, 5.7411, 0.021881, -0.000021998}, HOV = {106, 8.537039E+07, -2.459337, 14.73933, -19.70849, 7.844199}, VapCp = {16, 61641, -432.93, 12.839, 0.00037342, -1.4329E-07}, LiqVis = {101, -7.0105, 766.59, -0.57101, -0.0000016173, 2}, VapVis = {102, 5.4462E-07, 0.56686, 334.62, -4787.5, 0}, LiqK = {16, 0.046488, -113.84, -0.63846, -0.0065631, 0.0000029442}, VapK = {102, 0.00048482, 0.81453, 349.64, 151910, 0}, Racketparam = 0.308, UniquacR = 5.0308, UniquacQ = 4.244, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Diisopropylamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylether.mo
deleted file mode 100644
index 8e41855..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diisopropylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 323, name = "Diisopropylether", CAS = "108-20-3", Tc = 500.05, Pc = 2880000, Vc = 0.386, Cc = 0.267, Tb = 341.45, Tm = 187.65, TT = 187.65, TP = 6.8582, MW = 102.175, LVB = 0.141775, AF = 0.338683, SP = 14450, DM = 3.77E-30, SH = -1209000000.0, IGHF = -3.18988E+08, GEF = -1.248E+08, AS = 382000, HFMP = 1.103E+07, HOC = -3.70234E+09, LiqDen = {105, 0.72527, 0.27594, 500.05, 0.29413, 0}, VP = {101, 109.5333, -7120.297, -13.51365, 0.0000143778, 2}, LiqCp = {16, 161880, -2.8879, 7.7638, 0.014551, -0.000013251}, HOV = {106, 5.8041E+07, 2.3385, -5.2086, 5.0367, -1.6926}, VapCp = {16, 69454, -410.18, 12.642, 0.00044085, -1.3595E-07}, LiqVis = {101, -9.064, 932.47, -0.38815, 0.0000010323, 2}, VapVis = {102, 4.0782E-07, 0.58517, 121.4, 19303, 0}, LiqK = {16, 0.067752, -462.02, 2.3997, -0.014453, 0.0000029856}, VapK = {102, 0.00010149, 1.0246, 180.97, 93179, 0}, Racketparam = 0.267, UniquacR = 4.7421, UniquacQ = 4.088, ChaoSeadAF = 0.338683, ChaoSeadSP = 14450, ChaoSeadLV = 0.141775);
-end Diisopropylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylketone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylketone.mo
deleted file mode 100644
index eba753f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diisopropylketone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diisopropylketone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 317, name = "Diisopropylketone", CAS = "565-80-0", Tc = 582, Pc = 3380000, Vc = 0.416, Cc = 0.262, Tb = 397.5, Tm = 204, TT = 204.81, TP = 0.820585, MW = 114.185, LVB = 0.142561, AF = 0.404427, SP = 16330, DM = 9.11E-30, SH = -1209000000.0, IGHF = -3.16E+08, GEF = -1.237E+08, AS = 427000, HFMP = 1.118E+07, HOC = -4.095E+09, LiqDen = {105, 0.013793, 0.039842, 582, 0.095675, 0}, VP = {101, 107.12, -8385.7, -12.681, 0.0000089823, 2}, LiqCp = {16, 180230, -51.129, 8.6687, 0.010407, -0.0000076786}, HOV = {106, 8.205456E+07, 3.802881, -9.83224, 10.38407, -3.829124}, VapCp = {16, 60064, -502.12, 13.055, 0.00012498, -3.7343E-08}, LiqVis = {101, -5.6405, 1129.7, -1.0122, 0.0000027665, 2}, VapVis = {102, 1.7015E-07, 0.70572, 193.2, -7481.9, 0}, LiqK = {16, -0.11955, 20.681, -1.3034, 0.0000051067, -0.0000013764}, VapK = {102, -9.5076, -0.0072136, 2380.8, -7.251E+07, 0}, Racketparam = 0.262, UniquacR = 5.0493, UniquacQ = 4.568, ChaoSeadAF = 0.404427, ChaoSeadSP = 16330, ChaoSeadLV = 0.142561);
-end Diisopropylketone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylacetylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylacetylene.mo
deleted file mode 100644
index 4c994c1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylacetylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylacetylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 74, name = "Dimethylacetylene", CAS = "503-17-3", Tc = 473.2, Pc = 4870000, Vc = 0.221, Cc = 0.274, Tb = 300.13, Tm = 240.91, TT = 240.91, TP = 6121.21, MW = 54.0904, LVB = 0.0788997, AF = 0.238542, SP = 17480, DM = 1.32E-29, SH = 304600000.0, IGHF = 1.457E+08, GEF = 1.849E+08, AS = 283300, HFMP = 9234000, HOC = -2.4189E+09, LiqDen = {105, 1.1717, 0.25895, 473.2, 0.27289, 0}, VP = {101, 66.56107, -4998.053, -6.834282, 6.682052E-06, 2}, LiqCp = {16, 116500, 35.116, 5.8634, 0.0049877, 0.000013087}, HOV = {106, 4761730, -11.5565, 30.6629, -31.89366, 12.67797}, VapCp = {16, 62226, -826.04, 12.513, -0.0002013, 4.9424E-08}, LiqVis = {101, -0.045622, 305.04, -1.6582, -4.749E-08, 2}, VapVis = {102, 0.0000021802, 0.39407, 508.41, 3758, 0}, LiqK = {16, 0.0074431, -154.13, -0.25098, -0.0046292, -7.3662E-08}, VapK = {102, 0.00021497, 0.91998, 214.54, 130500, 0}, Racketparam = 0, UniquacR = 2.8635, UniquacQ = 2.48, ChaoSeadAF = 0.1301, ChaoSeadSP = 17463.7, ChaoSeadLV = 0.0789036);
-end Dimethylacetylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylcarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylcarbonate.mo
deleted file mode 100644
index 364855c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylcarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylcarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 412, name = "Dimethylcarbonate", CAS = "616-38-6", Tc = 557, Pc = 4800000, Vc = 0.25163, Cc = 0.261, Tb = 363.24, Tm = 276.15, TT = 273.15, TP = 1825.53, MW = 90.084, LVB = 0.084825, AF = 0.337, SP = 20240, DM = 3.0E-30, SH = -61100000.0, IGHF = -5.701E+08, GEF = -4.524E+08, AS = 321600, HFMP = 1.2E+07, HOC = -1.295E+09, LiqDen = {105, 0.0073625, 0.022214, 557, 0.083013, 0}, VP = {101, 127.2975, -8353.984, -16.14514, 0.0000181933, 2}, LiqCp = {16, 170430, -2560.3, -9.9628, -0.012169, 0.000014736}, HOV = {106, 5.291764E+07, 1.146922, -2.489366, 2.898325, -1.182726}, VapCp = {16, 62577, -594.2, 12.53, -0.000022352, -2.2803E-08}, LiqVis = {101, -235.18, 9633.9, 34.904, -0.000038795, 2}, VapVis = {102, 3.5376E-07, 0.64846, 244.72, -7103.7, 0}, LiqK = {16, 0.011223, -183.44, 0.22279, -0.0056614, 0.0000021056}, VapK = {102, 0.00023689, 0.89541, 568.87, 19356, 0}, Racketparam = 0.261, UniquacR = 3.3822, UniquacQ = 3.086, ChaoSeadAF = 0.337, ChaoSeadSP = 20240, ChaoSeadLV = 0.084825);
-end Dimethylcarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethyldisulfide.mo
deleted file mode 100644
index 35fe9e2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 361, name = "Dimethyldisulfide", CAS = "624-92-0", Tc = 606, Pc = 5360000, Vc = 0.252, Cc = 0.264, Tb = 382.9, Tm = 188.44, TT = 188.44, TP = 0.207156, MW = 94.199, LVB = 0.0890926, AF = 0.266353, SP = 20060, DM = 6.57E-30, SH = -22600000.0, IGHF = -2.35978E+07, GEF = 1.53553E+07, AS = 336686, HFMP = 9192000, HOC = -2.04376E+09, LiqDen = {105, 1.0289, 0.26919, 615.01, 0.29771, 0}, VP = {101, 81.238, -6951.5, -8.8055, 0.0000055663, 2}, LiqCp = {16, 143050, -21950, 190.58, -0.51509, 0.00050194}, HOV = {106, 5.473869E+07, 0.511523, 0.456682, -1.152343, 0.579651}, VapCp = {16, 74603, -691.43, 12.21, -0.0000028522, -1.9217E-08}, LiqVis = {101, -11.014, 1197, -0.085106, 2.8649E-07, 2}, VapVis = {102, 7.8221E-08, 0.86272, 109.17, -8364.4, 0}, LiqK = {16, -0.035195, -0.25311, -1.4287, -0.00064815, -0.0000012773}, VapK = {102, 0.00022814, 0.8901, 687.63, 4695.8, 0}, Racketparam = 0.264, UniquacR = 3.226, UniquacQ = 2.736, ChaoSeadAF = 0.205916, ChaoSeadSP = 20060, ChaoSeadLV = 0.0890926);
-end Dimethyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylethanolamine.mo
deleted file mode 100644
index 2ee7c08..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 378, name = "Dimethylethanolamine", CAS = "108-01-0", Tc = 571.82, Pc = 4140000, Vc = 0.331, Cc = 0.261, Tb = 404.15, Tm = 214.15, TT = 214.15, TP = 0.0376223, MW = 89.1362, LVB = 0.101094, AF = 0.710963, SP = 22790, DM = 7.37E-30, SH = -22600000.0, IGHF = -2.02E+08, GEF = -3.64E+07, AS = 384000, HFMP = 0, HOC = -2.65E+09, LiqDen = {105, 0.87166, 0.26133, 571.82, 0.28585, 0}, VP = {101, 121.6094, -10451.37, -14.23754, 0.000006927, 2}, LiqCp = {16, 66692, -55.489, 10.897, 0.0047237, -0.0000030382}, HOV = {106, 7.9011E+07, 0.56455, -0.031757, -0.28621, 0.17191}, VapCp = {16, 71203, -582.55, 12.891, -0.000082299, 3.2172E-08}, LiqVis = {101, -15.376, 3350.8, -0.34232, 9.4723E-07, 2}, VapVis = {102, 1.2904E-07, 0.77955, 165.36, -6888.3, 0}, LiqK = {16, -0.083559, -10.945, -0.99458, -0.00097463, -8.1342E-07}, VapK = {102, 0.00023136, 0.92757, 412.5, 95357, 0}, Racketparam = 0.261, UniquacR = 4.4363, UniquacQ = 4.068, ChaoSeadAF = 0.710963, ChaoSeadSP = 22790, ChaoSeadLV = 0.101094);
-end Dimethylethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylether.mo
deleted file mode 100644
index de11e5f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 53, name = "Dimethylether", CAS = "115-10-6", Tc = 400.1, Pc = 5400000, Vc = 0.17, Cc = 0.276, Tb = 248.31, Tm = 131.66, TT = 131.65, TP = 3.04959, MW = 46.069, LVB = 0.06907, AF = 0.191, SP = 15120, DM = 4.34E-30, SH = -184100000.0, IGHF = -1.841E+08, GEF = -1.128E+08, AS = 266700, HFMP = 4937000, HOC = -1.3284E+09, LiqDen = {105, 1.4889, 0.26123, 400.1, 0.27948, 0}, VP = {101, 50.32175, -3631.453, -4.444735, 5.290757E-06, 2}, LiqCp = {16, 97754, 353.35, -1.896, 0.040999, -0.000017816}, HOV = {106, 3.8521E+07, 2.2845, -5.7518, 6.5695, -2.6976}, VapCp = {16, 37573.94, -346.059, 11.12596, 0.00118434, -4.086847E-07}, LiqVis = {101, -10.661, 449.83, 0.0072727, -3.6906E-08, 2}, VapVis = {102, 0.0000027281, 0.3952, 534.12, 2319, 0}, LiqK = {16, -0.15344, -11.847, -0.56462, -0.0022104, 5.6048E-07}, VapK = {102, 0.059968, 0.26671, 1018.3, 1098900, 0}, Racketparam = 0, UniquacR = 2.0461, UniquacQ = 1.936, ChaoSeadAF = 0.2, ChaoSeadSP = 15212.1, ChaoSeadLV = 0.0703107);
-end Dimethylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfide.mo
deleted file mode 100644
index c8b4829..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 55, name = "Dimethylsulfide", CAS = "75-18-3", Tc = 503, Pc = 5530000, Vc = 0.201, Cc = 0.266, Tb = 310.48, Tm = 174.88, TT = 174.88, TP = 7.86415, MW = 62.136, LVB = 0.07377, AF = 0.19, SP = 18530, DM = 5.0E-30, SH = -184100000.0, IGHF = -3.724E+07, GEF = 7302000, AS = 285850, HFMP = 7984700, HOC = -1.7443E+09, LiqDen = {105, 1.1867, 0.25844, 503.06, 0.24773, 0}, VP = {101, 14.07567, -3435.088, 1.598135, -0.0000069451, 2}, LiqCp = {16, 112410, -20036, 201.07, -0.63397, 0.0007177}, HOV = {106, 5.490637E+07, 1.721854, -2.161256, 0.932609, -0.0179494}, VapCp = {16, 56893, -682.39, 12.01, 0.00013748, -5.7442E-08}, LiqVis = {101, -15.044, 992.97, 0.60378, 0.0000010306, 2}, VapVis = {102, 4.8631E-07, 0.62748, 355.22, -11800, 0}, LiqK = {16, 0.10006, -155.98, -0.57159, -0.0045066, -0.0000087305}, VapK = {102, 0.00026184, 0.91507, 780.75, -32167, 0}, Racketparam = 0.273888, UniquacR = 2.5141, UniquacQ = 2.216, ChaoSeadAF = 0.189279, ChaoSeadSP = 18513.3, ChaoSeadLV = 0.0730914);
-end Dimethylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfoxide.mo
deleted file mode 100644
index 379d1a9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylsulfoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylsulfoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 204, name = "Dimethylsulfoxide", CAS = "67-68-5", Tc = 729, Pc = 5650000, Vc = 0.227, Cc = 0.212, Tb = 462.15, Tm = 291.67, TT = 291.67, TP = 50.2288, MW = 78.1334, LVB = 0.071277, AF = 0.280551, SP = 26750, DM = 1.32E-29, SH = -1209000000.0, IGHF = -2.092E+08, GEF = -1.157E+08, AS = 306300, HFMP = 1.393E+07, HOC = -1.6054E+09, LiqDen = {105, 1.1064, 0.25156, 729, 0.33043, 0}, VP = {101, 87.24911, -9095.583, -9.246359, 3.215062E-06, 2}, LiqCp = {16, 148920, 274.35, 2.2127, 0.017296, -0.000001184}, HOV = {106, 4.1934E+08, 12.701, -33.974, 36.922, -14.839}, VapCp = {16, 61635, -582.63, 12.205, -0.000053872, 2.2232E-08}, LiqVis = {101, 33.492, 223.29, -7.3227, 0.000014294, 2}, VapVis = {102, 8.6219E-08, 0.83436, 168.37, -97.445, 0}, LiqK = {16, 0.081843, -215.42, 0.15922, -0.0051305, 0.0000011114}, VapK = {102, 0.0006441, 0.77214, 1010.2, 82198, 0}, Racketparam = 0.212, UniquacR = 2.8266, UniquacQ = 2.472, ChaoSeadAF = 0.280551, ChaoSeadSP = 26750, ChaoSeadLV = 0.071277);
-end Dimethylsulfoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylterephthalate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylterephthalate.mo
deleted file mode 100644
index 5bc9beb..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dimethylterephthalate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dimethylterephthalate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 408, name = "Dimethylterephthalate", CAS = "120-61-6", Tc = 772, Pc = 2780000, Vc = 0.529, Cc = 0.229, Tb = 555.15, Tm = 413.8, TT = 413.8, TP = 1257.73, MW = 194.184, LVB = 0.180564, AF = 0.637086, SP = 17710, DM = 7.3E-30, SH = -61100000.0, IGHF = -6.37E+08, GEF = -4.74E+08, AS = 550000, HFMP = 3.09E+07, HOC = -4.4115E+09, LiqDen = {105, 0.50864, 0.26895, 772, 0.26133, 0}, VP = {101, 87.35202, -11061.82, -8.88269, 1.566691E-07, 2}, LiqCp = {16, 306140, 1151.8, 1.8179, 0.019226, -0.0000087371}, HOV = {106, 4.927268E+07, -0.826644, 0.840569, 0.547723, -0.373819}, VapCp = {16, 95546, -944.26, 15.059, -0.0027373, 0.0000012901}, LiqVis = {101, -9.6027, 1845.8, -0.28991, 2.7867E-07, 2}, VapVis = {102, 1.5497E-10, 1.62, -527.6, 101960, 0}, LiqK = {16, -0.015206, -275.63, 0.058569, -0.0035078, 7.3745E-07}, VapK = {102, -21938, 0.32202, -4.3275E+09, -1.5265E+11, 0}, Racketparam = 0.229, UniquacR = 6.6618, UniquacQ = 5.296, ChaoSeadAF = 0.637086, ChaoSeadSP = 17710, ChaoSeadLV = 0.180564);
-end Dimethylterephthalate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinbutylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinbutylether.mo
deleted file mode 100644
index 2299125..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinbutylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dinbutylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 324, name = "Dinbutylether", CAS = "142-96-1", Tc = 580.15, Pc = 2380000, Vc = 0.511, Cc = 0.247, Tb = 415.35, Tm = 177.95, TT = 175.3, TP = 0.000714135, MW = 130.228, LVB = 0.17041, AF = 0.447646, SP = 15830, DM = 3.9E-30, SH = -1209000000.0, IGHF = -3.339E+08, GEF = -8.827E+07, AS = 481200, HFMP = 1.63E+07, HOC = -4.94716E+09, LiqDen = {105, 0.22926, 0.17412, 584.11, 0.21764, 0}, VP = {101, 95.7043, -8294.241, -10.81822, 6.127187E-06, 2}, LiqCp = {16, 198760, 65.432, 9.8123, 0.0039694, 8.4178E-07}, HOV = {106, 6.4859E+07, 0.77992, -0.72383, 0.38094, -0.025388}, VapCp = {16, 152990, -805.71, 13.605, -0.00024656, 5.3497E-08}, LiqVis = {101, 20.743, -83.003, -4.9404, 0.000004096, 2}, VapVis = {102, 0.0000002113, 0.66224, 141.56, 6932, 0}, LiqK = {16, -0.067128, 2.4703, -1.3291, -0.0010011, -2.5742E-07}, VapK = {102, 0.0036064, 0.57918, 1401.9, 287150, 0}, Racketparam = 0.247, UniquacR = 6.0925, UniquacQ = 5.176, ChaoSeadAF = 0.447646, ChaoSeadSP = 15830, ChaoSeadLV = 0.17041);
-end Dinbutylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropyldisulfide.mo
deleted file mode 100644
index bc8597c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dinpropyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 362, name = "Dinpropyldisulfide", CAS = "629-19-6", Tc = 727.15, Pc = 3009350, Vc = 0.518, Cc = 0.25, Tb = 466.65, Tm = 187.15, TT = 187.66, TP = 0.000767693, MW = 150.305, LVB = 0.157229, AF = 0.142024, SP = 17950, DM = 6.6E-30, SH = -22600000.0, IGHF = -1.173E+08, GEF = 3.849E+07, AS = 490000, HFMP = 1.381E+07, HOC = -4.53027E+09, LiqDen = {105, 0.0083051, 0.032244, 727.15, 0.12866, 0}, VP = {101, 37.30305, -7362.883, -1.323142, -8.891834E-06, 2}, LiqCp = {16, 195280, 206.99, 8.2539, 0.0083402, -0.0000036311}, HOV = {106, 5.27924E+07, -0.627848, 2.812662, -3.633008, 1.997715}, VapCp = {16, 135200, -728.45, 13.4, -0.00037376, 9.4294E-08}, LiqVis = {101, -9.576, 1437.8, -0.35065, 0.0000011166, 2}, VapVis = {102, 6.2944E-08, 0.86495, 121.54, -9663.6, 0}, LiqK = {16, -0.066065, 4.827, -1.4132, -0.00039942, -9.1868E-07}, VapK = {102, 0.00015595, 0.95139, 651.61, 14665, 0}, Racketparam = 0.25, UniquacR = 5.9236, UniquacQ = 4.896, ChaoSeadAF = 0.436981, ChaoSeadSP = 17950, ChaoSeadLV = 0.157229);
-end Dinpropyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropylsulfide.mo
deleted file mode 100644
index 2ee51fc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Dinpropylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Dinpropylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 358, name = "Dinpropylsulfide", CAS = "111-47-7", Tc = 608, Pc = 3080000, Vc = 0.412, Cc = 0.251, Tb = 415.978, Tm = 170.55, TT = 170.44, TP = 0.000440358, MW = 118.24, LVB = 0.141918, AF = 0.374042, SP = 17110, DM = 5.5E-30, SH = -22600000.0, IGHF = -1.254E+08, GEF = 2.15E+07, AS = 447000, HFMP = 1.214E+07, HOC = -4.1801E+09, LiqDen = {105, 0.66296, 0.27313, 608, 0.29224, 0}, VP = {101, 149.6373, -10251.56, -19.3067, 0.0000171365, 2}, LiqCp = {16, 165300, 330.45, 6.4516, 0.01426, -0.000009041}, HOV = {106, 5.7575E+07, 0.38334, 0.098397, -0.17233, 0.065159}, VapCp = {16, 105470, -659.93, 13.199, -0.00015, 2.3041E-08}, LiqVis = {101, -10.285, 1150.9, -0.17064, 6.2281E-07, 2}, VapVis = {102, 7.5739E-08, 0.838, 116.99, -6475.6, 0}, LiqK = {16, -0.078109, 7.1733, -1.4231, -0.000097639, -0.0000015465}, VapK = {102, 0.0086151, 0.48706, 1648.6, 489220, 0}, Racketparam = 0.251, UniquacR = 5.2117, UniquacQ = 4.376, ChaoSeadAF = 0.374042, ChaoSeadSP = 17110, ChaoSeadLV = 0.141918);
-end Dinpropylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diphenyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diphenyldisulfide.mo
deleted file mode 100644
index 54ea3fe..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Diphenyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Diphenyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 366, name = "Diphenyldisulfide", CAS = "882-33-7", Tc = 829.8, Pc = 3569000, Vc = 0.584, Cc = 0.302, Tb = 583.15, Tm = 333.5, TT = 333.5, TP = 0.49, MW = 218.338, LVB = 0.2076, AF = 0.569717, SP = 20480, DM = 5.97E-30, SH = -22600000.0, IGHF = 2.628E+08, GEF = 3.518E+08, AS = 489300, HFMP = 1.93E+07, HOC = -6.676E+09, LiqDen = {105, 0.5173, 0.302, 829.8, 0.28571, 0}, VP = {101, 927.5541, -59320.23, -131.1073, 0.000060625, 2}, LiqCp = {100, 267470, 28.884, 0.54728, 0, 0}, HOV = {106, 1.1805E+08, 0.46278, 0.25764, -0.22402, -0.0012437}, VapCp = {16, 50433, -472.23, 13.469, -0.00011605, 2.3877E-08}, LiqVis = {101, -10.832, 1659.3, -0.039017, -1.1543E-07, 2}, VapVis = {102, 5.542E-08, 0.87669, 123.7, -14104, 0}, LiqK = {16, -0.040762, -52.269, -1.2013, -0.001172, -1.6247E-07}, VapK = {102, 0.0000021936, 1.4453, -128.48, 46604, 0}, Racketparam = 0.302, UniquacR = 7.6308, UniquacQ = 5.496, ChaoSeadAF = 0.569717, ChaoSeadSP = 20480, ChaoSeadLV = 0.2076);
-end Diphenyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Disecbutylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Disecbutylether.mo
deleted file mode 100644
index 9dc1a65..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Disecbutylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Disecbutylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 325, name = "Disecbutylether", CAS = "6863-58-7", Tc = 562, Pc = 2556000, Vc = 0.487, Cc = 0.269, Tb = 394.2, Tm = 173.15, TT = 173.15, TP = 0.0027863, MW = 130.228, LVB = 0.171577, AF = 0.329, SP = 14950, DM = 0, SH = -1209000000.0, IGHF = -3.609E+08, GEF = -1.157E+08, AS = 501000, HFMP = 0, HOC = -4.9233E+09, LiqDen = {105, 0.038135, 0.072155, 562, 0.11862, 0}, VP = {101, 102.5292, -8146.755, -11.97808, 8.058954E-06, 2}, LiqCp = {16, 102180, -37.551, 10.606, 0.0064949, -0.0000048029}, HOV = {106, 5.5999E+07, 0.34375, 0.18962, -0.14755, -0.0040987}, VapCp = {16, 94528, -497.39, 13.241, 0.000057744, -1.2606E-09}, LiqVis = {101, -10.318, 1230.4, -0.20919, 4.9411E-07, 2}, VapVis = {102, 1.1864E-07, 0.74861, 137.78, -4500.8, 0}, LiqK = {16, 0.027499, 27.604, -2.2754, 0.00032105, -0.0000044406}, VapK = {102, 0.00016749, 0.96101, 656.84, -691.7, 0}, Racketparam = 0.269, UniquacR = 6.0909, UniquacQ = 5.168, ChaoSeadAF = 0.329, ChaoSeadSP = 14950, ChaoSeadLV = 0.171577);
-end Disecbutylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ditertbutyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ditertbutyldisulfide.mo
deleted file mode 100644
index a97b481..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ditertbutyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ditertbutyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 363, name = "Ditertbutyldisulfide", CAS = "110-06-5", Tc = 689.7, Pc = 3159000, Vc = 0.518, Cc = 0.285, Tb = 473.6, Tm = 268.2, TT = 268.2, TP = 9.12, MW = 178.359, LVB = 0.1947, AF = 0.402005, SP = 15680, DM = 6.2E-30, SH = -22600000.0, IGHF = -1.998E+08, GEF = 3.427E+07, AS = 500100, HFMP = 1.31E+07, HOC = -5.665E+09, LiqDen = {105, 0.60778, 0.31522, 689.7, 0.2884, 0}, VP = {101, 113.63, -10180, -13.332, 0.0000068178, 2}, LiqCp = {16, 273850, -799.3, 13.794, -0.001521, 0.0000014598}, HOV = {106, 5.0039E+07, -1.4285, 5.5884, -6.8503, 3.0089}, VapCp = {16, 171300, -806, 13.98, -0.00069575, 1.6372E-07}, LiqVis = {101, -10.435, 1172.7, 0, 0, 0}, VapVis = {102, 0.0000001005, 0.79652, 148.51, -7648.2, 0}, LiqK = {16, -0.019283, -53.989, -1.1745, -0.0017696, -1.3435E-07}, VapK = {102, 0.00018425, 0.91582, 448.35, 58650, 0}, Racketparam = 0.285, UniquacR = 5.9221, UniquacQ = 4.972, ChaoSeadAF = 0.402005, ChaoSeadSP = 15680, ChaoSeadLV = 0.1947);
-end Ditertbutyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethane.mo
deleted file mode 100644
index 40dc07a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 51, name = "Ethane", CAS = "74-84-0", Tc = 305.32, Pc = 4872000, Vc = 0.1455, Cc = 0.279, Tb = 184.55, Tm = 90.352, TT = 90.352, TP = 1.13, MW = 30.07, LVB = 0.04615, AF = 0.099, SP = 12400, DM = 0, SH = -83820000.0, IGHF = -8.382E+07, GEF = -3.192E+07, AS = 229120, HFMP = 2859000, HOC = -1.42864E+09, LiqDen = {105, 1.3749, 0.23949, 305.43, 0.22875, 0}, VP = {101, 61.43744, -2814.319, -6.778053, 0.0000210827, 2}, LiqCp = {16, 68726, -1953.6, 31.772, -0.10571, 0.00019673}, HOV = {106, 2.3996E+07, 1.4625, -2.8991, 2.8421, -0.99532}, VapCp = {16, 35666.22, -616.5198, 11.69914, 0.000444525, -1.541942E-07}, LiqVis = {101, -33.92204, 743.404, 4.302492, -0.0000364469, 2}, VapVis = {102, 5.2452E-07, 0.58906, 188.8, -2953.8, 0}, LiqK = {16, -0.073876, -9.6787, -0.67405, -0.003407, -0.0000022023}, VapK = {102, 0.000074549, 1.168, 506.4, -881.74, 0}, Racketparam = 0.2793, UniquacR = 1.8022, UniquacQ = 1.696, ChaoSeadAF = 0.0908, ChaoSeadSP = 12375.2, ChaoSeadLV = 0.0551979);
-end Ethane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethanol.mo
deleted file mode 100644
index a579c60..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 52, name = "Ethanol", CAS = "64-17-5", Tc = 513.92, Pc = 6148000, Vc = 0.167, Cc = 0.24, Tb = 351.8, Tm = 159.05, TT = 159.05, TP = 0.000495642, MW = 46.069, LVB = 0.05868, AF = 0.649, SP = 26140, DM = 5.64E-30, SH = -83820000.0, IGHF = -2.3495E+08, GEF = -1.6785E+08, AS = 280640, HFMP = 4931000, HOC = -1.235E+09, LiqDen = {105, 1.3539, 0.24957, 515.66, 0.22099, 0}, VP = {101, 88.0754, -7652.06, -9.471507, 5.928087E-06, 2}, LiqCp = {16, 76684, 675.72, -0.093875, 0.037153, -0.000031214}, HOV = {106, 6.3899E+07, 1.2782, -2.673, 2.7973, -1.0209}, VapCp = {16, 44530, -660.89, 12.153, 0.000019532, -1.5636E-08}, LiqVis = {101, 8.061, 774.76, -3.0701, -4.3408E-09, 2}, VapVis = {102, 1.2467E-07, 0.7862, 76.034, -2017.3, 0}, LiqK = {16, 0.10247, -120.39, -0.48487, -0.0071706, 0.000003461}, VapK = {102, -0.01001, 0.64925, -7360.5, -255250, 0}, Racketparam = 0, UniquacR = 2.11, UniquacQ = 1.97, ChaoSeadAF = 0.634, ChaoSeadSP = 26133.3, ChaoSeadLV = 0.0586177);
-end Ethanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/EthylPhenylCarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/EthylPhenylCarbonate.mo
deleted file mode 100644
index 18fc5ce..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/EthylPhenylCarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model EthylPhenylCarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 416, name = "EthylPhenylCarbonate", CAS = "3878-46-4", Tc = 729.29, Pc = 2529800, Vc = 0.55209, Cc = 0.230336, Tb = 522.67, Tm = 0, TT = 0, TP = 0, MW = 166.1762, LVB = 0.18105, AF = 0.54406, SP = 18670.52, DM = 0, SH = -61100000.0, IGHF = 1.138466E+08, GEF = 1.263844E+08, AS = 970006.4, HFMP = 0, HOC = -4.867867, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {10, 22.88975, 5939.5, 0, 0, 0}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 5.2005E+07, 0.38, 0, 0, 0}, VapCp = {4, -38289, 684.92, -0.4426, 0.0001095, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.230336, UniquacR = 6.1772, UniquacQ = 4.898, ChaoSeadAF = 0.54406, ChaoSeadSP = 0, ChaoSeadLV = 0.18105);
-end EthylPhenylCarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetate.mo
deleted file mode 100644
index 35001f3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 87, name = "Ethylacetate", CAS = "141-78-6", Tc = 523.2, Pc = 3830000, Vc = 0.286, Cc = 0.252, Tb = 350.21, Tm = 189.6, TT = 189.6, TP = 1.43179, MW = 88.106, LVB = 0.09855, AF = 0.361, SP = 18350, DM = 5.94E-30, SH = -17100000.0, IGHF = -4.445E+08, GEF = -3.28E+08, AS = 359700, HFMP = 1.048E+07, HOC = -2.061E+09, LiqDen = {105, 0.78926, 0.24295, 523.26, 0.25762, 0}, VP = {101, 93.16862, -7073.291, -10.65983, 8.16528E-06, 2}, LiqCp = {16, 129430, 961.92, -0.12694, 0.034745, -0.000031346}, HOV = {106, 4.9527E+07, 0.37029, 0.072685, -0.077493, 0.017381}, VapCp = {16, 97183, -1121.4, 13.827, -0.0012343, 3.6158E-07}, LiqVis = {101, 16.428, -219.29, -4.124, 6.0568E-07, 2}, VapVis = {102, 0.0000034514, 0.35236, 732.29, -3982.4, 0}, LiqK = {16, 0.040771, -127.25, -0.26995, -0.0055753, 9.9363E-07}, VapK = {102, 2.3264E-07, 1.902, 102.58, -17015, 0}, Racketparam = 0, UniquacR = 3.48, UniquacQ = 3.12, ChaoSeadAF = 0.362, ChaoSeadSP = 18345.6, ChaoSeadLV = 0.0985939);
-end Ethylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetylene.mo
deleted file mode 100644
index f88fa8f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylacetylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylacetylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 75, name = "Ethylacetylene", CAS = "107-00-6", Tc = 440, Pc = 4600000, Vc = 0.208, Cc = 0.262, Tb = 281.21, Tm = 147.429, TT = 147.43, TP = 1.17966, MW = 54.092, LVB = 0.08322, AF = 0.245, SP = 15950, DM = 2.7E-30, SH = 165200000.0, IGHF = 1.652E+08, GEF = 2.0225E+08, AS = 290390, HFMP = 6029270, HOC = -2.4647E+09, LiqDen = {105, 1.3447, 0.27928, 440, 0.29778, 0}, VP = {101, 76.044, -5031.59, -8.40406, 9.681824E-06, 2}, LiqCp = {16, 109820, 1148.7, -9.607, 0.084548, -0.00010384}, HOV = {106, 3.604722E+07, 0.546439, -0.26185, 0, 0}, VapCp = {16, 44709, -441.89, 11.889, 0.00039371, -1.2645E-07}, LiqVis = {101, -4.3451, 354.46, -0.92921, -0.0000006027, 2}, VapVis = {102, 0.0000027867, 0.37696, 663.32, 30.832, 0}, LiqK = {16, -0.032845, 13.956, -1.5811, -0.00025138, -0.0000029965}, VapK = {102, 0.000036868, 1.1429, -57.854, 83816, 0}, Racketparam = 0, UniquacR = 2.8675, UniquacQ = 2.476, ChaoSeadAF = 0.246864, ChaoSeadSP = 16554, ChaoSeadLV = 0.0809511);
-end Ethylacetylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylamine.mo
deleted file mode 100644
index e7bc131..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 57, name = "Ethylamine", CAS = "75-04-7", Tc = 456.4, Pc = 5630000, Vc = 0.1818, Cc = 0.267, Tb = 289.75, Tm = 192.15, TT = 192.15, TP = 151.827, MW = 45.084, LVB = 0.06659, AF = 0.276, SP = 19100, DM = 4.07E-30, SH = -47150000.0, IGHF = -4.715E+07, GEF = 3.616E+07, AS = 284800, HFMP = 9350000, HOC = -1.5874E+09, LiqDen = {105, 1.3663, 0.25297, 456.4, 0.27948, 0}, VP = {101, 115.5255, -6764.221, -14.43912, 0.0000155603, 2}, LiqCp = {16, 129790, -12366, -31.003, 0.53709, -0.00091494}, HOV = {106, 4.2765E+07, 0.58718, -0.33502, 0.17251, -0.0015134}, VapCp = {16, 55762, -832.71, 12.632, -0.00036845, 1.1147E-07}, LiqVis = {101, -41.853, 1619.5, 5.3649, -0.000030563, 2}, VapVis = {102, 5.0871E-07, 0.59417, 255.23, -186.42, 0}, LiqK = {16, 0.17744, 585.82, -11.165, 0.043182, -0.000095024}, VapK = {102, 0.40679, 0.005162, 1280.6, 1721800, 0}, Racketparam = 0, UniquacR = 2.2703, UniquacQ = 2.084, ChaoSeadAF = 0.285061, ChaoSeadSP = 19493.4, ChaoSeadLV = 0.0656335);
-end Ethylamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylbenzene.mo
deleted file mode 100644
index 46dd319..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 149, name = "Ethylbenzene", CAS = "100-41-4", Tc = 617.15, Pc = 3609000, Vc = 0.374, Cc = 0.263, Tb = 409.36, Tm = 178.2, TT = 178.2, TP = 0.00390778, MW = 106.167, LVB = 0.12308, AF = 0.304, SP = 17980, DM = 2.0E-30, SH = -168070000.0, IGHF = 2.992E+07, GEF = 1.3073E+08, AS = 360630, HFMP = 9180300, HOC = -4.3448E+09, LiqDen = {105, 0.66155, 0.25394, 617.21, 0.27883, 0}, VP = {101, 137.5088, -9745.069, -17.34457, 0.0000127987, 2}, LiqCp = {16, 131820, -90.983, 10.031, 0.0026504, 0.0000033965}, HOV = {106, 5.990732E+07, 0.380483, 1.094304, -2.185536, 1.1369}, VapCp = {16, 65434, -619.34, 13.166, -0.00016412, 4.1529E-08}, LiqVis = {101, -14.506, 1237.2, 0.52859, -9.1363E-08, 2}, VapVis = {102, 0.0000016833, 0.39831, 366.45, 23750, 0}, LiqK = {16, -0.026087, 13.301, -1.6623, -0.00027844, -0.0000018214}, VapK = {102, 0.000015932, 1.3226, 486.47, 14367, 0}, Racketparam = 0, UniquacR = 4.6, UniquacQ = 3.51, ChaoSeadAF = 0.2936, ChaoSeadSP = 17979.95, ChaoSeadLV = 0.1231);
-end Ethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylchloride.mo
deleted file mode 100644
index 3b740d4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 50, name = "Ethylchloride", CAS = "75-00-3", Tc = 460.3, Pc = 5300000, Vc = 0.199, Cc = 0.276, Tb = 285.42, Tm = 136.75, TT = 134.8, TP = 0.1249, MW = 64.514, LVB = 0.07258, AF = 0.194, SP = 17250, DM = 6.84E-30, SH = -112260000.0, IGHF = -1.1226E+08, GEF = -6.0499E+07, AS = 275780, HFMP = 4451800, HOC = -1.2849E+09, LiqDen = {105, 1.3553, 0.26895, 460.36, 0.24994, 0}, VP = {101, 51.28342, -4206.393, -4.478839, 3.812824E-06, 2}, LiqCp = {16, 95946, -7247, 67.469, -0.16696, 0.00017795}, HOV = {106, 3.61548E+07, 0.981924, -2.026046, 2.205811, -0.774155}, VapCp = {16, 12765.96, -117.0948, 11.04141, 0.00111696, -3.565557E-07}, LiqVis = {101, -10.065, 698.32, -0.097691, 8.0018E-08, 2}, VapVis = {102, 3.2572E-07, 0.66869, 165.43, -2726.9, 0}, LiqK = {16, 0.062544, 150.84, -4.3182, 0.012599, -0.000031799}, VapK = {102, -19.83, 0.20145, -728060, -2.7917E+08, 0}, Racketparam = 0, UniquacR = 2.3665, UniquacQ = 2.112, ChaoSeadAF = 0.190636, ChaoSeadSP = 17772.6, ChaoSeadLV = 0.0708426);
-end Ethylchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclohexane.mo
deleted file mode 100644
index e16085d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 153, name = "Ethylcyclohexane", CAS = "1678-91-7", Tc = 609.15, Pc = 3040000, Vc = 0.43, Cc = 0.258, Tb = 404.945, Tm = 161.839, TT = 161.839, TP = 0.000357389, MW = 112.213, LVB = 0.143036, AF = 0.245525, SP = 16340, DM = 0, SH = -168070000.0, IGHF = -1.715E+08, GEF = 3.955E+07, AS = 382600, HFMP = 8334100, HOC = -4.87051E+09, LiqDen = {105, 0.61774, 0.26525, 609.15, 0.28064, 0}, VP = {101, 80.60435, -7221.846, -8.661516, 4.619539E-06, 2}, LiqCp = {16, 106540, 50.724, 9.3758, 0.0085193, -0.0000058679}, HOV = {106, 6.1066E+07, 1.1095, -1.6401, 1.5232, -0.54256}, VapCp = {16, 99579, -799.66, 13.811, -0.00043634, 1.1487E-07}, LiqVis = {101, -22.531, 1686, 1.7093, -0.0000001282, 2}, VapVis = {102, 4.2871E-07, 0.57053, 258.88, -2237.2, 0}, LiqK = {16, -0.040212, 3.9673, -1.6044, -0.00049691, -0.0000012623}, VapK = {102, 0.000062751, 1.1219, 488.85, 45648, 0}, Racketparam = 0, UniquacR = 5.3944, UniquacQ = 4.316, ChaoSeadAF = 0.2426, ChaoSeadSP = 16360, ChaoSeadLV = 0.143117);
-end Ethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclopentane.mo
deleted file mode 100644
index ca2f5a3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 145, name = "Ethylcyclopentane", CAS = "1640-89-7", Tc = 569.5, Pc = 3397000, Vc = 0.375, Cc = 0.269, Tb = 376.59, Tm = 134.71, TT = 134.71, TP = 3.71437E-06, MW = 98.188, LVB = 0.12883, AF = 0.27, SP = 16250, DM = 0, SH = -168070000.0, IGHF = -1.269E+08, GEF = 4.48E+07, AS = 378300, HFMP = 6869700, HOC = -4.2839E+09, LiqDen = {105, 0.72259, 0.26996, 569.5, 0.2784, 0}, VP = {101, 95.769, -7366.4, -11.099, 0.0000081014, 2}, LiqCp = {16, 128880, 403.43, 3.1567, 0.031507, -0.000033176}, HOV = {106, 5.78221E+07, 0.856257, -0.338119, -0.391894, 0.299953}, VapCp = {16, 61352, -623.48, 13.275, -0.000068613, 9.3089E-09}, LiqVis = {101, -3.6105, 709.69, -1.12, 8.8328E-07, 2}, VapVis = {102, 0.0000021783, 0.38064, 577.64, 269.9, 0}, LiqK = {16, -0.019932, 6.51, -1.7114, -0.0004148, -0.0000019629}, VapK = {102, 0.0047981, 0.52948, 335.74, 590020, 0}, Racketparam = 0, UniquacR = 4.72, UniquacQ = 3.776, ChaoSeadAF = 0.271548, ChaoSeadSP = 16339.4, ChaoSeadLV = 0.128749);
-end Ethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylene.mo
deleted file mode 100644
index de776b0..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 43, name = "Ethylene", CAS = "74-85-1", Tc = 282.34, Pc = 5041000, Vc = 0.1311, Cc = 0.282, Tb = 169.42, Tm = 104, TT = 104, TP = 125.988, MW = 28.054, LVB = 0.05107, AF = 0.087, SP = 12440, DM = 0, SH = 52510000.0, IGHF = 5.251E+07, GEF = 6.844E+07, AS = 219200, HFMP = 3351000, HOC = -1.323E+09, LiqDen = {105, 2.3782, 0.29542, 282.36, 0.32456, 0}, VP = {101, 54.53229, -2458.42, -5.660037, 0.0000194185, 2}, LiqCp = {16, 68016, -22414, 286.75, -1.1802, 0.0017304}, HOV = {106, 2.1658E+07, 1.2164, -2.1538, 2.0768, -0.73096}, VapCp = {16, 33071.93, -860.0281, 12.22807, -0.000509703, 1.628387E-07}, LiqVis = {101, -8.9556, 288.21, -0.21985, -0.000010831, 2}, VapVis = {102, 0.0000021134, 0.41436, 359.51, -2291.7, 0}, LiqK = {16, -0.19499, -11.178, -0.31182, -0.0034844, 3.5873E-07}, VapK = {102, 0.0000093247, 1.4607, 410.48, -44405, 0}, Racketparam = 0.281, UniquacR = 1.57, UniquacQ = 1.49, ChaoSeadAF = 0.0949, ChaoSeadSP = 12436.64, ChaoSeadLV = 0.061);
-end Ethylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenecarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenecarbonate.mo
deleted file mode 100644
index adafe6d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenecarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylenecarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 418, name = "Ethylenecarbonate", CAS = "96-49-1", Tc = 806, Pc = 6770000, Vc = 0.193, Cc = 0.195, Tb = 521.15, Tm = 309.15, TT = 309.55, TP = 8.01004, MW = 88.0621, LVB = 0.0664942, AF = 0.442272, SP = 29660, DM = 1.5E-29, SH = -61100000.0, IGHF = -5.069E+08, GEF = -4.1E+08, AS = 260000, HFMP = 1.0E+07, HOC = -1.083E+09, LiqDen = {105, 1.5442, 0.2959, 806, 0.28857, 0}, VP = {101, 132.44, -12293, -15.875, 0.0000073572, 2}, LiqCp = {16, -57259, -17.021, 11.366, 0.0033817, -0.0000020646}, HOV = {106, 8.7297E+07, -0.075043, 3.7018, -6.1954, 2.9631}, VapCp = {16, 50075, -516.61, 12.288, 0.000013893, -2.689E-08}, LiqVis = {101, -8.7402, 1424.5, -0.45708, 0.0000005934, 2}, VapVis = {102, 8.5517E-08, 0.85448, 116.16, -3914.9, 0}, LiqK = {16, 0.00091342, -110.82, -0.51748, -0.0023793, 3.9376E-07}, VapK = {102, 0.030823, 0.34958, 3003.2, 830800, 0}, Racketparam = 0.195, UniquacR = 2.9288, UniquacQ = 2.47, ChaoSeadAF = 0.442272, ChaoSeadSP = 29660, ChaoSeadLV = 0.0664942);
-end Ethylenecarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenediamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenediamine.mo
deleted file mode 100644
index a550252..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylenediamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylenediamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 370, name = "Ethylenediamine", CAS = "107-15-3", Tc = 592.95, Pc = 6290000, Vc = 0.206, Cc = 0.337, Tb = 390.15, Tm = 281.65, TT = 284.29, TP = 677.511, MW = 60.0983, LVB = 0.0672757, AF = 0.472367, SP = 25200, DM = 6.34E-30, SH = -22600000.0, IGHF = -1.78E+07, GEF = 1.032E+08, AS = 321833, HFMP = 109700, HOC = -1.691E+09, LiqDen = {105, 0.77469, 0.20588, 592.95, 0.20098, 0}, VP = {101, 133.543, -9787.615, -16.57909, 0.0000129717, 2}, LiqCp = {16, 143860, 434.68, 4.2425, 0.021662, -0.000021123}, HOV = {106, 7.5708E+07, 1.0826, -0.65481, -0.27019, 0.25065}, VapCp = {16, 58340, -554.75, 12.205, 0.00022368, -7.8562E-08}, LiqVis = {101, -9.2076, 2247.2, -0.93509, 0.0000071501, 2}, VapVis = {102, 2.0005E-07, 0.70929, 192.67, -6383.4, 0}, LiqK = {16, 0.020715, -158.25, 0.1953, -0.004385, 0.0000010035}, VapK = {102, 0.16528, 0.18013, 3835.1, 1598900, 0}, Racketparam = 0.337, UniquacR = 2.7384, UniquacQ = 2.472, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Ethylenediamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneglycol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneglycol.mo
deleted file mode 100644
index f82bc3a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneglycol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethyleneglycol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 54, name = "Ethyleneglycol", CAS = "107-21-1", Tc = 719, Pc = 8200000, Vc = 0.191, Cc = 0.262, Tb = 470.45, Tm = 260.15, TT = 260.15, TP = 0.21922, MW = 62.0678, LVB = 0.055908, AF = 0.506776, SP = 33840, DM = 8.04E-30, SH = -184100000.0, IGHF = -3.922E+08, GEF = -3.018E+08, AS = 304891, HFMP = 9958000, HOC = -1.0527E+09, LiqDen = {105, 1.3106, 0.25084, 720, 0.21838, 0}, VP = {101, 68.11797, -9617.267, -5.83171, -1.13705E-06, 2}, LiqCp = {16, 86990, -72.326, 9.7466, 0.0065456, -0.0000047}, HOV = {106, 7.414E+07, 0.16807, -0.19694, 1.0417, -0.61488}, VapCp = {16, 52948, -604.61, 12.115, 0.00010607, -4.9352E-08}, LiqVis = {101, -309.38, 14928, 45.49, -0.000044405, 2}, VapVis = {102, 1.2284E-07, 0.79557, 132.87, -5540.3, 0}, LiqK = {16, 0.1684, -313.75, -1.072, -0.000058054, -0.0000032443}, VapK = {102, -8962900, -0.31257, 2.5313E+09, -1.2955E+13, 0}, Racketparam = 0, UniquacR = 2.41, UniquacQ = 2.25, ChaoSeadAF = 0.48683, ChaoSeadSP = 33703.3, ChaoSeadLV = 0.0559089);
-end Ethyleneglycol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneoxide.mo
deleted file mode 100644
index 5e897ef..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyleneoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethyleneoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 47, name = "Ethyleneoxide", CAS = "75-21-8", Tc = 469.15, Pc = 7190000, Vc = 0.140296, Cc = 0.25876, Tb = 283.6, Tm = 160.65, TT = 160.65, TP = 7.78791, MW = 44.0526, LVB = 0.0508328, AF = 0.197447, SP = 21050, DM = 6.3E-30, SH = -52630000.0, IGHF = -5.263E+07, GEF = -1.323E+07, AS = 242990, HFMP = 5171400, HOC = -1.218E+09, LiqDen = {105, 0.99773, 0.19368, 469.15, 0.19965, 0}, VP = {101, 69.60869, -4890.744, -7.346771, 8.198478E-06, 2}, LiqCp = {16, 81911, -50003, 534.49, -1.8654, 0.00223}, HOV = {106, 5.9285E+07, 3.2175, -7.404, 7.8553, -3.1858}, VapCp = {16, 31884.09, -715.0886, 12.13937, -0.0000867837, -5.187264E-09}, LiqVis = {101, -8.5785, 634.7, -0.32031, -8.1095E-08, 2}, VapVis = {102, 0.0000010777, 0.52994, 452.12, -16957, 0}, LiqK = {16, -0.2748, 8.1093, -0.70065, -0.00041054, -6.2588E-07}, VapK = {102, -0.00032904, 1.1711, -7027.1, 89001, 0}, Racketparam = 0, UniquacR = 1.5927, UniquacQ = 1.32, ChaoSeadAF = 0.202, ChaoSeadSP = 21584, ChaoSeadLV = 0.0497046);
-end Ethyleneoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylformate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylformate.mo
deleted file mode 100644
index 59275e0..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylformate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylformate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 63, name = "Ethylformate", CAS = "109-94-4", Tc = 508.5, Pc = 4740000, Vc = 0.229, Cc = 0.257, Tb = 327.47, Tm = 193.55, TT = 193.55, TP = 18.1186, MW = 74.079, LVB = 0.08093, AF = 0.282, SP = 19070, DM = 6.44E-30, SH = 20230000.0, IGHF = -3.883E+08, GEF = -3.031E+08, AS = 328200, HFMP = 9204800, HOC = -1.50696E+09, LiqDen = {105, 0.85568, 0.22882, 508.5, 0.23792, 0}, VP = {101, 69.04518, -5678.642, -7.031396, 0.0000050057, 2}, LiqCp = {16, 115910, 228.3, 4.0783, 0.027366, -0.000029781}, HOV = {106, 5.9813E+07, 2.1931, -4.6587, 4.7089, -1.7696}, VapCp = {16, 52378, -459.08, 11.875, 0.00065506, -2.4832E-07}, LiqVis = {101, -8.9483, 848.56, -0.31567, 2.8582E-07, 2}, VapVis = {102, 6.0691E-07, 0.60378, 450.04, -20466, 0}, LiqK = {16, -0.030927, 19.999, -1.4911, -0.000052048, -0.0000024111}, VapK = {102, 381.39, 0.9159, 1.8E+09, -1.1462E+10, 0}, Racketparam = 0, UniquacR = 2.8175, UniquacQ = 2.576, ChaoSeadAF = 0.285, ChaoSeadSP = 18938.7, ChaoSeadLV = 0.0808277);
-end Ethylformate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmercaptan.mo
deleted file mode 100644
index 5a445b2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 56, name = "Ethylmercaptan", CAS = "75-08-1", Tc = 499, Pc = 5490000, Vc = 0.207, Cc = 0.274, Tb = 308.15, Tm = 125.26, TT = 125.26, TP = 0.00113837, MW = 62.136, LVB = 0.07458, AF = 0.189, SP = 18250, DM = 5.27E-30, SH = -184100000.0, IGHF = -4.63E+07, GEF = -4814000, AS = 296100, HFMP = 4975000, HOC = -1.7366E+09, LiqDen = {105, 1.203, 0.25909, 499.16, 0.26567, 0}, VP = {101, 65.4773, -5020.82, -6.678317, 6.449817E-06, 2}, LiqCp = {16, 112430, -35384, 348.44, -1.1065, 0.0012231}, HOV = {106, 4.1777E+07, 0.6898, -0.36317, -0.097723, 0.16958}, VapCp = {16, 39403.72, -328.0582, 11.29594, 0.000950986, -3.249647E-07}, LiqVis = {101, -10.854, 753.55, 0.040849, -7.5884E-07, 2}, VapVis = {102, 0.0000001695, 0.75553, 151.56, -5377.8, 0}, LiqK = {16, -0.021257, 2.7237, -1.42, -0.0008779, -0.0000018277}, VapK = {102, 0.0014607, 0.7033, 1243.2, 53588, 0}, Racketparam = 0, UniquacR = 2.551747, UniquacQ = 2.3, ChaoSeadAF = 0.192074, ChaoSeadSP = 18270.4, ChaoSeadLV = 0.0746133);
-end Ethylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmethyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmethyldisulfide.mo
deleted file mode 100644
index 2fc4c0c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylmethyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylmethyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 364, name = "Ethylmethyldisulfide", CAS = "20333-39-5", Tc = 628.9, Pc = 4615000, Vc = 0.312, Cc = 0.275, Tb = 407.15, Tm = 183.22, TT = 183.22, TP = 0.0416, MW = 108.226, LVB = 0.1066, AF = 0.301, SP = 18730, DM = 8.25E-30, SH = -22600000.0, IGHF = -4.94E+07, GEF = 1.709E+07, AS = 381100, HFMP = 9210000, HOC = -2.65E+09, LiqDen = {105, 0.88258, 0.27523, 628.9, 0.28571, 0}, VP = {101, 96.027, -8038.4, -10.972, 0.0000070895, 2}, LiqCp = {100, 187520, -208.62, 0.55295, 0, 0}, HOV = {106, 4.8216E+07, 0.48633, -0.6279, 0.476, 0}, VapCp = {16, 84149, -628.71, 12.564, -0.0001652, 8.9754E-08}, LiqVis = {101, -74.45287, 3204.964, 10.10529, -0.0000144504, 2}, VapVis = {102, 7.0201E-08, 0.85571, 90.077, -7385.7, 0}, LiqK = {16, -0.21083, 11.426, -1.0307, 0.00012249, -0.0000010671}, VapK = {102, 0.00027958, 0.86411, 843.3, 7471.1, 0}, Racketparam = 0.275, UniquacR = 3.9004, UniquacQ = 3.276, ChaoSeadAF = 0.301, ChaoSeadSP = 18730, ChaoSeadLV = 0.1066);
-end Ethylmethyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylpropyldisulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylpropyldisulfide.mo
deleted file mode 100644
index c8cbe38..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethylpropyldisulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethylpropyldisulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 365, name = "Ethylpropyldisulfide", CAS = "30453-31-7", Tc = 660, Pc = 3612000, Vc = 0.417, Cc = 0.274, Tb = 446.85, Tm = 165, TT = 165, TP = 0.00002, MW = 136.279, LVB = 0.1405, AF = 0.391, SP = 17840, DM = 7.69E-30, SH = -22600000.0, IGHF = -9.625E+07, GEF = 2.796E+07, AS = 460300, HFMP = 1.08E+07, HOC = -3.866E+09, LiqDen = {105, 0.65822, 0.27459, 660, 0.28571, 0}, VP = {101, 110.6, -9574.8, -12.96, 0.0000072115, 2}, LiqCp = {100, 223630, -139.83, 0.57232, 0, 0}, HOV = {106, 5.9782E+07, 0.63427, -0.74757, 0.47275, 0}, VapCp = {16, 105720, -573.79, 12.857, 0.000058344, 8.0803E-09}, LiqVis = {101, -37.87, 2334.8, 4.1564, -0.0000036099, 2}, VapVis = {102, 6.9027E-08, 0.8462, 109.98, -9618.4, 0}, LiqK = {16, -0.20064, 12.059, -1.0757, 0.00011826, -0.000000977}, VapK = {102, 0.00000124, 1.5526, -137.7, 30422, 0}, Racketparam = 0.274, UniquacR = 5.2492, UniquacQ = 4.356, ChaoSeadAF = 0.391, ChaoSeadSP = 17840, ChaoSeadLV = 0.1405);
-end Ethylpropyldisulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyltertpentylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyltertpentylether.mo
deleted file mode 100644
index d765062..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ethyltertpentylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ethyltertpentylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 332, name = "Ethyltertpentylether", CAS = "919-94-8", Tc = 544, Pc = 2740000, Vc = 0.435, Cc = 0.273, Tb = 374.15, Tm = 190, TT = 190, TP = 0.729523, MW = 116.201, LVB = 0.152635, AF = 0.338192, SP = 14970, DM = 5.14E-30, SH = -216400000.0, IGHF = -3.324E+08, GEF = -1.094E+08, AS = 439200, HFMP = 1.2E+07, HOC = -4.32E+09, LiqDen = {105, 0.65888, 0.27797, 544, 0.29227, 0}, VP = {101, 47.12433, -5006.625, -3.892102, 0.0000058438, 2}, LiqCp = {16, -79604, -398.25, 15.392, -0.0067505, 0.0000071337}, HOV = {106, 6.448049E+07, 2.475757, -5.830862, 5.958177, -2.135539}, VapCp = {16, 119820, -647.93, 13.251, -0.00004893, 2.8951E-09}, LiqVis = {101, -11.435, 1134.3, -0.0102, 2.552E-08, 2}, VapVis = {102, 1.2029E-07, 0.7552, 122.76, -2833.2, 0}, LiqK = {16, -0.13805, 13.252, -1.2618, -0.00018101, -0.0000010967}, VapK = {102, 0.00013295, 0.98504, 431.52, 34060, 0}, Racketparam = 0.273, UniquacR = 5.4166, UniquacQ = 4.712, ChaoSeadAF = 0.338192, ChaoSeadSP = 14970, ChaoSeadLV = 0.152635);
-end Ethyltertpentylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/FivemethylTwohexanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/FivemethylTwohexanone.mo
deleted file mode 100644
index 70c5587..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/FivemethylTwohexanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model FivemethylTwohexanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 314, name = "FivemethylTwohexanone", CAS = "110-12-3", Tc = 601, Pc = 2970000, Vc = 0.421, Cc = 0.25, Tb = 417.95, Tm = 199.25, TT = 199.25, TP = 0.0241997, MW = 114.185, LVB = 0.141298, AF = 0.434398, SP = 17740, DM = 0, SH = -1209000000.0, IGHF = -3.04E+08, GEF = -1.22E+08, AS = 446000, HFMP = 0, HOC = -4.1E+09, LiqDen = {105, 0.59436, 0.2568, 601, 0.28571, 0}, VP = {101, 114.12, -9180, -13.613, 0.0000087656, 2}, LiqCp = {16, 125240, 163.14, 9.1111, 0.0074883, -0.0000035144}, HOV = {106, 8.005371E+07, 1.17745, -0.708374, -0.221424, 0.184955}, VapCp = {16, 96832, -530.6, 12.878, 0.00028483, -1.1552E-07}, LiqVis = {101, -15.292, 1388.7, 0.61336, -0.0000015372, 2}, VapVis = {102, 3.5504E-07, 0.6089, 292.03, -90.104, 0}, LiqK = {16, -0.18233, 17.124, -1.0595, -0.000040298, -9.9547E-07}, VapK = {102, 1467.4, 1.0438, 1.713E+10, -1.5385E+11, 0}, Racketparam = 0.25, UniquacR = 5.2703, UniquacQ = 4.492, ChaoSeadAF = 0.434398, ChaoSeadSP = 17740, ChaoSeadLV = 0.141298);
-end FivemethylTwohexanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fivemethylnonane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fivemethylnonane.mo
deleted file mode 100644
index 562f228..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fivemethylnonane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fivemethylnonane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 256, name = "Fivemethylnonane", CAS = "15869-85-9", Tc = 609.6, Pc = 2140000, Vc = 0.5904, Cc = 0.248, Tb = 438.25, Tm = 186, TT = 185.45, TP = 0.000438465, MW = 142.282, LVB = 0.195298, AF = 0.456177, SP = 15440, DM = 0, SH = -1209000000.0, IGHF = -2.5472E+08, GEF = 3.06E+07, AS = 536500, HFMP = 1.66E+07, HOC = -6.291E+09, LiqDen = {105, 0.41463, 0.2529, 610.01, 0.28051, 0}, VP = {101, 215.6392, -13712.31, -29.15861, 0.0000236309, 2}, LiqCp = {16, 230160, -61.977, 9.1603, 0.0096645, -0.0000061376}, HOV = {106, 6.5588E+07, 0.029762, 1.6061, -2.0417, 0.80324}, VapCp = {16, 131700, -594.98, 13.529, -0.000014234, -5.0987E-09}, LiqVis = {101, -13.838, 1303.8, 0.41828, -8.7942E-07, 2}, VapVis = {102, 5.7631E-07, 0.50736, 283.05, -1279.5, 0}, LiqK = {16, -0.183, 10.49, -1.0698, -0.00021616, -6.8913E-07}, VapK = {102, 0.00003614, 1.1239, -159.13, 172680, 0}, Racketparam = 0.248, UniquacR = 7.196599, UniquacQ = 6.012, ChaoSeadAF = 0.456177, ChaoSeadSP = 15440, ChaoSeadLV = 0.195298);
-end Fivemethylnonane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluoranthene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluoranthene.mo
deleted file mode 100644
index 336cf45..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluoranthene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fluoranthene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 185, name = "Fluoranthene", CAS = "206-44-0", Tc = 905, Pc = 2610000, Vc = 0.655, Cc = 0.227, Tb = 655.95, Tm = 383.33, TT = 383.33, TP = 15.7016, MW = 202.251, LVB = 0.184362, AF = 0.587526, SP = 19290, DM = 7.6E-31, SH = -168070000.0, IGHF = 2.889E+08, GEF = 3.862E+08, AS = 418500, HFMP = 1.873E+07, HOC = -7.695E+09, LiqDen = {105, 0.34656, 0.22699, 905, 0.28508, 0}, VP = {101, 96.11781, -12362.08, -10.3511, 0.0000032319, 2}, LiqCp = {16, 241580, 1296.9, 0.78013, 0.023496, -0.000011773}, HOV = {106, 1.442678E+08, 2.403711, -3.376173, 1.404001, 0.0327511}, VapCp = {16, 59938, -461.32, 13.513, -0.00005781, -5.6701E-09}, LiqVis = {101, -68.502, 5208.9, 8.4007, -0.0000042979, 2}, VapVis = {102, 0.0000010875, 0.41309, 444.51, -25.424, 0}, LiqK = {16, -0.045864, -83.397, -0.96049, -0.0013219, -5.1355E-10}, VapK = {102, 0.00011776, 0.94788, 660.84, 38292, 0}, Racketparam = 0.239005, UniquacR = 7.187871, UniquacQ = 4.504, ChaoSeadAF = 0.5, ChaoSeadSP = 19277.2, ChaoSeadLV = 0.184693);
-end Fluoranthene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorene.mo
deleted file mode 100644
index 94999f5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fluorene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 180, name = "Fluorene", CAS = "86-73-7", Tc = 826, Pc = 3000000, Vc = 0.524, Cc = 0.229, Tb = 570.44, Tm = 387.94, TT = 387.94, TP = 281.665, MW = 166.219, LVB = 0.15327, AF = 0.404163, SP = 19820, DM = 8.3E-31, SH = -168070000.0, IGHF = 1.869E+08, GEF = 2.901E+08, AS = 381500, HFMP = 1.9578E+07, HOC = -6.4251E+09, LiqDen = {105, 0.43683, 0.229, 826, 0.28571, 0}, VP = {101, 141.8746, -13833.84, -17.04805, 0.0000063782, 2}, LiqCp = {16, 172320, 813.11, 3.2969, 0.023275, -0.000018014}, HOV = {106, 9.581E+07, 1.317, -1.4739, -0.0034969, 0.61586}, VapCp = {16, 57825, -560.42, 13.575, -0.00027161, 7.5804E-08}, LiqVis = {101, -33.053, 2454.9, 3.4575, -0.0000042581, 2}, VapVis = {102, 5.7084E-07, 0.56204, 373.69, -49.196, 0}, LiqK = {16, -0.013258, -130.68, -0.68476, -0.0022566, 3.0043E-07}, VapK = {102, 0.00017437, 0.9152, 500.25, 62613, 0}, Racketparam = 0, UniquacR = 6.174687, UniquacQ = 4.076, ChaoSeadAF = 0.349259, ChaoSeadSP = 21645.7, ChaoSeadLV = 0.128237);
-end Fluorene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorine.mo
deleted file mode 100644
index 1f64d1a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fluorine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fluorine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 198, name = "Fluorine", CAS = "7782-41-4", Tc = 144.3, Pc = 5215000, Vc = 0.0662, Cc = 0.288, Tb = 84.95, Tm = 53.53, TT = 53.48, TP = 252, MW = 37.997, LVB = 0.02516, AF = 0.051, SP = 15210, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 202690, HFMP = 510360, HOC = 0, LiqDen = {105, 2.7003, 0.23171, 144.42, 0.21541, 0}, VP = {101, 19.18299, -840.6862, 0.560464, -0.0000352006, 2}, LiqCp = {16, 56031, -8382.1, 267.49, -2.7228, 0.0096889}, HOV = {106, 2.7497E+07, 7.2112, -17.699, 17.895, -6.7781}, VapCp = {16, 29021.05, -721.5995, 10.44015, -0.00105401, 3.331903E-07}, LiqVis = {101, 9.2895, -86.903, -3.7445, 0.0000058477, 2}, VapVis = {102, 7.0875E-07, 0.64956, 73.747, -637.02, 0}, LiqK = {16, -0.15422, 9.0003, -1.0608, -0.0018487, -0.00001682}, VapK = {102, 0.00012664, 0.93229, 1.6645, 205.53, 0}, Racketparam = 0.288, UniquacR = 0.75, UniquacQ = 0.88, ChaoSeadAF = 0.051, ChaoSeadSP = 15210, ChaoSeadLV = 0.02516);
-end Fluorine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Formaldehyde.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Formaldehyde.mo
deleted file mode 100644
index f0be735..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Formaldehyde.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Formaldehyde
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 28, name = "Formaldehyde", CAS = "50-00-0", Tc = 408, Pc = 6590000, Vc = 0.115, Cc = 0.223, Tb = 254.05, Tm = 181.15, TT = 181.15, TP = 887, MW = 30.026, LVB = 0.04097, AF = 0.281846, SP = 21190, DM = 7.77E-30, SH = -108600000.0, IGHF = -1.086E+08, GEF = -1.026E+08, AS = 218660, HFMP = 7050000, HOC = -5.268E+08, LiqDen = {105, 1.9413, 0.22308, 408, 0.28569, 0}, VP = {101, 62.07923, -4207.675, -6.202287, 5.521233E-06, 2}, LiqCp = {16, 62716, -69.453, 3.2871, 0.047782, -0.0001008}, HOV = {106, 3.0902E+07, 0.29722, -0.051281, 0.13234, -0.080686}, VapCp = {16, 33216.06, -1212.62, 11.96032, -0.000635943, 1.549232E-07}, LiqVis = {101, -11.303, 753.06, -0.013733, -4.6837E-08, 2}, VapVis = {102, 8.1997E-07, 0.57256, 258.17, -5091, 0}, LiqK = {16, 0.10999, -161.62, 0.83463, -0.01142, 0.0000060772}, VapK = {102, 44.841, -0.71285, -3466.2, 5262100, 0}, Racketparam = 0, UniquacR = 0.9183, UniquacQ = 0.78, ChaoSeadAF = 0.253, ChaoSeadSP = 23824.8, ChaoSeadLV = 0.0369129);
-end Formaldehyde;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethylmxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethylmxylene.mo
deleted file mode 100644
index 0cbf032..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethylmxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fourethylmxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 302, name = "Fourethylmxylene", CAS = "874-41-9", Tc = 665, Pc = 2850000, Vc = 0.456, Cc = 0.251, Tb = 461.59, Tm = 210, TT = 210.27, TP = 0.0181496, MW = 134.218, LVB = 0.153864, AF = 0.409, SP = 17650, DM = 0, SH = -1209000000.0, IGHF = -3.08E+07, GEF = 1.286E+08, AS = 436600, HFMP = 1.293E+07, HOC = -5.544E+09, LiqDen = {105, 0.53184, 0.25635, 665, 0.29535, 0}, VP = {101, 109.6, -9849.7, -12.73, 0.0000063582, 2}, LiqCp = {16, 95699, -84.431, 11.066, 0.0051032, -0.0000041785}, HOV = {106, 6.586476E+07, 0.958711, -1.952194, 2.240006, -0.865941}, VapCp = {16, 90693, -533.27, 13.139, 0.00014143, -6.0863E-08}, LiqVis = {101, -12.665, 1419.5, 0.18354, -0.0000003451, 2}, VapVis = {102, 0.0000037216, 0.29591, 752.65, -7.7443, 0}, LiqK = {16, -0.081171, 5.0587, -1.4195, -0.00031748, -9.1756E-07}, VapK = {102, 0.000083547, 1.0482, 520.64, 45100, 0}, Racketparam = 0.251, UniquacR = 6.0672, UniquacQ = 4.644, ChaoSeadAF = 0.409, ChaoSeadSP = 17650, ChaoSeadLV = 0.153864);
-end Fourethylmxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethyloxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethyloxylene.mo
deleted file mode 100644
index d8e670d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourethyloxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fourethyloxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 303, name = "Fourethyloxylene", CAS = "934-80-5", Tc = 666, Pc = 2890000, Vc = 0.452, Cc = 0.254, Tb = 462.93, Tm = 206, TT = 206.22, TP = 0.00343448, MW = 134.218, LVB = 0.154172, AF = 0.42, SP = 17990, DM = 0, SH = -1209000000.0, IGHF = -3.209E+07, GEF = 1.274E+08, AS = 436600, HFMP = 1.205E+07, HOC = -5.542E+09, LiqDen = {105, 0.54664, 0.26088, 666, 0.29186, 0}, VP = {101, 96.694, -9142.9, -10.852, 0.0000055519, 2}, LiqCp = {16, 89767, -77.889, 11.113, 0.0049399, -0.0000039958}, HOV = {106, 4.3714E+07, -2.7554, 9.4578, -11.023, 4.6307}, VapCp = {16, 90693, -533.27, 13.139, 0.00014143, -6.0863E-08}, LiqVis = {101, -9.1159, 1410.6, -0.43411, 7.8135E-07, 2}, VapVis = {102, 5.8567E-07, 0.52279, 312.52, -1851, 0}, LiqK = {16, -0.061613, 4.0176, -1.4936, -0.00037218, -9.9721E-07}, VapK = {102, 0.000083697, 1.0475, 520.73, 45665, 0}, Racketparam = 0.254, UniquacR = 6.0672, UniquacQ = 4.644, ChaoSeadAF = 0.42, ChaoSeadSP = 17990, ChaoSeadLV = 0.154172);
-end Fourethyloxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourheptanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourheptanone.mo
deleted file mode 100644
index a6318e7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourheptanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fourheptanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 309, name = "Fourheptanone", CAS = "123-19-3", Tc = 595, Pc = 2920000, Vc = 0.421, Cc = 0.253, Tb = 417.15, Tm = 240.65, TT = 240.65, TP = 7.95766, MW = 114.185, LVB = 0.140625, AF = 0.471409, SP = 17410, DM = 8.34E-30, SH = -1209000000.0, IGHF = -3.01E+08, GEF = -1.196E+08, AS = 448600, HFMP = 1.86E+07, HOC = -4.09E+09, LiqDen = {105, 0.78297, 0.29215, 595, 0.33209, 0}, VP = {101, 121.5579, -9310.284, -14.85267, 0.000010781, 2}, LiqCp = {16, 209750, 222.65, 6.403, 0.014092, -0.0000084677}, HOV = {106, 6.630562E+07, 0.51436, 0.600897, -1.414428, 0.688564}, VapCp = {16, 121670, -659.01, 13.093, 0.000016432, -4.1637E-08}, LiqVis = {101, -29.013, 1989.1, 2.6786, -0.0000019943, 2}, VapVis = {102, 1.5516E-07, 0.71327, 190.48, -6907.5, 0}, LiqK = {16, -0.084176, -5.3333, -1.1753, -0.00094427, -3.0728E-07}, VapK = {102, 2007.9, 1.0403, 2.325E+10, -1.556E+11, 0}, Racketparam = 0.253, UniquacR = 5.2711, UniquacQ = 4.496, ChaoSeadAF = 0.411976, ChaoSeadSP = 17410, ChaoSeadLV = 0.140625);
-end Fourheptanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethylcisTwopentene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethylcisTwopentene.mo
deleted file mode 100644
index 4e0964f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethylcisTwopentene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model FourmethylcisTwopentene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 263, name = "FourmethylcisTwopentene", CAS = "691-38-3", Tc = 499, Pc = 3220000, Vc = 0.346, Cc = 0.269, Tb = 329.53, Tm = 138.72, TT = 138.3, TP = 0.00215772, MW = 84.1595, LVB = 0.126648, AF = 0.244178, SP = 14610, DM = 7.18E-31, SH = -1209000000.0, IGHF = -5.03335E+07, GEF = 7.69856E+07, AS = 373338, HFMP = 7363840, HOC = -3.72502E+09, LiqDen = {105, 0.77793, 0.27017, 499, 0.2861, 0}, VP = {101, 83.573, -5993.9, -9.4501, 0.0000085686, 2}, LiqCp = {16, -59803, -16.203, 11.773, 0.0034333, -0.0000037581}, HOV = {106, 5.4227E+07, 1.5628, -2.6171, 2.4298, -0.92758}, VapCp = {16, 101130, -861.95, 13.463, -0.00060529, 2.0212E-07}, LiqVis = {101, -11.752, 820.42, 0.14056, -7.3435E-07, 2}, VapVis = {102, 6.3021E-07, 0.52941, 268.94, 16.597, 0}, LiqK = {16, -0.050868, 4.0553, -1.554, -0.00045968, -0.000001981}, VapK = {102, 0.000052516, 1.0978, -60.883, 128130, 0}, Racketparam = 0.269, UniquacR = 4.2669, UniquacQ = 3.639, ChaoSeadAF = 0.244178, ChaoSeadSP = 14610, ChaoSeadLV = 0.126648);
-end FourmethylcisTwopentene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylheptane.mo
deleted file mode 100644
index 07a85b5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fourmethylheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 228, name = "Fourmethylheptane", CAS = "589-53-7", Tc = 561.7, Pc = 2540000, Vc = 0.476, Cc = 0.259, Tb = 390.86, Tm = 152.19, TT = 152.2, TP = 0.0000457034, MW = 114.231, LVB = 0.16306, AF = 0.371, SP = 15140, DM = 0, SH = -1209000000.0, IGHF = -2.1196E+08, GEF = 1.571E+07, AS = 457390, HFMP = 1.08E+07, HOC = -5.07282E+09, LiqDen = {105, 0.41247, 0.23007, 561.76, 0.23229, 0}, VP = {101, 97.33843, -7742.706, -11.25952, 7.843366E-06, 2}, LiqCp = {16, 123600, -18.717, 11.067, 0.0020327, 0.0000016218}, HOV = {106, 6.797167E+07, 1.151616, -0.835173, -0.171743, 0.314726}, VapCp = {16, 100250, -569.74, 13.266, 0.000060406, -2.5661E-08}, LiqVis = {101, -11.11, 1066.3, -0.039384, 1.7455E-07, 2}, VapVis = {102, 0.0000043616, 0.27023, 695.06, -2959.1, 0}, LiqK = {16, -0.096483, 12.321, -1.3603, -0.00031289, -0.0000012186}, VapK = {102, 0.000040274, 1.1204, -164.18, 166050, 0}, Racketparam = 0.259, UniquacR = 5.8478, UniquacQ = 4.932, ChaoSeadAF = 0.371, ChaoSeadSP = 15140, ChaoSeadLV = 0.16306);
-end Fourmethylheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylnonane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylnonane.mo
deleted file mode 100644
index c2c4a1f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethylnonane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fourmethylnonane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 255, name = "Fourmethylnonane", CAS = "17301-94-9", Tc = 613.7, Pc = 2140000, Vc = 0.5904, Cc = 0.248, Tb = 438.85, Tm = 174.45, TT = 174.45, TP = 0.000108068, MW = 142.282, LVB = 0.195426, AF = 0.465073, SP = 15500, DM = 0, SH = -1209000000.0, IGHF = -2.547E+08, GEF = 2.89E+07, AS = 541900, HFMP = 1.52E+07, HOC = -6.291E+09, LiqDen = {105, 0.046753, 0.085687, 613.7, 0.13909, 0}, VP = {101, 143.6866, -10632.15, -18.17547, 0.0000137486, 2}, LiqCp = {16, 41953, 56.5, 11.484, 0.0029861, -0.0000006055}, HOV = {106, 6.2873E+07, 0.39496, -0.054115, 0.081779, -0.040701}, VapCp = {16, 130820, -589.61, 13.519, -0.0000013811, -1.0182E-08}, LiqVis = {101, -8.7174, 1148.5, -0.42278, 0.000000818, 2}, VapVis = {102, 5.0899E-07, 0.5228, 260.59, -971.93, 0}, LiqK = {16, -0.16198, 12.531, -1.1439, -0.00019006, -7.9079E-07}, VapK = {102, 0.000039332, 1.1131, -152.11, 174490, 0}, Racketparam = 0.248, UniquacR = 7.196599, UniquacQ = 6.012, ChaoSeadAF = 0.465073, ChaoSeadSP = 15500, ChaoSeadLV = 0.195426);
-end Fourmethylnonane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethyloctane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethyloctane.mo
deleted file mode 100644
index 241b4b6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Fourmethyloctane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Fourmethyloctane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 248, name = "Fourmethyloctane", CAS = "2216-34-4", Tc = 587.65, Pc = 2340000, Vc = 0.523, Cc = 0.25, Tb = 415.59, Tm = 159.95, TT = 159.95, TP = 0.0000317697, MW = 128.255, LVB = 0.179037, AF = 0.412925, SP = 15300, DM = 0, SH = -1209000000.0, IGHF = -2.336E+08, GEF = 2.17E+07, AS = 501660, HFMP = 1.6E+07, HOC = -5.68166E+09, LiqDen = {105, 0.51336, 0.26824, 587.65, 0.29075, 0}, VP = {101, 168.4912, -11138.63, -22.13486, 0.0000188399, 2}, LiqCp = {16, 71582, 100.57, 10.612, 0.0050783, -0.0000024905}, HOV = {106, 6.2916E+07, 0.7446, -0.80882, 0.80228, -0.33895}, VapCp = {16, 116790, -588.34, 13.412, 0.000015201, -1.4561E-08}, LiqVis = {101, -11.837, 1162, 0.077237, -2.6336E-07, 2}, VapVis = {102, 3.2706E-07, 0.5848, 183.92, 0.068678, 0}, LiqK = {16, -0.1663, 9.2848, -1.1068, -0.00028405, -0.0000007408}, VapK = {102, 0.000038784, 1.117, -185.06, 177130, 0}, Racketparam = 0.25, UniquacR = 6.5222, UniquacQ = 5.472, ChaoSeadAF = 0.412925, ChaoSeadSP = 15300, ChaoSeadLV = 0.179037);
-end Fourmethyloctane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethyltransTwopentene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethyltransTwopentene.mo
deleted file mode 100644
index 554e90b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/FourmethyltransTwopentene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model FourmethyltransTwopentene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 264, name = "FourmethyltransTwopentene", CAS = "674-76-0", Tc = 501, Pc = 3220000, Vc = 0.346, Cc = 0.267, Tb = 331.76, Tm = 132.36, TT = 132.35, TP = 0.000344783, MW = 84.1595, LVB = 0.126739, AF = 0.255237, SP = 14730, DM = 3.63E-31, SH = -1209000000.0, IGHF = -5.43501E+07, GEF = 7.43497E+07, AS = 368390, HFMP = 7154640, HOC = -3.7205E+09, LiqDen = {105, 0.77321, 0.26966, 501, 0.28578, 0}, VP = {101, 81.691, -5972.8, -9.1408, 0.0000081285, 2}, LiqCp = {16, 22279, 6.5061, 10.859, 0.0058182, -0.000006387}, HOV = {106, 5.3985E+07, 1.4966, -2.4784, 2.2857, -0.85991}, VapCp = {16, 95377, -622.83, 12.814, 0.000074545, -3.6318E-08}, LiqVis = {101, -11.038, 805.55, 0.01464, -7.2359E-08, 2}, VapVis = {102, 7.4971E-07, 0.50587, 292.11, 780.77, 0}, LiqK = {16, -0.02241, 4.5423, -1.7038, -0.00048445, -0.0000024834}, VapK = {102, 0.000062348, 1.0772, -17.479, 116240, 0}, Racketparam = 0.267, UniquacR = 4.2669, UniquacQ = 3.639, ChaoSeadAF = 0.255237, ChaoSeadSP = 14730, ChaoSeadLV = 0.126739);
-end FourmethyltransTwopentene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Furfural.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Furfural.mo
deleted file mode 100644
index a38f929..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Furfural.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Furfural
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 101, name = "Furfural", CAS = "98-01-1", Tc = 670.15, Pc = 5660000, Vc = 0.252, Cc = 0.256, Tb = 434.85, Tm = 236.65, TT = 236.65, TP = 1.54565, MW = 96.0841, LVB = 0.0832248, AF = 0.367784, SP = 23610, DM = 1.2E-29, SH = -134990000.0, IGHF = -1.51E+08, GEF = -1.028E+08, AS = 333300, HFMP = 1.44E+07, HOC = -2.2564E+09, LiqDen = {105, 1.0614, 0.26706, 670.15, 0.30028, 0}, VP = {101, 25.656, -5514, -0.19573, -0.0000013402, 2}, LiqCp = {16, 122630, 404.51, 3.0587, 0.029945, -0.000031496}, HOV = {106, 6.3009E+07, 0.4784, 0.066802, -0.59102, 0.42453}, VapCp = {16, 45855, -497.61, 12.549, -0.000033724, -2.8785E-08}, LiqVis = {101, 2.6487, 910.16, -2.1754, 0.0000028413, 2}, VapVis = {102, 5.1928E-08, 0.91224, 70.285, -5476.4, 0}, LiqK = {16, 0.13228, 19058, -182.25, 0.56426, -0.00059782}, VapK = {102, 0.00022183, 0.91119, 617.18, 55137, 0}, Racketparam = 0.258287, UniquacR = 3.168, UniquacQ = 2.484, ChaoSeadAF = 0.383, ChaoSeadSP = 23643.5, ChaoSeadLV = 0.0831649);
-end Furfural;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/GeneralProperties.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/GeneralProperties.mo
deleted file mode 100644
index 263dd1a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/GeneralProperties.mo
+++ /dev/null
@@ -1,42 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model GeneralProperties "Model to declare the variables for thermophysical properties of the compounds in the database"
- extends Modelica.Icons.Record;
- parameter Integer SN "Serial Number";
- parameter String name "Compound Name";
- parameter String CAS "CAS Number";
- parameter Real Tc (unit="K") "Critical Temperature";
- parameter Real Pc (unit="Pa") "Critical Pressure";
- parameter Real Vc (unit="m3/kmol") "Critical Volume";
- parameter Real Cc (unit="-") "Critical Compressibility Factor";
- parameter Real Tb (unit="K") "Boiling Point Temperature";
- parameter Real Tm (unit="K") "Melting Point Temperature";
- parameter Real TT (unit="K") "Triple Point Temperature";
- parameter Real TP (unit="Pa") "Triple Point Pressure";
- parameter Real MW (unit="-") "Molecular Weight";
- parameter Real LVB (unit="m3/kmol") "Liquid Molar Volume at Normal Boiling Point";
- parameter Real AF (unit="-") "Acentric Factor";
- parameter Real SP (unit="J0.5/m1.5") "Solubility Parameter";
- parameter Real DM (unit="Coulomb.m") "Dipole Moment";
- parameter Real SH (unit="J/kmol") "Absolute Enthalpy";
- parameter Real IGHF (unit="J/kmol") "Standard Heat of Formation";
- parameter Real GEF (unit="J/kmol") "Gibbs Energy of Formation";
- parameter Real AS (unit="J/kmol/K") "Absolute Entropy";
- parameter Real HFMP (unit="J/kmol") "Heat of Fusion at Melting Point";
- parameter Real HOC (unit="J/kmol") "Heat of Combustion";
- parameter Real UniquacR (unit="-") "UNIQUAC r";
- parameter Real UniquacQ (unit="-") "UNIQUAC q";
- parameter Real LiqDen[6] (unit="kmol/m3") "Liquid Density Coefficients";
- parameter Real VP[6] (unit="Pa") "Vapor Pressure Coefficients";
- parameter Real LiqCp[6] (unit="J/kmol/K") "Liquid Heat Capacity Coefficients";
- parameter Real HOV[6] (unit="J/kmol") "Heat of Vaporization Coefficients";
- parameter Real VapCp[6] (unit="J/kmol/K") "Ideal Gas Heat Capacity Coefficients";
- parameter Real LiqVis[6] (unit="Pa s") "Liquid Viscosity Coefficients";
- parameter Real VapVis[6] (unit="Pa s") "Vapor Viscosity Coefficients";
- parameter Real LiqK[6] (unit="W/m/K") "Liquid Thermal Conductivity Coefficients";
- parameter Real VapK[6] (unit="W/m/K") "Vapor Thermal Conductivity Coefficients";
- parameter Real Racketparam (unit="-") "Racket Parameter";
- parameter Real ChaoSeadAF (unit="-") "Chao-Seader Accentric Factor";
- parameter Real ChaoSeadSP (unit="J0.5/m1.5") "Shao-Seader Solubility Parameter";
- parameter Real ChaoSeadLV (unit="m3/kmol") "Chao-Seader Liquid Volume";
-end GeneralProperties;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Glycerol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Glycerol.mo
deleted file mode 100644
index 3db0b42..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Glycerol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Glycerol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 429, name = "Glycerol", CAS = "56-81-5", Tc = 725.15, Pc = 6660000, Vc = 0.264, Cc = 0.28, Tb = 563.15, Tm = 291.15, TT = 291.33, TP = 0.00952225, MW = 92.0938, LVB = 0.0732027, AF = 1.544133, SP = 34540, DM = 1.4E-29, SH = 28500000.0, IGHF = -5.828E+08, GEF = -4.471E+08, AS = 396000, HFMP = 1.831E+07, HOC = -1.477E+09, LiqDen = {105, 0.933664, 0.246209, 850, 0.220672, 0}, VP = {101, 99.57469, -13673.87, -10.09699, 1.227718E-11, 2}, LiqCp = {16, 115.6361, -33.33621, 11.80006, 0.00238285, -0.0000010098}, HOV = {106, 1.1E+08, 1, -2.5, 3.4, -1.65}, VapCp = {16, 31366.31, -311.2541, 12.31511, 0.000195602, 1.752076E-09}, LiqVis = {10, -27, -10000, 70, 0, 0}, VapVis = {16, 1.418624E-06, -375.5227, -11.1197, 0.000710923, 4.531819E-08}, LiqK = {16, 0.00821317, -13.47096, -1.285018, 0.000197192, 1.226656E-07}, VapK = {16, -0.00880104, -445.7976, -2.857337, 0.000677005, 8.722756E-08}, Racketparam = 0, UniquacR = 3.385629, UniquacQ = 3.06, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Glycerol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/HeliumFour.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/HeliumFour.mo
deleted file mode 100644
index ffb7889..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/HeliumFour.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model HeliumFour
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 197, name = "HeliumFour", CAS = "7440-59-7", Tc = 5.19, Pc = 227000, Vc = 0.0573, Cc = 0.301, Tb = 4.3, Tm = 1.763, TT = 1.763, TP = 1478.21, MW = 4.003, LVB = 0.03254, AF = -0.39, SP = 1222, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 126044, HFMP = 50000, HOC = 0, LiqDen = {105, 0.31844, 0.089499, 5.21, 0.063807, 0}, VP = {101, 8.8804, -4.8932, 2.5648, 0.0062779, 2}, LiqCp = {16, -72432, 14.864, 0.90909, 1.9106, -0.057997}, HOV = {106, 191120, 4.6881, -12.652, 12.947, -4.5859}, VapCp = {1, 20786, 0, 0, 0, 0}, LiqVis = {101, -21.436, 10.949, 5.7389, -0.11646, 2}, VapVis = {102, 3.3098E-07, 0.71183, -10.485, 126.3, 0}, LiqK = {16, -0.19278, -0.8853, -0.83633, -0.19115, 0.016867}, VapK = {102, 0.00226, 0.7305, -18.63, 440, 0}, Racketparam = 0.301, UniquacR = 0.456163, UniquacQ = 0.592, ChaoSeadAF = -0.39, ChaoSeadSP = 1222, ChaoSeadLV = 0.03254);
-end HeliumFour;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Heptanal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Heptanal.mo
deleted file mode 100644
index 8117a99..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Heptanal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Heptanal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 322, name = "Heptanal", CAS = "111-71-7", Tc = 603, Pc = 2800000, Vc = 0.421, Cc = 0.267, Tb = 425.95, Tm = 230.15, TT = 229.8, TP = 1.44979, MW = 114.185, LVB = 0.140287, AF = 0.488466, SP = 17780, DM = 8.6E-30, SH = -1209000000.0, IGHF = -2.6401E+08, GEF = -8.653E+07, AS = 461380, HFMP = 2.359E+07, HOC = -4.136E+09, LiqDen = {105, 0.53646, 0.24452, 616.81, 0.26981, 0}, VP = {101, 108.36, -9179.6, -12.655, 0.0000073363, 2}, LiqCp = {16, 200220, 128.23, 7.474, 0.012008, -0.0000080423}, HOV = {106, 6.244116E+07, 0.224744, 0.949788, -1.500319, 0.675167}, VapCp = {16, 131660, -858.87, 13.596, -0.00041213, 8.8955E-08}, LiqVis = {101, 8.4077, 475.87, -3.0758, 0.0000053404, 2}, VapVis = {102, 1.4563E-07, 0.72362, 184.89, -7288.6, 0}, LiqK = {16, 0.02754, -55.074, -1.243, -0.0022084, -0.0000010637}, VapK = {102, 1569.2, 1.0102, 1.4874E+10, 2.7536E+11, 0}, Racketparam = 0.267, UniquacR = 5.2711, UniquacQ = 4.496, ChaoSeadAF = 0.42794, ChaoSeadSP = 17780, ChaoSeadLV = 0.140287);
-end Heptanal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hexanal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hexanal.mo
deleted file mode 100644
index 21e8fdf..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hexanal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Hexanal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 321, name = "Hexanal", CAS = "66-25-1", Tc = 579, Pc = 3110000, Vc = 0.369, Cc = 0.26, Tb = 401.45, Tm = 217.15, TT = 217.15, TP = 1.24729, MW = 100.159, LVB = 0.123708, AF = 0.439121, SP = 18150, DM = 8.6E-30, SH = -1209000000.0, IGHF = -2.4732E+08, GEF = -9.882E+07, AS = 422140, HFMP = 1.89E+07, HOC = -3.52E+09, LiqDen = {105, 1.3196, 0.35571, 579, 0.38551, 0}, VP = {101, 209.3738, -12430.59, -28.59364, 0.0000281667, 2}, LiqCp = {16, 175480, 98.975, 6.7267, 0.013876, -0.0000081365}, HOV = {106, 5.570251E+07, -0.000821879, 0.788181, -0.0470431, -0.460389}, VapCp = {16, 115820, -867.39, 13.422, -0.00036658, 7.4569E-08}, LiqVis = {101, -11.85, 1055.4, 0.17945, -3.4838E-07, 2}, VapVis = {102, 1.6626E-07, 0.71206, 185.2, -6483.1, 0}, LiqK = {16, 0.0039289, -19.957, -1.3588, -0.0017925, -6.0508E-07}, VapK = {102, -5919900, -0.017833, 2.2842E+09, -4.7916E+13, 0}, Racketparam = 0.26, UniquacR = 4.5967, UniquacQ = 3.956, ChaoSeadAF = 0.387184, ChaoSeadSP = 18150, ChaoSeadLV = 0.123708);
-end Hexanal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogen.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogen.mo
deleted file mode 100644
index c62806f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogen.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Hydrogen
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 13, name = "Hydrogen", CAS = "1333-74-0", Tc = 33.19, Pc = 1313000, Vc = 0.064147, Cc = 0.305, Tb = 20.39, Tm = 13.95, TT = 13.95, TP = 7220, MW = 2.01588, LVB = 0.0285681, AF = -0.215993, SP = 6648, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 130571, HFMP = 117100, HOC = -2.4182E+08, LiqDen = {105, 2.9613, 0.25981, 33.19, 0.19104, 0}, VP = {101, 13.05, -97.534, 1.0355, 0.00031816, 2}, LiqCp = {16, 14510, -1191.1, 156.51, -6.1773, 0.087907}, HOV = {106, 1534700, 3.214, -8.4567, 8.4646, -2.8057}, VapCp = {16, 3994.325, -48.69006, 10.36209, -0.000340144, 1.960333E-07}, LiqVis = {101, -32.531, 97.304, 5.9178, -0.0031563, 2}, VapVis = {102, 1.7916E-07, 0.68557, -0.51413, 132.61, 0}, LiqK = {16, -0.34238, -4.3002, -0.53814, 0.0011639, -0.00021792}, VapK = {102, 0.0026851, 0.74366, 13.289, -31.305, 0}, Racketparam = 0.3139, UniquacR = 0.4092, UniquacQ = 0.5516, ChaoSeadAF = 0, ChaoSeadSP = 6647.875, ChaoSeadLV = 0.031);
-end Hydrogen;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogenchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogenchloride.mo
deleted file mode 100644
index 87bf5d6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogenchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Hydrogenchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 10, name = "Hydrogenchloride", CAS = "7647-01-0", Tc = 324.69, Pc = 8310000, Vc = 0.081, Cc = 0.249, Tb = 188.15, Tm = 158.97, TT = 158.97, TP = 13521.9, MW = 36.461, LVB = 0.03028, AF = 0.126, SP = 12190, DM = 3.6E-30, SH = -92310000.0, IGHF = -9.231E+07, GEF = -9.53E+07, AS = 186786, HFMP = 2000000, HOC = -2.86E+07, LiqDen = {105, 2.3619, 0.23301, 324.69, 0.25076, 0}, VP = {101, 138.2562, -4825.245, -19.73669, 0.0000650759, 2}, LiqCp = {16, -53340, 265.92, 4.243, 0.058092, -0.00013923}, HOV = {106, 1.9563E+07, -0.79988, 3.8907, -4.9768, 2.2266}, VapCp = {16, 29096.99, -1271.123, 6.610209, 0.00378635, -0.0000013094}, LiqVis = {101, -196.43, 5474.4, 31.068, -0.000094243, 2}, VapVis = {102, 5.1969E-07, 0.66444, 177.83, -3965.9, 0}, LiqK = {16, -0.4993, -113.3, 0.99185, -0.0023549, -0.0000033612}, VapK = {102, 0.0017816, 0.5013, 331.03, 3750.8, 0}, Racketparam = 0, UniquacR = 1.056032, UniquacQ = 1.1, ChaoSeadAF = 0.121, ChaoSeadSP = 22003.8, ChaoSeadLV = 0.030563);
-end Hydrogenchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogencyanide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogencyanide.mo
deleted file mode 100644
index 60700e3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogencyanide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Hydrogencyanide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 27, name = "Hydrogencyanide", CAS = "74-90-8", Tc = 456.65, Pc = 5390000, Vc = 0.139, Cc = 0.197, Tb = 298.85, Tm = 259.91, TT = 259.833, TP = 18625, MW = 27.0253, LVB = 0.0397695, AF = 0.409913, SP = 24810, DM = 9.94E-30, SH = -296840000.0, IGHF = 1.35143E+08, GEF = 1.24725E+08, AS = 201719, HFMP = 8405700, HOC = -6.2329E+08, LiqDen = {105, 1.3163, 0.18425, 456.65, 0.2794, 0}, VP = {101, 42.70101, -4001.496, -3.208729, 5.620619E-06, 2}, LiqCp = {16, 70227, -10279, 42.028, 0.069085, -0.00024154}, HOV = {106, 4.5225E+07, 2.0549, -4.7432, 4.7996, -1.8366}, VapCp = {16, 29289, -482.84, 10.404, -0.000041659, 6.8553E-08}, LiqVis = {101, -12.545, 843.5, 0.21344, -0.0000012673, 2}, VapVis = {102, 1.2749E-08, 1.0633, 338.59, 155.3, 0}, LiqK = {16, 0.06901, -183.38, 0.87895, -0.0078031, 0.000002353}, VapK = {102, 0.000015837, 1.2055, -98.566, 53091, 0}, Racketparam = 0, UniquacR = 1.1951, UniquacQ = 1.2098, ChaoSeadAF = 0.409913, ChaoSeadSP = 24806, ChaoSeadLV = 0.0397695);
-end Hydrogencyanide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogeniodide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogeniodide.mo
deleted file mode 100644
index 1a896fd..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogeniodide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Hydrogeniodide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 12, name = "Hydrogeniodide", CAS = "10034-85-2", Tc = 423.85, Pc = 8310000, Vc = 0.1219, Cc = 0.287, Tb = 237.55, Tm = 222.38, TT = 222.38, TP = 49326.4, MW = 127.912, LVB = 0.0507575, AF = 0.0380703, SP = 17120, DM = 1.5E-30, SH = 26500000.0, IGHF = 2.65E+07, GEF = 1716000, AS = 206481, HFMP = 2872100, HOC = -1.162E+08, LiqDen = {105, 0.29008, 0.10272, 423.85, 0.12802, 0}, VP = {101, 48.208, -3309.5, -4.2202, 0.0000058868, 2}, LiqCp = {16, 47228, 657.18, 2.2493, 0.031778, -0.000056365}, HOV = {106, 4.5057E+07, 2.4036, -3.4166, 1.5877, -0.0027034}, VapCp = {16, 29070.86, -1600.955, 9.445762, 0.000914155, -4.506661E-07}, LiqVis = {101, -20.449, -959.41, 4.2445, -0.000095025, 2}, VapVis = {102, 1.6146E-07, 0.8587, 45.387, -1595.3, 0}, LiqK = {16, -0.2841, 21.17, -1.299, 0.00096857, -0.0000020056}, VapK = {102, 0.000042343, 0.89806, 44.783, -39.662, 0}, Racketparam = 0, UniquacR = 1.6724, UniquacQ = 1.5928, ChaoSeadAF = 0.0380703, ChaoSeadSP = 19866.7, ChaoSeadLV = 0.0457176);
-end Hydrogeniodide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogensulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogensulfide.mo
deleted file mode 100644
index c810e25..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Hydrogensulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Hydrogensulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 15, name = "Hydrogensulfide", CAS = "7783-06-4", Tc = 373.53, Pc = 8962910, Vc = 0.0985, Cc = 0.284, Tb = 212.8, Tm = 187.68, TT = 187.68, TP = 23200, MW = 34.0809, LVB = 0.0438045, AF = 0.0941677, SP = 18000, DM = 3.23E-30, SH = -20630000.0, IGHF = -2.063E+07, GEF = -3.344E+07, AS = 205600, HFMP = 2376500, HOC = -5.18E+08, LiqDen = {105, 2.3565, 0.25354, 373.53, 0.26514, 0}, VP = {101, 48.34868, -3078.428, -4.229632, 6.844234E-06, 2}, LiqCp = {16, 68743, -100800, 1016.4, -3.3645, 0.0037533}, HOV = {106, 2.7198E+07, 0.69517, -0.69951, 0.51422, -0.11694}, VapCp = {16, 33121.9, -869.6079, 9.605736, 0.00110059, -3.859399E-07}, LiqVis = {101, 7.527, 261.77, -3.1833, 0.0000078743, 2}, VapVis = {102, 3.4328E-08, 1.0455, 58.912, -13329, 0}, LiqK = {16, -0.078369, -33.634, -0.24641, -0.0025463, -0.0000049089}, VapK = {102, 1.0611E-07, 1.8773, -355.78, 45782, 0}, Racketparam = 0.285, UniquacR = 1.234, UniquacQ = 1.241, ChaoSeadAF = 0.0941677, ChaoSeadSP = 18000.2, ChaoSeadLV = 0.0358604);
-end Hydrogensulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Indane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Indane.mo
deleted file mode 100644
index b9dd3bd..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Indane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Indane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 162, name = "Indane", CAS = "496-11-7", Tc = 684.9, Pc = 3950000, Vc = 0.393, Cc = 0.273, Tb = 451, Tm = 221.74, TT = 221.74, TP = 0.152927, MW = 118.178, LVB = 0.12315, AF = 0.309213, SP = 19420, DM = 1.8E-30, SH = -168070000.0, IGHF = 6.07E+07, GEF = 1.668E+08, AS = 348910, HFMP = 8598000, HOC = -4.7626E+09, LiqDen = {105, 0.63627, 0.25179, 684.9, 0.29165, 0}, VP = {101, 97.02207, -8795.05, -11.00248, 6.105132E-06, 2}, LiqCp = {16, 136380, -29.478, 8.0608, 0.01305, -0.000010993}, HOV = {106, 6.2067E+07, -0.0045874, 2.0817, -3.2476, 1.6013}, VapCp = {16, 60321, -643.06, 13.337, -0.00018807, 3.6677E-08}, LiqVis = {101, -151.95, 6810.2, 21.863, -0.00002342, 2}, VapVis = {102, 0.0000002842, 0.64259, 225.95, -643.44, 0}, LiqK = {16, -0.041318, 5.7098, -1.5369, -0.00043639, -0.0000010195}, VapK = {102, 0.0089527, 0.43447, 617.91, 764370, 0}, Racketparam = 0.263427, UniquacR = 4.66381, UniquacQ = 3.108, ChaoSeadAF = 0.305, ChaoSeadSP = 19405.1, ChaoSeadLV = 0.123128);
-end Indane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Indene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Indene.mo
deleted file mode 100644
index 9f56200..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Indene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Indene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 161, name = "Indene", CAS = "95-13-6", Tc = 687, Pc = 3820000, Vc = 0.368, Cc = 0.246, Tb = 455.77, Tm = 271.7, TT = 271.7, TP = 17.0209, MW = 116.16, LVB = 0.116856, AF = 0.333766, SP = 20310, DM = 2.23E-30, SH = -168070000.0, IGHF = 1.6328E+08, GEF = 2.3396E+08, AS = 336870, HFMP = 1.02E+07, HOC = -4.61948E+09, LiqDen = {105, 0.68574, 0.25341, 687, 0.30914, 0}, VP = {101, 198.3126, -13212.05, -26.47637, 0.0000206314, 2}, LiqCp = {16, 87661, -18.633, 10.258, 0.0056195, -0.0000040934}, HOV = {106, 1.127174E+08, 2.195635, -2.278889, 0.782692, -0.231351}, VapCp = {16, 54598, -572.63, 13.077, -0.000062304, -1.4084E-09}, LiqVis = {101, -136.89, 6165.4, 19.669, -0.000025488, 2}, VapVis = {102, 8.1278E-07, 0.4938, 370.54, -3708.9, 0}, LiqK = {16, -0.0034145, -80.459, -0.91571, -0.0024408, 2.3991E-07}, VapK = {102, 0.000075165, 1.055, 558.89, 35355, 0}, Racketparam = 0.261272, UniquacR = 4.431773, UniquacQ = 2.892, ChaoSeadAF = 0.262, ChaoSeadSP = 20467.4, ChaoSeadLV = 0.116856);
-end Indene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Iodobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Iodobenzene.mo
deleted file mode 100644
index 7e08ab6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Iodobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Iodobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 123, name = "Iodobenzene", CAS = "591-50-4", Tc = 721.15, Pc = 4519100, Vc = 0.351, Cc = 0.265, Tb = 461.6, Tm = 241.83, TT = 241.83, TP = 1.17521, MW = 204.008, LVB = 0.111976, AF = 0.246574, SP = 20450, DM = 5.67E-30, SH = -168070000.0, IGHF = 1.649E+08, GEF = 1.902E+08, AS = 334100, HFMP = 9749000, HOC = -3.05E+09, LiqDen = {105, 0.7521, 0.26381, 721.15, 0.2895, 0}, VP = {101, 79.186, -8185.3, -8.2636, 0.0000035963, 2}, LiqCp = {16, 139830, 578.69, 1.6453, 0.031278, -0.000034279}, HOV = {106, 6.148821E+07, 0.433906, -0.0102943, -0.0130647, -0.0329532}, VapCp = {16, 63442, -692.72, 13.003, -0.00048297, 1.3499E-07}, LiqVis = {101, -57.177, 3157.8, 7.1529, -0.0000070913, 2}, VapVis = {102, 2.1908E-07, 0.74366, 231.22, -43.688, 0}, LiqK = {16, 0.077923, 1284.8, -17.082, 0.050362, -0.00006779}, VapK = {102, 0.00026878, 0.78911, 373.97, 187720, 0}, Racketparam = 0, UniquacR = 4.2857, UniquacQ = 3.112, ChaoSeadAF = 0.246574, ChaoSeadSP = 20367.4, ChaoSeadLV = 0.111976);
-end Iodobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutane.mo
deleted file mode 100644
index d21f9ec..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isobutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 93, name = "Isobutane", CAS = "75-28-5", Tc = 407.85, Pc = 3640000, Vc = 0.2627, Cc = 0.278, Tb = 261.34, Tm = 113.54, TT = 113.54, TP = 0.0120622, MW = 58.123, LVB = 0.10436, AF = 0.186, SP = 12560, DM = 4.4E-31, SH = -134990000.0, IGHF = -1.3499E+08, GEF = -2.144E+07, AS = 295500, HFMP = 4540000, HOC = -2.64812E+09, LiqDen = {105, 0.89934, 0.25371, 407.85, 0.25125, 0}, VP = {101, 70.58866, -4298.161, -7.798635, 0.0000116, 2}, LiqCp = {16, 89466, -323.61, 12.827, -0.010476, 0.000025037}, HOV = {106, 3.4869E+07, 0.64449, -0.15424, -0.28822, 0.20982}, VapCp = {16, 39746.03, -371.573, 12.02593, 0.000755039, -2.59608E-07}, LiqVis = {101, -39.10125, 1315.145, 4.876982, -0.0000203993, 2}, VapVis = {102, 3.951E-08, 0.90975, -52.076, 8625.4, 0}, LiqK = {16, 0.029586, 56.323, -2.8746, 0.0051627, -0.000017826}, VapK = {102, 0.091178, 0.18264, 626.56, 1124600, 0}, Racketparam = 0.275, UniquacR = 3.1502, UniquacQ = 2.772, ChaoSeadAF = 0.1825, ChaoSeadSP = 13766.21, ChaoSeadLV = 0.1055);
-end Isobutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutene.mo
deleted file mode 100644
index 5205512..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isobutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 81, name = "Isobutene", CAS = "115-11-7", Tc = 417.9, Pc = 4000000, Vc = 0.2388, Cc = 0.275, Tb = 266.24, Tm = 132.81, TT = 132.81, TP = 0.644929, MW = 56.108, LVB = 0.09524, AF = 0.2, SP = 13660, DM = 1.67E-30, SH = -17100000.0, IGHF = -1.71E+07, GEF = 5.808E+07, AS = 293090, HFMP = 5931200, HOC = -2.5242E+09, LiqDen = {105, 1.01, 0.25611, 417.9, 0.2642, 0}, VP = {101, 47.13879, -3682.162, -3.952514, 4.044185E-06, 2}, LiqCp = {16, 95317, -68.58, 9.3268, 0.0023434, 0.0000076824}, HOV = {106, 3.916E+07, 1.1638, -1.4033, 0.81203, -0.13521}, VapCp = {16, 49784, -472.84, 12.012, 0.00052863, -1.7772E-07}, LiqVis = {101, -12.717, 644.93, 0.3696, -0.0000023983, 2}, VapVis = {102, 0.0000028839, 0.33897, 365.04, 17752, 0}, LiqK = {16, 0.061493, 33.335, -2.4686, 0.0041425, -0.000023609}, VapK = {102, -418.21, 0.91306, -1.5105E+09, 3.1789E+10, 0}, Racketparam = 0.2727, UniquacR = 2.9195, UniquacQ = 2.684, ChaoSeadAF = 0.1951, ChaoSeadSP = 13659.3, ChaoSeadLV = 0.0953727);
-end Isobutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylacetate.mo
deleted file mode 100644
index 850f478..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isobutylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 337, name = "Isobutylacetate", CAS = "110-19-0", Tc = 561, Pc = 3160000, Vc = 0.413, Cc = 0.266, Tb = 389.72, Tm = 174.3, TT = 174.3, TP = 0.00622415, MW = 116.16, LVB = 0.13387, AF = 0.456, SP = 17050, DM = 6.24E-30, SH = -216400000.0, IGHF = -4.93E+08, GEF = -3.222E+08, AS = 441000, HFMP = 1.24E+07, HOC = -3.319E+09, LiqDen = {105, 0.40843, 0.20784, 561, 0.21394, 0}, VP = {101, 28.45261, -5051.537, -0.615949, -1.95606E-06, 2}, LiqCp = {16, 161610, 660.76, 3.3098, 0.024476, -0.000019195}, HOV = {106, 6.408651E+07, 1.313221, -1.992233, 1.203843, -0.0654865}, VapCp = {16, 100140, -654.65, 13.176, -0.00017464, 3.2068E-08}, LiqVis = {101, -7.1351, 566.94, -0.24427, -0.0000078548, 2}, VapVis = {102, 1.0879E-07, 0.78101, 111.13, 1059.5, 0}, LiqK = {16, 0.070874, 405.28, -7.1892, 0.020474, -0.000033831}, VapK = {102, -0.0010112, 0.95292, -6813.9, 270410, 0}, Racketparam = 0.266, UniquacR = 4.8266, UniquacQ = 4.192, ChaoSeadAF = 0.456, ChaoSeadSP = 17050, ChaoSeadLV = 0.13387);
-end Isobutylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylbenzene.mo
deleted file mode 100644
index 64dc9b6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isobutylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 288, name = "Isobutylbenzene", CAS = "538-93-2", Tc = 650, Pc = 3050000, Vc = 0.48, Cc = 0.271, Tb = 445.9, Tm = 221.7, TT = 221.7, TP = 0.289087, MW = 134.221, LVB = 0.15808, AF = 0.383, SP = 16860, DM = 1.5E-30, SH = -1209000000.0, IGHF = -2.054E+07, GEF = 1.388E+08, AS = 439700, HFMP = 1.25E+07, HOC = -5.56974E+09, LiqDen = {105, 0.54967, 0.26271, 650, 0.30807, 0}, VP = {101, 97.24209, -8752.864, -11.04244, 6.424651E-06, 2}, LiqCp = {16, 116150, -36.608, 10.189, 0.0074074, -0.0000060747}, HOV = {106, 6.0838E+07, 0.30052, 0.25612, -0.19969, -0.0011249}, VapCp = {16, 83364, -556.41, 13.277, 0.000016037, -2.0047E-08}, LiqVis = {101, -12.546, 1392.5, 0.17362, -2.3672E-07, 2}, VapVis = {102, 3.8764E-07, 0.58977, 249.51, 1034.4, 0}, LiqK = {16, -0.033263, -23.962, -1.3695, -0.001338, -2.5251E-07}, VapK = {102, 0.000022162, 1.2141, 174.06, 50162, 0}, Racketparam = 0.271, UniquacR = 5.9452, UniquacQ = 4.584, ChaoSeadAF = 0.383, ChaoSeadSP = 16860, ChaoSeadLV = 0.15808);
-end Isobutylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylmercaptan.mo
deleted file mode 100644
index 16d2964..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isobutylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isobutylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 351, name = "Isobutylmercaptan", CAS = "513-44-0", Tc = 557, Pc = 3900000, Vc = 0.307, Cc = 0.268, Tb = 361.64, Tm = 128.31, TT = 128.3, TP = 4.75023E-06, MW = 90.1872, LVB = 0.108751, AF = 0.25, SP = 17240, DM = 5.1E-30, SH = -22600000.0, IGHF = -9.694E+07, GEF = 6100000, AS = 362840, HFMP = 4982300, HOC = -2.949E+09, LiqDen = {105, 0.97433, 0.28543, 557, 0.30684, 0}, VP = {101, 94.36165, -7005.04, -10.97315, 8.971409E-06, 2}, LiqCp = {16, 113680, 117.72, 9.1822, 0.0046628, 2.8876E-09}, HOV = {106, 4.696233E+07, 0.280539, 0.393074, -0.340509, 0.0160184}, VapCp = {16, 83649, -694.35, 12.849, -0.00014111, 3.1023E-08}, LiqVis = {101, -10.885, 935.58, 0.015703, -1.4837E-10, 2}, VapVis = {102, 8.5691E-08, 0.8336, 119.56, -8012, 0}, LiqK = {16, -0.03575, 3.5477, -1.4952, -0.00050318, -0.0000017356}, VapK = {102, 0.00014532, 0.98673, 557.5, 22542, 0}, Racketparam = 0.268, UniquacR = 3.9001, UniquacQ = 3.292, ChaoSeadAF = 0.25, ChaoSeadSP = 17240, ChaoSeadLV = 0.108751);
-end Isobutylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopentane.mo
deleted file mode 100644
index fa9169c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 114, name = "Isopentane", CAS = "78-78-4", Tc = 460.39, Pc = 3381000, Vc = 0.3083, Cc = 0.272, Tb = 300.99, Tm = 113.25, TT = 113.25, TP = 0.00012144, MW = 72.15, LVB = 0.11646, AF = 0.229, SP = 13870, DM = 4.34E-31, SH = -27600000.0, IGHF = -1.537E+08, GEF = -1.405E+07, AS = 343740, HFMP = 5150000, HOC = -3.23954E+09, LiqDen = {105, 0.73194, 0.24835, 460.99, 0.25733, 0}, VP = {101, 71.04288, -4967.235, -7.674379, 8.659929E-06, 2}, LiqCp = {16, 112460, -54.259, 8.8747, 0.0083911, -0.0000034773}, HOV = {106, 4.14248E+07, 0.799342, -0.581969, 0.0834724, 0.117826}, VapCp = {16, 59843, -493.27, 12.516, 0.00046099, -1.5305E-07}, LiqVis = {101, -12.596, 889.14, 0.20472, 4.0592E-09, 2}, VapVis = {102, 6.6346E-08, 0.82828, -68.082, 25303, 0}, LiqK = {16, 0.061061, 89.857, -3.522, 0.0075154, -0.000023032}, VapK = {102, 0.00090019, 0.7738, 456.82, 231390, 0}, Racketparam = 0.2716, UniquacR = 3.82, UniquacQ = 3.31, ChaoSeadAF = 0.2104, ChaoSeadSP = 14359.41, ChaoSeadLV = 0.1174);
-end Isopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isoprene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isoprene.mo
deleted file mode 100644
index 8987f12..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isoprene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isoprene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 103, name = "Isoprene", CAS = "78-79-5", Tc = 484, Pc = 3850030, Vc = 0.276, Cc = 0.264, Tb = 307.205, Tm = 127.27, TT = 127.27, TP = 0.00247682, MW = 68.117, LVB = 0.100775, AF = 0.158323, SP = 15330, DM = 8.3391E-31, SH = -134990000.0, IGHF = 7.57304E+07, GEF = 1.45896E+08, AS = 315641, HFMP = 4924570, HOC = -2.98424E+09, LiqDen = {105, 0.95762, 0.265, 484, 0.28587, 0}, VP = {101, 59.64382, -4808.579, -5.723014, 3.325462E-06, 2}, LiqCp = {16, 111430, 579.88, 0.11179, 0.042713, -0.000046991}, HOV = {106, 4.7482E+07, 1.7472, -3.7153, 4.0508, -1.6134}, VapCp = {16, 46067, -400.72, 12.189, 0.00043981, -1.4681E-07}, LiqVis = {101, -8.3004, 457.06, -0.22583, -0.0000048674, 2}, VapVis = {102, 5.2484E-07, 0.58768, 291.05, -6176.5, 0}, LiqK = {16, -0.0093138, -47.475, -0.82654, -0.0037828, 8.2245E-07}, VapK = {102, 0.0010775, 0.73105, 657.17, 112780, 0}, Racketparam = 0, UniquacR = 3.36, UniquacQ = 3.01, ChaoSeadAF = 0.1642, ChaoSeadSP = 15333.3, ChaoSeadLV = 0.100775);
-end Isoprene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropanol.mo
deleted file mode 100644
index 7e155cd..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isopropanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 68, name = "Isopropanol", CAS = "67-63-0", Tc = 508.3, Pc = 4762000, Vc = 0.22, Cc = 0.248, Tb = 355.39, Tm = 185.28, TT = 185.28, TP = 0.0363946, MW = 60.096, LVB = 0.07692, AF = 0.665, SP = 23420, DM = 5.54E-30, SH = -104680000.0, IGHF = -2.727E+08, GEF = -1.7347E+08, AS = 309200, HFMP = 5410000, HOC = -1.83E+09, LiqDen = {105, 1.1898, 0.26648, 508.3, 0.23986, 0}, VP = {101, 77.70856, -7630.115, -7.63517, 9.965114E-07, 2}, LiqCp = {16, -188260, 277.99, 9.4459, 0.010702, -0.0000091964}, HOV = {106, 1.100995E+08, 4.1961, -10.70959, 11.69444, -4.625499}, VapCp = {16, 52738, -555.28, 12.347, 0.000094247, -4.5945E-08}, LiqVis = {101, -7.4407, 2259.7, -1.1149, 0.0000002963, 2}, VapVis = {102, 1.9931E-07, 0.72329, 178.01, -15.318, 0}, LiqK = {16, -0.15761, 49.41, -1.6579, 0.0019566, -0.0000034939}, VapK = {102, 0.0028843, 0.91609, 11082, -222500, 0}, Racketparam = 0.2493, UniquacR = 2.78, UniquacQ = 2.51, ChaoSeadAF = 0.7238, ChaoSeadSP = 23408.3, ChaoSeadLV = 0.0768988);
-end Isopropanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylacetate.mo
deleted file mode 100644
index 0e6bec3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isopropylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 335, name = "Isopropylacetate", CAS = "108-21-4", Tc = 516.15, Pc = 3495640, Vc = 0.343881, Cc = 0.25, Tb = 361.65, Tm = 199.75, TT = 199.75, TP = 3.8692, MW = 102.132, LVB = 0.117579, AF = 0.542817, SP = 17150, DM = 5.84E-30, SH = -216400000.0, IGHF = -4.817E+08, GEF = -3.337E+08, AS = 390200, HFMP = 8880000, HOC = -2.658E+09, LiqDen = {105, 1.7447, 0.38746, 516.15, 0.46246, 0}, VP = {101, 53.596, -5675.5, -4.5065, 0.0000012831, 2}, LiqCp = {16, 131390, -46.486, 8.1047, 0.013597, -0.000010999}, HOV = {106, 4.852874E+07, 0.139799, 0.87492, -1.379465, 0.721356}, VapCp = {16, 49388, -461.23, 12.886, -0.00010674, 6.959E-08}, LiqVis = {101, -10.895, 1115.7, -0.084451, 4.8399E-07, 2}, VapVis = {102, 3.7177E-07, 0.62086, 249.31, -266.55, 0}, LiqK = {16, -0.09612, 7.576, -1.2028, -0.00070085, -9.2097E-07}, VapK = {102, -5913400, -0.12076, 3.6992E+09, -2.5996E+13, 0}, Racketparam = 0.25, UniquacR = 4.1522, UniquacQ = 3.652, ChaoSeadAF = 0.367774, ChaoSeadSP = 17150, ChaoSeadLV = 0.117579);
-end Isopropylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylbutylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylbutylether.mo
deleted file mode 100644
index 8ce488e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylbutylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isopropylbutylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 328, name = "Isopropylbutylether", CAS = "1860-27-1", Tc = 549, Pc = 2740000, Vc = 0.435, Cc = 0.261, Tb = 378.15, Tm = 180, TT = 180, TP = 0.0337504, MW = 116.201, LVB = 0.155791, AF = 0.403229, SP = 15260, DM = 4.24E-30, SH = -216400000.0, IGHF = -3.269E+08, GEF = -1.071E+08, AS = 450200, HFMP = 1.22E+07, HOC = -4.324E+09, LiqDen = {105, 0.62258, 0.27082, 549, 0.30735, 0}, VP = {101, 85.99635, -7315.405, -9.426402, 5.236755E-06, 2}, LiqCp = {16, 200760, -0.77126, 8.116, 0.0093067, -0.00000176}, HOV = {106, 5.2177E+07, 0.38027, 0, 0, 0}, VapCp = {16, 76973, -443.41, 12.925, 0.00032949, -1.1644E-07}, LiqVis = {101, -11.496, 1171.6, 0.0066892, -1.6659E-08, 2}, VapVis = {102, 0.000000176, 0.70157, 181.76, -5946.4, 0}, LiqK = {16, -0.10095, 17.355, -1.4146, -0.000082157, -0.0000014735}, VapK = {102, 0.00016013, 0.96562, 574.46, 18419, 0}, Racketparam = 0.261, UniquacR = 5.4173, UniquacQ = 4.632, ChaoSeadAF = 0.403229, ChaoSeadSP = 15260, ChaoSeadLV = 0.155791);
-end Isopropylbutylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylcyclopentane.mo
deleted file mode 100644
index 8b82146..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isopropylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 271, name = "Isopropylcyclopentane", CAS = "3875-51-2", Tc = 601, Pc = 3000000, Vc = 0.422, Cc = 0.259, Tb = 399.58, Tm = 161.79, TT = 161.79, TP = 0.000981869, MW = 112.213, LVB = 0.14527, AF = 0.302996, SP = 15940, DM = 0, SH = -1209000000.0, IGHF = -1.5071E+08, GEF = 5.305E+07, AS = 407080, HFMP = 1.041E+07, HOC = -4.8944E+09, LiqDen = {105, 0.01997, 0.048466, 601, 0.10484, 0}, VP = {101, 70.74905, -6671.509, -7.204875, 3.983606E-06, 2}, LiqCp = {16, 77318, -174.75, 11.36, 0.00375, -0.0000015189}, HOV = {106, 5.807013E+07, 1.420456, -3.256998, 3.923183, -1.686337}, VapCp = {16, 31291, -392.29, 12.88, 0.0005799, -2.3026E-07}, LiqVis = {101, -11.637, 1116.2, 0.10394, -3.9216E-07, 2}, VapVis = {102, 6.3283E-08, 0.84204, 92.528, -7299.5, 0}, LiqK = {16, -0.057129, 3.4704, -1.5201, -0.00050193, -0.0000011418}, VapK = {102, 0.10336, 0.072913, -474.32, 1330800, 0}, Racketparam = 0.259, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.302996, ChaoSeadSP = 15940, ChaoSeadLV = 0.14527);
-end Isopropylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylmercaptan.mo
deleted file mode 100644
index baaa757..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Isopropylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Isopropylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 428, name = "Isopropylmercaptan", CAS = "75-33-2", Tc = 517.3, Pc = 4750000, Vc = 0.254, Cc = 0.281, Tb = 325.75, Tm = 142.61, TT = 142.64, TP = 0.00973089, MW = 76.1606, LVB = 0.0941865, AF = 0.21381, SP = 16970, DM = 5.47E-30, SH = 28500000.0, IGHF = -7.59E+07, GEF = -2180000, AS = 324300, HFMP = 5736000, HOC = -2.3684E+09, LiqDen = {105, 1.093001, 0.27762, 517, 0.29781, 0}, VP = {101, 52.49398, -5018.813, -4.414151, 1.969036E-13, 2}, LiqCp = {16, -4182.09, 11.57821, 11.69322, 0.0000133303, 0.0000020152}, HOV = {106, 4.07186E+07, 0.189905, 0.420769, -0.0231137, -0.258009}, VapCp = {16, 68588.92, -673.2911, 12.50044, 1.486465E-06, -1.964897E-08}, LiqVis = {16, 0.0000158085, 630.9957, -8.670452, -0.006493, 5.676279E-06}, VapVis = {16, 2.562672E-06, -300.3637, -11.49051, 0.00155043, -4.080467E-07}, LiqK = {16, 0.019346, 8.361977, -1.76982, -0.000539416, -3.287583E-06}, VapK = {102, 0.00018367, 0.9627, 646.01, 0, 0}, Racketparam = 0, UniquacR = 3.225445, UniquacQ = 2.84, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Isopropylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ketene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ketene.mo
deleted file mode 100644
index b5e316d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ketene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ketene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 406, name = "Ketene", CAS = "463-51-4", Tc = 370, Pc = 5810000, Vc = 0.144, Cc = 0.272, Tb = 217.15, Tm = 122.15, TT = 122, TP = 7.19493, MW = 42.0367, LVB = 0.06374, AF = 0.125656, SP = 13820, DM = 4.74E-30, SH = -61100000.0, IGHF = -6.11E+07, GEF = -6.02914E+07, AS = 241800, HFMP = 0, HOC = -9.67759E+08, LiqDen = {105, 1.8886, 0.272, 370, 0.28571, 0}, VP = {101, 58.628, -3467, -5.9337, 0.000010248, 2}, LiqCp = {16, 41971, 267.01, 4.7755, 0.029953, -0.000037749}, HOV = {106, 4.6158E+07, 4.5264, -12.408, 14.257, -5.881}, VapCp = {16, 33110, -414.32, 10.968, 0.00041237, -1.3222E-07}, LiqVis = {101, -18.659, 731.69, 1.5497, -0.000011288, 2}, VapVis = {102, 0.000001285, 0.50552, 367.45, -2188.3, 0}, LiqK = {16, -0.007072, -11.763, -0.74777, -0.0024777, -0.0000018714}, VapK = {102, 0.000028519, 1.1477, -97.436, 37387, 0}, Racketparam = 0.272, UniquacR = 1.694792, UniquacQ = 1.610932, ChaoSeadAF = 0.125656, ChaoSeadSP = 13820, ChaoSeadLV = 0.06374);
-end Ketene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Krypton.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Krypton.mo
deleted file mode 100644
index 841c729..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Krypton.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Krypton
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 199, name = "Krypton", CAS = "7439-90-9", Tc = 209.4, Pc = 5500000, Vc = 0.0912, Cc = 0.288, Tb = 119.74, Tm = 115.77, TT = 115.78, TP = 73149.9, MW = 83.8, LVB = 0.03463, AF = 0.005, SP = 15280, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 163975, HFMP = 1640130, HOC = 0, LiqDen = {105, 2.5742, 0.26395, 209.4, 0.25018, 0}, VP = {101, 48.208, -1609, -4.9593, 0.0000342, 2}, LiqCp = {16, 36193, 105.13, 3.9876, 0.048456, -0.0001134}, HOV = {106, 1.7515E+07, 2.6595, -6.0031, 6.068, -2.2776}, VapCp = {16, 20754, 0, 0, 0, 0}, LiqVis = {101, -7.7422, -0.3975, -0.00054036, -9.2221E-08, 2}, VapVis = {102, 0.0000018282, 0.5384, 165.83, -1432.5, 0}, LiqK = {16, -0.22624, -10.133, -0.77044, -0.0023081, -0.0000013009}, VapK = {102, 0.00075369, 0.52925, 198.58, -4150.2, 0}, Racketparam = 0.288, UniquacR = 1.12, UniquacQ = 1.12, ChaoSeadAF = 0.005, ChaoSeadSP = 15280, ChaoSeadLV = 0.03463);
-end Krypton;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicacid.mo
deleted file mode 100644
index c6b5aa8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Maleicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 402, name = "Maleicacid", CAS = "110-16-7", Tc = 773, Pc = 4990000, Vc = 0.297, Cc = 0.231, Tb = 411, Tm = 403.45, TT = 403.8, TP = 98.6734, MW = 116.072, LVB = 0.090835, AF = 0.997587, SP = 30550, DM = 1.06E-29, SH = -22600000.0, IGHF = -6.794E+08, GEF = -5.96E+08, AS = 416000, HFMP = 3.47E+07, HOC = -1.2684E+09, LiqDen = {105, 0.77641, 0.231, 773, 0.28571, 0}, VP = {101, 187.4602, -19104.39, -22.78106, 6.967225E-06, 2}, LiqCp = {16, 148240, 706.52, 4.046, 0.018422, -0.000011933}, HOV = {106, 1.16446E+08, 0.325842, -0.000233021, 0.00216992, 0.484323}, VapCp = {16, 60872, -493.34, 12.58, -0.00028606, 0.0000001493}, LiqVis = {101, -11.993, 2508.3, 0.079857, -1.8766E-08, 2}, VapVis = {102, 9.0189E-08, 0.80995, 111.91, -70.22, 0}, LiqK = {16, -0.061944, -160.86, -0.25643, -0.0021458, 2.3954E-07}, VapK = {102, 0.0000021963, 1.4191, -285.03, 84199, 0}, Racketparam = 0.231, UniquacR = 3.7193, UniquacQ = 3.315, ChaoSeadAF = 0.997587, ChaoSeadSP = 30550, ChaoSeadLV = 0.090835);
-end Maleicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicanhydride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicanhydride.mo
deleted file mode 100644
index 00ea733..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Maleicanhydride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Maleicanhydride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 405, name = "Maleicanhydride", CAS = "108-31-6", Tc = 721, Pc = 7280000, Vc = 0.219, Cc = 0.266, Tb = 473.15, Tm = 325.927, TT = 325.72, TP = 289.837, MW = 98.0569, LVB = 0.0741215, AF = 0.54629, SP = 25870, DM = 1.31E-29, SH = -22600000.0, IGHF = -4.167E+08, GEF = -3.55E+08, AS = 317000, HFMP = 1.15E+07, HOC = -1.38E+09, LiqDen = {105, 1.1934, 0.26153, 721, 0.35499, 0}, VP = {101, 181.7423, -13070.32, -23.83155, 0.0000182982, 2}, LiqCp = {16, 7374.3, 412.68, 8.4647, 0.0086559, -0.0000060424}, HOV = {106, 5.7421E+07, 0.064434, 0.35394, -0.39596, 0.19018}, VapCp = {16, -39596, -169.57, 12.496, 6.0181E-08, 4.1214E-08}, LiqVis = {101, 93.459, -2744.1, -16.078, 0.000015825, 2}, VapVis = {102, 7.5282E-08, 0.87275, 168.46, -10784, 0}, LiqK = {16, 0.0050361, -137.05, -0.46443, -0.0029116, 3.9472E-07}, VapK = {102, 0.00030053, 0.85542, 634.55, 21624, 0}, Racketparam = 0.266, UniquacR = 2.903098, UniquacQ = 2.384, ChaoSeadAF = 0.54629, ChaoSeadSP = 25870, ChaoSeadLV = 0.0741215);
-end Maleicanhydride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcresol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcresol.mo
deleted file mode 100644
index c349169..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcresol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mcresol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 141, name = "Mcresol", CAS = "108-39-4", Tc = 705.7, Pc = 4560000, Vc = 0.312, Cc = 0.241, Tb = 475.38, Tm = 285.39, TT = 285.39, TP = 5.86242, MW = 108.14, LVB = 0.10499, AF = 0.452, SP = 23900, DM = 5.3E-30, SH = -168070000.0, IGHF = -1.323E+08, GEF = -4.019E+07, AS = 356040, HFMP = 1.0707E+07, HOC = -3.52783E+09, LiqDen = {105, 0.76595, 0.25907, 705.86, 0.2605, 0}, VP = {101, 143.16, -12586, -17.327, 0.0000073113, 2}, LiqCp = {16, 62676, -205.39, 12.221, 0.0027125, -0.0000038975}, HOV = {106, 9.4557E+07, 0.36419, 1.602, -2.5634, 1.0947}, VapCp = {16, 58129, -537.86, 12.936, -0.000090368, 1.797E-08}, LiqVis = {101, -1098.989, 45628.63, 168.1502, -0.000185183, 2}, VapVis = {102, 1.4432E-07, 0.74376, 166.32, -45.138, 0}, LiqK = {16, 0.10478, -476.78, 0.8844, -0.0090128, 0.0000031516}, VapK = {102, 0.00016795, 0.9362, 585.89, 24552, 0}, Racketparam = 0.241, UniquacR = 4.7567, UniquacQ = 3.888, ChaoSeadAF = 0.45, ChaoSeadSP = 24080.3, ChaoSeadLV = 0.104996);
-end Mcresol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcymene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcymene.mo
deleted file mode 100644
index c7984d4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mcymene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mcymene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 292, name = "Mcymene", CAS = "535-77-3", Tc = 666.25, Pc = 2810000, Vc = 0.478, Cc = 0.257, Tb = 448.23, Tm = 209.44, TT = 209.44, TP = 0.0405569, MW = 134.218, LVB = 0.156604, AF = 0.342, SP = 17110, DM = 1.2E-30, SH = -1209000000.0, IGHF = -2.79909E+07, GEF = 1.301E+08, AS = 432200, HFMP = 1.37E+07, HOC = -5.55802E+09, LiqDen = {105, 0.17699, 0.14976, 666.25, 0.19922, 0}, VP = {101, 72.132, -7676.5, -7.2263, 0.0000031742, 2}, LiqCp = {16, 129560, -114.64, 10.436, 0.006807, -0.0000055776}, HOV = {106, 1.132017E+08, 4.402749, -10.71693, 11.0294, -4.113621}, VapCp = {16, 118290, -808.58, 13.818, -0.00057669, 1.7291E-07}, LiqVis = {101, -8.2582, 1048.3, -0.41448, -1.0836E-07, 2}, VapVis = {102, 0.0000018208, 0.39157, 589.66, 3771.8, 0}, LiqK = {16, -0.042558, -18.046, -1.3081, -0.0015377, 2.6414E-07}, VapK = {102, 0.0000098162, 1.3084, 45.918, 51418, 0}, Racketparam = 0.257, UniquacR = 6.0058, UniquacQ = 4.612, ChaoSeadAF = 0.342, ChaoSeadSP = 17110, ChaoSeadLV = 0.156604);
-end Mcymene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdichlorobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdichlorobenzene.mo
deleted file mode 100644
index 07a1bb0..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdichlorobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mdichlorobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 118, name = "Mdichlorobenzene", CAS = "541-73-1", Tc = 683.95, Pc = 4070000, Vc = 0.351, Cc = 0.251, Tb = 446.23, Tm = 248.39, TT = 248.39, TP = 6.40787, MW = 147.002, LVB = 0.114533, AF = 0.27898, SP = 19570, DM = 5.74E-30, SH = -168070000.0, IGHF = 2.57E+07, GEF = 7.79E+07, AS = 343530, HFMP = 1.259E+07, HOC = -2.825E+09, LiqDen = {105, 0.74132, 0.26094, 683.95, 0.31392, 0}, VP = {101, 100.37, -9087, -11.404, 0.0000055122, 2}, LiqCp = {16, 89111, 785.31, 3.6098, 0.022491, -0.00001896}, HOV = {106, 5.2076E+07, 0.15554, -0.20298, 0.94291, -0.55524}, VapCp = {16, 56066, -490.93, 12.649, -0.00012726, 2.3703E-08}, LiqVis = {101, -114.79, 4907.5, 16.374, -0.000020623, 2}, VapVis = {102, 2.3524E-07, 0.71383, 257.29, 1880.2, 0}, LiqK = {16, 0.042347, -224.09, -0.2096, -0.006185, 0.0000024486}, VapK = {102, -1552.3, 0.68852, -2.6293E+09, -1.7751E+11, 0}, Racketparam = 0, UniquacR = 4.4376, UniquacQ = 3.288, ChaoSeadAF = 0.215834, ChaoSeadSP = 19575.7, ChaoSeadLV = 0.114641);
-end Mdichlorobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdiethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdiethylbenzene.mo
deleted file mode 100644
index 010b0fa..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mdiethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mdiethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 295, name = "Mdiethylbenzene", CAS = "141-93-5", Tc = 663, Pc = 2880000, Vc = 0.488, Cc = 0.255, Tb = 454.252, Tm = 189.23, TT = 189.259, TP = 0.000664991, MW = 134.2182, LVB = 0.156083, AF = 0.354019, SP = 17460, DM = 1.2E-30, SH = -1209000000.0, IGHF = -2.18E+07, GEF = 1.367E+08, AS = 439500, HFMP = 1.097E+07, HOC = -5.5546E+09, LiqDen = {105, 0.52578, 0.25663, 663, 0.2955, 0}, VP = {101, 153.5552, -11090.88, -19.79091, 0.000016846, 2}, LiqCp = {16, -15019, 20.098, 11.35, 0.0044704, -0.0000034473}, HOV = {106, 6.460804E+07, 0.433681, -0.0244308, 0.0154888, -0.0245419}, VapCp = {16, 115660, -734.22, 13.598, -0.00034186, 8.9326E-08}, LiqVis = {101, -11.504, 1313.6, 0.03353, -9.5074E-08, 2}, VapVis = {102, 0.0000018496, 0.38185, 552.33, 63.517, 0}, LiqK = {16, -0.056303, 5.6194, -1.5408, -0.00033118, -0.0000010873}, VapK = {102, 0.25407, -0.039016, -216.19, 1832400, 0}, Racketparam = 0.255, UniquacR = 6.0066, UniquacQ = 4.616, ChaoSeadAF = 0.354019, ChaoSeadSP = 17460, ChaoSeadLV = 0.156083);
-end Mdiethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mesitylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mesitylene.mo
deleted file mode 100644
index ef633f8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mesitylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mesitylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 287, name = "Mesitylene", CAS = "108-67-8", Tc = 637.3, Pc = 3127000, Vc = 0.43, Cc = 0.252, Tb = 437.9, Tm = 228.46, TT = 228.42, TP = 0.742135, MW = 120.194, LVB = 0.14299, AF = 0.399, SP = 17940, DM = 0, SH = -1209000000.0, IGHF = -1.605E+07, GEF = 1.181E+08, AS = 385410, HFMP = 9514000, HOC = -4.92904E+09, LiqDen = {105, 0.59019, 0.25742, 637.3, 0.27724, 0}, VP = {101, 118.5616, -9560.276, -14.30644, 9.375247E-06, 2}, LiqCp = {16, 152130, 279.49, 4.8304, 0.024632, -0.000024309}, HOV = {106, 6.9292E+07, 1.0706, -1.5094, 1.269, -0.42864}, VapCp = {16, 76799, -561.49, 13.016, 0.00018488, -8.0041E-08}, LiqVis = {101, -11.283, 1439.3, -0.15787, 0.0000019934, 2}, VapVis = {102, 3.4877E-07, 0.61399, 342.31, -16742, 0}, LiqK = {16, -0.012521, 77.398, -2.4912, 0.0027181, -0.0000053908}, VapK = {102, 0.3225, -0.079944, -464.54, 1938200, 0}, Racketparam = 0.252, UniquacR = 5.3928, UniquacQ = 4.104, ChaoSeadAF = 0.399, ChaoSeadSP = 17940, ChaoSeadLV = 0.14299);
-end Mesitylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylicacid.mo
deleted file mode 100644
index 422ddb4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methacrylicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 395, name = "Methacrylicacid", CAS = "79-41-4", Tc = 643, Pc = 4700000, Vc = 0.27, Cc = 0.244, Tb = 433.65, Tm = 288.15, TT = 288.15, TP = 58.5615, MW = 86.0892, LVB = 0.0852843, AF = 0.331817, SP = 21000, DM = 5.5E-30, SH = -22600000.0, IGHF = -3.68E+08, GEF = -2.88E+08, AS = 350000, HFMP = 0, HOC = -1.93E+09, LiqDen = {105, 2.1083, 0.37321, 643, 0.47743, 0}, VP = {101, 9.843112, -6238.161, 2.965581, -0.0000105952, 2}, LiqCp = {16, 130480, 265.42, 3.971, 0.026507, -0.000026858}, HOV = {106, 7009500, -12.334, 36.335, -42.263, 18.248}, VapCp = {16, 48894, -560.59, 12.692, -0.00031458, 1.4407E-07}, LiqVis = {101, 0.054722, 968.88, -1.7788, 0.0000031087, 2}, VapVis = {102, 9.4671E-08, 0.81582, 92.397, 383.72, 0}, LiqK = {16, -0.067603, 29.398, -1.512, 0.00016774, -0.0000015769}, VapK = {102, 0.000065218, 1.0555, 299.46, 29315, 0}, Racketparam = 0.244, UniquacR = 3.3197, UniquacQ = 3.06, ChaoSeadAF = 0.331817, ChaoSeadSP = 21000, ChaoSeadLV = 0.0852843);
-end Methacrylicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylonitrile.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylonitrile.mo
deleted file mode 100644
index 5c93234..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methacrylonitrile.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methacrylonitrile
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 73, name = "Methacrylonitrile", CAS = "126-98-7", Tc = 554, Pc = 3880000, Vc = 0.265, Cc = 0.223, Tb = 363.45, Tm = 237.35, TT = 237.35, TP = 268.868, MW = 67.0892, LVB = 0.0844058, AF = 0.301271, SP = 19090, DM = 1.23E-29, SH = 304600000.0, IGHF = 9.803E+07, GEF = 1.64E+08, AS = 223800, HFMP = 0, HOC = -2.243E+09, LiqDen = {105, 0.89537, 0.23729, 554, 0.29629, 0}, VP = {101, 56.07917, -5342.951, -5.152858, 4.011012E-06, 2}, LiqCp = {16, 125060, 169.88, 6.1441, 0.015707, -0.000014502}, HOV = {106, 4.4103E+07, 0.56334, -0.51577, 0.31852, -0.072403}, VapCp = {16, 68640, -664.02, 12.252, 0.000039427, -4.9098E-08}, LiqVis = {101, -14.973, 1174.5, 0.57272, -0.0000017357, 2}, VapVis = {102, 3.3003E-07, 0.64938, 329.57, -240, 0}, LiqK = {16, 0.095479, 1984.5, -23.334, 0.076497, -0.000098215}, VapK = {102, 0.0010085, 1.2282, 49915, 0.89214, 0}, Racketparam = 0, UniquacR = 2.987475, UniquacQ = 2.712, ChaoSeadAF = 0.301271, ChaoSeadSP = 19094, ChaoSeadLV = 0.0844058);
-end Methacrylonitrile;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methane.mo
deleted file mode 100644
index 243a9e1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 31, name = "Methane", CAS = "74-82-8", Tc = 190.56, Pc = 4599000, Vc = 0.0986, Cc = 0.286, Tb = 111.66, Tm = 90.694, TT = 90.694, TP = 11696, MW = 16.043, LVB = 0.03554, AF = 0.011, SP = 11600, DM = 0, SH = -74520000.0, IGHF = -7.452E+07, GEF = -5.049E+07, AS = 186270, HFMP = 941400, HOC = -8.0262E+08, LiqDen = {105, 1.894, 0.23603, 191.05, 0.21974, 0}, VP = {101, 39.98844, -1337.308, -3.580049, 0.0000320698, 2}, LiqCp = {16, 61157, 5034.1, -48.913, -0.22998, 0.0022243}, HOV = {106, 1.4418E+07, 2.3055, -5.4199, 5.658, -2.1286}, VapCp = {16, 33151.9, -1220.001, 12.0907, -0.000384791, 9.896403E-08}, LiqVis = {101, -45.328, 724.39, 6.5917, -0.00010373, 2}, VapVis = {102, 5.3432E-07, 0.58831, 114.58, -1338.5, 0}, LiqK = {16, 0.011567, -46.041, 0.10435, -0.012133, -0.0000051716}, VapK = {102, 0.0000074705, 1.4432, -57.569, 587.82, 0}, Racketparam = 0.2876, UniquacR = 1.1239, UniquacQ = 1.152, ChaoSeadAF = 0, ChaoSeadSP = 11618.44, ChaoSeadLV = 0.0378392);
-end Methane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methanol.mo
deleted file mode 100644
index b8a9f21..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 32, name = "Methanol", CAS = "67-56-1", Tc = 512.64, Pc = 8097000, Vc = 0.118, Cc = 0.224, Tb = 337.69, Tm = 175.47, TT = 175.47, TP = 0.111264, MW = 32.042, LVB = 0.04073, AF = 0.565, SP = 29440, DM = 5.67E-30, SH = -74520000.0, IGHF = -2.0094E+08, GEF = -1.6232E+08, AS = 239880, HFMP = 3215000, HOC = -6.382E+08, LiqDen = {105, 1.7918, 0.23929, 512.64, 0.21078, 0}, VP = {101, 73.40342, -6548.076, -7.409987, 5.72492E-06, 2}, LiqCp = {16, 62799, 1254.2, -5.9906, 0.052937, -0.00004711}, HOV = {106, 5.8058E+07, 0.87168, -0.81501, 0.1695, 0.17846}, VapCp = {16, 36313.16, -680.4577, 11.10203, 0.000756766, -2.902645E-07}, LiqVis = {101, -32.996, 1981.4, 3.3666, -0.0000039246, 2}, VapVis = {102, 3.0654E-07, 0.69658, 204.87, 24.304, 0}, LiqK = {16, -0.056817, 13.156, -1.2214, -0.00028282, -0.0000010129}, VapK = {102, 7.8368E-07, 1.7569, 108.12, -21101, 0}, Racketparam = 0, UniquacR = 1.43, UniquacQ = 1.43, ChaoSeadAF = 0.5589, ChaoSeadSP = 29546.4, ChaoSeadLV = 0.0407027);
-end Methanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylDiEthanolAmine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylDiEthanolAmine.mo
deleted file mode 100644
index 05309ce..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylDiEthanolAmine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model MethylDiEthanolAmine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 424, name = "MethylDiEthanolAmine", CAS = "105-59-9", Tc = 741.9, Pc = 4160000, Vc = 0.365, Cc = 0.246154, Tb = 520.15, Tm = 252.15, TT = 252.15, TP = 0.00203612, MW = 119.162, LVB = 0.115302, AF = 1.1649, SP = 28140, DM = 9.53993E-30, SH = -61100000.0, IGHF = -3.8E+08, GEF = -1.69E+08, AS = 469000, HFMP = 0, HOC = -3.06E+09, LiqDen = {105, 0.69135, 0.25418, 675, 0.2857, 0}, VP = {101, -0.352098, -4812.65, 3.121045, 6.605463E-06, 2}, LiqCp = {4, 181326, 26.21689, 0.880838, 0, -0.00001581}, HOV = {106, 1.40201E+08, 0.632751, 0.350924, -0.633597, 0.0584955}, VapCp = {16, 89777, -550.24, 13.01, 0.000045139, -3.2024E-08}, LiqVis = {101, -162.0804, 9995.149, 22.49076, -0.0000361184, 1.932506}, VapVis = {102, 7.7364E-08, 0.84268, 140.24, -9063.1, 0}, LiqK = {16, -0.869, 15, 0, 0, 0}, VapK = {102, 0.00016443, 0.97072, 595.54, 41960, 0}, Racketparam = 0.254, UniquacR = 5.8841, UniquacQ = 5.5, ChaoSeadAF = 1.1649, ChaoSeadSP = 28140, ChaoSeadLV = 0.115302);
-end MethylDiEthanolAmine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylEthylCarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylEthylCarbonate.mo
deleted file mode 100644
index 00c84fa..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylEthylCarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model MethylEthylCarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 414, name = "MethylEthylCarbonate", CAS = "623-53-0", Tc = 565.93, Pc = 3828600, Vc = 0.30149, Cc = 0.24531, Tb = 385.68, Tm = 258.65, TT = 0, TP = 0, MW = 104.1054, LVB = 0.1108, AF = 0.31086, SP = 20328.39, DM = 0, SH = -61100000.0, IGHF = 6.510304E+07, GEF = -2.776586, AS = 1164449, HFMP = 0, HOC = -2.608223, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {10, 21.71522, 3376.596, -49.461, 0, 0}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 2.0559E+07, 0.38, 0, 0, 0}, VapCp = {4, 160.9996, 288.84, -0.1394, 0.0000245, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.24531, UniquacR = 4.0566, UniquacQ = 3.626, ChaoSeadAF = 0.31086, ChaoSeadSP = 0, ChaoSeadLV = 0.1108);
-end MethylEthylCarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylPhenylCarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylPhenylCarbonate.mo
deleted file mode 100644
index 7a7626a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/MethylPhenylCarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model MethylPhenylCarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 415, name = "MethylPhenylCarbonate", CAS = "13509-27-8", Tc = 711.76, Pc = 3441000, Vc = 0.42129, Cc = 0.244961, Tb = 491.76, Tm = 0, TT = 0, TP = 0, MW = 152.1494, LVB = 0.1385, AF = 0.41299, SP = 19646.23, DM = 0, SH = -61100000.0, IGHF = 1.345156E+08, GEF = 1.178139E+08, AS = 931814.4, HFMP = 0, HOC = -4.252756, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {10, 23.07041, 5677.005, 0, 0, 0}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 4.6776E+07, 0.38, 0, 0, 0}, VapCp = {4, -37380, 589.92, -0.3882, 0.0000976, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.244961, UniquacR = 5.5028, UniquacQ = 4.358, ChaoSeadAF = 0.41299, ChaoSeadSP = 0, ChaoSeadLV = 0.1385);
-end MethylPhenylCarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetate.mo
deleted file mode 100644
index 0031373..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 64, name = "Methylacetate", CAS = "79-20-9", Tc = 506.8, Pc = 4690000, Vc = 0.228, Cc = 0.254, Tb = 330.09, Tm = 175.15, TT = 175.15, TP = 1.01703, MW = 74.079, LVB = 0.07989, AF = 0.323, SP = 19350, DM = 5.6E-30, SH = 20230000.0, IGHF = -4.119E+08, GEF = -3.242E+08, AS = 319800, HFMP = 7970000, HOC = -1.461E+09, LiqDen = {105, 0.98331, 0.2428, 506.86, 0.2549, 0}, VP = {101, 83.01817, -6288.581, -9.185862, 7.595367E-06, 2}, LiqCp = {16, 6314.4, 680.3, 4.1767, 0.026148, -0.000027341}, HOV = {106, 4.9929E+07, 0.79197, -0.73136, 0.37429, -0.019974}, VapCp = {16, 62235, -685.05, 12.348, 0.00012363, -8.5641E-08}, LiqVis = {101, 11.12, -100.13, -3.2745, -5.3051E-07, 2}, VapVis = {102, 0.0000013226, 0.48849, 504.21, 4.2341, 0}, LiqK = {16, -0.28416, 27.186, -0.94457, 0.00083974, -0.0000024412}, VapK = {102, -23257, -0.1738, 1.0287E+07, -6.9243E+10, 0}, Racketparam = 0, UniquacR = 2.8, UniquacQ = 2.58, ChaoSeadAF = 0.326, ChaoSeadSP = 19435.1, ChaoSeadLV = 0.0798903);
-end Methylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetylene.mo
deleted file mode 100644
index aafab53..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylacetylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylacetylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 59, name = "Methylacetylene", CAS = "74-99-7", Tc = 402.4, Pc = 5630000, Vc = 0.1635, Cc = 0.275, Tb = 250.12, Tm = 170.45, TT = 170.45, TP = 414.934, MW = 40.065, LVB = 0.06231, AF = 0.214, SP = 15870, DM = 2.61E-30, SH = 184900000.0, IGHF = 1.849E+08, GEF = 1.9384E+08, AS = 248360, HFMP = 5350000, HOC = -1.8487E+09, LiqDen = {105, 1.5983, 0.26361, 402.4, 0.27835, 0}, VP = {101, 68.97649, -4285.953, -7.418705, 0.000010515, 2}, LiqCp = {16, 85291, 38.538, 6.7428, 0.016885, -0.000022161}, HOV = {106, 3.4954E+07, 0.52948, 0.26449, -0.89434, 0.5174}, VapCp = {16, 34169.26, -350.7621, 11.18743, 0.000684714, -2.185041E-07}, LiqVis = {101, -0.91891, 242.44, -1.5439, 5.0147E-07, 2}, VapVis = {102, 0.0000010586, 0.48791, 277.58, 3995.6, 0}, LiqK = {16, 0.065025, -121.87, -0.025752, -0.0097723, 0.0000047452}, VapK = {102, 0.00029245, 0.88088, 248.57, 78809, 0}, Racketparam = 0.2703, UniquacR = 2.1931, UniquacQ = 1.936, ChaoSeadAF = 0.2176, ChaoSeadSP = 18393.2, ChaoSeadLV = 0.0596157);
-end Methylacetylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylal.mo
deleted file mode 100644
index c963f49..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 423, name = "Methylal", CAS = "109-87-5", Tc = 480.6, Pc = 3950000, Vc = 0.213, Cc = 0.211, Tb = 315, Tm = 168, TT = 168.35, TP = 1.13284, MW = 76.0944, LVB = 0.0891275, AF = 0.285565, SP = 17430, DM = 2.47E-30, SH = -61100000.0, IGHF = -3.482E+08, GEF = -2.263E+08, AS = 335700, HFMP = 8330000, HOC = -1.7998E+09, LiqDen = {105, 1.4351, 0.30572, 480.6, 0.31739, 0}, VP = {101, 62.15058, -5217.94, -5.982976, 3.491239E-06, 2}, LiqCp = {16, 134330, 575.02, 0.73414, 0.035906, -0.00003541}, HOV = {106, 4.956236E+07, 0.517705, 0.708214, -1.530256, 0.744705}, VapCp = {16, 73387, -1249, 14.774, -0.0029552, 0.0000012399}, LiqVis = {101, -8.4058, 722.36, -0.36572, 2.4819E-07, 2}, VapVis = {102, 4.8512E-07, 0.60235, 248.43, -1208.9, 0}, LiqK = {16, 0.11543, -776.65, 7.882, -0.041206, 0.000038121}, VapK = {102, 0.0014869, 0.65846, 470.64, 206460, 0}, Racketparam = 0.211, UniquacR = 2.964403, UniquacQ = 2.716, ChaoSeadAF = 0.285565, ChaoSeadSP = 17430, ChaoSeadLV = 0.0891275);
-end Methylal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylamine.mo
deleted file mode 100644
index e7057fb..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 33, name = "Methylamine", CAS = "74-89-5", Tc = 430, Pc = 7420000, Vc = 0.125, Cc = 0.259, Tb = 266.82, Tm = 179.69, TT = 179.69, TP = 176.712, MW = 31.057, LVB = 0.04734, AF = 0.284, SP = 21270, DM = 4.37E-30, SH = -22970000.0, IGHF = -2.297E+07, GEF = 3.207E+07, AS = 243300, HFMP = 6134000, HOC = -9.7508E+08, LiqDen = {105, 1.39, 0.21405, 430.05, 0.2275, 0}, VP = {101, 74.79969, -5067.174, -8.028002, 7.988835E-06, 2}, LiqCp = {16, 90815, 374.96, 2.7431, 0.031527, -0.000044978}, HOV = {106, 4.6499E+07, 1.6058, -3.2311, 3.4082, -1.3345}, VapCp = {16, 40540, -902.15, 12.495, -0.00072761, 0.0000002382}, LiqVis = {101, 9.645, 448.12, -3.737, 0.000017508, 2}, VapVis = {102, 5.4475E-07, 0.58715, 230.63, -2982.2, 0}, LiqK = {16, 0.19876, 9592, -137.2, 0.62482, -0.00097954}, VapK = {102, -51.979, 1.0721, -4.4966E+08, 4.2697E+09, 0}, Racketparam = 0, UniquacR = 1.5959, UniquacQ = 1.544, ChaoSeadAF = 0.281272, ChaoSeadSP = 23116, ChaoSeadLV = 0.0447131);
-end Methylamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylchloride.mo
deleted file mode 100644
index fdf9c0e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 29, name = "Methylchloride", CAS = "74-87-3", Tc = 416.2, Pc = 6680000, Vc = 0.143, Cc = 0.276, Tb = 248.95, Tm = 175.45, TT = 175.43, TP = 867.6, MW = 50.488, LVB = 0.05059, AF = 0.151, SP = 17320, DM = 6.24E-30, SH = -81960000.0, IGHF = -8.196E+07, GEF = -5.844E+07, AS = 234180, HFMP = 6548000, HOC = -6.7538E+08, LiqDen = {105, 1.6672, 0.24865, 416.26, 0.26843, 0}, VP = {101, 73.95113, -4332.347, -8.308415, 0.0000132119, 2}, LiqCp = {16, 72914, 778.6, -9.5627, 0.081286, -0.000092921}, HOV = {106, 3.0406E+07, 0.41721, -0.045158, -0.067629, 0.055437}, VapCp = {16, 32790.34, -743.4513, 11.51178, -0.0000302967, 1.138778E-09}, LiqVis = {101, -60.189, 2252.1, 8.022, -0.000019477, 2}, VapVis = {102, 8.5916E-08, 0.87071, 35.619, 35.603, 0}, LiqK = {16, -0.22503, 12.649, -0.64685, -0.0003032, -0.0000029812}, VapK = {102, -22144, 0.7661, -4.8548E+10, -3.7839E+10, 0}, Racketparam = 0, UniquacR = 1.667106, UniquacQ = 1.568, ChaoSeadAF = 0.153068, ChaoSeadSP = 19719.7, ChaoSeadLV = 0.0501264);
-end Methylchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclohexane.mo
deleted file mode 100644
index a00ae9e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 144, name = "Methylcyclohexane", CAS = "108-87-2", Tc = 572.19, Pc = 3471000, Vc = 0.368, Cc = 0.268, Tb = 374.09, Tm = 146.58, TT = 146.58, TP = 0.000152251, MW = 98.188, LVB = 0.12835, AF = 0.235, SP = 16060, DM = 0, SH = -168070000.0, IGHF = -1.548E+08, GEF = 2.733E+07, AS = 343300, HFMP = 6751000, HOC = -4.25714E+09, LiqDen = {105, 0.54994, 0.23476, 572.19, 0.25237, 0}, VP = {101, 84.02524, -6720.084, -9.367446, 6.892527E-06, 2}, LiqCp = {16, 121540, -7.0302, 8.197, 0.012761, -0.000010388}, HOV = {106, 5.3741E+07, 0.65698, 0.0050875, -0.53082, 0.29149}, VapCp = {16, 82902, -804.58, 13.697, -0.00042977, 1.1051E-07}, LiqVis = {101, -11.411, 1214.3, 0.0090457, -0.0000000327, 2}, VapVis = {102, 6.5256E-07, 0.52942, 310.39, 23.825, 0}, LiqK = {16, 0.035771, -249.64, 0.10904, -0.0066567, 0.0000013937}, VapK = {102, 0.000074754, 1.119, 613.15, 22882, 0}, Racketparam = 0.2699, UniquacR = 4.72, UniquacQ = 3.776, ChaoSeadAF = 0.2421, ChaoSeadSP = 16016.26, ChaoSeadLV = 0.1283);
-end Methylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclopentane.mo
deleted file mode 100644
index 1870844..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 131, name = "Methylcyclopentane", CAS = "96-37-7", Tc = 532.79, Pc = 3784000, Vc = 0.319, Cc = 0.272, Tb = 344.98, Tm = 130.73, TT = 130.73, TP = 0.000224525, MW = 84.161, LVB = 0.11313, AF = 0.227, SP = 16100, DM = 0, SH = -168070000.0, IGHF = -1.062E+08, GEF = 3.63E+07, AS = 339900, HFMP = 6929000, HOC = -3.6741E+09, LiqDen = {105, 0.63455, 0.23477, 532.79, 0.24394, 0}, VP = {101, 63.18203, -5470.368, -6.215132, 4.384737E-06, 2}, LiqCp = {16, 102830, 317.53, 4.999, 0.022368, -0.000020298}, HOV = {106, 4.986429E+07, 0.75425, -0.186227, -0.50621, 0.35999}, VapCp = {16, 55624, -676.34, 13.207, -0.0001363, 2.6321E-08}, LiqVis = {101, -9.2288, 846.65, -0.18612, -0.0000022383, 2}, VapVis = {102, 0.0000009078, 0.495, 355.78, 10.622, 0}, LiqK = {16, -0.040815, 4.4808, -1.5434, -0.00050494, -0.0000017671}, VapK = {102, 0.0076653, 0.48521, 479.72, 658190, 0}, Racketparam = 0, UniquacR = 3.97, UniquacQ = 3.01, ChaoSeadAF = 0.2346, ChaoSeadSP = 16057.17, ChaoSeadLV = 0.1131);
-end Methylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethanolamine.mo
deleted file mode 100644
index 85484b6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 377, name = "Methylethanolamine", CAS = "109-83-1", Tc = 630, Pc = 5300000, Vc = 0.25901, Cc = 0.262, Tb = 432.388, Tm = 268.65, TT = 268.65, TP = 11.1091, MW = 75.112, LVB = 0.082206, AF = 0.604, SP = 25930, DM = 7.2E-30, SH = -22600000.0, IGHF = -1.98E+08, GEF = -6.11E+07, AS = 344000, HFMP = 8760000, HOC = -2.01E+09, LiqDen = {105, 0.982868, 0.255663, 630, 0.231239, 0}, VP = {101, 101.1268, -9896.461, -11.12231, 4.333878E-06, 2}, LiqCp = {4, 65879.9, 415.0007, 0.00004583, 2.109E-09, -0.0000030816}, HOV = {106, 8.3715E+07, 1.1304, -1.7736, 1.7333, -0.66961}, VapCp = {16, 50351, -464.92, 12.353, 0.00032078, -1.1521E-07}, LiqVis = {101, -8.8113, 2947, -0.99316, 4.0603E-07, 2}, VapVis = {102, 2.1919E-07, 0.70935, 211, -8775.4, 0}, LiqK = {16, -0.011378, -96.849, -0.47605, -0.0029428, 4.7129E-07}, VapK = {102, 0.00021463, 0.94857, 622.07, 15372, 0}, Racketparam = 0.262, UniquacR = 3.7825, UniquacQ = 3.524, ChaoSeadAF = 0.604, ChaoSeadSP = 25930, ChaoSeadLV = 0.082206);
-end Methylethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylether.mo
deleted file mode 100644
index 91bfc74..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylethylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 326, name = "Methylethylether", CAS = "540-67-0", Tc = 437.8, Pc = 4400000, Vc = 0.221, Cc = 0.267, Tb = 280.5, Tm = 160, TT = 160, TP = 7.85121, MW = 60.096, LVB = 0.08585, AF = 0.236, SP = 15370, DM = 4.1E-30, SH = -216400000.0, IGHF = -2.164E+08, GEF = -1.177E+08, AS = 308810, HFMP = 7980000, HOC = -1.9314E+09, LiqDen = {105, 1.1195, 0.26367, 437.86, 0.25231, 0}, VP = {101, 63.84, -4659.2, -6.4137, 0.0000057727, 2}, LiqCp = {16, 109050, -31.645, 7.7783, 0.0084684, 0.0000041202}, HOV = {106, 1.3679E+08, 9.4948, -25.655, 28.424, -11.603}, VapCp = {16, 60571, -557.18, 12.079, 0.00048084, -1.7581E-07}, LiqVis = {101, -11.138, 628.05, 0.042345, -2.0281E-08, 2}, VapVis = {102, 2.9661E-07, 0.6716, 174.02, -2778.1, 0}, LiqK = {16, 0.029003, 34.124, -1.9356, 0.0010295, -0.0000079939}, VapK = {102, 0.00021058, 0.94472, 515.36, 8108.3, 0}, Racketparam = 0.267, UniquacR = 2.7205, UniquacQ = 2.476, ChaoSeadAF = 0.236, ChaoSeadSP = 15370, ChaoSeadLV = 0.08585);
-end Methylethylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylketone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylketone.mo
deleted file mode 100644
index 7504498..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylketone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylethylketone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 83, name = "Methylethylketone", CAS = "78-93-3", Tc = 536.8, Pc = 4210000, Vc = 0.267, Cc = 0.252, Tb = 352.71, Tm = 186.48, TT = 186.48, TP = 1.3904, MW = 72.107, LVB = 0.09013, AF = 0.322, SP = 18880, DM = 9.21E-30, SH = -17100000.0, IGHF = -2.39E+08, GEF = -1.47E+08, AS = 339400, HFMP = 8385000, HOC = -2.268E+09, LiqDen = {105, 0.16518, 0.10716, 536.8, 0.15066, 0}, VP = {101, 84.00012, -6498.964, -9.389584, 8.32043E-06, 2}, LiqCp = {16, 137210, 245.98, 6.3249, 0.009404, 3.3143E-07}, HOV = {106, 4.7221E+07, 0.30759, 0.48591, -0.8645, 0.45018}, VapCp = {16, 69404, -545.04, 12.139, 0.00045578, -1.6351E-07}, LiqVis = {101, -0.60519, 503.02, -1.5659, 5.5782E-08, 2}, VapVis = {102, 2.8817E-08, 0.96765, -28.58, 7703, 0}, LiqK = {16, -0.17871, 4.3086, -1.0343, 0.00010801, -0.0000015411}, VapK = {102, -4970700, -0.23106, 2.2577E+09, -1.0834E+13, 0}, Racketparam = 0, UniquacR = 3.25, UniquacQ = 2.88, ChaoSeadAF = 0.3241, ChaoSeadSP = 18878.7, ChaoSeadLV = 0.0901936);
-end Methylethylketone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylsulfide.mo
deleted file mode 100644
index 8cfc9eb..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylethylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylethylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 354, name = "Methylethylsulfide", CAS = "624-89-5", Tc = 533, Pc = 4260000, Vc = 0.26, Cc = 0.25, Tb = 339.8, Tm = 167.24, TT = 167.23, TP = 0.224563, MW = 76.163, LVB = 0.09102, AF = 0.208, SP = 18010, DM = 5.34E-30, SH = -22600000.0, IGHF = -5.93E+07, GEF = 1.19E+07, AS = 332100, HFMP = 9761000, HOC = -2.3531E+09, LiqDen = {105, 1.067, 0.27102, 533, 0.29364, 0}, VP = {101, 84.44792, -6287.173, -9.497514, 8.101952E-06, 2}, LiqCp = {16, 128430, 1340.2, -7.9347, 0.062009, -0.00006022}, HOV = {106, 5.1014E+07, 1.045, -1.3834, 1.1914, -0.41055}, VapCp = {16, 65018, -602.45, 12.269, 0.00023938, -9.0299E-08}, LiqVis = {101, -11.137, 871.68, 0.048227, -1.2198E-07, 2}, VapVis = {102, 1.5396E-07, 0.76205, 156.76, -5273.3, 0}, LiqK = {16, -0.050172, -1.1207, -1.3208, -0.00082247, -0.0000013076}, VapK = {102, 0.0034168, 0.62158, 1811.6, 162180, 0}, Racketparam = 0.25, UniquacR = 3.1885, UniquacQ = 2.756, ChaoSeadAF = 0.208, ChaoSeadSP = 18010, ChaoSeadLV = 0.09102);
-end Methylethylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylformate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylformate.mo
deleted file mode 100644
index eabf212..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylformate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylformate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 49, name = "Methylformate", CAS = "107-31-3", Tc = 487.2, Pc = 6000000, Vc = 0.172, Cc = 0.255, Tb = 304.9, Tm = 174.15, TT = 174.15, TP = 6.88085, MW = 60.053, LVB = 0.06214, AF = 0.253, SP = 20500, DM = 5.9E-30, SH = -52630000.0, IGHF = -3.524E+08, GEF = -2.95E+08, AS = 285200, HFMP = 7531000, HOC = -8.924E+08, LiqDen = {105, 1.213, 0.23619, 487.2, 0.24621, 0}, VP = {101, 70.6458, -5401.751, -7.334787, 5.934343E-06, 2}, LiqCp = {16, 97064, 3377.4, -42.373, 0.22648, -0.00029763}, HOV = {106, 7.0578E+07, 3.7855, -9.0874, 9.6043, -3.7868}, VapCp = {16, 41319, -570.15, 12.038, -0.000034216, -2.7109E-11}, LiqVis = {101, -9.949, 1214.4, -0.53562, 0.000010346, 2}, VapVis = {102, 0.0000069776, 0.31537, 1034.6, 13.293, 0}, LiqK = {16, 0.0090363, 23.594, -1.5627, 0.00089283, -0.0000058101}, VapK = {102, -817050, -0.23016, 2.5314E+08, -1.5205E+12, 0}, Racketparam = 0, UniquacR = 2.1431, UniquacQ = 2.036, ChaoSeadAF = 0.257, ChaoSeadSP = 20503.4, ChaoSeadLV = 0.0620841);
-end Methylformate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyliodide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyliodide.mo
deleted file mode 100644
index 8a69e97..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyliodide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methyliodide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 30, name = "Methyliodide", CAS = "74-88-4", Tc = 528, Pc = 7370000, Vc = 0.185, Cc = 0.311, Tb = 315.58, Tm = 206.7, TT = 206.7, TP = 254.555, MW = 141.939, LVB = 0.062667, AF = 0.19716, SP = 20180, DM = 5.4E-30, SH = -81960000.0, IGHF = 1.3E+07, GEF = 1.47E+07, AS = 254000, HFMP = 0, HOC = -7.096E+08, LiqDen = {105, 1.3975, 0.25854, 528, 0.2679, 0}, VP = {101, 56.57754, -4804.529, -5.238128, 3.097144E-06, 2}, LiqCp = {16, 81227, -510450, 4831.2, -15.234, 0.016088}, HOV = {106, 3.3737E+07, -0.25822, 1.7219, -2.0034, 0.83642}, VapCp = {16, 33243, -588.89, 11.23, 0.00016737, -5.0885E-08}, LiqVis = {101, -8.0691, 650.82, -0.30881, -1.1201E-07, 2}, VapVis = {102, 7.1469E-07, 0.6322, 292.39, -1664.7, 0}, LiqK = {16, 0.025022, -2.7147, -2.1673, -0.0005511, -0.000004231}, VapK = {102, 0.15913, 0.010769, 1577.4, 2109400, 0}, Racketparam = 0, UniquacR = 2.1651, UniquacQ = 1.84, ChaoSeadAF = 0.192721, ChaoSeadSP = 20172.3, ChaoSeadLV = 0.062667);
-end Methyliodide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylether.mo
deleted file mode 100644
index 7f3ed92..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylisobutylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 329, name = "Methylisobutylether", CAS = "625-44-5", Tc = 497, Pc = 3410000, Vc = 0.329, Cc = 0.272, Tb = 331.7, Tm = 0, TT = 0, TP = 0, MW = 88.1482, LVB = 0.121242, AF = 0.307786, SP = 15100, DM = 4.7E-30, SH = -216400000.0, IGHF = -2.66E+08, GEF = -1.07E+08, AS = 381000, HFMP = 0, HOC = -3.122E+09, LiqDen = {105, 0.83514, 0.27544, 497, 0.27525, 0}, VP = {101, 67.83965, -5584.772, -6.90156, 5.177794E-06, 2}, LiqCp = {16, 156890, 481.87, 3.1798, 0.023292, -0.000015219}, HOV = {106, 4.281E+07, 0.34436, 0.050812, -0.029168, 0.014527}, VapCp = {16, 84480, -573.48, 12.645, 0.00036001, -1.6026E-07}, LiqVis = {101, -6.5049, 776.05, -0.79051, 0.0000029469, 2}, VapVis = {102, 2.7344E-07, 0.65828, 203.42, -5560.1, 0}, LiqK = {16, -0.1664, 6.1773, -1.0308, -0.0004394, -9.9213E-07}, VapK = {102, 0.00016088, 0.97231, 471.48, 30281, 0}, Racketparam = 0.272, UniquacR = 4.0685, UniquacQ = 3.552, ChaoSeadAF = 0.307786, ChaoSeadSP = 15100, ChaoSeadLV = 0.121242);
-end Methylisobutylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylketone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylketone.mo
deleted file mode 100644
index caa4c39..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisobutylketone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylisobutylketone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 307, name = "Methylisobutylketone", CAS = "108-10-1", Tc = 574.6, Pc = 3270000, Vc = 0.3406, Cc = 0.256, Tb = 389.15, Tm = 189.15, TT = 189.15, TP = 0.0698742, MW = 100.161, LVB = 0.12581, AF = 0.352, SP = 17420, DM = 9.0E-30, SH = -1209000000.0, IGHF = -2.88E+08, GEF = -1.351E+08, AS = 407000, HFMP = 9710000, HOC = -3.49E+09, LiqDen = {105, 0.70438, 0.26215, 574.6, 0.2872, 0}, VP = {101, 151.9969, -9958.63, -19.68914, 0.0000167819, 2}, LiqCp = {16, 93433, -8.9197, 10.885, 0.0029916, -6.6769E-07}, HOV = {106, 2.7929E+07, -4.5647, 14.372, -16.097, 6.5387}, VapCp = {16, 97540, -634.68, 12.939, 0.000018497, -1.9665E-08}, LiqVis = {101, -9.5441, 1138.8, -0.34128, 0.0000016581, 2}, VapVis = {102, 2.9033E-07, 0.63516, 190.41, 3013.2, 0}, LiqK = {16, 0.05085, -96.32, -0.95078, -0.0031661, -0.0000020547}, VapK = {102, -874190, 0.020464, 1.7911E+07, -8.1274E+12, 0}, Racketparam = 0.256, UniquacR = 4.5959, UniquacQ = 3.952, ChaoSeadAF = 0.352, ChaoSeadSP = 17420, ChaoSeadLV = 0.12581);
-end Methylisobutylketone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylether.mo
deleted file mode 100644
index 385e46b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylisopropylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 330, name = "Methylisopropylether", CAS = "598-53-8", Tc = 464.48, Pc = 3762000, Vc = 0.276, Cc = 0.269, Tb = 303.92, Tm = 127.93, TT = 127.93, TP = 0.00332352, MW = 74.1216, LVB = 0.1046, AF = 0.26555, SP = 15160, DM = 4.16E-30, SH = -216400000.0, IGHF = -2.52E+08, GEF = -1.209E+08, AS = 338300, HFMP = 5850000, HOC = -2.5311E+09, LiqDen = {105, 0.82094, 0.24798, 464.48, 0.26184, 0}, VP = {101, 61.57822, -4874.158, -6.034163, 5.097159E-06, 2}, LiqCp = {16, 123760, 190.2, 5.9878, 0.016259, -0.000010176}, HOV = {106, 4.2811E+07, 1.2196, -2.6572, 3.1706, -1.3477}, VapCp = {16, 84263, -798.1, 12.945, -0.00018216, 3.6316E-08}, LiqVis = {101, -10.884, 730.8, -0.038881, 2.6764E-07, 2}, VapVis = {102, 1.9275E-07, 0.70897, 109.56, -107.54, 0}, LiqK = {16, -0.21567, 5.2547, -0.85956, -0.00045627, -9.7493E-07}, VapK = {102, 1.3675, -0.14071, 1446.2, 3030500, 0}, Racketparam = 0.269, UniquacR = 3.3941, UniquacQ = 3.012, ChaoSeadAF = 0.26555, ChaoSeadSP = 15160, ChaoSeadLV = 0.1046);
-end Methylisopropylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylketone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylketone.mo
deleted file mode 100644
index 0f4e085..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylisopropylketone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylisopropylketone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 112, name = "Methylisopropylketone", CAS = "563-80-4", Tc = 567.7, Pc = 3620000, Vc = 0.31, Cc = 0.238, Tb = 367.55, Tm = 180.15, TT = 180.15, TP = 0.295357, MW = 86.134, LVB = 0.10791, AF = 0.216, SP = 17710, DM = 9.21E-30, SH = -27600000.0, IGHF = -2.626E+08, GEF = -1.393E+08, AS = 369900, HFMP = 9343000, HOC = -2.877E+09, LiqDen = {105, 0.22922, 0.13849, 567.7, 0.18207, 0}, VP = {101, 57.033, -5794.3, -5.09, 0.0000023975, 2}, LiqCp = {16, 142840, 463.87, 4.1439, 0.020347, -0.000013989}, HOV = {106, 1.3282E+07, -7.596951, 21.963, -24.77369, 10.66731}, VapCp = {16, 65899, -628.39, 12.858, 0.000023331, -5.0246E-08}, LiqVis = {101, -11.042, 1043.1, -0.038423, 1.1535E-07, 2}, VapVis = {102, 1.5484E-07, 0.72865, 149.15, -3826.1, 0}, LiqK = {16, -0.11038, 18.412, -1.2824, -0.000057222, -0.000001541}, VapK = {102, -6058400, -0.090573, 3.176E+09, -2.84E+13, 0}, Racketparam = 0.259, UniquacR = 3.9215, UniquacQ = 3.412, ChaoSeadAF = 0.350039, ChaoSeadSP = 18253.3, ChaoSeadLV = 0.106975);
-end Methylisopropylketone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmercaptan.mo
deleted file mode 100644
index 2974755..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 348, name = "Methylmercaptan", CAS = "74-93-1", Tc = 470, Pc = 7230000, Vc = 0.145, Cc = 0.268, Tb = 279.11, Tm = 150.18, TT = 150.18, TP = 3.14785, MW = 48.109, LVB = 0.05552, AF = 0.15, SP = 19470, DM = 5.07E-30, SH = -22600000.0, IGHF = -2.26E+07, GEF = -9920000, AS = 255000, HFMP = 5904000, HOC = -1.1517E+09, LiqDen = {105, 1.954, 0.28171, 470, 0.28737, 0}, VP = {101, 115.1598, -6300.053, -14.66478, 0.0000195265, 2}, LiqCp = {16, 87318, -59222, 550.29, -1.6599, 0.001702}, HOV = {106, 3.221375E+07, -0.00310105, 0.657759, -0.0249162, -0.340052}, VapCp = {16, 38535, -588.35, 11.232, 0.00044782, -1.6363E-07}, LiqVis = {101, -8.947, 607.01, -0.26447, 0.0000011807, 2}, VapVis = {102, 1.9969E-07, 0.74097, 130.67, -839.04, 0}, LiqK = {16, -0.011242, -11.424, -1.1701, -0.0017729, -0.0000012043}, VapK = {102, 0.000024689, 1.1702, 4.7184, 35466, 0}, Racketparam = 0.268, UniquacR = 1.877, UniquacQ = 1.676, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Methylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmethacrylate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmethacrylate.mo
deleted file mode 100644
index bb79c4d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylmethacrylate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylmethacrylate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 407, name = "Methylmethacrylate", CAS = "80-62-6", Tc = 563.15, Pc = 3670000, Vc = 0.324, Cc = 0.253, Tb = 374.15, Tm = 225.15, TT = 225.6, TP = 19.0855, MW = 100.116, LVB = 0.106736, AF = 0.280233, SP = 18530, DM = 6.57E-30, SH = -61100000.0, IGHF = -3.6E+08, GEF = -2.54E+08, AS = 401000, HFMP = 1.44348E+07, HOC = -2.54E+09, LiqDen = {105, 0.91648, 0.27205, 563.15, 0.3201, 0}, VP = {101, 129.5007, -8907.818, -16.17497, 0.000012098, 2}, LiqCp = {16, 45251, 733.56, 4.0201, 0.024183, -0.000020347}, HOV = {106, 5.397285E+07, -0.0862845, 1.857786, -2.127696, 0.775243}, VapCp = {16, 40862.92, -408.0793, 12.53452, 0.000265188, -1.105927E-07}, LiqVis = {101, -8.2342, 780.75, -0.30393, -0.0000019127, 2}, VapVis = {102, 4.0508E-07, 0.64362, 435.99, -25064, 0}, LiqK = {16, 0.093744, -51.297, -0.18289, -0.0078351, -0.0000030405}, VapK = {102, 0.0023506, 0.61168, 848.43, 252520, 0}, Racketparam = 0.253, UniquacR = 3.9215, UniquacQ = 3.564, ChaoSeadAF = 0.280233, ChaoSeadSP = 18530, ChaoSeadLV = 0.106736);
-end Methylmethacrylate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylether.mo
deleted file mode 100644
index bfb965f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylnpropylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 327, name = "Methylnpropylether", CAS = "557-17-5", Tc = 472, Pc = 3801000, Vc = 0.274, Cc = 0.265, Tb = 312.29, Tm = 123.15, TT = 133.97, TP = 0.00289599, MW = 74.1216, LVB = 0.1032, AF = 0.276999, SP = 15730, DM = 4.14E-30, SH = -216400000.0, IGHF = -2.379E+08, GEF = -1.108E+08, AS = 352000, HFMP = 7670000, HOC = -2.517E+09, LiqDen = {105, 1.1427, 0.28927, 472, 0.3185, 0}, VP = {101, 59.81269, -4968.626, -5.703041, 3.962175E-06, 2}, LiqCp = {16, 136920, 43.97, 5.0864, 0.024992, -0.000027384}, HOV = {106, 4.425282E+07, 0.586164, -0.378014, 0.582618, -0.440041}, VapCp = {16, 93668, -926.82, 13.189, -0.0004818, 0.000000144}, LiqVis = {101, -11.301, 802.09, 0.054938, -4.1844E-07, 2}, VapVis = {102, 1.0896E-07, 0.78578, 98.829, -6562.3, 0}, LiqK = {16, -0.0079788, 3.9001, -1.4224, -0.0010693, -0.0000025315}, VapK = {102, 0.010718, 0.485, 2083.9, 283110, 0}, Racketparam = 0.265, UniquacR = 3.3949, UniquacQ = 3.016, ChaoSeadAF = 0.276999, ChaoSeadSP = 15730, ChaoSeadLV = 0.1032);
-end Methylnpropylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylsulfide.mo
deleted file mode 100644
index 747e29e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylnpropylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylnpropylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 355, name = "Methylnpropylsulfide", CAS = "3877-15-4", Tc = 552, Pc = 3800000, Vc = 0.322, Cc = 0.259, Tb = 368.69, Tm = 160.17, TT = 160.17, TP = 0.00425588, MW = 90.1872, LVB = 0.107699, AF = 0.356915, SP = 17710, DM = 5.5E-30, SH = -22600000.0, IGHF = -8.19E+07, GEF = 1.793E+07, AS = 371700, HFMP = 9912000, HOC = -2.962E+09, LiqDen = {105, 1.528, 0.35328, 552, 0.39953, 0}, VP = {101, 83.78969, -6786.538, -9.267875, 6.742312E-06, 2}, LiqCp = {16, 140680, 477.81, 3.8109, 0.020949, -0.000014877}, HOV = {106, 5.460643E+07, 0.610381, 0.183873, -0.864255, 0.448129}, VapCp = {16, 76201, -575.5, 12.472, 0.00030373, -1.0224E-07}, LiqVis = {101, -11.683, 983.43, 0.11996, -4.1262E-07, 2}, VapVis = {102, 5.4928E-08, 0.89154, 78.07, -5628.6, 0}, LiqK = {16, -0.062059, 3.0814, -1.3629, -0.00055214, -0.0000012783}, VapK = {102, 0.0023304, 0.67586, 1803.3, 153300, 0}, Racketparam = 0.259, UniquacR = 3.8629, UniquacQ = 3.296, ChaoSeadAF = 0.273669, ChaoSeadSP = 17710, ChaoSeadLV = 0.107699);
-end Methylnpropylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylpropionate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylpropionate.mo
deleted file mode 100644
index 227651d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methylpropionate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methylpropionate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 88, name = "Methylpropionate", CAS = "554-12-1", Tc = 530.6, Pc = 4000000, Vc = 0.282, Cc = 0.256, Tb = 352.6, Tm = 185.65, TT = 185.65, TP = 0.634091, MW = 88.106, LVB = 0.09693, AF = 0.349, SP = 18630, DM = 5.681E-30, SH = -17100000.0, IGHF = -4.275E+08, GEF = -3.11E+08, AS = 359600, HFMP = 1.01E+07, HOC = -2.078E+09, LiqDen = {105, 0.72945, 0.23284, 530.6, 0.24422, 0}, VP = {101, 91.97365, -7071.987, -10.4626, 7.767427E-06, 2}, LiqCp = {16, 140380, 1173.7, 0.81056, 0.020863, -0.000005642}, HOV = {106, 7.6303E+07, 2.9196, -6.5593, 6.8235, -2.6926}, VapCp = {16, 11365, -258.45, 12.315, 0.00033508, -7.4281E-08}, LiqVis = {101, -8.2868, 807.93, -0.36444, -0.0000010038, 2}, VapVis = {102, 3.2912E-07, 0.63237, 126.55, 15669, 0}, LiqK = {16, 0.034599, 27.577, -2.1207, 0.00098891, -0.0000051703}, VapK = {102, -197.62, -0.13413, 101740, -8.2156E+08, 0}, Racketparam = 0, UniquacR = 3.4786, UniquacQ = 3.116, ChaoSeadAF = 0.391, ChaoSeadSP = 18626.5, ChaoSeadLV = 0.0969396);
-end Methylpropionate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltbutylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltbutylsulfide.mo
deleted file mode 100644
index ca44e24..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltbutylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methyltbutylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 356, name = "Methyltbutylsulfide", CAS = "6163-64-0", Tc = 585, Pc = 3400000, Vc = 0.37, Cc = 0.269, Tb = 372.048, Tm = 190.84, TT = 190.84, TP = 0.818336, MW = 104.214, LVB = 0.12697, AF = 0.107514, SP = 16230, DM = 5.2E-30, SH = -22600000.0, IGHF = -1.209E+08, GEF = 7400000, AS = 414300, HFMP = 8414000, HOC = -3.558E+09, LiqDen = {105, 0.0025324, 0.015967, 585, 0.080614, 0}, VP = {101, 84.46516, -6786.586, -9.396892, 6.668285E-06, 2}, LiqCp = {16, 141210, 178.65, 7.6994, 0.011393, -0.0000080501}, HOV = {106, 6.776086E+07, 2.156989, -4.009149, 3.630339, -1.236406}, VapCp = {16, 87862, -573.15, 12.832, 0.000097962, -4.8038E-08}, LiqVis = {101, -10.768, 996.37, 0.0046964, -1.0865E-08, 2}, VapVis = {102, 1.4934E-07, 0.74231, 170.99, -8263.5, 0}, LiqK = {16, -0.049324, -5.479, -1.3559, -0.00091706, -9.5073E-07}, VapK = {102, 0.00016838, 0.95767, 599.31, 12993, 0}, Racketparam = 0.269, UniquacR = 4.5358, UniquacQ = 3.912, ChaoSeadAF = 0.233365, ChaoSeadSP = 16230, ChaoSeadLV = 0.12697);
-end Methyltbutylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertbutylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertbutylether.mo
deleted file mode 100644
index 322e3f9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertbutylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methyltertbutylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 192, name = "Methyltertbutylether", CAS = "1634-04-4", Tc = 497.1, Pc = 3430000, Vc = 0.329, Cc = 0.273, Tb = 328.35, Tm = 164.55, TT = 164.55, TP = 0.535656, MW = 88.1482, LVB = 0.119887, AF = 0.266059, SP = 15070, DM = 4.54E-30, SH = -168070000.0, IGHF = -2.835E+08, GEF = -1.175E+08, AS = 357800, HFMP = 7600000, HOC = -3.1049E+09, LiqDen = {105, 1.013, 0.29119, 513.95, 0.39929, 0}, VP = {101, 63.31041, -5322.676, -6.212745, 3.951136E-06, 2}, LiqCp = {16, 135550, -54.229, 8.6558, 0.010329, -0.0000078206}, HOV = {106, 7.685222E+07, 4.561833, -12.06881, 13.61234, -5.569118}, VapCp = {16, 89729, -682.14, 12.912, 0.000021441, -2.0192E-08}, LiqVis = {101, -7.136, 821.59, -0.64419, 4.8322E-07, 2}, VapVis = {102, 1.6185E-07, 0.73614, 130.03, -727.78, 0}, LiqK = {16, 0.073008, 306.73, -6.3111, 0.019235, -0.000037933}, VapK = {102, 0.00023034, 0.92128, 391.6, 80274, 0}, Racketparam = 0.267213, UniquacR = 4.0678, UniquacQ = 3.632, ChaoSeadAF = 0.266059, ChaoSeadSP = 15070, ChaoSeadLV = 0.119887);
-end Methyltertbutylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertpentylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertpentylether.mo
deleted file mode 100644
index 4bf09de..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltertpentylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methyltertpentylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 193, name = "Methyltertpentylether", CAS = "994-05-8", Tc = 534, Pc = 3040000, Vc = 0.386, Cc = 0.264, Tb = 359.51, Tm = 0, TT = 0, TP = 0, MW = 102.175, LVB = 0.133437, AF = 0.298071, SP = 15480, DM = 4.90339E-30, SH = -168070000.0, IGHF = -3.054E+08, GEF = -1.137E+08, AS = 408000, HFMP = 0, HOC = -3.71229E+09, LiqDen = {105, 0.68843, 0.26574, 534, 0.27067, 0}, VP = {101, 127.09, -8433.7, -15.94, 0.000013112, 2}, LiqCp = {16, 96936, -844.6, 17.426, -0.01423, 0.000014683}, HOV = {106, 6.112039E+07, 2.144847, -4.987322, 5.569725, -2.294462}, VapCp = {16, 86134, -503.3, 12.828, 0.00026316, -9.3404E-08}, LiqVis = {101, -11.271, 991.37, -0.019082, -2.1664E-08, 2}, VapVis = {102, 6.9893E-08, 0.83491, 61.227, -3034.8, 0}, LiqK = {16, -0.10613, 12.391, -1.3082, -0.00026248, -0.0000013654}, VapK = {102, 0.12493, 0.14978, 1706.4, 1349200, 0}, Racketparam = 0.264404, UniquacR = 4.7422, UniquacQ = 4.172, ChaoSeadAF = 0.298071, ChaoSeadSP = 15480, ChaoSeadLV = 0.133437);
-end Methyltertpentylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltoluene.mo
deleted file mode 100644
index 4b0f5ca..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methyltoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 283, name = "Methyltoluene", CAS = "620-14-4", Tc = 637.15, Pc = 2840000, Vc = 0.49, Cc = 0.254, Tb = 434.48, Tm = 177.61, TT = 177.61, TP = 0.000664959, MW = 120.192, LVB = 0.139685, AF = 0.3232, SP = 17630, DM = 1.1E-30, SH = -1209000000.0, IGHF = -1920000, GEF = 1.2643E+08, AS = 404280, HFMP = 7610000, HOC = -4.94377E+09, LiqDen = {105, 0.61007, 0.26045, 637.15, 0.2946, 0}, VP = {101, 59.906, -6895.5, -5.4176, 0.00000211, 2}, LiqCp = {16, 136340, -1484.6, 20.724, -0.020829, 0.000018949}, HOV = {106, 6.562712E+07, 1.251642, -2.311984, 2.123485, -0.635116}, VapCp = {16, 77831, -586.35, 13.16, 0.0000010287, -1.3417E-08}, LiqVis = {101, -10.732, 1285.7, -0.12931, 2.7444E-07, 2}, VapVis = {102, 4.7246E-07, 0.55389, 274.11, -5848.6, 0}, LiqK = {16, -0.048117, 4.2831, -1.5331, -0.00039971, -0.0000012216}, VapK = {102, 0.000091259, 1.0513, 653.39, 40428, 0}, Racketparam = 0.254, UniquacR = 5.3322, UniquacQ = 4.076, ChaoSeadAF = 0.3232, ChaoSeadSP = 17630, ChaoSeadLV = 0.139685);
-end Methyltoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltpentylsulfide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltpentylsulfide.mo
deleted file mode 100644
index e56820e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Methyltpentylsulfide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Methyltpentylsulfide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 357, name = "Methyltpentylsulfide", CAS = "13286-92-5", Tc = 632, Pc = 3130000, Vc = 0.412, Cc = 0.259, Tb = 401.15, Tm = 195, TT = 195, TP = 0.0547032, MW = 118.24, LVB = 0.141236, AF = 0.283554, SP = 16850, DM = 5.2E-30, SH = -22600000.0, IGHF = -1.374E+08, GEF = 2.884E+07, AS = 422900, HFMP = 8320000, HOC = -4.171E+09, LiqDen = {105, 0.59566, 0.25918, 632, 0.28571, 0}, VP = {101, 71.41151, -7073.516, -7.244729, 3.628693E-06, 2}, LiqCp = {16, 181970, 283.58, 5.3016, 0.020294, -0.000016827}, HOV = {106, 5.4045E+07, 0.37325, 0, 0, 0}, VapCp = {16, 109660, -656.23, 13.164, -0.000084618, -5.7336E-09}, LiqVis = {101, -11.248, 1169.1, -0.00088104, 1.198E-09, 2}, VapVis = {102, 8.9322E-08, 0.79515, 142.11, -9151.1, 0}, LiqK = {16, -0.059845, -0.6973, -1.3681, -0.00062696, -0.0000008708}, VapK = {102, 0.00014528, 0.96627, 637.8, 13351, 0}, Racketparam = 0.259, UniquacR = 5.2102, UniquacQ = 4.452, ChaoSeadAF = 0.283554, ChaoSeadSP = 16850, ChaoSeadLV = 0.141236);
-end Methyltpentylsulfide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mnitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mnitrotoluene.mo
deleted file mode 100644
index 1f0209b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mnitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mnitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 386, name = "Mnitrotoluene", CAS = "99-08-1", Tc = 734, Pc = 3800000, Vc = 0.441, Cc = 0.275, Tb = 504, Tm = 288.65, TT = 289.2, TP = 6.84272, MW = 137.136, LVB = 0.118913, AF = 0.491987, SP = 21470, DM = 1.41E-29, SH = -22600000.0, IGHF = 2.58E+07, GEF = 1.502E+08, AS = 380800, HFMP = 1.406E+07, HOC = -3.5696E+09, LiqDen = {105, 0.50673, 0.22353, 734, 0.25642, 0}, VP = {101, 174.0974, -13266.49, -22.50751, 0.0000146534, 2}, LiqCp = {16, 165480, 678.6, 2.6976, 0.024579, -0.000018568}, HOV = {106, 1.23147E+08, 2.991682, -5.10633, 3.432299, -0.844633}, VapCp = {16, 126830, -1053.5, 13.982, -0.0011308, 3.2272E-07}, LiqVis = {101, -219.04, 9323.8, 32.506, -0.000040609, 2}, VapVis = {102, 3.6657E-08, 0.9283, 56.912, -1935.8, 0}, LiqK = {16, -0.16653, 2.5129, -1.0577, -0.0003596, -3.0249E-07}, VapK = {102, 0.00013182, 0.95336, 611.68, 32295, 0}, Racketparam = 0.275, UniquacR = 4.2801, UniquacQ = 3.272, ChaoSeadAF = 0.491987, ChaoSeadSP = 21470, ChaoSeadLV = 0.118913);
-end Mnitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Monochlorobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Monochlorobenzene.mo
deleted file mode 100644
index cd756a9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Monochlorobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Monochlorobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 122, name = "Monochlorobenzene", CAS = "108-90-7", Tc = 632.4, Pc = 4520000, Vc = 0.308, Cc = 0.265, Tb = 404.91, Tm = 227.95, TT = 227.95, TP = 8.4456, MW = 112.558, LVB = 0.10222, AF = 0.251, SP = 19350, DM = 5.64E-30, SH = -168070000.0, IGHF = 5.109E+07, GEF = 9.829E+07, AS = 314030, HFMP = 9556000, HOC = -2.976E+09, LiqDen = {105, 0.78287, 0.25464, 632.4, 0.26342, 0}, VP = {101, 51.41334, -6020.539, -4.204143, 1.293848E-06, 2}, LiqCp = {16, 139150, -333.42, 10.906, -0.018036, 0.000054846}, HOV = {106, 4.9039E+07, 0.24473, -0.048652, 0.40537, -0.25012}, VapCp = {16, 74680, -1001.5, 13.827, -0.0014014, 4.6413E-07}, LiqVis = {101, 0.029483, 556.49, -1.5963, 1.2171E-07, 2}, VapVis = {102, 1.1217E-07, 0.79382, 109.37, 1134.4, 0}, LiqK = {16, 0.083427, -157.94, -0.89724, -0.0049259, -0.0000027589}, VapK = {102, 0.0004167, 0.92033, 1902.9, 123750, 0}, Racketparam = 0, UniquacR = 3.79, UniquacQ = 2.84, ChaoSeadAF = 0.2459, ChaoSeadSP = 19345.3, ChaoSeadLV = 0.10229);
-end Monochlorobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Monoethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Monoethanolamine.mo
deleted file mode 100644
index 32a078d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Monoethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Monoethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 367, name = "Monoethanolamine", CAS = "141-43-5", Tc = 671.4, Pc = 8030000, Vc = 0.225, Cc = 0.284, Tb = 444.15, Tm = 283.65, TT = 283.65, TP = 13.3683, MW = 61.0831, LVB = 0.0603415, AF = 0.550815, SP = 31830, DM = 2.59E-30, SH = -22600000.0, IGHF = -1.96E+08, GEF = -1.033E+08, AS = 320000, HFMP = 2.0496E+07, HOC = -1.363E+09, LiqDen = {105, 0.648, 0.18183, 678.21, 0.17947, 0}, VP = {10, 23.09274, 4319.625, -69.95024, 0, 0}, LiqCp = {4, 78653.42, 311.4162, -0.0607137, -2.713217E-06, -0.000017988}, HOV = {106, 1.012031E+08, 1.976961, -4.399887, 4.906054, -1.945886}, VapCp = {16, 50668, -516.86, 12.167, 0.00008641, 2.8656E-10}, LiqVis = {101, -370.3, 17780, 54.624, -0.000051065, 2}, VapVis = {102, 5.78881E-08, 0.876532, 75.00276, 628.0161, 0}, LiqK = {16, -0.37218, 78.8, -1.5916, 0.0043895, -0.0000053291}, VapK = {102, -9539.9, 0.39852, -1.7433E+09, -6.3715E+10, 0}, Racketparam = 0.284, UniquacR = 3.0436, UniquacQ = 2.976, ChaoSeadAF = 0.446737, ChaoSeadSP = 31830, ChaoSeadLV = 0.0603415);
-end Monoethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mxylene.mo
deleted file mode 100644
index 67e1aa1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Mxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Mxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 150, name = "Mxylene", CAS = "108-38-3", Tc = 617, Pc = 3541000, Vc = 0.375, Cc = 0.259, Tb = 412.34, Tm = 225.3, TT = 225.3, TP = 3.18019, MW = 106.167, LVB = 0.12347, AF = 0.327, SP = 18050, DM = 1.0E-30, SH = -168070000.0, IGHF = 1.732E+07, GEF = 1.1876E+08, AS = 358540, HFMP = 1.157E+07, HOC = -4.3318E+09, LiqDen = {105, 0.68902, 0.26086, 617, 0.27479, 0}, VP = {101, 97.968, -8164.7, -11.269, 0.0000072101, 2}, LiqCp = {16, 127090, -62.999, 9.3762, 0.0068549, -0.0000032778}, HOV = {106, 5.9562E+07, 0.67841, -0.38938, 0.0061115, 0.10219}, VapCp = {16, 62092, -572.21, 12.975, 0.000062577, -3.7811E-08}, LiqVis = {101, -13.362, 1141.4, 0.37182, -3.9423E-07, 2}, VapVis = {102, 7.2954E-08, 0.8097, 14.386, 8844.3, 0}, LiqK = {16, -0.021158, -27.324, -1.2663, -0.0016664, -3.6744E-07}, VapK = {102, 2.8001E-09, 2.4298, -575.12, 122260, 0}, Racketparam = 0.2593, UniquacR = 4.66, UniquacQ = 3.54, ChaoSeadAF = 0.3045, ChaoSeadSP = 18041.31, ChaoSeadLV = 0.1235);
-end Mxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylethanolamine.mo
deleted file mode 100644
index 8a2133a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Naminoethylethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 374, name = "Naminoethylethanolamine", CAS = "111-41-1", Tc = 698, Pc = 4460000, Vc = 0.387, Cc = 0.252, Tb = 517, Tm = 0, TT = 0, TP = 0, MW = 104.151, LVB = 0.101519, AF = 1.04726, SP = 29230, DM = 0, SH = -22600000.0, IGHF = -1.91E+08, GEF = 3810000, AS = 447000, HFMP = 0, HOC = -2.74E+09, LiqDen = {105, 0.76828, 0.25238, 698, 0.28565, 0}, VP = {101, 214.43, -18769, -27.15, 0.00001141, 2}, LiqCp = {16, 65604, -121.74, 11.802, 0.0023485, -7.9478E-07}, HOV = {106, 1.2005E+08, 0.3465, 0.971, -1.7132, 0.81091}, VapCp = {16, 75533, -495.37, 12.77, 0.00015714, -4.9852E-08}, LiqVis = {101, -27.66295, 5326.5, 1.362383, -1.706454E-06, 2}, VapVis = {102, 1.2606E-07, 0.76222, 173.4, -8594.2, 0}, LiqK = {16, -0.1257, -10.607, -0.88928, -0.00060102, -5.9478E-07}, VapK = {102, 0.00019261, 0.93731, 615.43, 23918, 0}, Racketparam = 0.252, UniquacR = 4.925, UniquacQ = 4.452, ChaoSeadAF = 1.04726, ChaoSeadSP = 29230, ChaoSeadLV = 0.101519);
-end Naminoethylethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylpiperazine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylpiperazine.mo
deleted file mode 100644
index 073fb91..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naminoethylpiperazine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Naminoethylpiperazine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 372, name = "Naminoethylpiperazine", CAS = "140-31-8", Tc = 708, Pc = 3850000, Vc = 0.475, Cc = 0.266, Tb = 495.15, Tm = 254.15, TT = 254.15, TP = 0.0694812, MW = 129.203, LVB = 0.132257, AF = 0.557243, SP = 21520, DM = 0, SH = -22600000.0, IGHF = 2.51E+07, GEF = 2.79E+08, AS = 451000, HFMP = 0, HOC = -4.135E+09, LiqDen = {105, 0.66681, 0.27137, 708, 0.27214, 0}, VP = {101, 127.7429, -12067.23, -15.04915, 6.424073E-06, 2}, LiqCp = {16, 259220, 331.04, 3.608, 0.023605, -0.000018248}, HOV = {106, 9.785579E+07, 0.814708, 0.0237006, -0.690218, 0.260899}, VapCp = {16, 70888, -450.73, 13.066, 0.00018285, -6.5268E-08}, LiqVis = {101, -497.9054, 22666.52, 74.36022, -0.0000702789, 2}, VapVis = {102, 7.7705E-08, 0.8233, 132.06, -8963.7, 0}, LiqK = {16, -0.089882, -7.0061, -1.0711, -0.00065668, -0.0000005629}, VapK = {102, 0.00012973, 0.99814, 630.8, 21962, 0}, Racketparam = 0.266, UniquacR = 5.5591, UniquacQ = 4.424, ChaoSeadAF = 0.557243, ChaoSeadSP = 21520, ChaoSeadLV = 0.132257);
-end Naminoethylpiperazine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naphthalene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naphthalene.mo
deleted file mode 100644
index cfb53bc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Naphthalene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Naphthalene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 167, name = "Naphthalene", CAS = "91-20-3", Tc = 748.4, Pc = 4050000, Vc = 0.407, Cc = 0.265, Tb = 491.16, Tm = 353.434, TT = 353.43, TP = 991.297, MW = 128.174, LVB = 0.12913, AF = 0.304, SP = 19490, DM = 0, SH = -168070000.0, IGHF = 1.5058E+08, GEF = 2.2408E+08, AS = 333150, HFMP = 1.898E+07, HOC = -4.9809E+09, LiqDen = {105, 0.45282, 0.21953, 748.4, 0.23236, 0}, VP = {101, 93.15947, -9448.063, -10.23844, 4.335455E-06, 2}, LiqCp = {16, 149170, 579.65, 3.8152, 0.021624, -0.000015657}, HOV = {106, 7.732822E+07, 1.116621, -1.313575, 0.672121, -0.00584514}, VapCp = {16, 49831, -547.92, 13.201, -0.00013999, 2.8208E-08}, LiqVis = {101, -8.2151, 1338.2, -0.46592, 0.00000135, 2}, VapVis = {102, 1.2323E-08, 1.0475, -162.06, 35144, 0}, LiqK = {16, 0.033214, -361.89, -0.012818, -0.0040236, 0.0000012782}, VapK = {102, 0.000017754, 1.2123, 69.759, 78517, 0}, Racketparam = 0.261, UniquacR = 4.920237, UniquacQ = 3.368, ChaoSeadAF = 0.302, ChaoSeadSP = 19187.5, ChaoSeadLV = 0.130825);
-end Naphthalene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutane.mo
deleted file mode 100644
index 69d6a45..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nbutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 92, name = "Nbutane", CAS = "106-97-8", Tc = 425.12, Pc = 3796000, Vc = 0.255, Cc = 0.274, Tb = 272.66, Tm = 134.86, TT = 134.86, TP = 0.67358, MW = 58.123, LVB = 0.10048, AF = 0.199, SP = 13510, DM = 0, SH = -125790000.0, IGHF = -1.2579E+08, GEF = -1.67E+07, AS = 309910, HFMP = 4661000, HOC = -2.65732E+09, LiqDen = {105, 1.0023, 0.26457, 425.17, 0.27138, 0}, VP = {101, 68.5773, -4444.916, -7.395837, 9.857432E-06, 2}, LiqCp = {16, 115150, -3564.7, 41.067, -0.098803, 0.0001183}, HOV = {106, 3.6258E+07, 0.83741, -0.83676, 0.41526, -0.007606}, VapCp = {16, 44749.95, -338.1412, 11.81452, 0.00097744, -3.359129E-07}, LiqVis = {101, -46.56549, 1439.945, 6.168131, -0.000023917, 2}, VapVis = {102, 2.7078E-08, 0.97147, -51.16, 6431, 0}, LiqK = {16, 0.00024966, -43.155, -0.78129, -0.0043776, -4.136E-08}, VapK = {102, 0.042635, 0.45147, 4234, 1756600, 0}, Racketparam = 0.2728, UniquacR = 3.151, UniquacQ = 2.776, ChaoSeadAF = 0.1953, ChaoSeadSP = 13766.21, ChaoSeadLV = 0.1014);
-end Nbutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylacetate.mo
deleted file mode 100644
index 2dfd14a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nbutylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 336, name = "Nbutylacetate", CAS = "123-86-4", Tc = 579, Pc = 3090000, Vc = 0.4128, Cc = 0.253, Tb = 399.12, Tm = 199.65, TT = 199.65, TP = 0.0816516, MW = 116.16, LVB = 0.13251, AF = 0.407, SP = 17670, DM = 6.14E-30, SH = -216400000.0, IGHF = -4.856E+08, GEF = -3.123E+08, AS = 442500, HFMP = 1.44E+07, HOC = -3.283E+09, LiqDen = {105, 0.13588, 0.1193, 579, 0.16305, 0}, VP = {101, 90.42793, -7625.342, -10.22284, 8.987208E-06, 2}, LiqCp = {16, 201710, -19.025, 8.0191, 0.0068889, 0.0000021505}, HOV = {106, 8.192574E+07, 1.151594, 0.0889674, -1.859865, 1.113952}, VapCp = {16, 92876, -666.17, 13.432, -0.00066148, 3.0678E-07}, LiqVis = {101, -17.008, 1461.1, 0.8424, 1.1193E-07, 2}, VapVis = {102, 1.0488E-07, 0.76809, 52.337, 8271.1, 0}, LiqK = {16, 0.04366, -125.65, -0.40686, -0.0059305, 0.0000024167}, VapK = {102, 5.9364E-09, 2.3739, -402.22, 69606, 0}, Racketparam = 0.253, UniquacR = 4.8274, UniquacQ = 4.196, ChaoSeadAF = 0.407, ChaoSeadSP = 17670, ChaoSeadLV = 0.13251);
-end Nbutylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylbenzene.mo
deleted file mode 100644
index b4359a1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nbutylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 171, name = "Nbutylbenzene", CAS = "104-51-8", Tc = 660.5, Pc = 2890000, Vc = 0.497, Cc = 0.262, Tb = 456.42, Tm = 185.3, TT = 185.3, TP = 0.000154386, MW = 134.221, LVB = 0.15678, AF = 0.393, SP = 17510, DM = 1.23E-30, SH = -168070000.0, IGHF = -1.314E+07, GEF = 1.454E+08, AS = 439490, HFMP = 1.122E+07, HOC = -5.5644E+09, LiqDen = {105, 0.50648, 0.25203, 660.5, 0.29203, 0}, VP = {101, 100.11, -9186.6, -11.379, 0.0000058585, 2}, LiqCp = {16, 173590, 115.14, 7.4501, 0.014631, -0.000011875}, HOV = {106, 6.5698E+07, 0.30842, 0.67062, -1.1135, 0.53276}, VapCp = {16, 97423, -619.62, 13.35, -0.000032816, -9.3502E-09}, LiqVis = {101, -18.829, 1737.7, 1.0385, 0.0000015468, 2}, VapVis = {102, 3.4687E-07, 0.59512, 233.67, 177.63, 0}, LiqK = {16, 0.081204, 245.71, -5.5946, 0.01322, -0.00002506}, VapK = {102, 0.19225, -0.0011093, -156.74, 1712400, 0}, Racketparam = 0, UniquacR = 5.946, UniquacQ = 4.588, ChaoSeadAF = 0.3923, ChaoSeadSP = 17450.9, ChaoSeadLV = 0.156494);
-end Nbutylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclohexane.mo
deleted file mode 100644
index 14bf8ee..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nbutylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 172, name = "Nbutylcyclohexane", CAS = "1678-93-9", Tc = 667, Pc = 2570000, Vc = 0.534, Cc = 0.247, Tb = 454.131, Tm = 198.42, TT = 198.42, TP = 0.00365804, MW = 140.266, LVB = 0.176266, AF = 0.274326, SP = 16400, DM = 0, SH = -168070000.0, IGHF = -2.1317E+08, GEF = 5.654E+07, AS = 458480, HFMP = 1.416E+07, HOC = -6.0902E+09, LiqDen = {105, 0.49786, 0.26572, 667, 0.30254, 0}, VP = {101, 82.702, -8417.7, -8.6968, 0.0000027713, 2}, LiqCp = {16, 117850, 44.861, 10.356, 0.0053947, -0.0000020204}, HOV = {106, 7.7656E+07, 1.637, -3.3269, 3.6698, -1.48}, VapCp = {16, 145450, -890.37, 14.241, -0.0007098, 2.1101E-07}, LiqVis = {101, -66.15115, 3536.438, 8.46644, -7.612217E-06, 2}, VapVis = {102, 5.6992E-07, 0.52089, 326.29, -3328.7, 0}, LiqK = {16, -0.040753, 3.9448, -1.6588, -0.00045987, -0.0000010215}, VapK = {102, 0.000063509, 1.1032, 470.22, 42922, 0}, Racketparam = 0, UniquacR = 6.7432, UniquacQ = 5.396, ChaoSeadAF = 0.3618, ChaoSeadSP = 16411.2, ChaoSeadLV = 0.176266);
-end Nbutylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclopentane.mo
deleted file mode 100644
index 1d3a35d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nbutylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 273, name = "Nbutylcyclopentane", CAS = "2040-95-1", Tc = 621, Pc = 2710000, Vc = 0.482, Cc = 0.254, Tb = 429.75, Tm = 165.165, TT = 165.18, TP = 0.0000370087, MW = 126.239, LVB = 0.161572, AF = 0.37188, SP = 16390, DM = 0, SH = -1209000000.0, IGHF = -1.683E+08, GEF = 6.217E+07, AS = 453800, HFMP = 1.131E+07, HOC = -5.5037E+09, LiqDen = {105, 0.55321, 0.26684, 621, 0.28873, 0}, VP = {101, 59.57026, -7247.203, -5.051393, -2.973642E-06, 2}, LiqCp = {16, 165400, 317.8, 5.7051, 0.0202, -0.000017103}, HOV = {106, 5.633912E+07, -0.222347, 2.054738, -2.396364, 0.924309}, VapCp = {16, 82154, -554.7, 13.299, 0.00015408, -5.7536E-08}, LiqVis = {101, -10.446, 1200.4, -0.12541, 4.6316E-07, 2}, VapVis = {102, 0.0000029081, 0.33269, 700.46, -5220.4, 0}, LiqK = {16, -0.059329, 3.6894, -1.5397, -0.00046539, -0.0000010217}, VapK = {102, 0.001615, 0.65033, 212.05, 447790, 0}, Racketparam = 0.254, UniquacR = 6.068799, UniquacQ = 4.856, ChaoSeadAF = 0.37188, ChaoSeadSP = 16390, ChaoSeadLV = 0.161572);
-end Nbutylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutyricacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutyricacid.mo
deleted file mode 100644
index 4101cd1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nbutyricacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nbutyricacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 86, name = "Nbutyricacid", CAS = "107-92-6", Tc = 624, Pc = 4030000, Vc = 0.292, Cc = 0.227, Tb = 436.87, Tm = 267.95, TT = 267.95, TP = 10.3, MW = 88.106, LVB = 0.09246, AF = 0.72, SP = 20180, DM = 5.5E-30, SH = -17100000.0, IGHF = -4.758E+08, GEF = -3.6E+08, AS = 360100, HFMP = 1.159E+07, HOC = -2.008E+09, LiqDen = {105, 0.702, 0.22902, 628.16, 0.24275, 0}, VP = {101, 54.31047, -7692.649, -4.148708, 2.624319E-07, 2}, LiqCp = {16, 135560, 664.7, 1.9592, 0.027685, -0.000020111}, HOV = {106, 5.1387E+07, 1.1517, -2.7656, 2.6617, -0.66983}, VapCp = {16, 75565, -613.25, 12.671, -0.000058773, -2.4845E-08}, LiqVis = {101, 14.241, 534.99, -4.0411, 0.0000053437, 2}, VapVis = {102, 2.2745E-08, 1.0055, 13.097, 182.58, 0}, LiqK = {16, -0.043955, 57.698, -1.8847, 0.00050649, -0.0000013441}, VapK = {102, 0.00010747, 1.3444, 19634, -7296600, 0}, Racketparam = 0, UniquacR = 3.5512, UniquacQ = 3.152, ChaoSeadAF = 0.683, ChaoSeadSP = 20262.7, ChaoSeadLV = 0.0924567);
-end Nbutyricacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndecane.mo
deleted file mode 100644
index 75d986c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ndecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 173, name = "Ndecane", CAS = "124-18-5", Tc = 617.7, Pc = 2110000, Vc = 0.624, Cc = 0.256, Tb = 447.3, Tm = 243.51, TT = 243.51, TP = 1.39297, MW = 142.285, LVB = 0.19595, AF = 0.491, SP = 15720, DM = 0, SH = -168070000.0, IGHF = -2.4946E+08, GEF = 3.318E+07, AS = 545700, HFMP = 2.871E+07, HOC = -6.29422E+09, LiqDen = {105, 0.37424, 0.2405, 617.7, 0.27182, 0}, VP = {101, 6.023802, -5713.196, 3.410225, -0.000012633, 2}, LiqCp = {16, 160660, 291.43, 8.5687, 0.0098408, -0.0000060811}, HOV = {106, 5.7689E+07, -1.1412, 5.1463, -6.2946, 2.6623}, VapCp = {16, 152020, -697.29, 13.714, -0.00021747, 4.9426E-08}, LiqVis = {101, -102.98, 4517.9, 14.495, -0.00002056, 2}, VapVis = {102, 2.3638E-08, 0.95886, 24.698, 7541.9, 0}, LiqK = {16, 0.071684, -217.03, -0.47424, -0.0039028, -0.0000049442}, VapK = {102, -668.49, 0.93224, -4.0687E+09, -1.0176E+09, 0}, Racketparam = 0.2503, UniquacR = 7.2, UniquacQ = 6.02, ChaoSeadAF = 0.4869, ChaoSeadSP = 15791.26, ChaoSeadLV = 0.196);
-end Ndecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndocosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndocosane.mo
deleted file mode 100644
index c940ae2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndocosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ndocosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 209, name = "Ndocosane", CAS = "629-97-0", Tc = 808.83, Pc = 1339000, Vc = 1.252, Cc = 0.209, Tb = 641.75, Tm = 318.25, TT = 317.15, TP = 0.00359575, MW = 310.601, LVB = 0.393226, AF = 0.973, SP = 15800, DM = 0, SH = -1209000000.0, IGHF = -4.985E+08, GEF = 1.307E+08, AS = 1019000, HFMP = 4.8953E+07, HOC = -1.357E+10, LiqDen = {105, 0.00088994, 0.017172, 808.83, 0.094179, 0}, VP = {101, 270.663, -22731.61, -35.81794, 0.0000193308, 2}, LiqCp = {16, 94846, -114.81, 13.466, 0.000531, 3.3532E-07}, HOV = {106, 1.5383E+08, 1.0955, -1.2067, 1.3977, -0.85529}, VapCp = {16, 291820, -567.43, 14.157, 0.00012912, -4.9166E-08}, LiqVis = {101, -27.314, 2728.1, 2.3358, -0.0000013135, 2}, VapVis = {102, 2.8858E-07, 0.62154, 714.54, 4582.3, 0}, LiqK = {16, -0.148, -22.716, -0.91136, -0.00059496, -3.4759E-07}, VapK = {102, -270.77, 1.0546, -5.8977E+09, -1.0935E+11, 0}, Racketparam = 0.209, UniquacR = 15.2902, UniquacQ = 12.496, ChaoSeadAF = 0.973, ChaoSeadSP = 15800, ChaoSeadLV = 0.393226);
-end Ndocosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndodecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndodecane.mo
deleted file mode 100644
index 5940462..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ndodecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ndodecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 179, name = "Ndodecane", CAS = "112-40-3", Tc = 658, Pc = 1820000, Vc = 0.754, Cc = 0.251, Tb = 489.48, Tm = 263.568, TT = 263.568, TP = 0.615203, MW = 170.338, LVB = 0.22859, AF = 0.571, SP = 15930, DM = 0, SH = -168070000.0, IGHF = -2.9072E+08, GEF = 4.981E+07, AS = 624150, HFMP = 3.684E+07, HOC = -7.51368E+09, LiqDen = {105, 0.30334, 0.23617, 658, 0.2706, 0}, VP = {101, 127.8877, -11582.12, -15.22541, 6.680034E-06, 2}, LiqCp = {16, 203950, 627.31, 6.2796, 0.014676, -0.0000079758}, HOV = {106, 9.812979E+07, 0.939672, -0.0412509, -0.949322, 0.501567}, VapCp = {16, 193680, -732.61, 13.902, -0.00022284, 6.2257E-08}, LiqVis = {101, -83.21108, 4238.311, 11.14639, -0.0000124656, 2}, VapVis = {102, 5.4481E-08, 0.85223, 245.71, -11928, 0}, LiqK = {16, 0.029364, -108.04, -0.7007, -0.0040791, 6.1377E-07}, VapK = {102, 0.0000055504, 1.4726, 558.15, 3563.6, 0}, Racketparam = 0.2466, UniquacR = 8.5462, UniquacQ = 7.096, ChaoSeadAF = 0.561, ChaoSeadSP = 16036.72, ChaoSeadLV = 0.2286);
-end Ndodecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neicosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neicosane.mo
deleted file mode 100644
index 1b87710..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neicosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Neicosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 430, name = "Neicosane", CAS = "112-95-8", Tc = 767, Pc = 1160000, Vc = 1.19, Cc = 0.213, Tb = 616.95, Tm = 309.58, TT = 309.58, TP = 0.00925737, MW = 282.547, LVB = 0.360385, AF = 0.9065, SP = 16000, DM = 0, SH = 28500000.0, IGHF = -4.5576E+08, GEF = 1.157E+08, AS = 934120, HFMP = 7.03E+07, HOC = -1.239199E+10, LiqDen = {105, 0.18166, 0.23351, 768, 0.28571, 0}, VP = {101, 164.6909, -17503.89, -19.74205, 5.399206E-06, 2}, LiqCp = {100, 352720, 807.32, 0.2122, 0, 0}, HOV = {106, 1.286E+08, 0.50351, 0.32986, -0.42184, 0}, VapCp = {107, 324810, 1109000, 1636, 745000, 726.27}, LiqVis = {101, -10.5557, 1830.385, -0.148602, -7.471032E-06, -7.49069E-06}, VapVis = {102, 2.9236E-07, 0.62458, 702.84, 0, 0}, LiqK = {100, 0.2178, -0.0002233, 0, 0, 0}, VapK = {102, -375.32, 1.0708, -8.7836E+09, 0, 0}, Racketparam = 0, UniquacR = 13.9414, UniquacQ = 11.416, ChaoSeadAF = 0.9065, ChaoSeadSP = 16000, ChaoSeadLV = 0.360385);
-end Neicosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neon.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neon.mo
deleted file mode 100644
index 7646be5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neon.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Neon
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 17, name = "Neon", CAS = "7440-01-9", Tc = 44.4, Pc = 2653000, Vc = 0.0417, Cc = 0.3, Tb = 27.09, Tm = 24.55, TT = 24.56, TP = 43300, MW = 20.1797, LVB = 0.0167622, AF = -0.0395988, SP = 9440, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 146219, HFMP = 328100, HOC = 0, LiqDen = {105, 7.3718, 0.3067, 44.4, 0.2786, 0}, VP = {101, 29.459, -269.41, -2.5349, 0.00051726, 2}, LiqCp = {16, 29948, -243.96, 32.083, -0.79445, 0.01023}, HOV = {106, 1420900, -0.63029, -0.0022325, 1.6268, -0.7611}, VapCp = {16, 20786, -1728.5, -21.855, 0.0020512, 2.1139E-07}, LiqVis = {101, -83.002, 434.94, 18.35, -0.0034996, 2}, VapVis = {102, 7.6731E-07, 0.65634, 5.8941, 175.84, 0}, LiqK = {16, -0.49811, -1.8025, -0.49257, 0.0090166, -0.00024023}, VapK = {102, 0.0011717, 0.66099, 12.109, -70.155, 0}, Racketparam = 0, UniquacR = 0.680949, UniquacQ = 0.776, ChaoSeadAF = -0.0413762, ChaoSeadSP = 9417.34, ChaoSeadLV = 0.0167622);
-end Neon;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neopentane.mo
deleted file mode 100644
index 5dfbab7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Neopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Neopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 116, name = "Neopentane", CAS = "463-82-1", Tc = 433.75, Pc = 3199000, Vc = 0.3032, Cc = 0.269, Tb = 282.65, Tm = 256.6, TT = 256.6, TP = 35745.2, MW = 72.15, LVB = 0.12216, AF = 0.197, SP = 12510, DM = 0, SH = -168070000.0, IGHF = -1.6807E+08, GEF = -1.714E+07, AS = 305890, HFMP = 3146000, HOC = -3.25039E+09, LiqDen = {105, 0.90246, 0.2775, 433.8, 0.29085, 0}, VP = {101, 85.887, -5169, -10.119, 0.000013061, 2}, LiqCp = {16, 116590, 146.32, 1.9197, 0.044936, -0.000054657}, HOV = {106, 3.3957E+07, 0.38208, 0, 0, 0}, VapCp = {16, 31525, -309.56, 12.21, 0.00085791, -2.6395E-07}, LiqVis = {101, -36.861, 2459.5, 3.4416, 0.0000070474, 2}, VapVis = {102, 8.1019E-07, 0.5294, 468.47, -22580, 0}, LiqK = {16, 0.027667, -243.53, 0.83395, -0.010754, 0.0000058849}, VapK = {102, 0.0000044729, 1.4644, -142.95, 66180, 0}, Racketparam = 0.2762, UniquacR = 3.8239, UniquacQ = 3.392, ChaoSeadAF = 0.195, ChaoSeadSP = 14359.41, ChaoSeadLV = 0.1233);
-end Neopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheneicosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheneicosane.mo
deleted file mode 100644
index 15ef270..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheneicosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nheneicosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 208, name = "Nheneicosane", CAS = "629-94-7", Tc = 798.64, Pc = 1391000, Vc = 1.197, Cc = 0.211, Tb = 629.65, Tm = 313.65, TT = 313.35, TP = 0.00621532, MW = 296.574, LVB = 0.376581, AF = 0.942004, SP = 15900, DM = 0, SH = -1209000000.0, IGHF = -4.778E+08, GEF = 1.229E+08, AS = 985000, HFMP = 4.7698E+07, HOC = -1.296E+10, LiqDen = {105, 0.0010945, 0.018629, 798.64, 0.095543, 0}, VP = {101, 107.2451, -14833.82, -11.21418, 3.606473E-07, 2}, LiqCp = {16, 268470, 50.971, 11.858, 0.0031331, -0.0000010628}, HOV = {106, 2.0592E+08, 3.1557, -6.6833, 7.1267, -3.099}, VapCp = {16, 253120, -507.31, 13.984, 0.00027572, -9.6316E-08}, LiqVis = {101, -25.108, 2540.9, 2.0324, -0.0000013549, 2}, VapVis = {102, 2.9575E-07, 0.62136, 718.74, 3255.3, 0}, LiqK = {16, -0.22263, 31.196, -1.0701, 0.0001617, -7.0064E-07}, VapK = {102, -237.86, 1.0527, -4.9708E+09, -8.9521E+10, 0}, Racketparam = 0.211, UniquacR = 14.6158, UniquacQ = 11.956, ChaoSeadAF = 0.942004, ChaoSeadSP = 15900, ChaoSeadLV = 0.376581);
-end Nheneicosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptacosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptacosane.mo
deleted file mode 100644
index 56e4525..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptacosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nheptacosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 214, name = "Nheptacosane", CAS = "593-49-7", Tc = 826, Pc = 883000, Vc = 1.58, Cc = 0.203, Tb = 695.25, Tm = 332.65, TT = 332.15, TP = 0.000283125, MW = 380.734, LVB = 0.48815, AF = 1.21357, SP = 15810, DM = 0, SH = -1209000000.0, IGHF = -6.021E+08, GEF = 1.716E+08, AS = 1216000, HFMP = 6.0417E+07, HOC = -1.66E+10, LiqDen = {105, 0.13373, 0.23061, 826, 0.29272, 0}, VP = {101, 254.28, -25266, -32.268, 0.0000098574, 2}, LiqCp = {16, 287690, -499.88, 15.238, -0.0020847, 0.000001614}, HOV = {106, 1.738E+08, 0.55455, 0.6619, -1.1864, 0.39235}, VapCp = {16, 324210, -507.11, 14.235, 0.00027032, -9.4813E-08}, LiqVis = {101, -11.337, 2071.7, -0.014083, 1.056E-08, 2}, VapVis = {102, 2.7943E-07, 0.60493, 599.04, 42458, 0}, LiqK = {16, -0.12846, 8.4662, -1.1232, -0.00036291, -3.8993E-07}, VapK = {102, -177.26, 1.0676, -4.7446E+09, -7.2852E+10, 0}, Racketparam = 0.203, UniquacR = 18.6622, UniquacQ = 15.196, ChaoSeadAF = 1.21357, ChaoSeadSP = 15810, ChaoSeadLV = 0.48815);
-end Nheptacosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptadecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptadecane.mo
deleted file mode 100644
index bd752e7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptadecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nheptadecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 205, name = "Nheptadecane", CAS = "629-78-7", Tc = 736, Pc = 1340000, Vc = 1.103, Cc = 0.242, Tb = 574.56, Tm = 295.127, TT = 295.134, TP = 0.0465559, MW = 240.473, LVB = 0.31045, AF = 0.762, SP = 16100, DM = 0, SH = -1209000000.0, IGHF = -3.939E+08, GEF = 9.083E+07, AS = 820230, HFMP = 4.0459E+07, HOC = -1.05618E+10, LiqDen = {105, 0.1972, 0.22446, 736, 0.27261, 0}, VP = {101, 230.4768, -19512.15, -29.73776, 0.0000119109, 2}, LiqCp = {16, 341660, -48.077, 11.234, 0.0041437, -0.0000017269}, HOV = {106, 1.1837E+08, 0.45937, 1.0501, -1.8353, 0.77357}, VapCp = {16, 247870, -663.74, 14.166, -0.00017722, 5.7891E-08}, LiqVis = {101, -77.193, 4597, 9.9892, -0.0000084702, 2}, VapVis = {102, 3.2694E-07, 0.5961, 448.22, 45523, 0}, LiqK = {16, -0.015537, -239.33, 0.042685, -0.0038367, 8.6547E-07}, VapK = {102, -115.33, 1.0524, -2.1515E+09, -1.3137E+10, 0}, Racketparam = 0.242, UniquacR = 11.9182, UniquacQ = 9.796, ChaoSeadAF = 0.762, ChaoSeadSP = 16100, ChaoSeadLV = 0.31045);
-end Nheptadecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptane.mo
deleted file mode 100644
index e43fcdf..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 147, name = "Nheptane", CAS = "142-82-5", Tc = 540.2, Pc = 2740000, Vc = 0.428, Cc = 0.261, Tb = 371.57, Tm = 182.57, TT = 182.57, TP = 0.182694, MW = 100.204, LVB = 0.14747, AF = 0.35, SP = 15240, DM = 0, SH = -168070000.0, IGHF = -1.8765E+08, GEF = 8165000, AS = 427980, HFMP = 1.405E+07, HOC = -4.46473E+09, LiqDen = {105, 0.57043, 0.25304, 540.2, 0.27335, 0}, VP = {101, 89.80457, -7084.845, -10.17918, 7.441708E-06, 2}, LiqCp = {16, 134750, 14.937, 10.603, 0.001438, 0.0000036711}, HOV = {106, 4.275764E+07, -1.051245, 4.601706, -5.558946, 2.369496}, VapCp = {16, 109310, -704.2, 13.352, -0.00017922, 4.6992E-08}, LiqVis = {101, -61.08861, 2532.297, 8.091665, -0.0000152585, 2}, VapVis = {102, 2.6134E-08, 0.948, -37.497, 9005.3, 0}, LiqK = {16, 0.083657, 49.111, -3.4536, 0.0077989, -0.000025112}, VapK = {102, -0.076333, 0.38025, -7539.9, -2646800, 0}, Racketparam = 0.2611, UniquacR = 5.1742, UniquacQ = 4.396, ChaoSeadAF = 0.3403, ChaoSeadSP = 15230, ChaoSeadLV = 0.1475);
-end Nheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexacosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexacosane.mo
deleted file mode 100644
index 5ef8184..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexacosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nhexacosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 213, name = "Nhexacosane", CAS = "630-01-3", Tc = 844.7, Pc = 1162000, Vc = 1.473, Cc = 0.203, Tb = 685.35, Tm = 329.55, TT = 329.25, TP = 0.000515816, MW = 366.707, LVB = 0.4561, AF = 1.15444, SP = 15800, DM = 0, SH = -1209000000.0, IGHF = -5.814E+08, GEF = 1.636E+08, AS = 1176000, HFMP = 5.9496E+07, HOC = -1.6E+10, LiqDen = {105, 0.0012458, 0.021983, 844.7, 0.10464, 0}, VP = {101, -181.3952, -2296.288, 31.90668, -0.0000256231, 2}, LiqCp = {16, 657670, -651.68, 14.164, -0.00036454, 7.7672E-07}, HOV = {106, 2.0502E+08, 2.0708, -3.8957, 4.3419, -2.0579}, VapCp = {16, 342560, -564.25, 14.318, 0.00013185, -5.001E-08}, LiqVis = {101, -92.13292, 5845.982, 12.08985, -8.198834E-06, 2}, VapVis = {102, 2.7977E-07, 0.616, 732.48, 6359.2, 0}, LiqK = {16, 0.020148, -211.96, -0.39294, -0.0031327, 1.9698E-07}, VapK = {102, -164.53, 1.0626, -4.163E+09, -7.6944E+10, 0}, Racketparam = 0.203, UniquacR = 17.9878, UniquacQ = 14.656, ChaoSeadAF = 1.15444, ChaoSeadSP = 15800, ChaoSeadLV = 0.4561);
-end Nhexacosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexadecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexadecane.mo
deleted file mode 100644
index a9c0eb3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexadecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nhexadecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 188, name = "Nhexadecane", CAS = "544-76-3", Tc = 723, Pc = 1400000, Vc = 1.034, Cc = 0.241, Tb = 559.98, Tm = 291.308, TT = 291.308, TP = 0.0922432, MW = 226.446, LVB = 0.29411, AF = 0.726, SP = 16190, DM = 0, SH = -168070000.0, IGHF = -3.7417E+08, GEF = 8.216E+07, AS = 781020, HFMP = 5.3358E+07, HOC = -9.95145E+09, LiqDen = {105, 0.23237, 0.23642, 723, 0.28403, 0}, VP = {101, 138.0173, -14151.1, -16.24379, 5.027608E-06, 2}, LiqCp = {16, 387360, -123.61, 10.738, 0.005, -0.0000019617}, HOV = {106, 1.2775E+08, 0.92612, 0.52583, -2.1415, 1.2039}, VapCp = {16, 232700, -655.34, 14.079, -0.0001451, 4.6597E-08}, LiqVis = {101, -84.70059, 4841.907, 11.15158, -9.617336E-06, 2}, VapVis = {102, 1.3203E-07, 0.72722, 424.3, 4562.7, 0}, LiqK = {16, 0.006807, -152.97, -0.44096, -0.0038892, 0.0000012245}, VapK = {102, 0.0000035961, 1.5118, 510.88, 23814, 0}, Racketparam = 0.226854, UniquacR = 11.24, UniquacQ = 9.26, ChaoSeadAF = 0.7078, ChaoSeadSP = 16343.54, ChaoSeadLV = 0.2941);
-end Nhexadecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexane.mo
deleted file mode 100644
index 8c93e2b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 135, name = "Nhexane", CAS = "110-54-3", Tc = 507.6, Pc = 3025000, Vc = 0.368, Cc = 0.264, Tb = 341.88, Tm = 177.83, TT = 177.83, TP = 0.901695, MW = 86.177, LVB = 0.13159, AF = 0.297, SP = 14870, DM = 0, SH = -168070000.0, IGHF = -1.6694E+08, GEF = -66340, AS = 388740, HFMP = 1.308E+07, HOC = -3.8551E+09, LiqDen = {105, 0.55661, 0.23506, 507.6, 0.24183, 0}, VP = {101, 71.56625, -5848.968, -7.46028, 0.0000050823, 2}, LiqCp = {16, 155690, 5.9137, 7.3123, 0.013809, -0.0000093814}, HOV = {106, 4.086241E+07, -1.014854, 4.97802, -6.266175, 2.685532}, VapCp = {16, 94649, -698.41, 13.164, -0.00011992, 2.9719E-08}, LiqVis = {101, -62.582, 2308.7, 8.5085, -0.000019741, 2}, VapVis = {102, 3.3843E-07, 0.62082, 239.17, -260.6, 0}, LiqK = {16, -0.12682, -1.5015, -1.0467, -0.00088709, -9.3679E-07}, VapK = {102, -569.52, 0.7943, -1.1379E+09, -8.2055E+09, 0}, Racketparam = 0.2635, UniquacR = 4.4998, UniquacQ = 3.856, ChaoSeadAF = 0.2927, ChaoSeadSP = 14870.79, ChaoSeadLV = 0.1316);
-end Nhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylacetate.mo
deleted file mode 100644
index fd6d2d6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nhexylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 340, name = "Nhexylacetate", CAS = "142-92-7", Tc = 623.5, Pc = 2410000, Vc = 0.519, Cc = 0.244, Tb = 444.65, Tm = 192.25, TT = 192.25, TP = 0.000851561, MW = 144.211, LVB = 0.166008, AF = 0.461433, SP = 17200, DM = 6.2E-30, SH = -216400000.0, IGHF = -5.263E+08, GEF = -2.954E+08, AS = 520900, HFMP = 1.69E+07, HOC = -4.505E+09, LiqDen = {105, 0.39801, 0.22828, 623.5, 0.26879, 0}, VP = {101, 135.2, -10778, -16.633, 0.000010146, 2}, LiqCp = {16, 152410, 849.23, 3.575, 0.024024, -0.000019964}, HOV = {106, 7.6365E+07, 1.3535, -2.7266, 3.0189, -1.2516}, VapCp = {16, 74275, -423.1, 13.088, 0.00020721, -5.6794E-08}, LiqVis = {101, -11.853, 1437.9, 0.03568, -1.5887E-07, 2}, VapVis = {102, 0.0000001052, 0.76244, 141.7, -5217.3, 0}, LiqK = {16, 0.076217, 432.06, -6.6217, 0.014354, -0.00002134}, VapK = {102, -96.991, -0.0010535, 51726, -1.0193E+09, 0}, Racketparam = 0.244, UniquacR = 6.1762, UniquacQ = 5.276, ChaoSeadAF = 0.539588, ChaoSeadSP = 17200, ChaoSeadLV = 0.166008);
-end Nhexylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylmercaptan.mo
deleted file mode 100644
index 4c993d2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nhexylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nhexylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 353, name = "Nhexylmercaptan", CAS = "111-31-9", Tc = 622, Pc = 3025000, Vc = 0.412, Cc = 0.245, Tb = 424.15, Tm = 192.15, TT = 192.62, TP = 0.0130959, MW = 118.24, LVB = 0.141006, AF = 0.369, SP = 17450, DM = 5.17E-30, SH = -22600000.0, IGHF = -1.292E+08, GEF = 2.77E+07, AS = 454600, HFMP = 1.801E+07, HOC = -4.176E+09, LiqDen = {105, 0.60827, 0.26212, 623.01, 0.27785, 0}, VP = {101, 102.0208, -8530.272, -11.91139, 8.521739E-06, 2}, LiqCp = {16, 168110, 243.92, 7.741, 0.0099925, -0.0000054522}, HOV = {106, 6.053718E+07, 0.532372, -0.222059, 0.0696209, -0.00101028}, VapCp = {16, 116170, -711.75, 13.18, -0.000044297, 1.0562E-09}, LiqVis = {101, -35.723, 1823.3, 4.0853, -0.0000098564, 2}, VapVis = {102, 6.7616E-08, 0.85134, 101.57, -4277.1, 0}, LiqK = {16, -0.076932, 5.5076, -1.3601, -0.00033003, -0.000001155}, VapK = {102, 0.090806, 0.27994, 4707, 1982000, 0}, Racketparam = 0.245, UniquacR = 5.2497, UniquacQ = 4.376, ChaoSeadAF = 0.369, ChaoSeadSP = 17450, ChaoSeadLV = 0.141006);
-end Nhexylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricacid.mo
deleted file mode 100644
index 975802c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitricacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 18, name = "Nitricacid", CAS = "7697-37-2", Tc = 520, Pc = 6890100, Vc = 0.145, Cc = 0.231, Tb = 356.15, Tm = 231.55, TT = 231.55, TP = 60.7682, MW = 63.0128, LVB = 0.041734, AF = 0.714406, SP = 29610, DM = 7.24E-30, SH = 0.0, IGHF = -1.343E+08, GEF = -7.401E+07, AS = 266370, HFMP = 1.047E+07, HOC = 1.34E+07, LiqDen = {105, 6.9293, 0.47274, 520, 0.49837, 0}, VP = {101, 26.654, -5017.1, -0.036699, -0.0000064771, 2}, LiqCp = {16, 111110, -611.57, -2.7202, 0.014286, -0.000033905}, HOV = {106, 7.01E+07, 0.68707, -0.0019914, 0.0028792, -0.0014403}, VapCp = {16, 32639, -463.06, 11.547, -0.00011018, 4.1801E-09}, LiqVis = {101, 264.29, -7985, -44.099, 0.000074947, 2}, VapVis = {102, 2.2234E-07, 0.72283, 140.72, -0.0025913, 0}, LiqK = {16, 0.15591, -186.43, -2.2714, 0.0033214, -0.0000018932}, VapK = {102, 0.00063365, 0.72057, 645.24, 0.005306, 0}, Racketparam = 0, UniquacR = 1.638761, UniquacQ = 1.564, ChaoSeadAF = 0.714406, ChaoSeadSP = 29605.6, ChaoSeadLV = 0.041734);
-end Nitricacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricoxide.mo
deleted file mode 100644
index 5dda407..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitricoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitricoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 19, name = "Nitricoxide", CAS = "10102-43-9", Tc = 180, Pc = 6480000, Vc = 0.058, Cc = 0.251, Tb = 121.38, Tm = 112.15, TT = 109.5, TP = 21890, MW = 30.006, LVB = 0.02344, AF = 0.582, SP = 23120, DM = 5.1E-31, SH = 90250000.0, IGHF = 9.025E+07, GEF = 8.657E+07, AS = 210600, HFMP = 2301000, HOC = -9.02489E+07, LiqDen = {105, 2.1354, 0.19686, 180.16, 0.15443, 0}, VP = {101, 98.67523, -3011.477, -13.21121, 0.000072078, 2}, LiqCp = {16, 38756, -323.94, 15.685, -0.060412, 0.00033434}, HOV = {106, 2.4721E+07, 2.2365, -5.8672, 6.8169, -2.7529}, VapCp = {16, 29831.89, -2622.96, 12.94433, -0.00260975, 6.261468E-07}, LiqVis = {101, -50.098, 734.63, 8.0267, -0.00017996, 2}, VapVis = {102, 0.0000010289, 0.55954, 89.353, 515.43, 0}, LiqK = {16, -0.85384, 4.7868, -0.010049, 0.0010454, -0.0000086044}, VapK = {102, 0.00046657, 0.73353, 58.917, -625.75, 0}, Racketparam = 0, UniquacR = 0.9163, UniquacQ = 0.9859, ChaoSeadAF = 0.582944, ChaoSeadSP = 23117.6, ChaoSeadLV = 0.0234267);
-end Nitricoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrobenzene.mo
deleted file mode 100644
index 1e5aaaf..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitrobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 124, name = "Nitrobenzene", CAS = "98-95-3", Tc = 719, Pc = 4400000, Vc = 0.349, Cc = 0.257, Tb = 483.95, Tm = 278.91, TT = 278.87, TP = 6.69814, MW = 123.109, LVB = 0.102717, AF = 0.449158, SP = 22610, DM = 1.41E-29, SH = -168070000.0, IGHF = 6.75E+07, GEF = 1.63E+08, AS = 342100, HFMP = 1.16E+07, HOC = -2.9782E+09, LiqDen = {105, 0.69124, 0.24124, 719, 0.28137, 0}, VP = {101, 112.2302, -10538.91, -12.95686, 5.116363E-06, 2}, LiqCp = {16, 146460, 1160.6, 0.44135, 0.024575, -0.000013049}, HOV = {106, 4.9884E+07, -2.0813, 7.5215, -8.8126, 3.6947}, VapCp = {16, 112710, -1114.3, 13.93, -0.0013044, 3.7699E-07}, LiqVis = {101, -78.652, 4202, 10.37, -0.0000091095, 2}, VapVis = {102, 1.1361E-07, 0.80626, 193.03, -46.762, 0}, LiqK = {16, 0.11293, -401.92, 1.2826, -0.013207, 0.0000075932}, VapK = {102, 0.00014373, 0.9615, 718, -0.0027852, 0}, Racketparam = 0.251146, UniquacR = 4.13, UniquacQ = 3.14, ChaoSeadAF = 0.447966, ChaoSeadSP = 22612.4, ChaoSeadLV = 0.102717);
-end Nitrobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitroethane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitroethane.mo
deleted file mode 100644
index 599836b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitroethane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitroethane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 380, name = "Nitroethane", CAS = "79-24-3", Tc = 557.15, Pc = 5160000, Vc = 0.236, Cc = 0.247, Tb = 387.22, Tm = 183.63, TT = 183.63, TP = 0.0317711, MW = 75.0666, LVB = 0.0720005, AF = 0.672348, SP = 23090, DM = 1.22E-29, SH = -22600000.0, IGHF = -1.022E+08, GEF = -4900000, AS = 315400, HFMP = 9853000, HOC = -1.25E+09, LiqDen = {105, 0.90007, 0.22451, 593.01, 0.26359, 0}, VP = {101, 81.03385, -7188.308, -8.680357, 0.0000053196, 2}, LiqCp = {16, 67990, 798.52, 2.4874, 0.02816, -0.000027001}, HOV = {106, 5.428692E+07, 0.314015, -0.225443, 1.068645, -0.953684}, VapCp = {16, 48198, -581.79, 12.283, 0.000023838, -2.2739E-08}, LiqVis = {101, 15.403, 194.75, -4.2217, 0.0000078126, 2}, VapVis = {102, 2.4631E-07, 0.70062, 285.76, -1030.8, 0}, LiqK = {16, -0.1486, 6.324, -1.0708, 0.00009663, -0.0000015981}, VapK = {102, 0.0011064, 0.69186, 675.03, 236860, 0}, Racketparam = 0.247, UniquacR = 2.6829, UniquacQ = 2.408, ChaoSeadAF = 0.380324, ChaoSeadSP = 23090, ChaoSeadLV = 0.0720005);
-end Nitroethane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogen.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogen.mo
deleted file mode 100644
index 9307612..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogen.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitrogen
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 21, name = "Nitrogen", CAS = "7727-37-9", Tc = 126.2, Pc = 3398000, Vc = 0.0901, Cc = 0.289, Tb = 77.35, Tm = 63.149, TT = 63.149, TP = 12520, MW = 28.014, LVB = 0.03484, AF = 0.037, SP = 9082, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 191500, HFMP = 720000, HOC = 0, LiqDen = {105, 2.435, 0.25137, 126.27, 0.249, 0}, VP = {101, 42.32946, -965.9771, -4.321774, 0.0000797271, 2}, LiqCp = {16, 55135, 217.45, -0.9071, 0.05327, 0.00024166}, HOV = {106, 2.7284E+07, 7.8021, -19.125, 19.518, -7.5428}, VapCp = {16, 29103.63, -2305.946, 11.31935, -0.00100557, 1.706099E-07}, LiqVis = {101, 3.4358, -24.706, -2.6748, -0.000041603, 2}, VapVis = {102, 4.6051E-07, 0.65049, 5.8019, 2822.7, 0}, LiqK = {16, -0.21743, 10.383, -1.0631, 0.00036245, -0.000023265}, VapK = {102, 0.0003395, 0.76921, 19.592, 293.93, 0}, Racketparam = 0.2906, UniquacR = 1.0415, UniquacQ = 1.088, ChaoSeadAF = 0.045, ChaoSeadSP = 9081.94, ChaoSeadLV = 0.0346723);
-end Nitrogen;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogendioxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogendioxide.mo
deleted file mode 100644
index ef4f943..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogendioxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitrogendioxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 20, name = "Nitrogendioxide", CAS = "10102-44-0", Tc = 431.15, Pc = 1.01325E+07, Vc = 0.08249, Cc = 0.233, Tb = 294.15, Tm = 261.9, TT = 261.9, TP = 18728.3, MW = 46.0055, LVB = 0.031997, AF = 0.851088, SP = 33390, DM = 1.05E-30, SH = 33180000.0, IGHF = 3.318E+07, GEF = 5.1328E+07, AS = 239920, HFMP = 1.465E+07, HOC = -3.30954E+07, LiqDen = {105, 2.2179, 0.22994, 431.38, 0.19006, 0}, VP = {101, 18.404, -3508.6, 0.81255, 0.0000049983, 2}, LiqCp = {16, 77435, 432.69, 5.3737, 0.020804, -0.000021695}, HOV = {106, 5.37E+07, 0.3, 0, 0, 0}, VapCp = {16, 32962.96, -578.7755, 10.44921, 0.0000793322, -5.181036E-08}, LiqVis = {101, -311.49, 10041, 49.027, -0.00010518, 2}, VapVis = {102, 1.2078E-08, 1.1399, -382.56, 78187, 0}, LiqK = {16, 0.11611, 127610, -1409.1, 5.1777, -0.0063738}, VapK = {102, 0.070851, -0.2143, -1258, 429500, 0}, Racketparam = 0, UniquacR = 1.053395, UniquacQ = 1.1308, ChaoSeadAF = 0.851088, ChaoSeadSP = 33494.8, ChaoSeadLV = 0.0317854);
-end Nitrogendioxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentetroxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentetroxide.mo
deleted file mode 100644
index f5436ef..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentetroxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitrogentetroxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 196, name = "Nitrogentetroxide", CAS = "10544-72-6", Tc = 431.15, Pc = 1.00312E+07, Vc = 0.08249, Cc = 0.233, Tb = 294.3, Tm = 263.01, TT = 261.9, TP = 18558.7, MW = 92.011, LVB = 0.06407, AF = 0.853274, SP = 24123.32, DM = 0, SH = 9162960.0, IGHF = 9162960, GEF = 9.785E+07, AS = 304320, HFMP = 1.465E+07, HOC = 1983170, LiqDen = {105, 2.117, 0.32671, 431.15, 0.20832, 0}, VP = {101, 72.419, -5432, -7.7259, 0.00001711, 2}, LiqCp = {16, 112080, 15.081, 5.5387, 0.025083, -0.000030338}, HOV = {106, 3.0678E+07, 0.17744, -0.16521, -0.11792, 0.13193}, VapCp = {16, 39950.82, -260.1236, 11.41281, 0.000224817, -1.049284E-07}, LiqVis = {101, -340.1, 10957, 53.641, -0.00011365, 2}, VapVis = {102, 0.0000080298, 0.2905, 212.56, 117290, 0}, LiqK = {16, 0.11499, 26916, -297.75, 1.089, -0.0013592}, VapK = {102, 0.000019664, 1.1277, 265.48, -210280, 0}, Racketparam = 0.233, UniquacR = 1.982861, UniquacQ = 1.984, ChaoSeadAF = 0.853274, ChaoSeadSP = 24123.32, ChaoSeadLV = 0.06407);
-end Nitrogentetroxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentrioxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentrioxide.mo
deleted file mode 100644
index 50408ca..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrogentrioxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitrogentrioxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 195, name = "Nitrogentrioxide", CAS = "10544-73-7", Tc = 451, Pc = 6990000, Vc = 0.195, Cc = 0.386, Tb = 276.65, Tm = 171.15, TT = 172.45, TP = 15.1767, MW = 76.0116, LVB = 0.0531885, AF = 0.431227, SP = 32600, DM = 7.078E-30, SH = 82843000.0, IGHF = 8.2843E+07, GEF = 1.39727E+08, AS = 308450, HFMP = 0, HOC = -8.2843E+07, LiqDen = {105, 2.7664, 0.37489, 451, 0.040027, 0}, VP = {101, 137.96, -7584.5, -17.9, 0.000022014, 2}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 6.1243E+07, 0.17457, -0.20195, -0.16172, 0.24757}, VapCp = {16, 37365, -232.94, 10.977, 0.00031169, -1.1931E-07}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.386, UniquacR = 1.738827, UniquacQ = 1.7628, ChaoSeadAF = 0.431227, ChaoSeadSP = 32600, ChaoSeadLV = 0.0531885);
-end Nitrogentrioxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitromethane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitromethane.mo
deleted file mode 100644
index 0a35893..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitromethane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitromethane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 379, name = "Nitromethane", CAS = "75-52-5", Tc = 588, Pc = 5870000, Vc = 0.173, Cc = 0.208, Tb = 374.35, Tm = 244.6, TT = 244.6, TP = 146.529, MW = 61.04, LVB = 0.05396, AF = 0.348026, SP = 25700, DM = 1.15E-29, SH = -22600000.0, IGHF = -7.48E+07, GEF = -6940000, AS = 275000, HFMP = 9703000, HOC = -6.432E+08, LiqDen = {105, 1.2195, 0.22476, 588.16, 0.2787, 0}, VP = {101, 93.27, -7345.1, -10.689, 0.0000086998, 2}, LiqCp = {16, 80588, 345.48, 6.7575, 0.0084794, -0.0000031326}, HOV = {106, 4.160998E+07, -0.662124, 2.67118, -2.702805, 0.931262}, VapCp = {16, 38681, -615.84, 11.895, 0.000023118, -2.9677E-08}, LiqVis = {101, -10.411, 1047.6, -0.095445, 6.9198E-07, 2}, VapVis = {102, 4.2141E-07, 0.64539, 383.4, -1344.5, 0}, LiqK = {16, 0.050889, -150.55, -0.2952, -0.0028403, -0.0000022109}, VapK = {102, 0.000031393, 1.1117, -91.903, 128140, 0}, Racketparam = 0.208, UniquacR = 2.0086, UniquacQ = 1.868, ChaoSeadAF = 0.348026, ChaoSeadSP = 257, ChaoSeadLV = 0);
-end Nitromethane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrousoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrousoxide.mo
deleted file mode 100644
index d1fa2c7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nitrousoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nitrousoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 22, name = "Nitrousoxide", CAS = "10024-97-2", Tc = 309.6, Pc = 7255000, Vc = 0.097, Cc = 0.273, Tb = 184.67, Tm = 182.33, TT = 182.3, TP = 87850, MW = 44.013, LVB = 0.0359, AF = 0.162, SP = 8275, DM = 5.57E-31, SH = 82050000.0, IGHF = 8.205E+07, GEF = 1.0416E+08, AS = 219850, HFMP = 6539000, HOC = -8.20482E+07, LiqDen = {105, 2.0978, 0.2338, 309.6, 0.25899, 0}, VP = {101, 50.69662, -2836.473, -4.609937, 7.237315E-06, 2}, LiqCp = {16, 72525, 232.93, 2.2666, 0.037329, -0.000055304}, HOV = {106, 2.585559E+07, 0.982629, -2.292314, 3.369827, -1.65657}, VapCp = {16, 28650, -400.03, 10.5, 0.00014292, -6.728E-08}, LiqVis = {101, -10.876, 472.99, 0.14659, -0.000013815, 2}, VapVis = {102, 0.0000020512, 0.47044, 305.02, -521.81, 0}, LiqK = {16, 0.10112, -5274.1, 16.778, -0.037729, -0.000048678}, VapK = {102, 0.001121, 0.66298, 524.68, 7332.7, 0}, Racketparam = 0, UniquacR = 1.238, UniquacQ = 1.2442, ChaoSeadAF = 0.140894, ChaoSeadSP = 20308, ChaoSeadLV = 0.036002);
-end Nitrousoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylacetamide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylacetamide.mo
deleted file mode 100644
index 2076137..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylacetamide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nndimethylacetamide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 91, name = "Nndimethylacetamide", CAS = "127-19-5", Tc = 658, Pc = 4030000, Vc = 0.321, Cc = 0.236, Tb = 439.25, Tm = 253.15, TT = 253.15, TP = 7.64072, MW = 87.1204, LVB = 0.0930285, AF = 0.363509, SP = 22350, DM = 1.27088E-29, SH = -17100000.0, IGHF = -2.25E+08, GEF = -8.85E+07, AS = 351000, HFMP = 1.04182E+07, HOC = -2.38E+09, LiqDen = {105, 0.72553, 0.2328, 658, 0.27034, 0}, VP = {101, 67.333, -7592.9, -6.3978, 0.0000021543, 2}, LiqCp = {16, 175450, 252.77, 11.249, -0.052983, 0.00011812}, HOV = {106, 5.8939E+07, 0.34564, -0.28415, 0.52832, -0.2171}, VapCp = {16, 41899, -423.52, 12.444, 0.00039958, -1.2339E-07}, LiqVis = {101, 16.727, -219.71, -4.0135, -0.0000013942, 2}, VapVis = {102, 3.4592E-07, 0.64442, 412.29, -8784, 0}, LiqK = {16, 0.06447, -206.75, -0.7204, 0.00031649, -0.000010441}, VapK = {102, 0.0011762, 0.72055, 943.06, 275760, 0}, Racketparam = 0.258662, UniquacR = 3.760053, UniquacQ = 3.276, ChaoSeadAF = 0.363509, ChaoSeadSP = 22352.7, ChaoSeadLV = 0.0930285);
-end Nndimethylacetamide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylformamide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylformamide.mo
deleted file mode 100644
index e53a885..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nndimethylformamide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nndimethylformamide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 66, name = "Nndimethylformamide", CAS = "68-12-2", Tc = 649.6, Pc = 4420000, Vc = 0.26199, Cc = 0.214, Tb = 425.15, Tm = 212.72, TT = 212.72, TP = 0.195325, MW = 73.0938, LVB = 0.0773903, AF = 0.31771, SP = 23960, DM = 1.27E-29, SH = 20230000.0, IGHF = -1.917E+08, GEF = -8.84E+07, AS = 326000, HFMP = 1.615E+07, HOC = -1.78871E+09, LiqDen = {105, 0.65216, 0.20032, 649.6, 0.24418, 0}, VP = {101, 68.99879, -7311.388, -6.749791, 3.063845E-06, 2}, LiqCp = {16, 141440, 162.91, 4.0696, 0.019381, -0.000013063}, HOV = {106, 5.7496E+07, 0.2466, 0.21619, -0.11587, 0.026126}, VapCp = {16, 68728, -846.07, 13.139, -0.00064688, 1.6133E-07}, LiqVis = {101, -9.089031, 826.091, -0.0843389, -3.479212E-06, 2}, VapVis = {102, 0.0000034602, 0.37991, 1156.9, 8715.8, 0}, LiqK = {16, 0.14084, -2496, 20.244, -0.064914, 0.000049356}, VapK = {102, 0.015205, 0.35461, 594.92, 741220, 0}, Racketparam = 0, UniquacR = 3.0856, UniquacQ = 2.736, ChaoSeadAF = 0.375516, ChaoSeadSP = 23964.9, ChaoSeadLV = 0.0773743);
-end Nndimethylformamide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonacosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonacosane.mo
deleted file mode 100644
index 44bf7be..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonacosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nnonacosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 216, name = "Nnonacosane", CAS = "630-03-5", Tc = 838, Pc = 826000, Vc = 1.69, Cc = 0.2, Tb = 713.95, Tm = 339.15, TT = 336.85, TP = 0.0000684619, MW = 408.787, LVB = 0.523824, AF = 1.26531, SP = 15500, DM = 0, SH = -1209000000.0, IGHF = -6.435E+08, GEF = 1.879E+08, AS = 1295000, HFMP = 6.6107E+07, HOC = -1.782E+10, LiqDen = {105, 0.12857, 0.23366, 838, 0.30121, 0}, VP = {101, -4.241455, -11668.64, 5.534214, -8.103778E-06, 2}, LiqCp = {16, -89782, -199.31, 14.448, -0.00027681, 5.1812E-07}, HOV = {106, 1.9213E+08, 0.53282, 0.78359, -0.96953, 0.062608}, VapCp = {16, 383900, -568.27, 14.435, 0.00012081, -4.6695E-08}, LiqVis = {101, -11.543, 2141.6, 0.0076776, -5.4408E-09, 2}, VapVis = {102, 2.7904E-07, 0.59854, 575.23, 50800, 0}, LiqK = {16, -0.1272, 8.851, -1.1267, -0.00035068, -3.6961E-07}, VapK = {102, -257.69, 1.0697, -7.2501E+09, -1.1593E+11, 0}, Racketparam = 0.2, UniquacR = 20.011, UniquacQ = 16.276, ChaoSeadAF = 1.26531, ChaoSeadSP = 15500, ChaoSeadLV = 0.523824);
-end Nnonacosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonadecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonadecane.mo
deleted file mode 100644
index 83570d1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonadecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nnonadecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 207, name = "Nnonadecane", CAS = "629-92-5", Tc = 760, Pc = 1230000, Vc = 1.1, Cc = 0.215, Tb = 603.75, Tm = 305.05, TT = 305.04, TP = 0.0159089, MW = 268.521, LVB = 0.343701, AF = 0.8271, SP = 16200, DM = 0, SH = -1209000000.0, IGHF = -4.3514E+08, GEF = 1.075E+08, AS = 898930, HFMP = 5.02E+07, HOC = -1.17812E+10, LiqDen = {105, 0.20149, 0.23831, 760, 0.29903, 0}, VP = {101, 182.4003, -17843.62, -22.48728, 7.349606E-06, 2}, LiqCp = {16, 244790, 42.54, 11.446, 0.0046334, -0.0000026668}, HOV = {106, 1.5404E+08, 1.2215, -0.32899, -1.0541, 0.6821}, VapCp = {16, 274480, -648.39, 14.221, -0.00011095, 3.3607E-08}, LiqVis = {101, -84.761, 5101, 11.082, -0.0000087239, 2}, VapVis = {102, 3.0651E-07, 0.58942, 341.93, 67425, 0}, LiqK = {16, -0.057019, 73.111, -2.1518, 0.0021618, -0.0000035171}, VapK = {102, 0.000043333, 1.271, 2799.6, 138170, 0}, Racketparam = 0.215, UniquacR = 13.267, UniquacQ = 10.876, ChaoSeadAF = 0.8271, ChaoSeadSP = 16200, ChaoSeadLV = 0.343701);
-end Nnonadecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonane.mo
deleted file mode 100644
index 30d8613..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nnonane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nnonane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 166, name = "Nnonane", CAS = "111-84-2", Tc = 594.6, Pc = 2290000, Vc = 0.555, Cc = 0.257, Tb = 423.97, Tm = 219.66, TT = 219.66, TP = 0.430583, MW = 128.258, LVB = 0.1797, AF = 0.443, SP = 15630, DM = 0, SH = -168070000.0, IGHF = -2.2874E+08, GEF = 2.498E+07, AS = 506400, HFMP = 1.547E+07, HOC = -5.68455E+09, LiqDen = {105, 0.46379, 0.25569, 594.6, 0.27961, 0}, VP = {101, 34.38252, -6235.412, -1.153933, -6.408486E-06, 2}, LiqCp = {16, 263370, -14466, 134.04, -0.36823, 0.00038456}, HOV = {106, 8.427482E+07, 1.573752, -1.785921, 0.692082, 0.00268541}, VapCp = {16, 137710, -699.52, 13.613, -0.00021735, 5.3695E-08}, LiqVis = {101, -75.488, 3420.7, 10.183, -0.000014836, 2}, VapVis = {102, 1.0363E-07, 0.77284, 221.39, -190.1, 0}, LiqK = {16, 0.022998, -23.224, -1.6475, -0.000633, -0.0000035211}, VapK = {102, -0.065472, 0.27739, -3569.2, -1629700, 0}, Racketparam = 0.251687, UniquacR = 6.523, UniquacQ = 5.476, ChaoSeadAF = 0.4439, ChaoSeadSP = 15648.08, ChaoSeadLV = 0.1796);
-end Nnonane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctacosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctacosane.mo
deleted file mode 100644
index b958679..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctacosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Noctacosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 215, name = "Noctacosane", CAS = "630-02-4", Tc = 843, Pc = 888000, Vc = 1.58, Cc = 0.2, Tb = 704.75, Tm = 334.55, TT = 334.35, TP = 0.000104457, MW = 394.76, LVB = 0.492645, AF = 1.23752, SP = 15700, DM = 0, SH = -1209000000.0, IGHF = -6.228E+08, GEF = 1.799E+08, AS = 1255000, HFMP = 6.4643E+07, HOC = -1.722E+10, LiqDen = {105, 0.0073167, 0.055448, 843, 0.13236, 0}, VP = {101, 196.5874, -22285.21, -23.91336, 7.155924E-06, 2}, LiqCp = {16, 494250, -131.76, 12.406, 0.0033619, -0.0000018387}, HOV = {106, 2.0593E+08, 0.90796, 0.4061, -1.298, 0.44283}, VapCp = {16, 335140, -505.51, 14.268, 0.00027376, -9.6008E-08}, LiqVis = {101, -110.67, 6750.2, 14.886, -0.000010312, 2}, VapVis = {102, 0.0000003028, 0.58316, 487.28, 64252, 0}, LiqK = {16, -0.0095167, -82.828, -0.8204, -0.0023614, 5.0131E-07}, VapK = {102, -190.77, 1.0711, -5.355E+09, -7.036E+10, 0}, Racketparam = 0.2, UniquacR = 19.3366, UniquacQ = 15.736, ChaoSeadAF = 1.23752, ChaoSeadSP = 15700, ChaoSeadLV = 0.492645);
-end Noctacosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctadecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctadecane.mo
deleted file mode 100644
index 3319b94..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctadecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Noctadecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 206, name = "Noctadecane", CAS = "593-45-3", Tc = 747, Pc = 1290000, Vc = 1.189, Cc = 0.247, Tb = 588.3, Tm = 301.33, TT = 301.33, TP = 0.0339091, MW = 254.5, LVB = 0.32666, AF = 0.808, SP = 16100, DM = 0, SH = -1209000000.0, IGHF = -4.1457E+08, GEF = 9.921E+07, AS = 859450, HFMP = 6.1986E+07, HOC = -1.11726E+10, LiqDen = {105, 0.21099, 0.23901, 748.16, 0.28153, 0}, VP = {101, 156.4726, -16120.27, -18.72498, 5.38655E-06, 2}, LiqCp = {16, 332820, -15.176, 11.369, 0.0039066, -0.0000015738}, HOV = {106, 1.214E+08, 0.36333, 1.283, -2.0514, 0.85175}, VapCp = {16, 258960, -641.43, 14.136, -0.000068602, 1.814E-08}, LiqVis = {101, -83.956, 4978.7, 10.99, -0.0000089834, 2}, VapVis = {102, 3.2955E-07, 0.58255, 343.75, 67974, 0}, LiqK = {16, -0.046627, -130.56, -0.64842, -0.0017182, -4.6995E-07}, VapK = {102, -198.99, 1.1011, -5.9685E+09, 5.2419E+11, 0}, Racketparam = 0.247, UniquacR = 12.5926, UniquacQ = 10.336, ChaoSeadAF = 0.808, ChaoSeadSP = 16100, ChaoSeadLV = 0.32666);
-end Noctadecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctane.mo
deleted file mode 100644
index 46a955d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Noctane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Noctane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 155, name = "Noctane", CAS = "111-65-9", Tc = 568.7, Pc = 2490000, Vc = 0.492, Cc = 0.259, Tb = 398.82, Tm = 216.38, TT = 216.38, TP = 2.1083, MW = 114.231, LVB = 0.16353, AF = 0.397, SP = 15490, DM = 0, SH = -168070000.0, IGHF = -2.0875E+08, GEF = 1.6E+07, AS = 467230, HFMP = 2.074E+07, HOC = -5.07415E+09, LiqDen = {105, 0.4436, 0.23818, 568.77, 0.25171, 0}, VP = {101, 87.46069, -7578.199, -9.657211, 5.664818E-06, 2}, LiqCp = {16, 184080, 362.58, 6.1268, 0.015908, -0.000010697}, HOV = {106, 6.509104E+07, 0.906328, -0.61829, 0.0251605, 0.114898}, VapCp = {16, 123360, -700.1, 13.486, -0.00019118, 4.5401E-08}, LiqVis = {101, -67.06275, 2937.699, 8.939458, -0.0000146474, 2}, VapVis = {102, 7.2215E-09, 1.1166, -127.08, 17623, 0}, LiqK = {16, -0.03316, 17.841, -1.6367, -0.000047737, -0.0000026501}, VapK = {102, -8968.5, 0.84408, -2.7564E+10, -6.5097E+10, 0}, Racketparam = 0.2567, UniquacR = 5.8486, UniquacQ = 4.936, ChaoSeadAF = 0.3992, ChaoSeadSP = 15445.57, ChaoSeadLV = 0.163455);
-end Noctane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentacosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentacosane.mo
deleted file mode 100644
index ee96957..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentacosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npentacosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 212, name = "Npentacosane", CAS = "629-99-2", Tc = 836.31, Pc = 1202000, Vc = 1.418, Cc = 0.205, Tb = 675.05, Tm = 327.9, TT = 326.65, TP = 0.00079876, MW = 352.68, LVB = 0.442767, AF = 1.10526, SP = 15800, DM = 0, SH = -1209000000.0, IGHF = -5.607E+08, GEF = 1.553E+08, AS = 1143000, HFMP = 5.7739E+07, HOC = -1.539E+10, LiqDen = {105, 0.00063401, 0.015388, 836.31, 0.093752, 0}, VP = {101, -203.2504, -1095.063, 35.1974, -0.0000282197, 2}, LiqCp = {16, 528340, -126.87, 12.075, 0.002955, -9.8642E-07}, HOV = {106, 1.9288E+08, 1.8937, -3.4712, 3.9636, -1.9344}, VapCp = {16, 330530, -566.25, 14.283, 0.00012874, -4.9096E-08}, LiqVis = {101, -9.804, 1971.8, -0.26998, 3.9914E-07, 2}, VapVis = {102, 2.8769E-07, 0.61575, 746.72, 4040.4, 0}, LiqK = {16, 0.0058343, -203.86, -0.37432, -0.0029792, 2.4773E-07}, VapK = {102, -266.99, 1.0606, -6.4961E+09, -1.2167E+11, 0}, Racketparam = 0.205, UniquacR = 17.3134, UniquacQ = 14.116, ChaoSeadAF = 1.10526, ChaoSeadSP = 15800, ChaoSeadLV = 0.442767);
-end Npentacosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentadecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentadecane.mo
deleted file mode 100644
index 61ff718..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentadecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npentadecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 184, name = "Npentadecane", CAS = "629-62-9", Tc = 708, Pc = 1480000, Vc = 0.966, Cc = 0.243, Tb = 543.83, Tm = 283.072, TT = 283.072, TP = 0.128872, MW = 212.419, LVB = 0.27771, AF = 0.685, SP = 16210, DM = 0, SH = -168070000.0, IGHF = -3.5311E+08, GEF = 7.426E+07, AS = 741810, HFMP = 3.459E+07, HOC = -9.34237E+09, LiqDen = {105, 0.26611, 0.24483, 708, 0.29579, 0}, VP = {101, 105.7905, -12176.19, -11.51031, 2.157424E-06, 2}, LiqCp = {16, 44888, 73.977, 11.979, 0.0027483, -9.4622E-07}, HOV = {106, 1.334182E+08, 1.382258, -0.345375, -1.508041, 0.995233}, VapCp = {16, 218790, -655.87, 14.013, -0.00013811, 4.3573E-08}, LiqVis = {101, -91.37005, 4965.801, 12.24551, -0.0000115231, 2}, VapVis = {102, 3.2252E-08, 0.90575, 168.22, 3233.4, 0}, LiqK = {16, 0.010742, -152.75, -0.43594, -0.0040245, 0.0000012373}, VapK = {102, 0.0000047787, 1.4851, 642.9, 182.7, 0}, Racketparam = 0.245, UniquacR = 10.5694, UniquacQ = 8.716001, ChaoSeadAF = 0.6743, ChaoSeadSP = 16282.18, ChaoSeadLV = 0.2778);
-end Npentadecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentane.mo
deleted file mode 100644
index 3bb71b8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 115, name = "Npentane", CAS = "109-66-0", Tc = 469.7, Pc = 3370000, Vc = 0.311, Cc = 0.268, Tb = 309.22, Tm = 143.42, TT = 143.42, TP = 0.0686418, MW = 72.15, LVB = 0.11522, AF = 0.251, SP = 14380, DM = 0, SH = -27600000.0, IGHF = -1.4676E+08, GEF = -8813000, AS = 349450, HFMP = 8401500, HOC = -3.24494E+09, LiqDen = {105, 0.77386, 0.25574, 469.7, 0.26319, 0}, VP = {101, 72.14242, -5265.589, -7.720709, 7.151866E-06, 2}, LiqCp = {16, 122980, 401.5, 3.9651, 0.024056, -0.000020161}, HOV = {106, 4.0854E+07, 0.25483, 0.96045, -1.5349, 0.72504}, VapCp = {16, 81062, -706.86, 12.962, -0.000049298, 2.8357E-09}, LiqVis = {101, -28.93847, 1176.355, 3.050544, -9.721368E-06, 2}, VapVis = {102, 5.9173E-08, 0.85109, 8.4138, 3723.2, 0}, LiqK = {16, 0.023649, -75.089, -0.64229, -0.005078, -2.7196E-07}, VapK = {102, -603.2, 0.74698, -8.1823E+08, -8.7865E+09, 0}, Racketparam = 0.2685, UniquacR = 3.8254, UniquacQ = 3.316, ChaoSeadAF = 0.2387, ChaoSeadSP = 14359.41, ChaoSeadLV = 0.1161);
-end Npentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentylacetate.mo
deleted file mode 100644
index 0fcb9dc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npentylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npentylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 338, name = "Npentylacetate", CAS = "628-63-7", Tc = 605.15, Pc = 2800000, Vc = 0.442, Cc = 0.245, Tb = 422.15, Tm = 202.35, TT = 202.35, TP = 0.0185761, MW = 130.185, LVB = 0.149382, AF = 0.413866, SP = 17360, DM = 6.44E-30, SH = -216400000.0, IGHF = -5.055E+08, GEF = -3.035E+08, AS = 481800, HFMP = 1.65E+07, HOC = -3.89405E+09, LiqDen = {105, 0.12608, 0.12252, 605.15, 0.16886, 0}, VP = {101, 168.7214, -11229.65, -22.11732, 0.0000177213, 2}, LiqCp = {16, 162580, 80.092, 8.5511, 0.011513, -0.0000095523}, HOV = {106, 7.883914E+07, 0.946213, -0.171734, -0.730153, 0.419139}, VapCp = {16, 47433, -339.24, 12.756, 0.0005476, -2.1862E-07}, LiqVis = {101, -24.376, 1661.3, 2.1378, -0.0000051198, 2}, VapVis = {102, 4.6095E-07, 0.57889, 337.64, -259.28, 0}, LiqK = {16, -0.08346, 4.4855, -1.2866, -0.00064282, -6.6262E-07}, VapK = {102, -0.014827, 0.47704, -3337.4, -1003300, 0}, Racketparam = 0.245, UniquacR = 5.5018, UniquacQ = 4.736, ChaoSeadAF = 0.447773, ChaoSeadSP = 17360, ChaoSeadLV = 0.149382);
-end Npentylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylacetate.mo
deleted file mode 100644
index def17c0..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npropylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 113, name = "Npropylacetate", CAS = "109-60-4", Tc = 549.4, Pc = 3330000, Vc = 0.345, Cc = 0.252, Tb = 374.65, Tm = 178.15, TT = 178.15, TP = 0.0171129, MW = 102.133, LVB = 0.11572, AF = 0.389, SP = 17890, DM = 5.97E-30, SH = -27600000.0, IGHF = -4.648E+08, GEF = -3.204E+08, AS = 402300, HFMP = 1.12E+07, HOC = -2.672E+09, LiqDen = {105, 0.57751, 0.2255, 549.4, 0.25884, 0}, VP = {101, 106.6613, -8095.022, -12.62161, 8.999471E-06, 2}, LiqCp = {16, 124410, 36.932, 8.3883, 0.012662, -0.000012028}, HOV = {106, 8.047503E+07, 1.798019, -2.259874, 1.293466, -0.333711}, VapCp = {16, 108820, -937.38, 13.511, -0.00062962, 1.4249E-07}, LiqVis = {101, 15.453, -157.9, -3.9304, -3.2102E-07, 2}, VapVis = {102, 1.9633E-07, 0.69295, 104.27, 10438, 0}, LiqK = {16, 0.045513, -31.328, -1.5572, -0.00066538, -0.0000053334}, VapK = {102, 1128.5, 1.014, 1.1605E+10, -1.2869E+11, 0}, Racketparam = 0, UniquacR = 4.153, UniquacQ = 3.656, ChaoSeadAF = 0.391, ChaoSeadSP = 18004.7, ChaoSeadLV = 0.115712);
-end Npropylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylbenzene.mo
deleted file mode 100644
index b5b16c6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npropylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 164, name = "Npropylbenzene", CAS = "103-65-1", Tc = 638.35, Pc = 3200000, Vc = 0.44, Cc = 0.265, Tb = 432.35, Tm = 173.55, TT = 173.55, TP = 0.000181372, MW = 120.194, LVB = 0.1402, AF = 0.345, SP = 17670, DM = 1.23E-30, SH = -168070000.0, IGHF = 7900000, GEF = 1.376E+08, AS = 400140, HFMP = 9268000, HOC = -4.95415E+09, LiqDen = {105, 0.56872, 0.25108, 638.35, 0.29337, 0}, VP = {101, 90.904, -8254.5, -10.105, 0.0000055769, 2}, LiqCp = {16, 44429, 65.841, 10.897, 0.0032658, -5.4402E-07}, HOV = {106, 7.1312E+07, 1.0445, -0.61076, -0.59569, 0.63332}, VapCp = {16, 82370, -622.6, 13.289, -0.00014307, 2.6658E-08}, LiqVis = {101, -15.601, 1467.9, 0.61045, 8.0442E-07, 2}, VapVis = {102, 4.6834E-07, 0.55936, 217.09, 10253, 0}, LiqK = {16, -0.081391, 2.87, -1.3455, -0.00061835, -5.1664E-07}, VapK = {102, 0.025018, 0.26728, 100.66, 971170, 0}, Racketparam = 0.2599, UniquacR = 5.2716, UniquacQ = 4.048, ChaoSeadAF = 0.3444, ChaoSeadSP = 17805.4, ChaoSeadLV = 0.139831);
-end Npropylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclohexane.mo
deleted file mode 100644
index 32e7163..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npropylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 165, name = "Npropylcyclohexane", CAS = "1678-92-8", Tc = 639.15, Pc = 2807000, Vc = 0.477, Cc = 0.252, Tb = 429.897, Tm = 178.25, TT = 178.25, TP = 0.000859078, MW = 126.239, LVB = 0.159758, AF = 0.259535, SP = 16350, DM = 0, SH = -168070000.0, IGHF = -1.933E+08, GEF = 4.738E+07, AS = 419530, HFMP = 1.037E+07, HOC = -5.47966E+09, LiqDen = {105, 0.55532, 0.26594, 639.15, 0.29886, 0}, VP = {101, 82.958, -7871.7, -8.8759, 0.0000037842, 2}, LiqCp = {16, 47569, 39.903, 11.009, 0.0038436, -0.0000012583}, HOV = {106, 6.8086E+07, 1.2548, -2.1193, 2.1809, -0.84474}, VapCp = {16, 123230, -835.51, 14.003, -0.00055451, 1.5912E-07}, LiqVis = {101, -18.964, 1768.3, 1.0133, 0.0000031666, 2}, VapVis = {102, 0.0000010206, 0.44533, 352.16, 7219.8, 0}, LiqK = {16, -0.049742, 3.3035, -1.5814, -0.00048571, -0.000001015}, VapK = {102, 0.000001205, 1.6222, -42.945, 15739, 0}, Racketparam = 0, UniquacR = 6.068799, UniquacQ = 4.856, ChaoSeadAF = 0.2577, ChaoSeadSP = 16377.1, ChaoSeadLV = 0.159758);
-end Npropylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclopentane.mo
deleted file mode 100644
index 72dd7ef..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npropylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 154, name = "Npropylcyclopentane", CAS = "2040-96-2", Tc = 596, Pc = 3020000, Vc = 0.428, Cc = 0.261, Tb = 404.11, Tm = 155.81, TT = 155.81, TP = 0.0000458874, MW = 112.213, LVB = 0.145193, AF = 0.326642, SP = 16360, DM = 0, SH = -168070000.0, IGHF = -1.481E+08, GEF = 5.344E+07, AS = 414500, HFMP = 1.003E+07, HOC = -4.89356E+09, LiqDen = {105, 0.63061, 0.26934, 596, 0.28169, 0}, VP = {101, 95.39512, -7846.538, -10.93845, 7.332031E-06, 2}, LiqCp = {16, 121270, 281.76, 6.7151, 0.017545, -0.000016082}, HOV = {106, 7.088104E+07, 1.477689, -1.919309, 1.219865, -0.332624}, VapCp = {16, 82387, -676.01, 13.514, -0.00019546, 4.9854E-08}, LiqVis = {101, -22.725, 1601.8, 1.7512, 2.3108E-07, 2}, VapVis = {102, 0.0000028167, 0.32978, 562.31, 4948.1, 0}, LiqK = {16, -0.033741, 2.5308, -1.6237, -0.00058186, -0.0000013118}, VapK = {102, 0.000098309, 1.0636, 611.41, 33175, 0}, Racketparam = 0, UniquacR = 5.3944, UniquacQ = 4.316, ChaoSeadAF = 0.27189, ChaoSeadSP = 16393.5, ChaoSeadLV = 0.145193);
-end Npropylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylformate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylformate.mo
deleted file mode 100644
index 08182bc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylformate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npropylformate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 89, name = "Npropylformate", CAS = "110-74-7", Tc = 538, Pc = 4060000, Vc = 0.285, Cc = 0.259, Tb = 354.69, Tm = 180.25, TT = 180.25, TP = 0.211011, MW = 88.106, LVB = 0.09794, AF = 0.32, SP = 18470, DM = 6.37E-30, SH = -17100000.0, IGHF = -4.076E+08, GEF = -2.936E+08, AS = 367800, HFMP = 1.32E+07, HOC = -2.041E+09, LiqDen = {105, 0.915, 0.26134, 538, 0.28, 0}, VP = {101, 71.35267, -6244.56, -7.280094, 4.220422E-06, 2}, LiqCp = {16, 76453, -41.853, 10.797, 0.0021776, 0.0000016375}, HOV = {106, 5.414398E+07, 0.597341, -0.589234, 1.004533, -0.602007}, VapCp = {16, 48655, -455.54, 12.53, 0.000075917, -4.246E-09}, LiqVis = {101, -51.649, 2317.7, 6.5556, -0.000012396, 2}, VapVis = {102, 6.0899E-07, 0.58607, 368.57, -171.06, 0}, LiqK = {16, 0.017242, -22.474, -1.4478, -0.0011278, -0.0000020716}, VapK = {102, 661.08, 0.99232, 5.8449E+09, -9.0597E+10, 0}, Racketparam = 0, UniquacR = 3.4919, UniquacQ = 3.116, ChaoSeadAF = 0.314, ChaoSeadSP = 18339.9, ChaoSeadLV = 0.0979424);
-end Npropylformate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylmercaptan.mo
deleted file mode 100644
index 9943133..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Npropylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Npropylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 349, name = "Npropylmercaptan", CAS = "107-03-9", Tc = 536, Pc = 4520000, Vc = 0.254, Cc = 0.264, Tb = 340.65, Tm = 159.85, TT = 160, TP = 0.0651025, MW = 76.1606, LVB = 0.0911676, AF = 0.225, SP = 18020, DM = 5.17E-30, SH = -22600000.0, IGHF = -6.75E+07, GEF = 2700000, AS = 336400, HFMP = 5477000, HOC = -2.345E+09, LiqDen = {105, 0.98491, 0.2613, 536.61, 0.28105, 0}, VP = {101, 81.44938, -6196.556, -9.018418, 0.0000073391, 2}, LiqCp = {16, 104970, 204.83, 8.2793, 0.0048108, 0.0000020317}, HOV = {106, 4.183879E+07, -0.0306824, 1.010385, -0.640892, -0.0194755}, VapCp = {16, 69258, -718.05, 12.587, -0.000090812, 1.349E-08}, LiqVis = {101, -8.6328, 806.3, -0.3609, 0.0000011977, 2}, VapVis = {102, 2.0609E-07, 0.72623, 217.41, -10810, 0}, LiqK = {16, -0.061115, 3.3836, -1.3478, -0.00049487, -0.0000016211}, VapK = {102, 0.0088953, 0.51444, 2337.9, 345110, 0}, Racketparam = 0.264, UniquacR = 3.2265, UniquacQ = 2.756, ChaoSeadAF = 0.225, ChaoSeadSP = 18020, ChaoSeadLV = 0.0911676);
-end Npropylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetracosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetracosane.mo
deleted file mode 100644
index 6de997b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetracosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ntetracosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 211, name = "Ntetracosane", CAS = "646-31-1", Tc = 810, Pc = 1020000, Vc = 1.36, Cc = 0.207, Tb = 664.45, Tm = 324.05, TT = 323.75, TP = 0.00138507, MW = 338.654, LVB = 0.426088, AF = 1.07102, SP = 15800, DM = 0, SH = -1209000000.0, IGHF = -5.4E+08, GEF = 1.472E+08, AS = 1097000, HFMP = 5.4894E+07, HOC = -1.479E+10, LiqDen = {105, 0.013821, 0.07087, 810, 0.13885, 0}, VP = {101, 118.4643, -17014.83, -12.51446, 1.109888E-07, 2}, LiqCp = {16, 397960, -97.814, 12.108, 0.0038156, -0.0000022229}, HOV = {106, 1.5462E+08, 0.24892, 1.8808, -2.829, 1.1319}, VapCp = {16, 318880, -569.39, 14.249, 0.00012213, -4.6983E-08}, LiqVis = {101, -64.748, 4433, 8.0272, -0.0000059771, 2}, VapVis = {102, 2.9788E-07, 0.59708, 514.64, 49388, 0}, LiqK = {16, 0.046069, -245.01, -0.62562, -0.0019192, -0.0000023135}, VapK = {102, -232.02, 1.063, -5.6529E+09, -8.4042E+10, 0}, Racketparam = 0.207, UniquacR = 16.639, UniquacQ = 13.576, ChaoSeadAF = 1.07102, ChaoSeadSP = 15800, ChaoSeadLV = 0.426088);
-end Ntetracosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetradecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetradecane.mo
deleted file mode 100644
index b4b83f5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntetradecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ntetradecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 183, name = "Ntetradecane", CAS = "629-59-4", Tc = 693, Pc = 1570000, Vc = 0.894, Cc = 0.244, Tb = 526.76, Tm = 279.01, TT = 279.01, TP = 0.252685, MW = 198.392, LVB = 0.26132, AF = 0.644, SP = 16140, DM = 0, SH = -168070000.0, IGHF = -3.3244E+08, GEF = 6.599E+07, AS = 702590, HFMP = 4.507E+07, HOC = -8.73282E+09, LiqDen = {105, 0.26297, 0.23695, 693, 0.26861, 0}, VP = {101, 141.7696, -13265.67, -17.07041, 6.905252E-06, 2}, LiqCp = {16, 84257, 110.32, 11.507, 0.0033723, -0.0000011739}, HOV = {106, 1.216371E+08, 1.28014, -0.352636, -1.241735, 0.826459}, VapCp = {16, 204940, -657.01, 13.943, -0.00013248, 4.0902E-08}, LiqVis = {101, -84.61448, 4567.43, 11.25434, -0.0000111579, 2}, VapVis = {102, 3.4874E-09, 1.2039, -69.467, 11809, 0}, LiqK = {16, 0.039135, -208.63, -0.066493, -0.005844, 0.0000021711}, VapK = {102, -122.4, 0.86814, -5.5021E+08, -2.1347E+10, 0}, Racketparam = 0.234049, UniquacR = 9.895, UniquacQ = 8.176001, ChaoSeadAF = 0.6399, ChaoSeadSP = 16200.36, ChaoSeadLV = 0.2613);
-end Ntetradecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntricosane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntricosane.mo
deleted file mode 100644
index 3309bf9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntricosane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ntricosane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 210, name = "Ntricosane", CAS = "638-67-5", Tc = 818.25, Pc = 1290000, Vc = 1.307, Cc = 0.208, Tb = 653.15, Tm = 320.95, TT = 320.65, TP = 0.00186855, MW = 324.627, LVB = 0.4074, AF = 1.02617, SP = 15800, DM = 0, SH = -1209000000.0, IGHF = -5.192E+08, GEF = 1.39E+08, AS = 1064000, HFMP = 5.3974E+07, HOC = -1.417E+10, LiqDen = {105, 0.048866, 0.12922, 818.25, 0.20531, 0}, VP = {101, -22.08031, -9534.111, 8.274049, -0.0000125255, 2}, LiqCp = {16, -58655, -99.845, 13.754, 0.00030768, 3.7705E-07}, HOV = {106, 1.6434E+08, 1.0068, -0.55169, 0.31454, -0.3244}, VapCp = {16, 304710, -567.01, 14.201, 0.00012862, -4.8999E-08}, LiqVis = {101, -8.8394, 1949.8, -0.47088, 0.0000010446, 2}, VapVis = {102, 2.8518E-07, 0.61933, 704.01, 6598.3, 0}, LiqK = {16, -0.18218, 0.19147, -0.94906, -0.00035642, -3.5025E-07}, VapK = {102, -232.83, 1.0566, -5.2747E+09, -9.8604E+10, 0}, Racketparam = 0.208, UniquacR = 15.9646, UniquacQ = 13.036, ChaoSeadAF = 1.02617, ChaoSeadSP = 15800, ChaoSeadLV = 0.4074);
-end Ntricosane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntridecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntridecane.mo
deleted file mode 100644
index 3f6ed9f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ntridecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ntridecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 181, name = "Ntridecane", CAS = "629-50-5", Tc = 675, Pc = 1680000, Vc = 0.823, Cc = 0.246, Tb = 508.63, Tm = 267.76, TT = 267.76, TP = 0.250959, MW = 184.365, LVB = 0.24494, AF = 0.61, SP = 16060, DM = 0, SH = -168070000.0, IGHF = -3.1177E+08, GEF = 5.771E+07, AS = 663370, HFMP = 2.85E+07, HOC = -8.1229E+09, LiqDen = {105, 0.29787, 0.24164, 675, 0.29254, 0}, VP = {101, 143.3256, -12766.72, -17.45421, 7.99709E-06, 2}, LiqCp = {16, 37167, 123.48, 11.52, 0.0033147, -0.0000011194}, HOV = {106, 9.732822E+07, 0.667983, 0.462399, -1.329972, 0.649193}, VapCp = {16, 191240, -657.52, 13.861, -0.00011498, 3.3409E-08}, LiqVis = {101, -81.45907, 4309.552, 10.81921, -0.000011395, 2}, VapVis = {102, 3.0146E-08, 0.91936, 136.12, 2279.8, 0}, LiqK = {16, 0.037294, -193.16, -0.1108, -0.0058295, 0.0000022551}, VapK = {102, 0.0000050471, 1.4806, 553.99, 7554.4, 0}, Racketparam = 0.2465, UniquacR = 9.2206, UniquacQ = 7.636, ChaoSeadAF = 0.6002, ChaoSeadSP = 16139, ChaoSeadLV = 0.2449);
-end Ntridecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nundecane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nundecane.mo
deleted file mode 100644
index 0cba17f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Nundecane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Nundecane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 176, name = "Nundecane", CAS = "1120-21-4", Tc = 639, Pc = 1980000, Vc = 0.689, Cc = 0.257, Tb = 469.08, Tm = 247.571, TT = 247.571, TP = 0.408414, MW = 156.312, LVB = 0.21224, AF = 0.538, SP = 15880, DM = 0, SH = -168070000.0, IGHF = -2.7043E+08, GEF = 4.116E+07, AS = 584930, HFMP = 2.218E+07, HOC = -6.9036E+09, LiqDen = {105, 0.36785, 0.24938, 639, 0.28395, 0}, VP = {101, 128.8551, -11029.21, -15.54009, 8.030888E-06, 2}, LiqCp = {16, 208030, 521.1, 6.1551, 0.017086, -0.000013175}, HOV = {106, 8.9735E+07, 0.81788, 0.31647, -1.4781, 0.80673}, VapCp = {16, 177700, -730.83, 13.81, -0.00021088, 5.7776E-08}, LiqVis = {101, -92.575, 4408.9, 12.698, -0.000015556, 2}, VapVis = {102, 2.9213E-08, 0.9335, 118.62, -4363.8, 0}, LiqK = {16, 0.015185, -212.29, -0.044539, -0.0049614, 0.0000013629}, VapK = {102, 0.037608, 0.6852, 33443, 9124600, 0}, Racketparam = 0.243351, UniquacR = 7.871799, UniquacQ = 6.556, ChaoSeadAF = 0.521, ChaoSeadSP = 15934.45, ChaoSeadLV = 0.2122);
-end Nundecane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocresol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocresol.mo
deleted file mode 100644
index 9d6b6f8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocresol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ocresol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 142, name = "Ocresol", CAS = "95-48-7", Tc = 697.6, Pc = 5000000, Vc = 0.282, Cc = 0.243, Tb = 464.17, Tm = 304.19, TT = 304.19, TP = 65.3261, MW = 108.14, LVB = 0.10364, AF = 0.435, SP = 22870, DM = 4.84E-30, SH = -168070000.0, IGHF = -1.2857E+08, GEF = -3.543E+07, AS = 352590, HFMP = 1.582E+07, HOC = -3.528E+09, LiqDen = {105, 1.1115, 0.30952, 697.6, 0.31161, 0}, VP = {101, 140.51, -11819, -17.163, 0.0000087043, 2}, LiqCp = {16, 146600, -116.23, 11.009, 0.0034596, -0.0000033446}, HOV = {106, 9.9721E+07, 1.0333, 0.08043, -1.2193, 0.58124}, VapCp = {16, 64367, -535.92, 12.871, -0.000033383, -2.2759E-09}, LiqVis = {101, -455.0775, 20670.83, 67.87773, -0.0000660983, 2}, VapVis = {102, 8.7371E-08, 0.80775, 98.538, -0.0034513, 0}, LiqK = {16, 0.065471, 92.351, -2.8415, 0.0012245, -0.0000029956}, VapK = {102, 0.00018648, 0.9302, 709.37, -0.0036596, 0}, Racketparam = 0, UniquacR = 4.7567, UniquacQ = 3.888, ChaoSeadAF = 0.433455, ChaoSeadSP = 23397.9, ChaoSeadLV = 0.104368);
-end Ocresol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocymene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocymene.mo
deleted file mode 100644
index 44dec09..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ocymene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ocymene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 291, name = "Ocymene", CAS = "527-84-4", Tc = 670.15, Pc = 2895870, Vc = 0.478, Cc = 0.26, Tb = 451.33, Tm = 201.64, TT = 201.64, TP = 0.0177118, MW = 134.218, LVB = 0.153824, AF = 0.2769, SP = 17160, DM = 2.0E-30, SH = -1209000000.0, IGHF = -2.56061E+07, GEF = 1.37359E+08, AS = 425500, HFMP = 1.0E+07, HOC = -5.56053E+09, LiqDen = {105, 0.017298, 0.046645, 670.15, 0.11526, 0}, VP = {101, 47.323, -6536.6, -3.5074, 6.0254E-07, 2}, LiqCp = {16, 130330, -123.14, 10.583, 0.0062464, -0.0000049954}, HOV = {106, 8.44827E+07, 3.205721, -8.334975, 9.055186, -3.399515}, VapCp = {16, 105060, -664.9, 13.437, -0.00013826, 2.1794E-08}, LiqVis = {101, -8.1679, 885.64, -0.29176, -7.7161E-07, 2}, VapVis = {102, 0.0000020745, 0.37852, 642.92, 259.27, 0}, LiqK = {16, 0.06145, -173.56, -0.23519, -0.0077758, 0.0000038715}, VapK = {102, 0.000020459, 1.2217, 183.94, 51167, 0}, Racketparam = 0.26, UniquacR = 6.0058, UniquacQ = 4.612, ChaoSeadAF = 0.2769, ChaoSeadSP = 17160, ChaoSeadLV = 0.153824);
-end Ocymene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Odichlorobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Odichlorobenzene.mo
deleted file mode 100644
index 4ad7a9b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Odichlorobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Odichlorobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 119, name = "Odichlorobenzene", CAS = "95-50-1", Tc = 705, Pc = 4070000, Vc = 0.351, Cc = 0.244, Tb = 453.57, Tm = 256.15, TT = 256.15, TP = 6.48939, MW = 147.002, LVB = 0.112969, AF = 0.219189, SP = 20310, DM = 8.34E-30, SH = -168070000.0, IGHF = 3.02E+07, GEF = 8.29E+07, AS = 341850, HFMP = 1.266E+07, HOC = -2.826E+09, LiqDen = {105, 0.74261, 0.26108, 705, 0.30655, 0}, VP = {101, 75.75983, -8226.762, -7.552754, 6.191298E-07, 2}, LiqCp = {16, 127840, -59.156, 8.3728, 0.0093569, -0.0000051714}, HOV = {106, 8.774E+07, 2.8227, -6.8433, 7.6547, -3.1275}, VapCp = {16, 55560, -490.51, 12.648, -0.00012186, 2.1792E-08}, LiqVis = {101, -37.699, 2377, 4.0848, -0.0000020768, 2}, VapVis = {102, 1.6041E-07, 0.76289, 205.1, -39.728, 0}, LiqK = {16, 0.06919, -379.09, 0.89948, -0.0099037, 0.0000041677}, VapK = {102, -1200.2, 0.7235, -2.8422E+09, -8.8684E+10, 0}, Racketparam = 0.271326, UniquacR = 4.4376, UniquacQ = 3.288, ChaoSeadAF = 0.214215, ChaoSeadSP = 20271.3, ChaoSeadLV = 0.11318);
-end Odichlorobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Odiethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Odiethylbenzene.mo
deleted file mode 100644
index 8b57d56..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Odiethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Odiethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 294, name = "Odiethylbenzene", CAS = "135-01-3", Tc = 668, Pc = 2880000, Vc = 0.502, Cc = 0.26, Tb = 456.573, Tm = 241.91, TT = 241.929, TP = 1.04119, MW = 134.2182, LVB = 0.15328, AF = 0.3879, SP = 17760, DM = 1.96803E-30, SH = -1209000000.0, IGHF = -1.89535E+07, GEF = 1.41084E+08, AS = 434800, HFMP = 1.67778E+07, HOC = -5.5596E+09, LiqDen = {105, 0.52086, 0.25389, 668, 0.28666, 0}, VP = {101, 136.1844, -10760.78, -16.88233, 0.0000109939, 2}, LiqCp = {16, 13731, 7.9227, 11.237, 0.004718, -0.0000037106}, HOV = {106, 4.4827E+07, -1.9073, 6.1295, -6.3772, 2.4857}, VapCp = {16, 122330, -723.39, 13.531, -0.00028953, 7.2562E-08}, LiqVis = {101, -13.971, 1608.7, 0.32395, -5.0533E-07, 2}, VapVis = {102, 4.8451E-08, 0.84013, -72.915, 24855, 0}, LiqK = {16, -0.047218, -11.073, -1.4189, -0.00077787, -7.5252E-07}, VapK = {102, 0.000087851, 1.0397, 505.4, 47466, 0}, Racketparam = 0.26, UniquacR = 6.0066, UniquacQ = 4.616, ChaoSeadAF = 0.3879, ChaoSeadSP = 17760, ChaoSeadLV = 0.15328);
-end Odiethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oethyltoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oethyltoluene.mo
deleted file mode 100644
index 5cd133c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oethyltoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oethyltoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 282, name = "Oethyltoluene", CAS = "611-14-3", Tc = 651.15, Pc = 3040000, Vc = 0.46, Cc = 0.26, Tb = 438.33, Tm = 192.35, TT = 192.35, TP = 0.00376669, MW = 120.192, LVB = 0.136967, AF = 0.2941, SP = 18090, DM = 1.87E-30, SH = -1209000000.0, IGHF = 1213360, GEF = 1.31055E+08, AS = 399350, HFMP = 9962100, HOC = -4.94607E+09, LiqDen = {105, 0.37928, 0.20513, 651.15, 0.23356, 0}, VP = {101, 96.1971, -8650.261, -10.86209, 5.918239E-06, 2}, LiqCp = {16, -102370, -26.419, 12.162, 0.0026059, -0.000002126}, HOV = {106, 8.227273E+07, 1.968046, -3.535916, 3.107317, -1.061436}, VapCp = {16, 85432, -569.61, 13.054, 0.000095945, -4.3717E-08}, LiqVis = {101, -10.303, 1378.1, -0.24629, 5.1436E-07, 2}, VapVis = {102, 4.4089E-07, 0.56719, 270.1, -4560.2, 0}, LiqK = {16, -0.059289, 4.2071, -1.4739, -0.00039236, -0.0000010623}, VapK = {102, 0.000092842, 1.0422, 544.16, 63099, 0}, Racketparam = 0.26, UniquacR = 5.3322, UniquacQ = 4.076, ChaoSeadAF = 0.2941, ChaoSeadSP = 18090, ChaoSeadLV = 0.136967);
-end Oethyltoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourbutanediol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourbutanediol.mo
deleted file mode 100644
index 39d501d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourbutanediol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneFourbutanediol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 347, name = "OneFourbutanediol", CAS = "110-63-4", Tc = 667, Pc = 4880000, Vc = 0.297, Cc = 0.261, Tb = 501.15, Tm = 293.05, TT = 293.05, TP = 0.437872, MW = 90.121, LVB = 0.0888513, AF = 1.17696, SP = 28850, DM = 1.31E-29, SH = -216400000.0, IGHF = -4.267E+08, GEF = -2.78E+08, AS = 381000, HFMP = 1.63E+07, HOC = -2.2801E+09, LiqDen = {105, 0.87669, 0.26038, 667, 0.18382, 0}, VP = {101, 273.87, -20688, -36.39, 0.000020662, 2}, LiqCp = {16, -147300, -151.29, 13.013, 0.00082927, -4.8483E-07}, HOV = {106, 8.835E+07, 0.2441, 0, 0, 0}, VapCp = {16, 78857, -613.48, 12.793, -0.00013274, 6.7309E-08}, LiqVis = {101, -135.2818, 9167.078, 18.06409, -0.0000115446, 2}, VapVis = {102, 1.0592E-07, 0.79673, 195.38, -19182, 0}, LiqK = {16, 0.17847, -272.57, -0.42428, -0.0080796, 0.0000034419}, VapK = {102, -0.69878, 0.86746, -2810400, -7.1005E+07, 0}, Racketparam = 0.261, UniquacR = 4.6976, UniquacQ = 4.56, ChaoSeadAF = 1.17696, ChaoSeadSP = 28850, ChaoSeadLV = 0.0888513);
-end OneFourbutanediol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourdioxane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourdioxane.mo
deleted file mode 100644
index 3e03ca9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneFourdioxane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneFourdioxane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 85, name = "OneFourdioxane", CAS = "123-91-1", Tc = 587, Pc = 5170000, Vc = 0.238, Cc = 0.255, Tb = 374.5, Tm = 284.95, TT = 284.95, TP = 2532.46, MW = 88.106, LVB = 0.08529, AF = 0.279262, SP = 20540, DM = 0, SH = -17100000.0, IGHF = -3.158E+08, GEF = -1.816E+08, AS = 300120, HFMP = 1.284E+07, HOC = -2.1863E+09, LiqDen = {105, 1.0039, 0.25926, 587, 0.28278, 0}, VP = {101, 50.11504, -5577.21, -4.046854, 2.080567E-06, 2}, LiqCp = {16, 151550, -65314, 519.35, -1.3402, 0.0011989}, HOV = {106, 2.1367E+08, 9.1812, -22.992, 23.854, -9.34}, VapCp = {16, 46250, -613.41, 12.822, 0.000004782, -2.2238E-08}, LiqVis = {101, -79.28, 4198.4, 10.393, -0.0000085568, 2}, VapVis = {102, 2.7334E-07, 0.7393, 129.93, -0.0004206, 0}, LiqK = {16, 0.089834, 46.421, -1.1898, -0.0037338, -0.0000061358}, VapK = {102, 2.3873E-07, 1.8505, -94.575, 7804.2, 0}, Racketparam = 0.254, UniquacR = 3.07, UniquacQ = 2.28, ChaoSeadAF = 0.280373, ChaoSeadSP = 20163.3, ChaoSeadLV = 0.0856635);
-end OneFourdioxane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOneTwotrichloroethane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOneTwotrichloroethane.mo
deleted file mode 100644
index 02a3601..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOneTwotrichloroethane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneOneTwotrichloroethane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 41, name = "OneOneTwotrichloroethane", CAS = "79-00-5", Tc = 602, Pc = 4480000, Vc = 0.281, Cc = 0.252, Tb = 387, Tm = 236.5, TT = 236.5, TP = 44.7475, MW = 133.404, LVB = 0.0929898, AF = 0.259135, SP = 19890, DM = 4.17E-30, SH = 28450000.0, IGHF = -1.42E+08, GEF = -8.097E+07, AS = 337100, HFMP = 1.13E+07, HOC = -9.685E+08, LiqDen = {105, 0.9055, 0.25465, 602, 0.30987, 0}, VP = {101, 66.05096, -6428.165, -6.44717, 3.27127E-06, 2}, LiqCp = {16, 121000, 433.16, 2.2235, 0.034423, -0.000040901}, HOV = {106, 5.0503E+07, 0.64021, -1.1382, 1.5379, -0.66031}, VapCp = {16, 56506, -535.36, 12.166, -0.00021958, 4.8605E-08}, LiqVis = {101, -26.218, 1571.3, 2.5992, -0.0000081378, 2}, VapVis = {102, 2.8974E-07, 0.68713, 200.47, -854.38, 0}, LiqK = {16, -0.027258, -78.724, -0.73941, -0.0030401, 8.8565E-07}, VapK = {102, 0.000095455, 1.0427, 1258.3, -2960.2, 0}, Racketparam = 0.267821, UniquacR = 3.526, UniquacQ = 2.948, ChaoSeadAF = 0.259768, ChaoSeadSP = 19818.9, ChaoSeadLV = 0.0929898);
-end OneOneTwotrichloroethane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedichloroethane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedichloroethane.mo
deleted file mode 100644
index b1c0ee8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedichloroethane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneOnedichloroethane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 44, name = "OneOnedichloroethane", CAS = "75-34-3", Tc = 523, Pc = 5100000, Vc = 0.236, Cc = 0.277, Tb = 330.45, Tm = 176.19, TT = 176.19, TP = 2.21455, MW = 98.959, LVB = 0.08473, AF = 0.244, SP = 18300, DM = 6.87E-30, SH = 52510000.0, IGHF = -1.2941E+08, GEF = -7.259E+07, AS = 305010, HFMP = 7870000, HOC = -1.1104E+09, LiqDen = {105, 1.1057, 0.26536, 523, 0.28703, 0}, VP = {101, 66.53401, -5492.415, -6.715993, 5.298782E-06, 2}, LiqCp = {16, 115470, 479.34, 1.2009, 0.029511, -0.000025794}, HOV = {106, 4.458773E+07, 0.555838, 0.0209485, -0.722234, 0.56963}, VapCp = {16, 45661, -449.92, 11.802, 0.00015496, -5.3829E-08}, LiqVis = {101, -9.7803, 891.16, -0.14866, -3.5884E-07, 2}, VapVis = {102, 0.0000001814, 0.74706, 93.461, 1513.7, 0}, LiqK = {16, 0.011357, -64.086, -0.98127, -0.0039469, 6.6106E-07}, VapK = {102, 0.00013381, 1.01, 1042.5, -2442, 0}, Racketparam = 0, UniquacR = 2.9617, UniquacQ = 2.532, ChaoSeadAF = 0.244612, ChaoSeadSP = 18299.2, ChaoSeadLV = 0.0847207);
-end OneOnedichloroethane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclohexane.mo
deleted file mode 100644
index 9ee60ce..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneOnedimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 274, name = "OneOnedimethylcyclohexane", CAS = "590-66-9", Tc = 591.15, Pc = 2938430, Vc = 0.45, Cc = 0.269, Tb = 392.69, Tm = 239.66, TT = 239.66, TP = 60.5841, MW = 112.213, LVB = 0.144469, AF = 0.2376, SP = 15670, DM = 0, SH = -1209000000.0, IGHF = -1.81E+08, GEF = 3.52293E+07, AS = 365012, HFMP = 2020870, HOC = -4.8639E+09, LiqDen = {105, 0.55073, 0.24971, 591.15, 0.27534, 0}, VP = {101, 81.518, -6942.5, -8.9, 0.0000054941, 2}, LiqCp = {16, 108760, -1.4419, 9.7271, 0.0071596, -0.0000038148}, HOV = {106, 7.5815E+07, 2.7664, -6.0218, 6.1598, -2.4093}, VapCp = {16, 97627, -847.07, 13.952, -0.00053736, 1.4024E-07}, LiqVis = {101, -7.7034, 1042.4, -0.53177, 8.3765E-07, 2}, VapVis = {102, 7.8141E-07, 0.4995, 371.04, 124.2, 0}, LiqK = {16, -0.0057011, -80.549, -0.98212, -0.0030094, 4.8733E-07}, VapK = {102, 0.01079, 0.39433, -74.36, 805370, 0}, Racketparam = 0.269, UniquacR = 5.3937, UniquacQ = 4.396, ChaoSeadAF = 0.2376, ChaoSeadSP = 15670, ChaoSeadLV = 0.144469);
-end OneOnedimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclopentane.mo
deleted file mode 100644
index 0456ca3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneOnedimethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneOnedimethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 266, name = "OneOnedimethylcyclopentane", CAS = "1638-26-2", Tc = 547, Pc = 3445000, Vc = 0.36, Cc = 0.273, Tb = 361, Tm = 203.36, TT = 203.68, TP = 9.04909, MW = 98.1861, LVB = 0.130925, AF = 0.272354, SP = 15460, DM = 0, SH = -1209000000.0, IGHF = -1.3828E+08, GEF = 3.9037E+07, AS = 359280, HFMP = 1080000, HOC = -4.2752E+09, LiqDen = {105, 0.77031, 0.27731, 547, 0.30161, 0}, VP = {101, 80.69439, -6444.768, -8.840923, 5.777915E-06, 2}, LiqCp = {16, 63403, -76.912, 11.112, 0.0033685, -0.0000013786}, HOV = {106, 6.4753E+07, 1.835, -2.4221, 1.0097, 0.083052}, VapCp = {16, 84040, -831.97, 13.78, -0.00060484, 0.0000001825}, LiqVis = {101, -7.8132, 901.76, -0.51373, 0.0000011607, 2}, VapVis = {102, 0.0000055348, 0.28035, 888.45, 60.9, 0}, LiqK = {16, -0.012548, -26.729, -1.3811, -0.0017046, -8.8213E-07}, VapK = {102, 0.0025566, 0.60638, 165.73, 477660, 0}, Racketparam = 0.273, UniquacR = 4.7193, UniquacQ = 3.856, ChaoSeadAF = 0.272354, ChaoSeadSP = 15460, ChaoSeadLV = 0.130925);
-end OneOnedimethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneThreebutadiene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneThreebutadiene.mo
deleted file mode 100644
index 6e36414..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneThreebutadiene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneThreebutadiene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 77, name = "OneThreebutadiene", CAS = "106-99-0", Tc = 425, Pc = 4320000, Vc = 0.221, Cc = 0.27, Tb = 268.62, Tm = 164.25, TT = 164.25, TP = 69.1989, MW = 54.092, LVB = 0.08804, AF = 0.195, SP = 14460, DM = 0, SH = 109240000.0, IGHF = 1.0924E+08, GEF = 1.4972E+08, AS = 278890, HFMP = 7984000, HOC = -2.409E+09, LiqDen = {105, 1.3314, 0.28213, 425, 0.30137, 0}, VP = {101, 64.81816, -4314.788, -6.766483, 8.589719E-06, 2}, LiqCp = {16, 88166, 583.44, 1.8231, 0.030118, -0.000025695}, HOV = {106, 3.4211E+07, 0.45981, 0.016247, -0.15407, 0.054476}, VapCp = {16, 38238.49, -511.235, 12.39338, -0.000121482, 4.39211E-08}, LiqVis = {101, 12.653, -139.12, -3.6735, -0.0000014093, 2}, VapVis = {102, 3.4426E-07, 0.6407, 174.17, -2393.4, 0}, LiqK = {16, -0.096853, 19.016, -1.4201, 0.00020099, -0.0000029536}, VapK = {102, -18588, 0.94195, -7.31E+10, -9.6975E+11, 0}, Racketparam = 0.2713, UniquacR = 2.6908, UniquacQ = 2.352, ChaoSeadAF = 0.2028, ChaoSeadSP = 14195.77, ChaoSeadLV = 0.088);
-end OneThreebutadiene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourFivetetramethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourFivetetramethylbenzene.mo
deleted file mode 100644
index b015054..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourFivetetramethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwoFourFivetetramethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 299, name = "OneTwoFourFivetetramethylbenzene", CAS = "95-93-2", Tc = 676, Pc = 2900000, Vc = 0.482, Cc = 0.249, Tb = 470, Tm = 352.384, TT = 352.384, TP = 1784.79, MW = 134.221, LVB = 0.15228, AF = 0.423, SP = 17140, DM = 0, SH = -1209000000.0, IGHF = -4.527E+07, GEF = 1.177E+08, AS = 418500, HFMP = 2.1E+07, HOC = -5.507E+09, LiqDen = {105, 0.65779, 0.28461, 677.16, 0.31429, 0}, VP = {101, 96.028, -9355.7, -10.676, 0.0000049509, 2}, LiqCp = {16, 139940, 1169.1, 1.2977, 0.02859, -0.000023286}, HOV = {106, 1.607707E+08, 4.915197, -10.37671, 9.303886, -3.220797}, VapCp = {16, 110940, -562.53, 13.019, 0.00027207, -1.0669E-07}, LiqVis = {101, -9.4175, 1452.8, -0.39341, 2.9469E-07, 2}, VapVis = {102, 7.2635E-07, 0.49106, 324.48, 3435.1, 0}, LiqK = {16, 0.023024, -350.01, 0.1946, -0.0044419, 6.7822E-07}, VapK = {102, 0.000066062, 1.0649, 306.1, 93850, 0}, Racketparam = 0.249, UniquacR = 6.1278, UniquacQ = 4.672, ChaoSeadAF = 0.423, ChaoSeadSP = 17140, ChaoSeadLV = 0.15228);
-end OneTwoFourFivetetramethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrichlorobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrichlorobenzene.mo
deleted file mode 100644
index 98c07ba..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrichlorobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwoFourtrichlorobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 117, name = "OneTwoFourtrichlorobenzene", CAS = "120-82-1", Tc = 725, Pc = 3720000, Vc = 0.395, Cc = 0.244, Tb = 486.15, Tm = 290.15, TT = 290.15, TP = 33.0937, MW = 181.447, LVB = 0.12525, AF = 0.358106, SP = 20620, DM = 4.20291E-30, SH = -168070000.0, IGHF = -1.1757E+07, GEF = 4.30523E+07, AS = 380911, HFMP = 1.55647E+07, HOC = -2.65632E+09, LiqDen = {105, 0.61713, 0.2524, 725, 0.2857, 0}, VP = {101, 47.20405, -7460.647, -3.164866, -3.316432E-06, 2}, LiqCp = {16, 145370, 234.69, 6.2789, 0.017012, -0.000015675}, HOV = {106, 6.897E+07, 0.4026, 0, 0, 0}, VapCp = {16, 63130, -426.63, 12.569, -0.000095696, 1.4713E-08}, LiqVis = {101, -241, 9893.2, 36.115, -0.000047458, 2}, VapVis = {102, 9.2097E-08, 0.80621, 99.511, 1477.5, 0}, LiqK = {16, 0.070105, -290.72, -0.20366, -0.0074415, 0.0000024779}, VapK = {102, -743.07, 0.74159, -2.1746E+09, -6.4502E+10, 0}, Racketparam = 0.259136, UniquacR = 5.0625, UniquacQ = 3.732, ChaoSeadAF = 0.358106, ChaoSeadSP = 20618.1, ChaoSeadLV = 0.12525);
-end OneTwoFourtrichlorobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrimethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrimethylbenzene.mo
deleted file mode 100644
index 5d0bfdf..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoFourtrimethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwoFourtrimethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 286, name = "OneTwoFourtrimethylbenzene", CAS = "95-63-6", Tc = 649.1, Pc = 3232000, Vc = 0.435, Cc = 0.256, Tb = 442.49, Tm = 229.38, TT = 229.33, TP = 0.69347, MW = 120.194, LVB = 0.136, AF = 0.377, SP = 18090, DM = 1.0E-30, SH = -1209000000.0, IGHF = -1.392E+07, GEF = 1.17E+08, AS = 395870, HFMP = 1.319E+07, HOC = -4.93067E+09, LiqDen = {105, 0.61782, 0.26243, 649.1, 0.28053, 0}, VP = {101, 60.23044, -7113.208, -5.408973, 1.637451E-06, 2}, LiqCp = {16, 159260, 100.48, 7.176, 0.015511, -0.000013842}, HOV = {106, 6.6212E+07, 0.612793, 0.157992, -1.024462, 0.66352}, VapCp = {16, 86220, -588.22, 13.049, 0.00013217, -6.3042E-08}, LiqVis = {101, -22.655, 1676.9, 1.8204, -0.0000040799, 2}, VapVis = {102, 9.0311E-07, 0.47728, 388.95, -1321.5, 0}, LiqK = {16, -0.097311, -7.9329, -1.1933, -0.00075728, -4.2291E-07}, VapK = {102, 0.000071734, 1.0715, 503.12, 48355, 0}, Racketparam = 0.256, UniquacR = 5.3928, UniquacQ = 4.104, ChaoSeadAF = 0.377, ChaoSeadSP = 18090, ChaoSeadLV = 0.136);
-end OneTwoFourtrimethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFivetetramethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFivetetramethylbenzene.mo
deleted file mode 100644
index 5b816f0..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFivetetramethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwoThreeFivetetramethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 298, name = "OneTwoThreeFivetetramethylbenzene", CAS = "527-53-7", Tc = 679, Pc = 3220000, Vc = 0.436, Cc = 0.254, Tb = 471.15, Tm = 249.46, TT = 249.46, TP = 0.886139, MW = 134.218, LVB = 0.151385, AF = 0.459061, SP = 18330, DM = 0, SH = -1209000000.0, IGHF = -4.054E+07, GEF = 1.231E+08, AS = 422500, HFMP = 1.072E+07, HOC = -5.532E+09, LiqDen = {105, 0.5261, 0.25428, 679, 0.28565, 0}, VP = {101, 108.28, -9936.6, -12.519, 0.0000062754, 2}, LiqCp = {16, 180380, -63.604, 9.2496, 0.0072443, -0.0000031051}, HOV = {106, 6.6549E+07, 0.31372, 0.25924, -0.3264, 0.12301}, VapCp = {16, 109230, -579.21, 13.116, 0.00014705, -5.951E-08}, LiqVis = {101, -14.031, 1747.6, 0.263, -3.7653E-07, 2}, VapVis = {102, 6.7114E-07, 0.50662, 335.88, -402.07, 0}, LiqK = {16, -0.064932, -8.9077, -1.3593, -0.00066705, -6.8372E-07}, VapK = {102, 0.000082384, 1.0555, 595.15, 34335, 0}, Racketparam = 0.254, UniquacR = 6.1278, UniquacQ = 4.672, ChaoSeadAF = 0.426, ChaoSeadSP = 18330, ChaoSeadLV = 0.151385);
-end OneTwoThreeFivetetramethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFourtetramethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFourtetramethylbenzene.mo
deleted file mode 100644
index 02c7769..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreeFourtetramethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwoThreeFourtetramethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 297, name = "OneTwoThreeFourtetramethylbenzene", CAS = "488-23-3", Tc = 690, Pc = 2860000, Vc = 0.482, Cc = 0.256, Tb = 478.19, Tm = 266.9, TT = 266.9, TP = 2.9878, MW = 134.218, LVB = 0.149073, AF = 0.417172, SP = 18860, DM = 1.66E-30, SH = -1209000000.0, IGHF = -3.305E+07, GEF = 1.324E+08, AS = 416500, HFMP = 1.123E+07, HOC = -5.5376E+09, LiqDen = {105, 0.62671, 0.276, 690, 0.30501, 0}, VP = {101, 103.3938, -9866.6, -11.74655, 5.432648E-06, 2}, LiqCp = {16, 191090, -1527.7, 20.231, -0.019977, 0.000019333}, HOV = {106, 6.827737E+07, 0.20659, 0.354625, 0.156354, -0.400825}, VapCp = {16, 108680, -536.06, 13.006, 0.00026578, -1.0197E-07}, LiqVis = {101, -12.555, 1810.8, 0.0032112, -3.0199E-09, 2}, VapVis = {102, 8.0975E-08, 0.80432, 144.14, -8326.5, 0}, LiqK = {16, -0.046705, -31.572, -1.2356, -0.0012463, -2.6103E-07}, VapK = {102, 0.0001001, 1.0331, 653.92, 21466, 0}, Racketparam = 0.256, UniquacR = 6.1278, UniquacQ = 4.672, ChaoSeadAF = 0.417172, ChaoSeadSP = 18860, ChaoSeadLV = 0.149073);
-end OneTwoThreeFourtetramethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreetrimethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreetrimethylbenzene.mo
deleted file mode 100644
index fb73be8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwoThreetrimethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwoThreetrimethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 285, name = "OneTwoThreetrimethylbenzene", CAS = "526-73-8", Tc = 664.5, Pc = 3454000, Vc = 0.435, Cc = 0.267, Tb = 449.23, Tm = 247.79, TT = 247.79, TP = 3.70834, MW = 120.194, LVB = 0.13322, AF = 0.367, SP = 18480, DM = 1.87E-30, SH = -1209000000.0, IGHF = -9568810, GEF = 1.244E+08, AS = 380500, HFMP = 8170000, HOC = -4.93394E+09, LiqDen = {105, 0.47081, 0.22935, 664.5, 0.22914, 0}, VP = {101, 103.4032, -9139.734, -11.94112, 6.875135E-06, 2}, LiqCp = {16, 158190, -110.87, 9.7005, 0.0066246, -0.000003875}, HOV = {106, 5.897E+07, 0.31296, 0.11034, -0.18707, 0.12203}, VapCp = {16, 97344, -642.53, 13.123, 0.000061931, -4.6438E-08}, LiqVis = {101, -13.622, 1547.6, 0.25604, -4.4218E-07, 2}, VapVis = {102, 7.8569E-07, 0.49843, 362.98, -102.15, 0}, LiqK = {16, 0.066267, 303.46, -5.2163, 0.0092731, -0.000014825}, VapK = {102, 0.000093303, 1.0419, 539.24, 56545, 0}, Racketparam = 0.267, UniquacR = 5.3928, UniquacQ = 4.104, ChaoSeadAF = 0.367, ChaoSeadSP = 18480, ChaoSeadLV = 0.13322);
-end OneTwoThreetrimethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwobutadiene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwobutadiene.mo
deleted file mode 100644
index 01253e9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwobutadiene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwobutadiene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 76, name = "OneTwobutadiene", CAS = "590-19-2", Tc = 452, Pc = 4360000, Vc = 0.22, Cc = 0.255, Tb = 284, Tm = 136.95, TT = 136.95, TP = 0.4472, MW = 54.0904, LVB = 0.0838169, AF = 0.165877, SP = 15650, DM = 1.34E-30, SH = 162300000.0, IGHF = 1.623E+08, GEF = 1.986E+08, AS = 293000, HFMP = 6962000, HOC = -2.4617E+09, LiqDen = {105, 0.86492, 0.22148, 452, 0.28373, 0}, VP = {101, 53.27585, -4559.624, -4.46417, -6.771964E-06, 2}, LiqCp = {16, 109750, -2425.1, 12.655, 0.059068, -0.00014415}, HOV = {106, 3.715905E+07, 0.824251, 0.000387028, -2.253417, 2.024613}, VapCp = {16, 39504.04, -354.1475, 11.62099, 0.00074321, -2.513775E-07}, LiqVis = {101, -9.9134, 468.65, -0.069814, 2.8031E-07, 2}, VapVis = {102, 6.4328E-07, 0.52378, 170.73, 9690.7, 0}, LiqK = {16, -0.29344, 3.1314, -0.70701, -0.00052702, -3.6665E-07}, VapK = {102, 0.000085434, 1.0359, 127.53, 78342, 0}, Racketparam = 0, UniquacR = 2.466, UniquacQ = 2.024, ChaoSeadAF = 0.3394, ChaoSeadSP = 16360.6, ChaoSeadLV = 0.0816506);
-end OneTwobutadiene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwodichloroethane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwodichloroethane.mo
deleted file mode 100644
index 9ffd6e9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwodichloroethane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwodichloroethane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 45, name = "OneTwodichloroethane", CAS = "107-06-2", Tc = 561, Pc = 5400000, Vc = 0.22, Cc = 0.255, Tb = 356.66, Tm = 237.49, TT = 237.49, TP = 237.127, MW = 98.959, LVB = 0.07945, AF = 0.286, SP = 20260, DM = 4.8E-30, SH = 52510000.0, IGHF = -1.2979E+08, GEF = -7.3945E+07, AS = 308280, HFMP = 8830000, HOC = -1.105E+09, LiqDen = {105, 1.1942, 0.27053, 561.61, 0.29157, 0}, VP = {101, 81.47902, -6503.169, -8.960273, 7.32894E-06, 2}, LiqCp = {16, 92757, 224.15, 8.5223, 0.0025656, 0.000005106}, HOV = {106, 5.072427E+07, 0.517321, 0.205828, -0.637156, 0.265499}, VapCp = {16, 62073, -758.84, 12.345, -0.0004196, 0.0000001146}, LiqVis = {101, 25.747, -385.45, -5.5912, 0.0000027937, 2}, VapVis = {102, 1.1983E-07, 0.79504, 20.791, 14003, 0}, LiqK = {16, 0.015945, -110.67, -0.74013, -0.0032664, -5.0786E-07}, VapK = {102, 0.00023592, 0.93945, 1368.6, 23794, 0}, Racketparam = 0, UniquacR = 2.88, UniquacQ = 2.52, ChaoSeadAF = 0.2876, ChaoSeadSP = 20249.5, ChaoSeadLV = 0.0794424);
-end OneTwodichloroethane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwopropyleneoxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwopropyleneoxide.mo
deleted file mode 100644
index 4c71ffc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OneTwopropyleneoxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OneTwopropyleneoxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 409, name = "OneTwopropyleneoxide", CAS = "75-56-9", Tc = 482.25, Pc = 4920000, Vc = 0.186, Cc = 0.228, Tb = 307.05, Tm = 161.22, TT = 161.22, TP = 0.965624, MW = 58.0791, LVB = 0.0705481, AF = 0.268304, SP = 19050, DM = 6.7E-30, SH = -61100000.0, IGHF = -9.372E+07, GEF = -2.58E+07, AS = 286700, HFMP = 6531000, HOC = -1.79E+09, LiqDen = {105, 1.5769, 0.28598, 482.25, 0.29139, 0}, VP = {101, 83.693, -5715.8, -9.522, 0.00001033, 2}, LiqCp = {16, 78704, 274.26, 7.2963, 0.0088641, -0.0000023407}, HOV = {106, 5.241305E+07, 1.339985, -1.496096, 0.72766, -0.151947}, VapCp = {16, 42195, -578.73, 12.252, 0.00010777, -4.7082E-08}, LiqVis = {101, 20.905, 283.5, -5.5156, 0.000016261, 2}, VapVis = {102, 1.1059E-07, 0.81831, 109.91, -5863.4, 0}, LiqK = {16, 0.10066, 294.75, -5.9561, 0.019433, -0.000039547}, VapK = {102, 0.00022671, 0.95467, 579.31, 32798, 0}, Racketparam = 0.228, UniquacR = 2.2663, UniquacQ = 1.856, ChaoSeadAF = 0.268304, ChaoSeadSP = 19050, ChaoSeadLV = 0.0705481);
-end OneTwopropyleneoxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutanol.mo
deleted file mode 100644
index ec9e3d6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onebutanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 94, name = "Onebutanol", CAS = "71-36-3", Tc = 563.05, Pc = 4423000, Vc = 0.275, Cc = 0.26, Tb = 390.88, Tm = 183.85, TT = 184.51, TP = 0.000320123, MW = 74.123, LVB = 0.09196, AF = 0.591, SP = 23510, DM = 5.83737E-30, SH = -134990000.0, IGHF = -2.746E+08, GEF = -1.503E+08, AS = 361480, HFMP = 9372000, HOC = -2.45601E+09, LiqDen = {105, 0.7931, 0.24201, 563.05, 0.22263, 0}, VP = {101, 94.3424, -9140.942, -10.0038, 1.706963E-06, 2}, LiqCp = {16, 118540, 928.1, -3.4067, 0.053827, -0.000053611}, HOV = {106, 1.03317E+08, 2.061287, -3.612692, 3.240107, -1.125287}, VapCp = {16, 63521, -568.25, 12.587, 0.0001566, -5.9966E-08}, LiqVis = {101, -44.688, 3409.1, 4.8758, -0.0000057302, 2}, VapVis = {102, 0.0000014735, 0.46162, 554.37, 6760.2, 0}, LiqK = {16, 0.019408, -19.063, -1.4625, -0.0014843, -4.7683E-07}, VapK = {102, 0.00022746, 1.1142, 3597.3, -411420, 0}, Racketparam = 0.2538, UniquacR = 3.4543, UniquacQ = 3.052, ChaoSeadAF = 0.593, ChaoSeadSP = 23289.2, ChaoSeadLV = 0.0919432);
-end Onebutanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutene.mo
deleted file mode 100644
index a9c09ba..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onebutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onebutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 78, name = "Onebutene", CAS = "106-98-9", Tc = 419.5, Pc = 4020000, Vc = 0.2408, Cc = 0.278, Tb = 266.92, Tm = 87.8, TT = 87.8, TP = 0.000000694, MW = 56.108, LVB = 0.09534, AF = 0.194, SP = 13630, DM = 1.13E-30, SH = -500000.0, IGHF = -500000, GEF = 7.041E+07, AS = 307400, HFMP = 3848000, HOC = -2.5408E+09, LiqDen = {105, 0.98, 0.25169, 419.54, 0.26645, 0}, VP = {101, 41.66588, -3605.004, -2.983562, 6.665773E-07, 2}, LiqCp = {16, 100270, 86.345, 7.7333, 0.00096546, 0.000020281}, HOV = {106, 3.5338E+07, 0.68186, -0.28099, -0.25369, 0.26017}, VapCp = {16, 53529, -619.26, 12.431, 0.000096632, -3.9013E-08}, LiqVis = {101, -10.764, 591.51, -0.0017307, 2.5723E-08, 2}, VapVis = {102, 7.0347E-07, 0.54535, 308.83, -232.73, 0}, LiqK = {16, 0.071267, 99.471, -4.2011, 0.014325, -0.000041157}, VapK = {102, 0.000092115, 1.1181, 717.19, 13037, 0}, Racketparam = 0.2736, UniquacR = 2.92, UniquacQ = 2.56, ChaoSeadAF = 0.2085, ChaoSeadSP = 13827.58, ChaoSeadLV = 0.0953);
-end Onebutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptanol.mo
deleted file mode 100644
index f9eb7f2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oneheptanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 346, name = "Oneheptanol", CAS = "111-70-6", Tc = 631.9, Pc = 3150000, Vc = 0.435, Cc = 0.261, Tb = 449.81, Tm = 239.15, TT = 239.15, TP = 0.0117728, MW = 116.203, LVB = 0.14195, AF = 0.582, SP = 21540, DM = 5.57E-30, SH = -216400000.0, IGHF = -3.32E+08, GEF = -1.253E+08, AS = 480000, HFMP = 1.322E+07, HOC = -4.2887E+09, LiqDen = {105, 0.53584, 0.24833, 632.61, 0.25556, 0}, VP = {101, 251.8216, -17683.63, -33.48375, 0.000017626, 2}, LiqCp = {16, -85727, 742.02, 4.7157, 0.026441, -0.000025674}, HOV = {106, 1.173181E+08, 1.489028, -2.632241, 3.547284, -1.892409}, VapCp = {16, 106760, -598.85, 13.165, 0.000054117, -4.1018E-08}, LiqVis = {101, -78.864, 5896.7, 9.4721, -3.3466E-07, 2}, VapVis = {102, 2.5718E-07, 0.65021, 248.54, 12.534, 0}, LiqK = {16, 0.090359, 1107.5, -13.417, 0.037115, -0.000045589}, VapK = {102, -0.060066, 0.28898, -3437.9, -1686200, 0}, Racketparam = 0.261, UniquacR = 5.2731, UniquacQ = 4.748, ChaoSeadAF = 0.582, ChaoSeadSP = 21540, ChaoSeadLV = 0.14195);
-end Oneheptanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptene.mo
deleted file mode 100644
index 28725a9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneheptene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oneheptene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 146, name = "Oneheptene", CAS = "592-76-7", Tc = 537.3, Pc = 2920000, Vc = 0.409, Cc = 0.267, Tb = 366.79, Tm = 154.12, TT = 154.12, TP = 0.00186, MW = 98.188, LVB = 0.14177, AF = 0.343, SP = 15310, DM = 2.1E-30, SH = -168070000.0, IGHF = -6.289E+07, GEF = 9.482E+07, AS = 425200, HFMP = 1.264E+07, HOC = -4.3499E+09, LiqDen = {105, 0.26107, 0.16952, 537.3, 0.1874, 0}, VP = {101, 109.9184, -7605.67, -13.43227, 0.0000123163, 2}, LiqCp = {16, 58419, 89.259, 10.549, 0.0039271, -8.6181E-07}, HOV = {106, 5.631368E+07, 1.145386, -1.731438, 1.615943, -0.650835}, VapCp = {16, 94067, -609.56, 13.043, 0.000046316, -2.1105E-08}, LiqVis = {101, -10.29, 827.04, -0.087144, 0.0000001052, 2}, VapVis = {102, 7.4687E-08, 0.81173, 52.725, 1460.7, 0}, LiqK = {16, -0.038053, -34.158, -1.0057, -0.0023353, -3.7702E-08}, VapK = {102, 0.000013676, 1.341, 365.19, 6251.8, 0}, Racketparam = 0.260462, UniquacR = 4.9441, UniquacQ = 4.184, ChaoSeadAF = 0.358, ChaoSeadSP = 15313.2, ChaoSeadLV = 0.141709);
-end Oneheptene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexanol.mo
deleted file mode 100644
index cc02ddd..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onehexanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 345, name = "Onehexanol", CAS = "111-27-3", Tc = 611.4, Pc = 3510000, Vc = 0.381, Cc = 0.263, Tb = 430.44, Tm = 228.55, TT = 228.55, TP = 0.0295499, MW = 102.177, LVB = 0.12519, AF = 0.58, SP = 21830, DM = 5.5E-30, SH = -216400000.0, IGHF = -3.18E+08, GEF = -1.344E+08, AS = 440000, HFMP = 1.54E+07, HOC = -3.67439E+09, LiqDen = {105, 0.12172, 0.11263, 611.4, 0.13194, 0}, VP = {101, 140.4065, -11996.05, -16.8497, 6.25688E-06, 2}, LiqCp = {16, -13352, 695.57, 4.4864, 0.026504, -0.000025444}, HOV = {106, 9.9912E+07, 1.0345, -0.71214, 0.038869, 0.22103}, VapCp = {16, 93733, -618.92, 13.098, -0.000028541, -8.6478E-09}, LiqVis = {101, -78.019, 5186.5, 9.8395, -0.0000094042, 2}, VapVis = {102, 2.3121E-07, 0.66402, 127.06, 17987, 0}, LiqK = {16, 0.09203, 1297.6, -15.712, 0.045447, -0.000056017}, VapK = {102, -2143900, -0.092957, 1.682E+08, -1.0339E+13, 0}, Racketparam = 0.263, UniquacR = 5.2731, UniquacQ = 4.748, ChaoSeadAF = 0.58, ChaoSeadSP = 21830, ChaoSeadLV = 0.12519);
-end Onehexanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexene.mo
deleted file mode 100644
index 866627d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onehexene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onehexene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 130, name = "Onehexene", CAS = "592-41-6", Tc = 504, Pc = 3143000, Vc = 0.3551, Cc = 0.266, Tb = 336.63, Tm = 133.39, TT = 133.39, TP = 0.000516, MW = 84.161, LVB = 0.1259, AF = 0.281, SP = 15130, DM = 1.5E-30, SH = -168070000.0, IGHF = -4.167E+07, GEF = 8.7E+07, AS = 386300, HFMP = 9347000, HOC = -3.7397E+09, LiqDen = {105, 0.42588, 0.20073, 504, 0.21659, 0}, VP = {101, 61.18966, -5302.032, -5.914346, 4.387106E-06, 2}, LiqCp = {16, 120740, 197.35, 7.4671, 0.012038, -0.0000076352}, HOV = {106, 4.3654E+07, 0.036065, 1.7176, -2.6805, 1.3349}, VapCp = {16, 79063, -588.63, 12.822, 0.00010837, -3.9549E-08}, LiqVis = {101, -10.027, 774.41, -0.14562, -2.993E-08, 2}, VapVis = {102, 7.708E-08, 0.81478, 53.202, 774.03, 0}, LiqK = {16, 0.049094, 18.334, -2.2175, 0.0015607, -0.000010695}, VapK = {102, 0.000064257, 1.1355, 445.14, 64830, 0}, Racketparam = 0, UniquacR = 4.27, UniquacQ = 3.64, ChaoSeadAF = 0.2463, ChaoSeadSP = 15136.7, ChaoSeadLV = 0.1258);
-end Onehexene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylFournpropylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylFournpropylbenzene.mo
deleted file mode 100644
index 12cd40c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylFournpropylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OnemethylFournpropylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 305, name = "OnemethylFournpropylbenzene", CAS = "1074-55-1", Tc = 658, Pc = 2860000, Vc = 0.482, Cc = 0.248, Tb = 456.53, Tm = 209.455, TT = 209.55, TP = 0.0171898, MW = 134.218, LVB = 0.157097, AF = 0.413441, SP = 17460, DM = 0, SH = -1209000000.0, IGHF = -2.314E+07, GEF = 1.382E+08, AS = 430400, HFMP = 1.151E+07, HOC = -5.5528E+09, LiqDen = {105, 0.48219, 0.24259, 658, 0.32531, 0}, VP = {101, 103.2332, -9321.423, -11.85346, 6.228128E-06, 2}, LiqCp = {16, 128960, -102.23, 11.269, 0.0022913, 5.0742E-07}, HOV = {106, 5.9632E+07, -0.13089, 1.5769, -1.8325, 0.74608}, VapCp = {16, 97127, -599.11, 13.273, 0.000011665, -1.9003E-08}, LiqVis = {101, -65.00531, 3273.06, 8.413079, -0.0000101347, 2}, VapVis = {102, 7.8653E-08, 0.80621, 137.95, -9253.2, 0}, LiqK = {16, -0.081049, 3.2759, -1.4026, -0.00043634, -7.9035E-07}, VapK = {102, 0.000083347, 1.0517, 573.97, 33136, 0}, Racketparam = 0.248, UniquacR = 6.0066, UniquacQ = 4.616, ChaoSeadAF = 0.413441, ChaoSeadSP = 17460, ChaoSeadLV = 0.157097);
-end OnemethylFournpropylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylOneethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylOneethylcyclopentane.mo
deleted file mode 100644
index ea6203c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylOneethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OnemethylOneethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 272, name = "OnemethylOneethylcyclopentane", CAS = "16747-50-5", Tc = 582, Pc = 3020000, Vc = 0.428, Cc = 0.267, Tb = 394.672, Tm = 129.35, TT = 129.35, TP = 2.16711E-07, MW = 112.213, LVB = 0.144502, AF = 0.329811, SP = 15840, DM = 0, SH = -1209000000.0, IGHF = -1.549E+08, GEF = 5.067E+07, AS = 401000, HFMP = 0, HOC = -4.88921E+09, LiqDen = {105, 0.62398, 0.26553, 582, 0.28568, 0}, VP = {101, 70.30095, -6628.265, -7.112201, 3.497931E-06, 2}, LiqCp = {16, 96111, -59.039, 10.164, 0.0078449, -0.0000067267}, HOV = {106, 5.14848E+07, 0.288357, 0.487845, -0.669561, 0.236062}, VapCp = {16, 80936, -652.6, 13.464, -0.00013102, 2.6661E-08}, LiqVis = {101, -10.773, 1099.9, -0.048343, 1.7107E-07, 2}, VapVis = {102, 4.5602E-07, 0.57042, 274.82, -5055.3, 0}, LiqK = {16, -0.0033033, 9.4359, -1.8646, -0.00027, -0.0000024258}, VapK = {102, 0.0026462, 0.59802, 270.85, 473470, 0}, Racketparam = 0.267, UniquacR = 5.3937, UniquacQ = 4.396, ChaoSeadAF = 0.329811, ChaoSeadSP = 15840, ChaoSeadLV = 0.144502);
-end OnemethylOneethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylThreenpropylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylThreenpropylbenzene.mo
deleted file mode 100644
index 8fee3bb..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/OnemethylThreenpropylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model OnemethylThreenpropylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 304, name = "OnemethylThreenpropylbenzene", CAS = "1074-43-7", Tc = 656, Pc = 2860000, Vc = 0.482, Cc = 0.249, Tb = 455.13, Tm = 190.57, TT = 190.57, TP = 0.000721452, MW = 134.218, LVB = 0.156623, AF = 0.412785, SP = 17510, DM = 4.07E-31, SH = -1209000000.0, IGHF = -2.414E+07, GEF = 1.352E+08, AS = 436800, HFMP = 1.06E+07, HOC = -5.5516E+09, LiqDen = {105, 0.18222, 0.15152, 656, 0.20178, 0}, VP = {101, 107.4588, -9508.773, -12.48918, 6.776919E-06, 2}, LiqCp = {16, 156110, -38.093, 10.159, 0.0050313, -0.0000015247}, HOV = {106, 6.194565E+07, 0.0524158, 1.088831, -1.22236, 0.439479}, VapCp = {16, 97127, -599.11, 13.273, 0.000011665, -1.9003E-08}, LiqVis = {101, -17.301, 1601.4, 0.91018, -0.0000014707, 2}, VapVis = {102, 7.3681E-08, 0.81524, 130.94, -9552, 0}, LiqK = {16, -0.074198, 4.023, -1.4364, -0.00042252, -0.0000008562}, VapK = {102, 0.000083513, 1.0517, 570.8, 33790, 0}, Racketparam = 0.249, UniquacR = 6.0066, UniquacQ = 4.616, ChaoSeadAF = 0.412785, ChaoSeadSP = 17510, ChaoSeadLV = 0.156623);
-end OnemethylThreenpropylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylindene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylindene.mo
deleted file mode 100644
index 182dbbb..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylindene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onemethylindene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 168, name = "Onemethylindene", CAS = "767-59-9", Tc = 703, Pc = 3460000, Vc = 0.436, Cc = 0.258, Tb = 471.65, Tm = 0, TT = 0, TP = 0, MW = 130.186, LVB = 0.134643, AF = 0.334861, SP = 19120, DM = 0, SH = -168070000.0, IGHF = 1.912E+08, GEF = 2.97E+08, AS = 354000, HFMP = 0, HOC = -5.28E+09, LiqDen = {105, 0.61191, 0.25938, 703, 0.29267, 0}, VP = {101, 86.18824, -8859.756, -9.212247, 3.741568E-06, 2}, LiqCp = {16, 152820, -189.88, 10.81, 0.00256, -0.0000011085}, HOV = {106, 8.0901E+07, 1.9933, -4.5733, 5.098, -2.0923}, VapCp = {16, -133130, -213.74, 13.196, 0.00017372, -4.8074E-08}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {102, 0.0000033072, 0.32792, 786.18, 680.97, 0}, LiqK = {16, -0.018671, -66.592, -0.99313, -0.0021306, 2.0941E-07}, VapK = {102, 0.000091267, 1.0385, 720.72, -19410, 0}, Racketparam = 0.261176, UniquacR = 5.105471, UniquacQ = 3.424, ChaoSeadAF = 0.33569, ChaoSeadSP = 18312.4, ChaoSeadLV = 0.134207);
-end Onemethylindene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylnaphthalene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylnaphthalene.mo
deleted file mode 100644
index a52d2e1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onemethylnaphthalene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onemethylnaphthalene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 174, name = "Onemethylnaphthalene", CAS = "90-12-0", Tc = 772, Pc = 3600000, Vc = 0.462, Cc = 0.259, Tb = 517.84, Tm = 242.67, TT = 242.67, TP = 0.043382, MW = 142.2, LVB = 0.13937, AF = 0.348, SP = 19890, DM = 1.7E-30, SH = -168070000.0, IGHF = 1.169E+08, GEF = 2.179E+08, AS = 377400, HFMP = 6945000, HOC = -5.5958E+09, LiqDen = {105, 0.59739, 0.26468, 772, 0.2918, 0}, VP = {101, 73.89852, -9115.529, -7.252019, 2.094885E-06, 2}, LiqCp = {16, 134210, 116.27, 8.3119, 0.012175, -0.000010378}, HOV = {106, 7.0001E+07, 0.3382, 0.060354, -0.021035, -0.0086978}, VapCp = {16, 67134, -530.75, 13.222, -0.000033319, -3.2916E-09}, LiqVis = {101, 8.170859, 1169.912, -3.261889, 6.874562E-06, 2}, VapVis = {102, 2.4606E-07, 0.6456, 239.2, -8656.8, 0}, LiqK = {16, -0.049867, 2.2749, -1.45, -0.00045282, -7.0729E-07}, VapK = {102, 1.5229, -0.35024, -1389.7, 2465100, 0}, Racketparam = 0, UniquacR = 5.610415, UniquacQ = 3.936, ChaoSeadAF = 0.3337, ChaoSeadSP = 20129.2, ChaoSeadLV = 0.1398);
-end Onemethylnaphthalene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitrobutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitrobutane.mo
deleted file mode 100644
index 33d160e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitrobutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onenitrobutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 383, name = "Onenitrobutane", CAS = "627-05-4", Tc = 623, Pc = 3600000, Vc = 0.338, Cc = 0.248, Tb = 425.92, Tm = 191.82, TT = 191.82, TP = 0.00329301, MW = 103.12, LVB = 0.106476, AF = 0.454584, SP = 20780, DM = 1.13E-29, SH = -22600000.0, IGHF = -1.439E+08, GEF = 1.5E+07, AS = 379100, HFMP = 1.27E+07, HOC = -2.46965E+09, LiqDen = {105, 0.709, 0.24401, 623, 0.28339, 0}, VP = {101, 275.2044, -15483.84, -38.70231, 0.0000386, 2}, LiqCp = {16, 56152, 6.6387, 10.762, 0.003942, -0.0000013791}, HOV = {106, 5.525605E+07, -1.025854, 4.47262, -4.675607, 1.466497}, VapCp = {16, 69545, -548.77, 12.729, 0.0001233, -6.7656E-08}, LiqVis = {101, -8.4776, 1274.9, -0.51437, 0.0000019485, 2}, VapVis = {102, 9.0308E-08, 0.82266, 144.36, -9193.7, 0}, LiqK = {16, -0.088752, 4.014, -1.2388, -0.00043694, -0.0000009691}, VapK = {102, 0.00013665, 0.98745, 630.3, 15608, 0}, Racketparam = 0.248, UniquacR = 4.0317, UniquacQ = 3.488, ChaoSeadAF = 0.454584, ChaoSeadSP = 20780, ChaoSeadLV = 0.106476);
-end Onenitrobutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitropropane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitropropane.mo
deleted file mode 100644
index 1c2f8c9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenitropropane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onenitropropane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 381, name = "Onenitropropane", CAS = "108-03-2", Tc = 605, Pc = 4350000, Vc = 0.288, Cc = 0.249, Tb = 404.33, Tm = 169.16, TT = 169.16, TP = 0.000688982, MW = 89.0932, LVB = 0.0894679, AF = 0.412773, SP = 21290, DM = 1.22E-29, SH = -22600000.0, IGHF = -1.24E+08, GEF = 335000, AS = 355600, HFMP = 9220000, HOC = -1.859E+09, LiqDen = {105, 0.85075, 0.24483, 605, 0.27413, 0}, VP = {101, 38.65807, -5750.644, -2.115655, -1.225423E-06, 2}, LiqCp = {16, -8835.6, 176.43, 9.53, 0.0096176, -0.0000099253}, HOV = {106, 5.6307E+07, 0.47767, -0.18338, 0.057255, -0.028311}, VapCp = {16, 57745, -538.37, 12.483, 0.00011202, -5.1502E-08}, LiqVis = {101, -19.997, 1653, 1.2605, 0.0000015194, 2}, VapVis = {102, 1.7108E-07, 0.7401, 220.03, -15.073, 0}, LiqK = {16, -0.068381, 13.221, -1.3628, -0.00024357, -0.0000012535}, VapK = {102, 0.0022117, 0.61538, 875.34, 312410, 0}, Racketparam = 0.249, UniquacR = 3.3573, UniquacQ = 2.948, ChaoSeadAF = 0.412773, ChaoSeadSP = 21290, ChaoSeadLV = 0.0894679);
-end Onenitropropane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenonene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenonene.mo
deleted file mode 100644
index 4e35cee..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onenonene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onenonene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 260, name = "Onenonene", CAS = "124-11-8", Tc = 594, Pc = 2330000, Vc = 0.526, Cc = 0.248, Tb = 420.03, Tm = 191.91, TT = 191.91, TP = 0.0204, MW = 126.242, LVB = 0.17405, AF = 0.411, SP = 15500, DM = 2.0E-30, SH = -1209000000.0, IGHF = -1.035E+08, GEF = 1.123E+08, AS = 504100, HFMP = 1.9359E+07, HOC = -5.5716E+09, LiqDen = {105, 0.18062, 0.15802, 594, 0.18969, 0}, VP = {101, 120.37, -9418.7, -14.583, 0.0000094863, 2}, LiqCp = {16, 58309, 119.15, 10.75, 0.0042025, -0.0000015805}, HOV = {106, 5.0729E+07, -0.72017, 3.2276, -3.6347, 1.4659}, VapCp = {16, 122350, -622.4, 13.352, -0.000015236, -2.3169E-10}, LiqVis = {101, -10.296, 1057.3, -0.12431, 2.0281E-07, 2}, VapVis = {102, 7.2319E-08, 0.81707, 155.31, -12572, 0}, LiqK = {16, 0.024602, -118.29, -0.40946, -0.0056136, 0.0000021909}, VapK = {102, 0.000019761, 1.2983, 563.96, 24829, 0}, Racketparam = 0.248, UniquacR = 6.2929, UniquacQ = 5.264, ChaoSeadAF = 0.411, ChaoSeadSP = 15500, ChaoSeadLV = 0.17405);
-end Onenonene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneoctene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneoctene.mo
deleted file mode 100644
index 50b5541..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneoctene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oneoctene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 259, name = "Oneoctene", CAS = "111-66-0", Tc = 567, Pc = 2680000, Vc = 0.468, Cc = 0.266, Tb = 394.44, Tm = 171.45, TT = 171.45, TP = 0.00298, MW = 112.215, LVB = 0.15785, AF = 0.393, SP = 15540, DM = 1.4E-30, SH = -1209000000.0, IGHF = -8.194E+07, GEF = 1.057E+08, AS = 463700, HFMP = 1.531E+07, HOC = -4.961E+09, LiqDen = {105, 0.44684, 0.23463, 567, 0.24846, 0}, VP = {101, 177.7155, -11137.29, -23.58923, 0.000019592, 2}, LiqCp = {16, -24253, 87.834, 11.35, 0.0032002, -0.0000012467}, HOV = {106, 5.7062E+07, 0.3453, 0.41628, -0.36125, -0.059539}, VapCp = {16, 106430, -593.77, 13.154, 0.00006689, -2.6274E-08}, LiqVis = {101, -5.8042, 945.32, -0.93827, 0.0000032767, 2}, VapVis = {102, 0.000047664, 0.084052, 3514.6, 21127, 0}, LiqK = {16, 0.035226, 40.754, -2.2668, 0.00092297, -0.0000060301}, VapK = {102, 0.000014109, 1.354, 610.51, -30915, 0}, Racketparam = 0.266, UniquacR = 5.6185, UniquacQ = 4.724, ChaoSeadAF = 0.393, ChaoSeadSP = 15540, ChaoSeadLV = 0.15785);
-end Oneoctene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentanol.mo
deleted file mode 100644
index ddab692..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onepentanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 341, name = "Onepentanol", CAS = "71-41-0", Tc = 588.15, Pc = 3909000, Vc = 0.326, Cc = 0.262, Tb = 411.16, Tm = 194.95, TT = 195.56, TP = 0.000345245, MW = 88.15, LVB = 0.10863, AF = 0.579, SP = 22520, DM = 5.67059E-30, SH = -216400000.0, IGHF = -3.0016E+08, GEF = -1.46022E+08, AS = 402501, HFMP = 9790560, HOC = -3.06051E+09, LiqDen = {105, 0.54137, 0.21848, 588.15, 0.20812, 0}, VP = {101, 150.9933, -11938.85, -18.59103, 8.735585E-06, 2}, LiqCp = {16, 151460, 721.52, -3.5691, 0.059604, -0.000063767}, HOV = {106, 1.1853E+08, 1.9668, -2.5741, 1.6268, -0.41037}, VapCp = {16, 78144, -573.83, 12.781, 0.00015431, -6.6745E-08}, LiqVis = {101, -29.696, 3126.2, 2.4167, -0.0000024327, 2}, VapVis = {102, 1.9935E-07, 0.70293, 200.97, -2040.7, 0}, LiqK = {16, 0.14679, 201570, -2097.5, 7.255, -0.0083973}, VapK = {102, 1221.5, 0.95117, 8.0014E+09, -2.8255E+11, 0}, Racketparam = 0.262, UniquacR = 4.5987, UniquacQ = 4.208, ChaoSeadAF = 0.579, ChaoSeadSP = 22520, ChaoSeadLV = 0.10863);
-end Onepentanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentene.mo
deleted file mode 100644
index 08c50da..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepentene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onepentene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 108, name = "Onepentene", CAS = "109-67-1", Tc = 464.8, Pc = 3560000, Vc = 0.2984, Cc = 0.275, Tb = 303.11, Tm = 108.016, TT = 108.016, TP = 0.000037, MW = 70.134, LVB = 0.1104, AF = 0.237, SP = 14410, DM = 1.7E-30, SH = -27600000.0, IGHF = -2.162E+07, GEF = 7.837E+07, AS = 346200, HFMP = 5937400, HOC = -3.13037E+09, LiqDen = {105, 0.44335, 0.18566, 473.43, 0.23587, 0}, VP = {101, 39.52954, -3893.399, -2.686504, 1.952359E-06, 2}, LiqCp = {16, 92753, 117.21, 8.6537, 0.007447, -0.0000026759}, HOV = {106, 3.077277E+07, -0.570706, 2.243398, -2.258065, 0.928488}, VapCp = {16, 66520, -609.44, 12.683, 0.000062395, -2.5354E-08}, LiqVis = {101, -10.79591, 682.8004, 0.00564316, -9.176806E-07, 2}, VapVis = {102, 0.0000017549, 0.42295, 561.21, -17046, 0}, LiqK = {16, -0.010825, -30.065, -1.1172, -0.0023327, -0.0000015541}, VapK = {102, 0.0000026412, 1.549, -2.5891, 24389, 0}, Racketparam = 0.2944, UniquacR = 3.5953, UniquacQ = 3.104, ChaoSeadAF = 0.2198, ChaoSeadSP = 14420.78, ChaoSeadLV = 0.1104);
-end Onepentene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onephenylnaphthalene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onephenylnaphthalene.mo
deleted file mode 100644
index c8ba09f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onephenylnaphthalene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onephenylnaphthalene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 187, name = "Onephenylnaphthalene", CAS = "605-02-7", Tc = 849, Pc = 2630000, Vc = 0.656, Cc = 0.244, Tb = 607.15, Tm = 318.15, TT = 318.15, TP = 0.282425, MW = 204.266, LVB = 0.189925, AF = 0.530878, SP = 19910, DM = 0, SH = -168070000.0, IGHF = 2.47E+08, GEF = 3.71108E+08, AS = 459000, HFMP = 0, HOC = -7.92E+09, LiqDen = {105, 0.36822, 0.24155, 849, 0.29048, 0}, VP = {101, 136.2471, -14614.66, -16.02104, 5.425361E-06, 2}, LiqCp = {16, 180260, -2.5213, 10.037, 0.0072742, -0.0000049656}, HOV = {106, 1.0967E+08, 1.3201, -2.3901, 2.4598, -0.96728}, VapCp = {16, 77509, -521.03, 13.602, -0.000094316, 9.2363E-09}, LiqVis = {101, -6.144, 1205.6, -0.56682, -0.0000005706, 2}, VapVis = {102, 0.0000030793, 0.30949, 742.15, 16342, 0}, LiqK = {16, -0.052282, -21.251, -1.3126, -0.00073663, -3.6032E-07}, VapK = {102, 0.000092251, 0.99676, 619.05, 42835, 0}, Racketparam = 0, UniquacR = 7.679631, UniquacQ = 5.184, ChaoSeadAF = 0.530878, ChaoSeadSP = 19911.7, ChaoSeadLV = 0.189925);
-end Onephenylnaphthalene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepropanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepropanol.mo
deleted file mode 100644
index 9f4362f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onepropanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onepropanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 69, name = "Onepropanol", CAS = "71-23-8", Tc = 536.78, Pc = 5175000, Vc = 0.219, Cc = 0.254, Tb = 370.93, Tm = 146.95, TT = 146.95, TP = 3.69121E-07, MW = 60.096, LVB = 0.07514, AF = 0.629, SP = 24450, DM = 5.6E-30, SH = -104680000.0, IGHF = -2.552E+08, GEF = -1.599E+08, AS = 322470, HFMP = 5372000, HOC = -1.84381E+09, LiqDen = {105, 1.1537, 0.26188, 536.78, 0.23549, 0}, VP = {101, 141.3971, -10434.27, -17.45829, 0.0000113246, 2}, LiqCp = {16, 100520, 125.3, 4.7194, 0.024513, -0.000019669}, HOV = {106, 8.36461E+07, 3.338812, -9.831137, 11.8901, -4.905709}, VapCp = {16, 56681, -627.22, 12.379, 0.00012228, -5.0293E-08}, LiqVis = {101, -98.08798, 4904.749, 13.57131, -0.0000219968, 2}, VapVis = {102, 7.9322E-07, 0.54936, 416.77, -100.81, 0}, LiqK = {16, 0.076645, -189.91, -0.13475, -0.0069283, 0.0000033645}, VapK = {102, -453.4, 0.64532, -2.843E+08, -2.8865E+10, 0}, Racketparam = 0.2451, UniquacR = 2.78, UniquacQ = 2.51, ChaoSeadAF = 0.623, ChaoSeadSP = 24557.3, ChaoSeadLV = 0.0749393);
-end Onepropanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneundecene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneundecene.mo
deleted file mode 100644
index a4b95fd..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oneundecene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oneundecene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 261, name = "Oneundecene", CAS = "821-95-4", Tc = 637.8, Pc = 2044000, Vc = 0.657, Cc = 0.253, Tb = 465.82, Tm = 223.99, TT = 223.99, TP = 0.0473, MW = 154.292, LVB = 0.2065, AF = 0.522466, SP = 15680, DM = 1.8E-30, SH = -1209000000.0, IGHF = -1.449E+08, GEF = 1.283E+08, AS = 582180, HFMP = 1.699E+07, HOC = -6.7878E+09, LiqDen = {105, 0.38001, 0.24991, 637.8, 0.28571, 0}, VP = {101, 93.64799, -9306.494, -10.26144, 4.149832E-06, 2}, LiqCp = {16, 99868, 144.48, 10.69, 0.0042614, -0.0000010791}, HOV = {106, 2.3696E+07, -6.3933, 18.084, -19.033, 7.4719}, VapCp = {16, 138670, -549.63, 13.4, 0.00014861, -5.2026E-08}, LiqVis = {101, -49.01257, 2643.166, 5.957949, -8.451873E-06, 2}, VapVis = {102, 5.0406E-08, 0.85093, 112.38, -8900.1, 0}, LiqK = {16, 0.067847, -250.41, 0.40201, -0.0082828, 0.0000014058}, VapK = {102, 0.000018335, 1.3031, 709.58, -2804.6, 0}, Racketparam = 0.253, UniquacR = 7.6417, UniquacQ = 6.344, ChaoSeadAF = 0.522466, ChaoSeadSP = 15680, ChaoSeadLV = 0.2065);
-end Oneundecene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onitrotoluene.mo
deleted file mode 100644
index 43bc7a7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Onitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Onitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 384, name = "Onitrotoluene", CAS = "88-72-2", Tc = 720, Pc = 3800000, Vc = 0.441, Cc = 0.28, Tb = 494.85, Tm = 269.65, TT = 269.98, TP = 1.72928, MW = 137.136, LVB = 0.118442, AF = 0.487824, SP = 21420, DM = 1.25E-29, SH = -22600000.0, IGHF = 4.71E+07, GEF = 1.715E+08, AS = 380800, HFMP = 1.148E+07, HOC = -3.5914E+09, LiqDen = {105, 0.49527, 0.21852, 720, 0.27202, 0}, VP = {101, 110.496, -10356.21, -12.86215, 7.080827E-06, 2}, LiqCp = {16, 167320, 675.67, 2.8482, 0.023742, -0.00001748}, HOV = {106, 7.853006E+07, 0.959622, -1.263212, 1.073123, -0.436452}, VapCp = {16, 126830, -1053.5, 13.982, -0.0011308, 3.2272E-07}, LiqVis = {101, -227.78, 9560.6, 33.954, -0.00004379, 2}, VapVis = {102, 3.9111E-08, 0.92063, 61.279, -2619.3, 0}, LiqK = {16, -0.28005, 20.455, -0.90478, 0.000049377, -4.8022E-07}, VapK = {102, 0.00013501, 0.95252, 632.43, 27080, 0}, Racketparam = 0.28, UniquacR = 4.2801, UniquacQ = 3.272, ChaoSeadAF = 0.487824, ChaoSeadSP = 21420, ChaoSeadLV = 0.118442);
-end Onitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Otoluicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Otoluicacid.mo
deleted file mode 100644
index 11415df..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Otoluicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Otoluicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 397, name = "Otoluicacid", CAS = "118-90-1", Tc = 751, Pc = 3860000, Vc = 0.397, Cc = 0.245, Tb = 532, Tm = 376.85, TT = 376.85, TP = 237.832, MW = 136.148, LVB = 0.126888, AF = 0.657237, SP = 22920, DM = 5.67059E-30, SH = -22600000.0, IGHF = -3.22796E+08, GEF = -2.13346E+08, AS = 406141, HFMP = 2.01774E+07, HOC = -3.69902E+09, LiqDen = {105, 0.61816, 0.24687, 751, 0.2856, 0}, VP = {101, 133.1988, -13740.37, -15.5105, 5.245068E-06, 2}, LiqCp = {16, 129490, 18.011, 10.105, 0.0057419, -0.000003975}, HOV = {106, 9.9956E+07, 0.80217, -0.93427, 0.8805, -0.3406}, VapCp = {16, 85949, -929.05, 14.065, -0.0013145, 5.0858E-07}, LiqVis = {101, -8.7015, 1473.1, -0.25079, 0.0000003109, 2}, VapVis = {102, 1.2379E-07, 0.7551, 177.89, -5611.1, 0}, LiqK = {16, -0.13162, 29.195, -1.2663, 0.000070644, -8.4448E-07}, VapK = {102, 0.000027427, 1.1315, 204.73, 55122, 0}, Racketparam = 0.245, UniquacR = 5.058, UniquacQ = 3.912, ChaoSeadAF = 0.657237, ChaoSeadSP = 22920, ChaoSeadLV = 0.126888);
-end Otoluicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxalicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxalicacid.mo
deleted file mode 100644
index 480d8c3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxalicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oxalicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 393, name = "Oxalicacid", CAS = "144-62-7", Tc = 804, Pc = 7020000, Vc = 0.205, Cc = 0.215, Tb = 569, Tm = 462.65, TT = 462.65, TP = 2152.34, MW = 90.0349, LVB = 0.0614585, AF = 0.917597, SP = 35980, DM = 8.77E-30, SH = -22600000.0, IGHF = -7.338E+08, GEF = -6.614E+08, AS = 343300, HFMP = 0, HOC = -2.01E+08, LiqDen = {105, 1.0501, 0.215, 804, 0.28571, 0}, VP = {101, 216.92, -20979, -27.004, 0.0000086326, 2}, LiqCp = {16, 81965, -1.9623, 9.0826, 0.0038828, 2.1663E-07}, HOV = {106, 1.2079E+08, 0.30321, 0.62049, -0.9257, 0.38682}, VapCp = {16, 25231, -1473.6, 15.259, -0.0058042, 0.0000026122}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {102, 1.3016E-07, 0.7814, 154.56, -3949.8, 0}, LiqK = {16, -0.088775, -213.56, 0.1118, -0.0022725, 3.5301E-07}, VapK = {102, 0.084868, 0.23486, 15441, 507600, 0}, Racketparam = 0.215, UniquacR = 2.6026, UniquacQ = 2.448, ChaoSeadAF = 0.917597, ChaoSeadSP = 35980, ChaoSeadLV = 0.0614585);
-end Oxalicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxygen.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxygen.mo
deleted file mode 100644
index 6b7214b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxygen.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oxygen
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 23, name = "Oxygen", CAS = "7782-44-7", Tc = 154.58, Pc = 5043000, Vc = 0.07337, Cc = 0.288, Tb = 90.17, Tm = 54.361, TT = 54.361, TP = 150, MW = 31.999, LVB = 0.02785, AF = 0.022, SP = 8182, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 205043, HFMP = 444000, HOC = 0, LiqDen = {105, 2.6097, 0.23614, 154.78, 0.23695, 0}, VP = {101, 40.55487, -1120.543, -3.776114, 0.0000485344, 2}, LiqCp = {16, 53393, -1966.4, 48.21, -0.31631, 0.0010466}, HOV = {106, 1.0672E+07, 1.5661, -3.4356, 3.5416, -1.2718}, VapCp = {16, 29061.62, -1470.897, 11.10778, -0.00128484, 3.183122E-07}, LiqVis = {101, -5.2319, 116.13, -1.0315, 0.0000034376, 2}, VapVis = {102, 8.0134E-07, 0.60321, 56.09, 1584.9, 0}, LiqK = {16, -0.19654, -10.535, -0.46717, -0.0052064, -3.3418E-07}, VapK = {102, 0.0004508, 0.74544, 58.278, -562.62, 0}, Racketparam = 0.2908, UniquacR = 0.857, UniquacQ = 0.94, ChaoSeadAF = 0.019, ChaoSeadSP = 8181.93, ChaoSeadLV = 0.0280225);
-end Oxygen;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxylene.mo
deleted file mode 100644
index b8c30e1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Oxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Oxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 151, name = "Oxylene", CAS = "95-47-6", Tc = 630.3, Pc = 3732000, Vc = 0.37, Cc = 0.263, Tb = 417.59, Tm = 247.98, TT = 247.98, TP = 21.842, MW = 106.167, LVB = 0.12125, AF = 0.312, SP = 18390, DM = 2.1E-30, SH = -168070000.0, IGHF = 1.908E+07, GEF = 1.22E+08, AS = 353830, HFMP = 1.36E+07, HOC = -4.333E+09, LiqDen = {105, 0.69962, 0.26143, 630.3, 0.27365, 0}, VP = {101, 88.08217, -7844.793, -9.738423, 5.713756E-06, 2}, LiqCp = {16, 134490, -170.61, 10.247, 0.0049096, -0.0000031727}, HOV = {106, 6.6979E+07, 1.259, -1.849, 1.5198, -0.50455}, VapCp = {16, 73986, -589.13, 12.936, 0.000080122, -4.5074E-08}, LiqVis = {101, -11.059, 1251.7, -0.076438, 0.000001254, 2}, VapVis = {102, 6.783E-08, 0.82039, -1.2715, 13072, 0}, LiqK = {16, -0.018751, -22.77, -1.3391, -0.0014281, -6.1692E-07}, VapK = {102, 0.0000059387, 1.356, -206, 65058, 0}, Racketparam = 0.2633, UniquacR = 4.66, UniquacQ = 3.54, ChaoSeadAF = 0.2904, ChaoSeadSP = 18389.04, ChaoSeadLV = 0.1212);
-end Oxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ozone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ozone.mo
deleted file mode 100644
index c3cecfc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ozone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ozone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 201, name = "Ozone", CAS = "10028-15-6", Tc = 261.05, Pc = 5570000, Vc = 0.0894, Cc = 0.229, Tb = 161.8, Tm = 22.1499, TT = 80.15, TP = 0.734621, MW = 47.998, LVB = 0.0354, AF = 0.224, SP = 18740, DM = 1.8E-30, SH = 143100000.0, IGHF = 1.431E+08, GEF = 1.63164E+08, AS = 238823, HFMP = 2000000, HOC = -1.42671E+08, LiqDen = {105, 2.6432, 0.26544, 261.05, 0.25239, 0}, VP = {101, 33.80011, -2066.264, -1.865143, 3.696996E-08, 2}, LiqCp = {16, 64500, -60.205, 9.9787, 0.0080434, -0.000010929}, HOV = {106, 1.6254E+07, -0.073447, 0.14823, 0.62225, -0.43277}, VapCp = {16, 32859.57, -604.7407, 10.91207, -0.000287995, 2.632407E-08}, LiqVis = {101, -37.036, 815.78, 4.8971, -0.000047646, 2}, VapVis = {102, 0.0000001896, 0.78539, 36.908, -2041.9, 0}, LiqK = {16, 0.23255, -678.09, -6.5705, -0.074977, 0.00025391}, VapK = {102, 0.0043907, 0.47832, 709.48, 233.72, 0}, Racketparam = 0.229, UniquacR = 1.1, UniquacQ = 1.27, ChaoSeadAF = 0.224, ChaoSeadSP = 18740, ChaoSeadLV = 0.0354);
-end Ozone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcresol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcresol.mo
deleted file mode 100644
index 0ca548c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcresol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pcresol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 143, name = "Pcresol", CAS = "106-44-5", Tc = 704.5, Pc = 5150000, Vc = 0.277, Cc = 0.244, Tb = 475.12, Tm = 307.93, TT = 307.93, TP = 34.4658, MW = 108.14, LVB = 0.105, AF = 0.51, SP = 24030, DM = 5.2E-30, SH = -168070000.0, IGHF = -1.2535E+08, GEF = -3.166E+07, AS = 350750, HFMP = 1.2707E+07, HOC = -3.52256E+09, LiqDen = {105, 0.94818, 0.2877, 704.66, 0.2873, 0}, VP = {101, 236.9207, -17215.31, -31.28645, 0.0000163766, 2}, LiqCp = {16, 142400, 625.27, 3.2944, 0.02818, -0.000027958}, HOV = {106, 1.3617E+08, 1.404, 0.8091, -3.6055, 2.0268}, VapCp = {16, 58748, -529.02, 12.887, -0.0000351, -1.6131E-09}, LiqVis = {101, -820.7853, 35522.87, 124.3969, -0.000127538, 2}, VapVis = {102, 1.4308E-07, 0.74508, 159.9, -24.834, 0}, LiqK = {16, 0.061771, -123.88, -1.1823, -0.0033339, 0.0000010151}, VapK = {102, 0.00016735, 0.93839, 592.49, 25704, 0}, Racketparam = 0, UniquacR = 4.7567, UniquacQ = 3.888, ChaoSeadAF = 0.508, ChaoSeadSP = 23827.4, ChaoSeadLV = 0.104957);
-end Pcresol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcymene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcymene.mo
deleted file mode 100644
index fbf9a9d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pcymene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pcymene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 293, name = "Pcymene", CAS = "99-87-6", Tc = 652, Pc = 2800000, Vc = 0.497, Cc = 0.248, Tb = 450.26, Tm = 205.25, TT = 205.25, TP = 0.010391, MW = 134.221, LVB = 0.15749, AF = 0.376, SP = 17290, DM = 0, SH = -1209000000.0, IGHF = -2.799E+07, GEF = 1.3352E+08, AS = 426400, HFMP = 9661000, HOC = -5.558E+09, LiqDen = {105, 0.44838, 0.23842, 653.16, 0.26866, 0}, VP = {101, 130.8986, -10357.88, -16.09943, 9.850105E-06, 2}, LiqCp = {16, 99148, 48.442, 10.281, 0.006034, -0.0000045515}, HOV = {106, 8.966039E+07, 1.950064, -3.032433, 2.16162, -0.588861}, VapCp = {16, 119360, -822.32, 13.841, -0.00060036, 1.8085E-07}, LiqVis = {101, -29.824, 1974.9, 2.8359, -0.0000010565, 2}, VapVis = {102, 0.0000032148, 0.32014, 730.34, 10237, 0}, LiqK = {16, 0.018679, -10.656, -1.722, -0.0015047, -7.6885E-07}, VapK = {102, 0.00010761, 1.0275, 670.75, 67288, 0}, Racketparam = 0.248, UniquacR = 6.0058, UniquacQ = 4.612, ChaoSeadAF = 0.376, ChaoSeadSP = 17290, ChaoSeadLV = 0.15749);
-end Pcymene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdichlorobenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdichlorobenzene.mo
deleted file mode 100644
index f2b6c3c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdichlorobenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pdichlorobenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 120, name = "Pdichlorobenzene", CAS = "106-46-7", Tc = 684.75, Pc = 4070000, Vc = 0.351, Cc = 0.251, Tb = 447.21, Tm = 326.14, TT = 326.14, TP = 1225.03, MW = 147.002, LVB = 0.117406, AF = 0.284638, SP = 19330, DM = 0, SH = -168070000.0, IGHF = 2.25E+07, GEF = 7.67E+07, AS = 336740, HFMP = 1.82E+07, HOC = -2.802E+09, LiqDen = {105, 0.74861, 0.26271, 684.75, 0.30815, 0}, VP = {101, 40.63688, -6607.72, -2.221184, -3.90747E-06, 2}, LiqCp = {16, 155200, 855.07, 0.88585, 0.024843, -0.000014582}, HOV = {106, 6.112633E+07, 0.426201, -0.0366365, 0.00811781, -0.00754654}, VapCp = {16, 55695, -489.46, 12.649, -0.00012524, 2.3115E-08}, LiqVis = {101, -131.86, 5312.8, 19.284, -0.000029085, 2}, VapVis = {102, 1.5946E-07, 0.76369, 193.94, -148.97, 0}, LiqK = {16, 0.02927, -28.287, -2.0319, 0.000077764, -0.0000037797}, VapK = {102, -2269.7, 0.68598, -3.774E+09, -2.6655E+11, 0}, Racketparam = 0.265583, UniquacR = 4.4376, UniquacQ = 3.288, ChaoSeadAF = 0.234279, ChaoSeadSP = 19187.2, ChaoSeadLV = 0.117341);
-end Pdichlorobenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiethylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiethylbenzene.mo
deleted file mode 100644
index 1901268..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiethylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pdiethylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 296, name = "Pdiethylbenzene", CAS = "105-05-5", Tc = 657.9, Pc = 2803000, Vc = 0.4805, Cc = 0.247, Tb = 456.9, Tm = 230.3, TT = 230.325, TP = 0.21291, MW = 134.2182, LVB = 0.15645, AF = 0.403, SP = 17660, DM = 0, SH = -1209000000.0, IGHF = -2.23E+07, GEF = 1.385E+08, AS = 433100, HFMP = 1.06E+07, HOC = -5.5553E+09, LiqDen = {105, 0.50239, 0.25108, 657.9, 0.28806, 0}, VP = {101, 108.74, -9636.7, -12.656, 0.000006664, 2}, LiqCp = {16, 42717, -14.138, 11.106, 0.0050234, -0.0000039715}, HOV = {106, 5.468714E+07, -1.551219, 6.621841, -8.199596, 3.486311}, VapCp = {16, 117030, -755.24, 13.637, -0.00037709, 9.9721E-08}, LiqVis = {101, -11.766, 1322.3, 0.075076, -1.4518E-07, 2}, VapVis = {102, 7.2136E-07, 0.49617, 343.97, -290.07, 0}, LiqK = {16, -0.054323, -5.9143, -1.4413, -0.00065059, -8.3255E-07}, VapK = {102, 0.000023956, 1.1969, 213.51, 48127, 0}, Racketparam = 0.247, UniquacR = 6.0066, UniquacQ = 4.616, ChaoSeadAF = 0.403, ChaoSeadSP = 17660, ChaoSeadLV = 0.15645);
-end Pdiethylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiisopropylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiisopropylbenzene.mo
deleted file mode 100644
index f65d202..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pdiisopropylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pdiisopropylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 306, name = "Pdiisopropylbenzene", CAS = "100-18-5", Tc = 675, Pc = 2360000, Vc = 0.584, Cc = 0.256, Tb = 483.52, Tm = 256.08, TT = 256.08, TP = 0.697953, MW = 162.271, LVB = 0.190236, AF = 0.476415, SP = 16930, DM = 0, SH = -1209000000.0, IGHF = -7.76E+07, GEF = 1.47804E+08, AS = 488000, HFMP = 0, HOC = -6.77E+09, LiqDen = {105, 0.77801, 0.34547, 675, 0.38736, 0}, VP = {101, 121.6259, -10711.76, -14.56272, 8.944308E-06, 2}, LiqCp = {16, -70570, 94.476, 11.349, 0.0048258, -0.0000034771}, HOV = {106, 9.572101E+07, 2.166143, -4.616074, 4.777254, -1.852374}, VapCp = {16, 100830, -531.56, 13.456, 0.000043333, -2.4118E-08}, LiqVis = {101, -8.9912, 1148.7, -0.35833, 4.6037E-07, 2}, VapVis = {102, 8.0354E-07, 0.48062, 391.1, 176.97, 0}, LiqK = {16, -0.043466, -14.777, -1.4776, -0.00080068, -0.0000006904}, VapK = {102, 0.31596, -0.074042, -318.59, 1928600, 0}, Racketparam = 0.256, UniquacR = 7.3538, UniquacQ = 5.688, ChaoSeadAF = 0.390023, ChaoSeadSP = 16930, ChaoSeadLV = 0.190236);
-end Pdiisopropylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pentanal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pentanal.mo
deleted file mode 100644
index 9efbbc4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pentanal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pentanal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 320, name = "Pentanal", CAS = "110-62-3", Tc = 554, Pc = 3500000, Vc = 0.316, Cc = 0.264, Tb = 376.15, Tm = 190.15, TT = 182, TP = 0.0522823, MW = 86.1323, LVB = 0.107035, AF = 0.390803, SP = 18440, DM = 8.57E-30, SH = -1209000000.0, IGHF = -2.2669E+08, GEF = -1.0711E+08, AS = 382890, HFMP = 1.5E+07, HOC = -2.91E+09, LiqDen = {105, 0.76227, 0.25072, 566.11, 0.27912, 0}, VP = {101, 92.63614, -7428.499, -10.51804, 7.160109E-06, 2}, LiqCp = {16, 156770, 199.89, 4.2571, 0.024547, -0.000022679}, HOV = {106, 6.99504E+07, 0.991037, 0.252443, -1.761713, 0.936026}, VapCp = {16, 101560, -929.74, 13.391, -0.0005525, 1.6606E-07}, LiqVis = {101, -10.884, 982.07, -0.00046989, 2.2767E-08, 2}, VapVis = {102, 2.2718E-07, 0.67661, 192.16, -86.47, 0}, LiqK = {16, 0.010965, -0.28239, -1.5585, -0.0012856, -0.0000013221}, VapK = {102, -3901000, -0.05461, 1.6551E+09, -2.4357E+13, 0}, Racketparam = 0.264, UniquacR = 3.9223, UniquacQ = 3.416, ChaoSeadAF = 0.347159, ChaoSeadSP = 18440, ChaoSeadLV = 0.107035);
-end Pentanal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pethyltoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pethyltoluene.mo
deleted file mode 100644
index 4dd8eb2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pethyltoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pethyltoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 284, name = "Pethyltoluene", CAS = "622-96-8", Tc = 640.2, Pc = 3230000, Vc = 0.44, Cc = 0.259, Tb = 435.13, Tm = 210.83, TT = 210.83, TP = 0.0782406, MW = 120.194, LVB = 0.1396, AF = 0.364, SP = 17710, DM = 0, SH = -1209000000.0, IGHF = -3260000, GEF = 1.268E+08, AS = 398900, HFMP = 1.336E+07, HOC = -4.94268E+09, LiqDen = {105, 0.60155, 0.25704, 640.2, 0.31664, 0}, VP = {101, 21.19382, -5103.792, 0.409026, -2.319216E-06, 2}, LiqCp = {16, 30748, -85.511, 11.539, 0.0037389, -0.0000030029}, HOV = {106, 7.1677E+07, 1.0708, -1.1055, 0.62044, -0.16372}, VapCp = {16, 75636, -568.13, 13.103, 0.000082441, -4.4902E-08}, LiqVis = {101, -23.973, 1681.2, 1.9315, 6.328E-08, 2}, VapVis = {102, 5.7075E-07, 0.5347, 318.96, -7211.9, 0}, LiqK = {16, -0.065655, 1.2156, -1.4285, -0.00047761, -9.6417E-07}, VapK = {102, 0.000095782, 1.0471, 660.61, 40132, 0}, Racketparam = 0.259, UniquacR = 5.3322, UniquacQ = 4.076, ChaoSeadAF = 0.364, ChaoSeadSP = 17710, ChaoSeadLV = 0.1396);
-end Pethyltoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenanthrene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenanthrene.mo
deleted file mode 100644
index d8ece64..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenanthrene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Phenanthrene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 182, name = "Phenanthrene", CAS = "85-01-8", Tc = 869, Pc = 2900000, Vc = 0.554, Cc = 0.222, Tb = 610.03, Tm = 372.38, TT = 372.38, TP = 29.2781, MW = 178.229, LVB = 0.167077, AF = 0.470716, SP = 19910, DM = 0, SH = -168070000.0, IGHF = 2.012E+08, GEF = 3.0219E+08, AS = 394500, HFMP = 1.6463E+07, HOC = -6.8282E+09, LiqDen = {105, 0.4558, 0.25237, 869, 0.24848, 0}, VP = {101, 275.0593, -20918.1, -36.87097, 0.0000193212, 2}, LiqCp = {16, 115950, -43.82, 10.979, 0.0042773, -0.0000023928}, HOV = {106, 9.2455E+07, 0.28979, 1.1393, -1.9946, 0.92537}, VapCp = {16, 66200, -509.49, 13.435, -0.000075274, 6.0366E-09}, LiqVis = {101, -22.439, 2565.4, 1.5699, 3.8655E-09, 2}, VapVis = {102, 0.0000004717, 0.52643, 268.46, 10947, 0}, LiqK = {16, 0.11683, -580.68, -0.62222, -0.006256, 4.1638E-07}, VapK = {102, 0.000092871, 0.99317, 671.87, 29972, 0}, Racketparam = 0.249255, UniquacR = 6.562953, UniquacQ = 4.336, ChaoSeadAF = 0.54, ChaoSeadSP = 20142.5, ChaoSeadLV = 0.167078);
-end Phenanthrene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenol.mo
deleted file mode 100644
index 02830f2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phenol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Phenol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 126, name = "Phenol", CAS = "108-95-2", Tc = 694.25, Pc = 6130000, Vc = 0.229, Cc = 0.243, Tb = 455.04, Tm = 314.06, TT = 314.06, TP = 187.979, MW = 94.113, LVB = 0.08787, AF = 0.442, SP = 24630, DM = 4.84E-30, SH = -168070000.0, IGHF = -9.6399E+07, GEF = -3.2637E+07, AS = 314810, HFMP = 1.151E+07, HOC = -2.921E+09, LiqDen = {105, 1.4937, 0.32883, 694.25, 0.34018, 0}, VP = {101, 300.97, -20269, -40.743, 0.000021631, 2}, LiqCp = {16, 86710, -628.11, 15.735, -0.0091743, 0.0000081827}, HOV = {106, 7.270282E+07, -0.265673, 2.248545, -2.018709, 0.353169}, VapCp = {16, 39758, -470.56, 12.627, 0.000068347, -4.9708E-08}, LiqVis = {101, -203.001, 10884.21, 28.73615, -0.0000224564, 2}, VapVis = {102, 1.0771E-07, 0.79384, 145.89, -11364, 0}, LiqK = {16, 0.14109, -966.5, 10.659, -0.049095, 0.000038703}, VapK = {102, 0.03495, 0.27845, 1585.2, 862070, 0}, Racketparam = 0, UniquacR = 3.5517, UniquacQ = 2.68, ChaoSeadAF = 0.442, ChaoSeadSP = 24632.6, ChaoSeadLV = 0.0889403);
-end Phenol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phosgene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phosgene.mo
deleted file mode 100644
index 57e5b1e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phosgene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Phosgene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 8, name = "Phosgene", CAS = "75-44-5", Tc = 455, Pc = 5674200, Vc = 0.19, Cc = 0.285, Tb = 280.71, Tm = 145.37, TT = 145.37, TP = 0.920651, MW = 98.9161, LVB = 0.0597955, AF = 0.201309, SP = 17140, DM = 3.9E-30, SH = -218900000.0, IGHF = -2.189E+08, GEF = -2.0479E+08, AS = 283740, HFMP = 5738400, HOC = -1.746E+08, LiqDen = {105, 1.4691, 0.2768, 455, 0.27965, 0}, VP = {101, 81.03568, -5112.106, -9.267047, 0.0000119936, 2}, LiqCp = {16, 101240, -202030, 196.31, 2.1704, -0.0015512}, HOV = {106, 4.367252E+07, 1.081822, -0.773774, -0.1937, 0.317951}, VapCp = {16, 32506, -282.16, 11.124, -0.00017636, 4.5651E-08}, LiqVis = {101, -789.51, 22474, 129.1, -0.00032789, 2}, VapVis = {102, 6.2229E-07, 0.58405, 277.35, -6111.6, 0}, LiqK = {16, 0.0025061, 3.5674, -1.6592, -0.0007952, -0.0000018088}, VapK = {102, 0.000024368, 1.1423, 246.56, 4296.5, 0}, Racketparam = 0, UniquacR = 2.300593, UniquacQ = 2.08, ChaoSeadAF = 0.1918, ChaoSeadSP = 17837.2, ChaoSeadLV = 0.0705389);
-end Phosgene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phthalicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phthalicacid.mo
deleted file mode 100644
index 09872f2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Phthalicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Phthalicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 401, name = "Phthalicacid", CAS = "88-99-3", Tc = 943.0648, Pc = 4492234, Vc = 0.4235, Cc = 0.242627, Tb = 651.424, Tm = 483.15, TT = 0, TP = 0, MW = 166.131, LVB = 0.115821, AF = 1.16031, SP = 29038.44, DM = 8.67E-30, SH = -22600000.0, IGHF = -6.63E+08, GEF = -5.42E+08, AS = 442000, HFMP = 0, HOC = -3.0915E+09, LiqDen = {105, 0.59385, 0.252, 800, 0.28571, 0}, VP = {101, 214.6186, -21678.73, -26.54136, 7.94063E-06, 2}, LiqCp = {16, 126080, 73.955, 9.4222, 0.0070682, -0.0000039598}, HOV = {106, 1.16446E+08, 0.325842, -0.000233021, 0.00216992, 0.484323}, VapCp = {16, 78972, -814.12, 13.621, -0.00057909, 1.2469E-07}, LiqVis = {101, -20.315, 4089.4, 0.87699, -5.3713E-07, 2}, VapVis = {102, 5.1978E-08, 0.86126, 68.544, -136.86, 0}, LiqK = {16, -0.13007, 40.261, -1.3314, 0.00027982, -9.4309E-07}, VapK = {102, 0.00011576, 0.91053, 351.24, 130660, 0}, Racketparam = 0.242627, UniquacR = 5.456, UniquacQ = 4.288, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Phthalicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Piperazine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Piperazine.mo
deleted file mode 100644
index d9c6ab7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Piperazine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Piperazine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 376, name = "Piperazine", CAS = "110-85-0", Tc = 656.3, Pc = 5420000, Vc = 0.267, Cc = 0.2652, Tb = 419.15, Tm = 379.15, TT = 379.15, TP = 26372.2, MW = 86.1356, LVB = 0.129371, AF = 0.269668, SP = 17960, DM = 4.90339E-30, SH = -22600000.0, IGHF = 2.26E+07, GEF = 1.7E+08, AS = 321000, HFMP = 1.17E+07, HOC = -2.76E+09, LiqDen = {105, 1.4074, 0.323, 638, 0.28571, 0}, VP = {101, 143.27, -11245, -17.657, 0.0000096236, 2}, LiqCp = {4, 32886.27, 346.6189, 0.473406, -0.000434168, 0}, HOV = {106, 6.6945E+07, 0.99602, -2.0069, 2.4018, -0.97129}, VapCp = {16, 68463, -744.16, 13.556, -0.00073698, 1.7652E-07}, LiqVis = {101, 24.341, 105.42, -5.6537, 0.0000060109, 2}, VapVis = {102, 0.0000022951, 0.42453, 937.27, -18307, 0}, LiqK = {16, 0.029211, -334.85, 0.86034, -0.0073343, 0.0000029317}, VapK = {102, 0.0014866, 0.6319, -11.551, 345800, 0}, Racketparam = 0.323, UniquacR = 3.7628, UniquacQ = 2.952, ChaoSeadAF = 0.41376, ChaoSeadSP = 17960, ChaoSeadLV = 0.129371);
-end Piperazine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pnitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pnitrotoluene.mo
deleted file mode 100644
index 0b0d219..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pnitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pnitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 385, name = "Pnitrotoluene", CAS = "99-99-0", Tc = 736, Pc = 3800000, Vc = 0.441, Cc = 0.229, Tb = 511.15, Tm = 325.05, TT = 324.75, TP = 40.4829, MW = 137.136, LVB = 0.121894, AF = 0.542405, SP = 21110, DM = 1.48E-29, SH = -22600000.0, IGHF = 3.1E+07, GEF = 1.554E+08, AS = 380800, HFMP = 1.6676E+07, HOC = -3.553E+09, LiqDen = {105, 0.76802, 0.27463, 736, 0.3126, 0}, VP = {101, 115.4618, -11239.6, -13.3636, 5.387653E-06, 2}, LiqCp = {16, 90280, 945.96, 3.9359, 0.019415, -0.000013352}, HOV = {106, 1.550237E+08, 1.89329, -1.014085, -0.0168324, -0.442436}, VapCp = {16, 126830, -1053.5, 13.982, -0.0011308, 3.2272E-07}, LiqVis = {101, -164.01, 7455.2, 23.73, -0.000026464, 2}, VapVis = {102, 4.1207E-08, 0.91154, 64.997, -92.66, 0}, LiqK = {16, -0.1404, 23.385, -1.2743, -0.000067534, -5.8708E-07}, VapK = {102, 0.000064675, 1.0353, 391.41, 37904, 0}, Racketparam = 0.229, UniquacR = 4.2801, UniquacQ = 3.272, ChaoSeadAF = 0.425222, ChaoSeadSP = 21110, ChaoSeadLV = 0.121894);
-end Pnitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pphenylenediamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pphenylenediamine.mo
deleted file mode 100644
index 4ae8d9d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pphenylenediamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pphenylenediamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 375, name = "Pphenylenediamine", CAS = "106-50-3", Tc = 796, Pc = 5180000, Vc = 0.377, Cc = 0.248, Tb = 540, Tm = 419, TT = 413, TP = 1388.21, MW = 108.141, LVB = 0.102198, AF = 0.53864, SP = 24810, DM = 5.1E-30, SH = -22600000.0, IGHF = 9.12E+07, GEF = 2.1E+08, AS = 349000, HFMP = 2.68E+07, HOC = -3.33E+09, LiqDen = {105, 0.78274, 0.24798, 796, 0.28573, 0}, VP = {101, 120.7365, -13060.28, -13.71648, 4.333592E-06, 2}, LiqCp = {16, 199750, 494.23, 5.1045, 0.015817, -0.000010858}, HOV = {106, 1.0783E+08, 1.6408, -3.3392, 3.5461, -1.4179}, VapCp = {16, 58132, -482.33, 12.882, -0.000085339, 9.0492E-09}, LiqVis = {101, -8.9816, 2291, -0.53494, 2.8717E-07, 2}, VapVis = {102, 1.4679E-07, 0.74191, 224.79, -11478, 0}, LiqK = {16, 0.0030572, -268.6, 0.38244, -0.0036549, 8.2114E-07}, VapK = {102, 0.000070276, 1.0203, 189.91, 62690, 0}, Racketparam = 0.248, UniquacR = 4.2452, UniquacQ = 3.232, ChaoSeadAF = 0.53864, ChaoSeadSP = 24810, ChaoSeadLV = 0);
-end Pphenylenediamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propadiene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propadiene.mo
deleted file mode 100644
index 37723c3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propadiene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propadiene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 60, name = "Propadiene", CAS = "463-49-0", Tc = 394, Pc = 5250000, Vc = 0.1739, Cc = 0.279, Tb = 238.77, Tm = 136.87, TT = 136.87, TP = 18.2497, MW = 40.065, LVB = 0.06095, AF = 0.122, SP = 14010, DM = 0, SH = 190500000.0, IGHF = 1.905E+08, GEF = 2.008E+08, AS = 243900, HFMP = 4400000, HOC = -1.8563E+09, LiqDen = {105, 0.86549, 0.19732, 394, 0.21029, 0}, VP = {101, 59.80183, -3745.303, -6.036523, 8.205156E-06, 2}, LiqCp = {16, 78665, -12422, 151.08, -0.53356, 0.00065986}, HOV = {106, 1.54657E+07, -3.722436, 11.45729, -12.9266, 5.522823}, VapCp = {16, 34671.52, -447.4983, 11.46556, 0.000444481, -1.470826E-07}, LiqVis = {101, -9.5153, 310.76, -0.034725, -0.0000021543, 2}, VapVis = {102, 6.3119E-07, 0.52792, 129.92, 8459.5, 0}, LiqK = {16, 0.06063, 169.42, -4.6941, 0.014436, -0.000036249}, VapK = {102, 0.000059663, 1.0782, 9.0271, 65666, 0}, Racketparam = 0, UniquacR = 1.7917, UniquacQ = 1.528, ChaoSeadAF = 0.3125, ChaoSeadSP = 17551, ChaoSeadLV = 0.0604292);
-end Propadiene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propanal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propanal.mo
deleted file mode 100644
index 9c32f53..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propanal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propanal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 318, name = "Propanal", CAS = "123-38-6", Tc = 493.15, Pc = 4650000, Vc = 0.223, Cc = 0.239, Tb = 321.15, Tm = 193.15, TT = 170, TP = 1.31328, MW = 58.0791, LVB = 0.0734076, AF = 0.330077, SP = 19320, DM = 8.41E-30, SH = -1209000000.0, IGHF = -1.874E+08, GEF = -1.244E+08, AS = 304700, HFMP = 8580000, HOC = -1.6857E+09, LiqDen = {105, 0.81482, 0.2126, 493.15, 0.21277, 0}, VP = {101, 110.8631, -6856.828, -13.8218, 0.0000173391, 2}, LiqCp = {16, 116710, 75.622, 5.752, 0.010877, 0.0000042986}, HOV = {106, 6.196909E+07, 1.837694, -1.953499, -0.000443949, 0.620394}, VapCp = {16, -181030, 9.3832, 12.233, 0.00079415, -2.4738E-07}, LiqVis = {101, -10.033, 843.41, -0.14954, 3.8846E-08, 2}, VapVis = {102, 1.9173E-07, 0.71905, 111.91, 4618.1, 0}, LiqK = {16, 0.020248, -83.587, -0.55331, -0.0042681, 0.0000015626}, VapK = {102, 776.87, 0.94095, 4.8356E+09, -1.3358E+11, 0}, Racketparam = 0.239, UniquacR = 2.5735, UniquacQ = 2.336, ChaoSeadAF = 0.255909, ChaoSeadSP = 19320, ChaoSeadLV = 0.0734076);
-end Propanal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propane.mo
deleted file mode 100644
index b7853f5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 67, name = "Propane", CAS = "74-98-6", Tc = 369.83, Pc = 4248000, Vc = 0.2, Cc = 0.276, Tb = 231.02, Tm = 85.47, TT = 85.47, TP = 0.0001685, MW = 44.097, LVB = 0.07487, AF = 0.152, SP = 13100, DM = 0, SH = -104680000.0, IGHF = -1.0468E+08, GEF = -2.439E+07, AS = 270200, HFMP = 3524000, HOC = -2.04311E+09, LiqDen = {105, 1.3186, 0.27005, 369.86, 0.27852, 0}, VP = {101, 55.2725, -3396.946, -5.423393, 8.953731E-06, 2}, LiqCp = {16, 87486, -13371, 156.92, -0.5459, 0.00068504}, HOV = {106, 3.0459E+07, 1.2001, -2.1107, 1.9732, -0.65316}, VapCp = {16, 37840.4, -445.5789, 11.83871, 0.000653764, -2.200137E-07}, LiqVis = {101, -35.23159, 966.1472, 4.395026, -0.0000255079, 2}, VapVis = {102, 4.7422E-08, 0.90416, -4.7484, 478.57, 0}, LiqK = {16, 0.02937, -16.323, -1.3313, -0.0012596, -0.000011206}, VapK = {102, -1.139, 0.10904, -9898.6, -7669600, 0}, Racketparam = 0.2763, UniquacR = 2.4766, UniquacQ = 2.236, ChaoSeadAF = 0.1538, ChaoSeadSP = 13091.2, ChaoSeadLV = 0.084);
-end Propane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionicacid.mo
deleted file mode 100644
index 5b5ef8c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propionicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 65, name = "Propionicacid", CAS = "79-09-4", Tc = 604, Pc = 4530000, Vc = 0.233, Cc = 0.207, Tb = 414.31, Tm = 252.45, TT = 252.45, TP = 13.1, MW = 74.079, LVB = 0.07497, AF = 0.544, SP = 19490, DM = 5.84E-30, SH = 20230000.0, IGHF = -4.535E+08, GEF = -3.568E+08, AS = 294900, HFMP = 1.066E+07, HOC = -1.395E+09, LiqDen = {105, 0.88103, 0.22848, 612.66, 0.25898, 0}, VP = {101, 58.42, -7261.2, -4.9024, 0.0000010406, 2}, LiqCp = {16, 120710, 704.7, 1.1886, 0.028883, -0.000020278}, HOV = {106, 4.8878E+07, 3.7167, -10.822, 11.498, -4.1176}, VapCp = {16, 47961, -474.81, 12.167, 0.00020648, -6.6213E-08}, LiqVis = {101, -53.41646, 2724.985, 6.7143, -9.670276E-06, 2}, VapVis = {102, 1.6155E-08, 1.0459, -115.32, 27680, 0}, LiqK = {16, 0.067757, -235.87, -0.022659, -0.0065033, 0.0000026666}, VapK = {102, 0.004145, 0.70902, 13255, -4962900, 0}, Racketparam = 0, UniquacR = 2.9, UniquacQ = 2.58, ChaoSeadAF = 0.52, ChaoSeadSP = 19130.1, ChaoSeadLV = 0.0749523);
-end Propionicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionitrile.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionitrile.mo
deleted file mode 100644
index 65f59f3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propionitrile.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propionitrile
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 411, name = "Propionitrile", CAS = "107-12-0", Tc = 564.4, Pc = 4180000, Vc = 0.229, Cc = 0.204, Tb = 370.5, Tm = 180.26, TT = 180.26, TP = 0.169356, MW = 55.0785, LVB = 0.0708565, AF = 0.324267, SP = 21760, DM = 1.34E-29, SH = -61100000.0, IGHF = 5.15E+07, GEF = 9.74949E+07, AS = 286600, HFMP = 5029170, HOC = -1.8007E+09, LiqDen = {105, 0.90359, 0.2211, 564.4, 0.26246, 0}, VP = {101, 81.601, -6646.8, -8.9882, 0.0000074443, 2}, LiqCp = {16, 105770, 154.89, 4.5843, 0.018329, -0.000011984}, HOV = {106, 3.633259E+07, -2.107222, 8.013128, -9.747514, 4.114254}, VapCp = {16, 47947, -544.83, 11.91, 0.00026005, -9.1233E-08}, LiqVis = {101, -8.0958, 775.57, -0.393, -7.9624E-07, 2}, VapVis = {102, 9.8851E-08, 0.79377, 155.28, -11568, 0}, LiqK = {16, 0.13846, 2645.2, -37.177, 0.15078, -0.00022598}, VapK = {102, 0.00048871, 1.327, 43042, -3226700, 0}, Racketparam = 0.204, UniquacR = 2.5445, UniquacQ = 2.264, ChaoSeadAF = 0.324267, ChaoSeadSP = 21760, ChaoSeadLV = 0.0708565);
-end Propionitrile;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylene.mo
deleted file mode 100644
index eb70cfe..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 61, name = "Propylene", CAS = "115-07-1", Tc = 364.85, Pc = 4600000, Vc = 0.185, Cc = 0.281, Tb = 225.45, Tm = 87.9, TT = 87.89, TP = 0.00117, MW = 42.0797, LVB = 0.0832412, AF = 0.137588, SP = 11890, DM = 1.22E-30, SH = 20230000.0, IGHF = 2.023E+07, GEF = 6.264E+07, AS = 267000, HFMP = 2936000, HOC = -1.9262E+09, LiqDen = {105, 0.98129, 0.22226, 365.58, 0.24039, 0}, VP = {101, 55.10362, -3330.452, -5.40588, 0.0000093641, 2}, LiqCp = {16, 79790, 300.8, 5.1342, 0.0095615, 0.000012777}, HOV = {106, 2.7525E+07, 0.61217, -0.41646, 0.083772, 0.12092}, VapCp = {16, 38965.36, -516.3838, 11.75322, 0.000509119, -1.771348E-07}, LiqVis = {101, -54.05485, 1437.773, 7.536247, -0.0000342733, 2}, VapVis = {102, 7.3873E-07, 0.54213, 262.33, -108.51, 0}, LiqK = {16, -0.044587, 22.061, -1.744, 0.0015214, -0.0000078162}, VapK = {102, 0.000045373, 1.2, 415.83, 2757.2, 0}, Racketparam = 0.2785, UniquacR = 2.25, UniquacQ = 2.02, ChaoSeadAF = 0.1477, ChaoSeadSP = 13152.4, ChaoSeadLV = 0.068956);
-end Propylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylenecarbonate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylenecarbonate.mo
deleted file mode 100644
index 5a8fc57..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Propylenecarbonate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Propylenecarbonate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 419, name = "Propylenecarbonate", CAS = "108-32-7", Tc = 778, Pc = 5410000, Vc = 0.246, Cc = 0.206, Tb = 514.9, Tm = 218.62, TT = 224.85, TP = 0.00116652, MW = 102.089, LVB = 0.0852768, AF = 0.449764, SP = 27300, DM = 1.65E-29, SH = -61100000.0, IGHF = -6.0116E+08, GEF = -4.555E+08, AS = 296300, HFMP = 9617000, HOC = -1.6678E+09, LiqDen = {105, 1.122, 0.27599, 778, 0.40344, 0}, VP = {101, 102.32, -10530, -11.489, 0.0000052921, 2}, LiqCp = {16, 121750, 105.89, 6.5083, 0.016964, -0.000014577}, HOV = {106, 3.145898E+08, 9.998207, -26.2884, 28.38292, -11.49051}, VapCp = {16, 51696, -502.59, 12.655, -0.000076494, 1.3781E-08}, LiqVis = {101, -818.33, 28057, 129.62, -0.00022812, 2}, VapVis = {102, 4.7119E-08, 0.92676, 86.628, -9783.8, 0}, LiqK = {16, -0.096241, 6.7832, -1.0385, -0.00032841, -6.9782E-07}, VapK = {102, 0.00017416, 0.94857, 659.28, 16364, 0}, Racketparam = 0.206, UniquacR = 3.6024, UniquacQ = 3.006, ChaoSeadAF = 0.449764, ChaoSeadSP = 27300, ChaoSeadLV = 0.0852768);
-end Propylenecarbonate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ptoluicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ptoluicacid.mo
deleted file mode 100644
index aa17309..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Ptoluicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Ptoluicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 398, name = "Ptoluicacid", CAS = "99-94-5", Tc = 773, Pc = 3860000, Vc = 0.397, Cc = 0.238, Tb = 548.15, Tm = 452.75, TT = 452.75, TP = 5208.62, MW = 136.148, LVB = 0.129817, AF = 0.661017, SP = 22040, DM = 0, SH = -22600000.0, IGHF = -3.22796E+08, GEF = -2.13346E+08, AS = 406141, HFMP = 2.2737E+07, HOC = -3.69222E+09, LiqDen = {105, 0.60059, 0.238, 773, 0.28571, 0}, VP = {101, 180.79, -16901, -22.327, 0.0000079041, 2}, LiqCp = {16, 204240, 558.58, 5.081, 0.015699, -0.000010465}, HOV = {106, 1.0299E+08, 0.94653, -1.474, 1.5504, -0.62044}, VapCp = {16, 85949, -929.05, 14.065, -0.0013145, 5.0858E-07}, LiqVis = {101, -16.393, 2717.5, 0.51437, -3.3608E-07, 2}, VapVis = {102, 8.0828E-08, 0.81038, 114.97, -489.3, 0}, LiqK = {16, -0.14095, 29.118, -1.2124, 0.000049104, -7.6374E-07}, VapK = {102, 0.00002977, 1.1214, 206.56, 62002, 0}, Racketparam = 0.238, UniquacR = 5.058, UniquacQ = 3.912, ChaoSeadAF = 0.661017, ChaoSeadSP = 22040, ChaoSeadLV = 0.129817);
-end Ptoluicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pxylene.mo
deleted file mode 100644
index cdca150..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 152, name = "Pxylene", CAS = "106-42-3", Tc = 616.2, Pc = 3511000, Vc = 0.378, Cc = 0.259, Tb = 411.53, Tm = 286.41, TT = 286.41, TP = 575.533, MW = 106.167, LVB = 0.12393, AF = 0.322, SP = 17910, DM = 0, SH = -168070000.0, IGHF = 1.803E+07, GEF = 1.214E+08, AS = 352165, HFMP = 1.711E+07, HOC = -4.333E+09, LiqDen = {105, 0.67752, 0.25887, 616.2, 0.27596, 0}, VP = {101, 97.352, -8082.1, -11.197, 0.0000072605, 2}, LiqCp = {16, 63084, -343.38, 13.438, -0.0033851, 0.0000045592}, HOV = {106, 5.6332E+07, 0.37965, 0.42395, -0.85683, 0.43704}, VapCp = {16, 62397, -585.6, 13.025, 0.0000037921, -1.7044E-08}, LiqVis = {101, -23.916, 1499.8, 2.0719, -0.0000037065, 2}, VapVis = {102, 2.4281E-08, 0.95421, -91.329, 17547, 0}, LiqK = {16, 0.00066881, -122.94, -0.60875, -0.0037322, 9.7446E-07}, VapK = {102, 0.0000001261, 1.8916, -453.43, 111720, 0}, Racketparam = 0.2589, UniquacR = 4.66, UniquacQ = 3.54, ChaoSeadAF = 0.2969, ChaoSeadSP = 17939.04, ChaoSeadLV = 0.124);
-end Pxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyrene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyrene.mo
deleted file mode 100644
index 17a8a18..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyrene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pyrene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 186, name = "Pyrene", CAS = "129-00-0", Tc = 936, Pc = 2610000, Vc = 0.66, Cc = 0.221, Tb = 667.95, Tm = 423.81, TT = 423.81, TP = 70.0313, MW = 202.251, LVB = 0.184923, AF = 0.507416, SP = 19670, DM = 0, SH = -168070000.0, IGHF = 2.25E+08, GEF = 3.272E+08, AS = 402000, HFMP = 1.736E+07, HOC = -7.63094E+09, LiqDen = {105, 0.54272, 0.27165, 936, 0.41522, 0}, VP = {101, 68.91405, -11628.85, -6.184331, 6.420723E-07, 2}, LiqCp = {16, 149400, -94.468, 11.128, 0.0038746, -0.0000019128}, HOV = {106, 9.198843E+07, -0.224752, 1.989996, -2.139885, 0.666532}, VapCp = {16, 117680, -754.3, 14.068, -0.00069165, 2.0484E-07}, LiqVis = {101, -131.9, 8597.1, 17.746, -0.000010523, 2}, VapVis = {102, 4.4284E-07, 0.52754, 289.9, 15025, 0}, LiqK = {16, 0.10165, -731.42, 0.75712, -0.0079846, 0.0000028317}, VapK = {102, 0.000092503, 0.97453, 647.35, 45503, 0}, Racketparam = 0.246034, UniquacR = 7.187871, UniquacQ = 4.504, ChaoSeadAF = 0.344, ChaoSeadSP = 20762.5, ChaoSeadLV = 0.17368);
-end Pyrene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyridine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyridine.mo
deleted file mode 100644
index ee8911c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Pyridine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Pyridine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 102, name = "Pyridine", CAS = "110-86-1", Tc = 620, Pc = 5670000, Vc = 0.254, Cc = 0.267, Tb = 388.37, Tm = 231.53, TT = 231.51, TP = 20.5354, MW = 79.101, LVB = 0.08088, AF = 0.242, SP = 21570, DM = 7.31E-30, SH = -134990000.0, IGHF = 1.4037E+08, GEF = 1.9049E+08, AS = 282780, HFMP = 8280000, HOC = -2.6721E+09, LiqDen = {105, 0.67102, 0.2057, 620, 0.26001, 0}, VP = {101, 82.05373, -7269.578, -8.810082, 4.816564E-06, 2}, LiqCp = {16, 101830, 209.77, 5.3544, 0.019802, -0.000018129}, HOV = {106, 8.4421E+07, 2.7457, -5.3078, 4.8654, -1.7952}, VapCp = {16, 36223, -620.9, 12.812, -0.00029215, 7.7524E-08}, LiqVis = {101, -82.798, 4102.8, 11.028, -0.0000093419, 2}, VapVis = {102, 5.339E-08, 0.90066, 85.55, -5060.2, 0}, LiqK = {16, 0.018788, -54.761, -1.2916, -0.00062226, -0.0000029942}, VapK = {102, -7052.4, 0.17223, -5.768E+07, -1.624E+11, 0}, Racketparam = 0.269325, UniquacR = 3, UniquacQ = 2.16, ChaoSeadAF = 0.238898, ChaoSeadSP = 21804.1, ChaoSeadLV = 0.0808341);
-end Pyridine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Salicylicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Salicylicacid.mo
deleted file mode 100644
index 8f98ddc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Salicylicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Salicylicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 399, name = "Salicylicacid", CAS = "69-72-7", Tc = 739, Pc = 5180000, Vc = 0.364, Cc = 0.275, Tb = 529, Tm = 431.75, TT = 431.75, TP = 2802.65, MW = 138.121, LVB = 0.119591, AF = 0.851182, SP = 24210, DM = 8.84E-30, SH = -22600000.0, IGHF = -4.948E+08, GEF = -3.954E+08, AS = 399800, HFMP = 1.959E+07, HOC = -2.8901E+09, LiqDen = {105, 0.8432, 0.27522, 739, 0.28574, 0}, VP = {101, 252.5417, -21148.9, -32.63925, 0.0000130693, 2}, LiqCp = {16, 129500, 160.82, 8.5105, 0.0092921, -0.0000057493}, HOV = {106, 1.3325E+08, -0.11849, 3.6062, -5.1635, 2.13}, VapCp = {16, 83388, -879.57, 13.917, -0.0013499, 0.0000005122}, LiqVis = {101, -50.743, 5203.6, 5.2837, 2.047E-08, 2}, VapVis = {102, 1.0029E-07, 0.78423, 131.87, -154.53, 0}, LiqK = {16, 0.0043799, -391.31, 0.63544, -0.0048323, 0.0000010995}, VapK = {102, 0.000028337, 1.1043, 106.43, 67783, 0}, Racketparam = 0.275, UniquacR = 4.6869, UniquacQ = 3.624, ChaoSeadAF = 0.851182, ChaoSeadSP = 24210, ChaoSeadLV = 0.119591);
-end Salicylicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylbenzene.mo
deleted file mode 100644
index 1c57c49..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Secbutylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 289, name = "Secbutylbenzene", CAS = "135-98-8", Tc = 664.54, Pc = 2930000, Vc = 0.478, Cc = 0.265, Tb = 446.48, Tm = 197.717, TT = 197.717, TP = 0.00180534, MW = 134.218, LVB = 0.156497, AF = 0.279149, SP = 17050, DM = 1.3E-30, SH = -1209000000.0, IGHF = -1.73E+07, GEF = 1.4523E+08, AS = 439600, HFMP = 9830000, HOC = -5.563E+09, LiqDen = {105, 0.51273, 0.25494, 664.54, 0.28096, 0}, VP = {101, 222.2329, -13854.88, -30.30702, 0.0000262583, 2}, LiqCp = {16, 163140, -1794.7, 23.385, -0.029199, 0.000028}, HOV = {106, 3.1793E+07, -4.1563, 12.591, -13.449, 5.2588}, VapCp = {16, 118430, -784.79, 13.745, -0.00050199, 1.4393E-07}, LiqVis = {10, -9.695648, -444.5934, -129.1082, 0, 0}, VapVis = {102, 0.000001223, 0.44278, 495.81, 151.45, 0}, LiqK = {16, -0.042864, 5.3464, -1.6033, -0.00035754, -0.0000011781}, VapK = {102, 0.000022, 1.2101, 186.5, 49434, 0}, Racketparam = 0.265, UniquacR = 5.9452, UniquacQ = 4.584, ChaoSeadAF = 0.279149, ChaoSeadSP = 17050, ChaoSeadLV = 0.156497);
-end Secbutylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylmercaptan.mo
deleted file mode 100644
index 003d873..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Secbutylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Secbutylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 352, name = "Secbutylmercaptan", CAS = "513-53-1", Tc = 551, Pc = 3970000, Vc = 0.307, Cc = 0.271, Tb = 358.13, Tm = 133.01, TT = 133.01, TP = 0.0000339902, MW = 90.1872, LVB = 0.10943, AF = 0.25, SP = 17000, DM = 5.17E-30, SH = -22600000.0, IGHF = -9.66E+07, GEF = 5200000, AS = 366730, HFMP = 6477000, HOC = -2.95E+09, LiqDen = {105, 0.81743, 0.26237, 554.01, 0.28149, 0}, VP = {101, 85.20348, -6580.804, -9.568603, 0.0000075683, 2}, LiqCp = {16, 132220, 286.96, 6.629, 0.011753, -0.0000059086}, HOV = {106, 4.567571E+07, 0.16352, 0.885588, -1.131485, 0.438377}, VapCp = {16, 85634, -697.09, 12.792, -0.00003836, -5.0229E-09}, LiqVis = {101, -11.718, 953.76, 0.15985, -4.5581E-07, 2}, VapVis = {102, 8.4539E-08, 0.83594, 117.21, -7872.1, 0}, LiqK = {16, -0.032852, 4.221, -1.5207, -0.0004702, -0.0000018598}, VapK = {102, 0.97519, -0.11286, 1130.7, 3149700, 0}, Racketparam = 0.271, UniquacR = 4.1276, UniquacQ = 3.604, ChaoSeadAF = 0.25, ChaoSeadSP = 17000, ChaoSeadLV = 0.10943);
-end Secbutylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Squalane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Squalane.mo
deleted file mode 100644
index d9c7436..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Squalane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Squalane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 217, name = "Squalane", CAS = "111-01-3", Tc = 863, Pc = 868000, Vc = 1.64, Cc = 0.198, Tb = 623.15, Tm = 235.15, TT = 235.15, TP = 1.70072E-12, MW = 422.813, LVB = 0.526135, AF = 0.915303, SP = 14490, DM = 0, SH = -1209000000.0, IGHF = -6.896E+08, GEF = 1.868E+08, AS = 1272000, HFMP = 4.7E+07, HOC = -1.85E+10, LiqDen = {105, 0.15996, 0.26223, 863, 0.38604, 0}, VP = {101, 518.45, -40342, -70.491, 0.00002486, 2}, LiqCp = {16, -38276, -113.46, 13.728, 0.001186, -3.7363E-07}, HOV = {106, 1.3274E+08, 0.38, 0, 0, 0}, VapCp = {16, 369830, -553.39, 14.489, 0.00010319, -3.8186E-08}, LiqVis = {118, -347.8968, 71874.9, 53.72611, -0.0000616157, 1.3}, VapVis = {102, 2.2128E-07, 0.5436, 144.2, 25.787, 0}, LiqK = {16, -0.045427, 7.6198, -1.8982, -0.00026051, -5.9557E-07}, VapK = {102, 0.000056714, 1.0625, 551.79, 75579, 0}, Racketparam = 0.198, UniquacR = 20.6854, UniquacQ = 16.816, ChaoSeadAF = 0.915303, ChaoSeadSP = 14490, ChaoSeadLV = 0.526135);
-end Squalane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Styrene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Styrene.mo
deleted file mode 100644
index 0ede9ff..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Styrene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Styrene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 148, name = "Styrene", CAS = "100-42-5", Tc = 636, Pc = 3840000, Vc = 0.352, Cc = 0.256, Tb = 418.31, Tm = 242.54, TT = 242.54, TP = 10.6132, MW = 104.149, LVB = 0.115667, AF = 0.297097, SP = 19020, DM = 4.33E-31, SH = -168070000.0, IGHF = 1.474E+08, GEF = 2.139E+08, AS = 345100, HFMP = 1.095E+07, HOC = -4.219E+09, LiqDen = {105, 0.57789, 0.23139, 640.77, 0.26351, 0}, VP = {101, 399.8489, -19017.34, -58.96286, 0.0000747957, 2}, LiqCp = {16, 134310, -99.916, 9.4935, 0.0058294, -0.0000013972}, HOV = {106, 1.110621E+08, 3.429275, -6.061051, 4.605581, -1.408226}, VapCp = {16, 57806.72, -550.4249, 12.95376, -0.0000950882, 2.294759E-08}, LiqVis = {101, -24.717, 1824, 1.9977, -4.7933E-07, 2}, VapVis = {102, 3.6968E-08, 0.90482, -32.023, 10027, 0}, LiqK = {16, -0.071817, -30.013, -1.0262, -0.0015623, 2.7674E-07}, VapK = {102, 0.010229, 0.40085, 535.56, 704200, 0}, Racketparam = 0, UniquacR = 4.37, UniquacQ = 3.3, ChaoSeadAF = 0.2302, ChaoSeadSP = 19015.9, ChaoSeadLV = 0.115667);
-end Styrene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfolane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfolane.mo
deleted file mode 100644
index 536aa84..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfolane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Sulfolane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 90, name = "Sulfolane", CAS = "126-33-0", Tc = 855, Pc = 7290000, Vc = 0.3365, Cc = 0.345074, Tb = 560.45, Tm = 300.55, TT = 300.55, TP = 0.704459, MW = 120.17, LVB = 0.0952677, AF = 0.5234, SP = 26110, DM = 1.56E-29, SH = -17100000.0, IGHF = -3.727E+08, GEF = -2.431E+08, AS = 347500, HFMP = 1373000, HOC = -2.397E+09, LiqDen = {105, 0.89997, 0.26972, 853, 0.30746, 0}, VP = {101, 112.0995, -12237.47, -12.64533, 4.157394E-06, 2}, LiqCp = {16, 122690, -336.31, 11.614, 0.0017011, -5.0866E-07}, HOV = {106, 1.605659E+08, 3.828131, -7.67047, 6.739132, -2.353929}, VapCp = {16, 92921, -999.97, 13.757, -0.00093192, 0.0000002258}, LiqVis = {101, -56.251, 4046.1, 6.7894, -0.0000052803, 2}, VapVis = {102, 2.9074E-08, 0.97453, 81.209, -9361.1, 0}, LiqK = {16, 0.079581, -84.501, -1.1134, -0.0025206, 2.9748E-07}, VapK = {102, 0.000077821, 1.0313, 528.38, 54551, 0}, Racketparam = 0.257009, UniquacR = 4.0357, UniquacQ = 3.2, ChaoSeadAF = 0.377998, ChaoSeadSP = 26335.8, ChaoSeadLV = 0.0952677);
-end Sulfolane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurdioxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurdioxide.mo
deleted file mode 100644
index 4415dda..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurdioxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Sulfurdioxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 24, name = "Sulfurdioxide", CAS = "7446-09-5", Tc = 430.75, Pc = 7884100, Vc = 0.122, Cc = 0.269, Tb = 263.13, Tm = 200, TT = 197.67, TP = 1674.39, MW = 64.0638, LVB = 0.04688, AF = 0.245381, SP = 12270, DM = 5.44E-30, SH = -296840000.0, IGHF = -2.9684E+08, GEF = -3.0012E+08, AS = 248100, HFMP = 7401000, HOC = 0, LiqDen = {105, 1.8477, 0.24254, 430.75, 0.27051, 0}, VP = {101, 53.52766, -4260.124, -4.670429, 0.0000030272, 2}, LiqCp = {16, 86911, 53691, -599.94, 2.2025, -0.0025885}, HOV = {106, 4.8914E+07, 1.8091, -2.9053, 2.2271, -0.64793}, VapCp = {16, 33406, -516.38, 10.524, 0.000013143, -6.1535E-08}, LiqVis = {101, 50.887, -1574, -9.4517, 1.5898E-07, 2}, VapVis = {102, 0.0000012144, 0.53923, 315.41, -2659.7, 0}, LiqK = {16, -0.21664, -2.2484, -0.50659, -0.0009424, -0.0000010218}, VapK = {102, 23.316, -0.95324, -1567.4, 1330100, 0}, Racketparam = 0, UniquacR = 1.6961, UniquacQ = 1.612, ChaoSeadAF = 0.2462, ChaoSeadSP = 12272.9, ChaoSeadLV = 0.0438228);
-end Sulfurdioxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurhexafluoride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurhexafluoride.mo
deleted file mode 100644
index 31d178d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurhexafluoride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Sulfurhexafluoride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 203, name = "Sulfurhexafluoride", CAS = "2551-62-4", Tc = 318.72, Pc = 3760000, Vc = 0.1984, Cc = 0.282, Tb = 209.25, Tm = 222.65, TT = 223.15, TP = 232670, MW = 146.056, LVB = 0.07981, AF = 0.208, SP = 7681, DM = 0, SH = -1209000000.0, IGHF = -1.209E+09, GEF = -1.1053E+09, AS = 291710, HFMP = 5024200, HOC = 9.24E+08, LiqDen = {105, 1.0016, 0.23435, 318.74, 0.24027, 0}, VP = {101, -17.60907, -1028.369, 6.556299, -0.0000178874, 2}, LiqCp = {16, 119500, -2040, -9.5251, 0.005216, -0.000044691}, HOV = {106, 5.0769E+07, 8.5605, -25.709, 29.437, -11.774}, VapCp = {16, 32322, -368.1, 12.478, -0.00063326, 1.9169E-07}, LiqVis = {101, 20.959, -457.46, -4.9486, 0.0000065105, 2}, VapVis = {102, 5.9343E-07, 0.62415, 62.573, 13289, 0}, LiqK = {16, -0.064331, -179.32, 0.36969, -0.0050683, -0.0000040693}, VapK = {102, 0.0013269, 0.52727, 30.264, 73930, 0}, Racketparam = 0.282, UniquacR = 3.085036, UniquacQ = 3.28, ChaoSeadAF = 0.208, ChaoSeadSP = 7681, ChaoSeadLV = 0.07981);
-end Sulfurhexafluoride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurtrioxide.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurtrioxide.mo
deleted file mode 100644
index 67b2a75..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Sulfurtrioxide.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Sulfurtrioxide
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 25, name = "Sulfurtrioxide", CAS = "7446-11-9", Tc = 490.85, Pc = 8210000, Vc = 0.127, Cc = 0.255, Tb = 317.9, Tm = 289.95, TT = 289.95, TP = 21130, MW = 80.0632, LVB = 0.0420954, AF = 0.42396, SP = 31130, DM = 0, SH = -296840000.0, IGHF = -3.9572E+08, GEF = -3.7095E+08, AS = 256510, HFMP = 7532000, HOC = 1.422E+08, LiqDen = {105, 1.6186, 0.20129, 490.85, 0.42123, 0}, VP = {101, 351.6001, -18247.39, -49.77065, 0.0000409297, 2}, LiqCp = {16, 258090, -3271.8, -8.4929, 0.0035868, -0.000028801}, HOV = {106, 8.1339E+07, 0.77728, -0.42427, 0.68287, -0.4608}, VapCp = {16, 32986, -404.97, 11.171, -0.000087925, -8.9809E-09}, LiqVis = {101, -260.71, 11505, 38.839, -0.000061621, 2}, VapVis = {102, 0.0000010033, 0.54515, 135.63, 19402, 0}, LiqK = {16, 0.021077, 585.52, -5.8227, 0.016099, -0.000027318}, VapK = {102, 1.1717, -0.2465, 2002.7, 1327100, 0}, Racketparam = 0, UniquacR = 2.145023, UniquacQ = 1.972376, ChaoSeadAF = 0.42396, ChaoSeadSP = 31130, ChaoSeadLV = 0.0420954);
-end Sulfurtrioxide;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Terephthalicacid.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Terephthalicacid.mo
deleted file mode 100644
index 104abc7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Terephthalicacid.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Terephthalicacid
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 403, name = "Terephthalicacid", CAS = "100-21-0", Tc = 943.0648, Pc = 4492234, Vc = 0.4235, Cc = 0.242627, Tb = 665.55, Tm = 573.15, TT = 0, TP = 0, MW = 166.131, LVB = 0.115821, AF = 1.16031, SP = 29038.44, DM = 0, SH = -22600000.0, IGHF = -7.179E+08, GEF = -5.99E+08, AS = 448000, HFMP = 0, HOC = -3.0576E+09, LiqDen = {105, 0.42685, 0.181, 1113, 0.28571, 0}, VP = {101, 215.8574, -29586.64, -25.50026, 3.863371E-06, 2}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 8.9802E+07, 0.189, -0.50305, -1.1074, 4.311}, VapCp = {16, 83070, -852.74, 13.689, -0.000643, 1.4167E-07}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {102, 2.4248E-08, 0.96894, 40.456, -14256, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {102, 0.00016184, 0.88608, 624.29, 90960, 0}, Racketparam = 0.242627, UniquacR = 5.456, UniquacQ = 4.288, ChaoSeadAF = 0, ChaoSeadSP = 0, ChaoSeadLV = 0);
-end Terephthalicacid;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylbenzene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylbenzene.mo
deleted file mode 100644
index bc6cdd2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylbenzene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Tertbutylbenzene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 290, name = "Tertbutylbenzene", CAS = "98-06-6", Tc = 660, Pc = 2970000, Vc = 0.46, Cc = 0.266, Tb = 442.3, Tm = 215.27, TT = 215.27, TP = 0.0910321, MW = 134.218, LVB = 0.155605, AF = 0.267406, SP = 17130, DM = 2.33E-30, SH = -1209000000.0, IGHF = -2.26E+07, GEF = 1.4995E+08, AS = 401400, HFMP = 8393000, HOC = -5.5547E+09, LiqDen = {105, 0.50957, 0.25071, 660, 0.30584, 0}, VP = {101, 87.574, -8352.2, -9.5118, 0.0000039953, 2}, LiqCp = {16, 164930, 701.24, 1.184, 0.037122, -0.000038006}, HOV = {106, 6.3167E+07, 0.45262, 0, 0, 0}, VapCp = {16, 113750, -776.86, 13.825, -0.0005797, 1.6467E-07}, LiqVis = {101, -11.7, 1364.1, 0.038741, -3.8013E-08, 2}, VapVis = {102, 7.2957E-07, 0.50871, 384.51, -23.513, 0}, LiqK = {16, 0.052023, -143.3, -0.69673, -0.0057333, 0.0000022627}, VapK = {102, 0.000018955, 1.2291, 130.74, 53349, 0}, Racketparam = 0.266, UniquacR = 5.9452, UniquacQ = 4.584, ChaoSeadAF = 0.267406, ChaoSeadSP = 17130, ChaoSeadLV = 0.155605);
-end Tertbutylbenzene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylcyclohexane.mo
deleted file mode 100644
index 01204d8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Tertbutylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 281, name = "Tertbutylcyclohexane", CAS = "3178-22-1", Tc = 652, Pc = 2660000, Vc = 0.51, Cc = 0.25, Tb = 444.65, Tm = 231.98, TT = 231.98, TP = 1.2, MW = 140.266, LVB = 0.1734, AF = 0.299134, SP = 16040, DM = 0, SH = -1209000000.0, IGHF = -2.169E+08, GEF = 5.695E+07, AS = 445700, HFMP = 1.12E+07, HOC = -6.091E+09, LiqDen = {105, 0.52388, 0.26705, 652, 0.32913, 0}, VP = {101, 123.1664, -9675.557, -15.08186, 0.0000105041, 2}, LiqCp = {16, 40996, -122.74, 11.846, 0.0032488, -0.0000015611}, HOV = {106, 6.9454E+07, 0.40915, 1.6494, -3.4494, 1.9573}, VapCp = {16, 95339, -601.24, 13.623, -0.000018521, -1.574E-08}, LiqVis = {101, -11.549, 1445.9, 0, 0, 0}, VapVis = {102, 4.6046E-08, 0.87493, 72.873, -5600.2, 0}, LiqK = {16, 0.054405, -203.55, -0.50495, -0.0065818, 0.0000029095}, VapK = {102, 0.077607, 0.14004, -91.94, 1372500, 0}, Racketparam = 0.25, UniquacR = 6.7417, UniquacQ = 5.472, ChaoSeadAF = 0.299134, ChaoSeadSP = 16040, ChaoSeadLV = 0.1734);
-end Tertbutylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylethylether.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylethylether.mo
deleted file mode 100644
index 63cf565..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylethylether.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Tertbutylethylether
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 331, name = "Tertbutylethylether", CAS = "637-92-3", Tc = 512, Pc = 3149000, Vc = 0.382, Cc = 0.272, Tb = 345.65, Tm = 176.15, TT = 179.15, TP = 0.880264, MW = 102.175, LVB = 0.138991, AF = 0.295672, SP = 14800, DM = 4.07E-30, SH = -216400000.0, IGHF = -3.165E+08, GEF = -1.217E+08, AS = 397500, HFMP = 9530000, HOC = -3.684E+09, LiqDen = {105, 0.74373, 0.27619, 512, 0.30602, 0}, VP = {101, 59.92213, -5564.171, -5.601322, 3.389291E-06, 2}, LiqCp = {16, 135520, 9.8807, 8.6914, 0.01077, -0.0000076034}, HOV = {106, 4.5825E+07, 0.349787, 0.137025, -0.301886, 0.219717}, VapCp = {16, 78915, -487.03, 12.843, 0.00025385, -8.879E-08}, LiqVis = {101, -12.011, 1089.8, 0.081011, -2.1688E-07, 2}, VapVis = {102, 1.9715E-07, 0.697, 171.3, -4885.5, 0}, LiqK = {16, -0.1316, 11.716, -1.2478, -0.00024672, -0.0000012519}, VapK = {102, 0.000058788, 1.0907, 235.7, 33150, 0}, Racketparam = 0.272, UniquacR = 4.7422, UniquacQ = 4.172, ChaoSeadAF = 0.295672, ChaoSeadSP = 14800, ChaoSeadLV = 0.138991);
-end Tertbutylethylether;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylmercaptan.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylmercaptan.mo
deleted file mode 100644
index 2c8394b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tertbutylmercaptan.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Tertbutylmercaptan
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 350, name = "Tertbutylmercaptan", CAS = "75-66-1", Tc = 530, Pc = 4060000, Vc = 0.307, Cc = 0.283, Tb = 337.37, Tm = 274.26, TT = 274.42, TP = 7907.71, MW = 90.1872, LVB = 0.113524, AF = 0.191395, SP = 15790, DM = 5.3E-30, SH = -22600000.0, IGHF = -1.096E+08, GEF = 1006000, AS = 338000, HFMP = 2482000, HOC = -2.9396E+09, LiqDen = {105, 0.89711, 0.27544, 530, 0.31359, 0}, VP = {101, 107.5154, -7030.549, -13.1586, 0.0000127338, 2}, LiqCp = {16, 154160, 506.03, 1.848, 0.027991, -0.000021961}, HOV = {106, 5.3137E+07, 1.4502, -2.4713, 2.4297, -0.95458}, VapCp = {16, 81989, -677.66, 12.907, -0.00021031, 4.8543E-08}, LiqVis = {101, -8.3337, 1214.8, -0.59208, 0.0000022318, 2}, VapVis = {102, 3.9123E-07, 0.6395, 316.74, -8533.3, 0}, LiqK = {16, 0.031454, -260.91, 0.599, -0.0079027, 0.0000031638}, VapK = {102, 0.032499, 0.31482, 1562.3, 775320, 0}, Racketparam = 0.283, UniquacR = 4.3543, UniquacQ = 3.912, ChaoSeadAF = 0.191395, ChaoSeadSP = 15790, ChaoSeadLV = 0.113524);
-end Tertbutylmercaptan;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetraethyleneglycol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetraethyleneglycol.mo
deleted file mode 100644
index 6326775..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetraethyleneglycol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Tetraethyleneglycol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 160, name = "Tetraethyleneglycol", CAS = "112-60-7", Tc = 795, Pc = 2590000, Vc = 0.564, Cc = 0.221, Tb = 602.7, Tm = 268.15, TT = 268.15, TP = 0.0000138348, MW = 194.226, LVB = 0.172862, AF = 0.917442, SP = 23690, DM = 1.08E-29, SH = -168070000.0, IGHF = -8.83E+08, GEF = -5.599E+08, AS = 650100, HFMP = 3.66E+07, HOC = -4.3431E+09, LiqDen = {105, 0.46229, 0.26105, 795, 0.27055, 0}, VP = {101, 106.7938, -15323.17, -10.86107, -5.284752E-07, 2}, LiqCp = {16, 180650, -180.95, 12.547, 0.0020505, -0.0000018444}, HOV = {106, 1.282157E+08, 0.159236, 1.504015, -1.941373, 0.658104}, VapCp = {16, 122630, -416.14, 13.02, 0.00050957, -2.1012E-07}, LiqVis = {101, -702.8128, 30403.47, 106.7279, -0.000116388, 2}, VapVis = {102, 7.6872E-08, 0.801, 119.91, 0.29361, 0}, LiqK = {16, -0.11138, -134.47, -0.46393, -0.00084854, -4.1141E-07}, VapK = {102, 0.00016749, 0.91863, 699.93, 16777, 0}, Racketparam = 0, UniquacR = 8.1269, UniquacQ = 7.440001, ChaoSeadAF = 0.930639, ChaoSeadSP = 23571.8, ChaoSeadLV = 0.173363);
-end Tetraethyleneglycol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetrahydrofuran.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetrahydrofuran.mo
deleted file mode 100644
index 2c7451a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Tetrahydrofuran.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Tetrahydrofuran
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 84, name = "Tetrahydrofuran", CAS = "109-99-9", Tc = 540.2, Pc = 5190000, Vc = 0.224, Cc = 0.259, Tb = 339.12, Tm = 164.65, TT = 164.65, TP = 0.195542, MW = 72.107, LVB = 0.08171, AF = 0.225, SP = 18970, DM = 5.44E-30, SH = -17100000.0, IGHF = -1.8418E+08, GEF = -7.969E+07, AS = 297290, HFMP = 8540000, HOC = -2.325E+09, LiqDen = {105, 1.054, 0.25754, 540.2, 0.26776, 0}, VP = {101, 82.74347, -6236.553, -9.221137, 0.0000078089, 2}, LiqCp = {16, 83351, 774.14, 0.38273, 0.036255, -0.00003559}, HOV = {106, 4.770629E+07, 0.8303, -0.617577, -0.253996, 0.501899}, VapCp = {16, 41616, -744.85, 13.048, -0.00029616, 7.4486E-08}, LiqVis = {101, -10.047, 896.61, -0.11864, 2.5625E-07, 2}, VapVis = {102, 3.3286E-07, 0.67758, 342.35, -15667, 0}, LiqK = {16, -0.22085, 9.5971, -0.99496, -0.00017415, -6.4958E-07}, VapK = {102, 0.000010439, 1.4482, 729.36, -9829.3, 0}, Racketparam = 0.259, UniquacR = 2.94, UniquacQ = 2.4, ChaoSeadAF = 0.225, ChaoSeadSP = 19042.3, ChaoSeadLV = 0.0819417);
-end Tetrahydrofuran;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Thiophene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Thiophene.mo
deleted file mode 100644
index a28a4a8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Thiophene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Thiophene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 72, name = "Thiophene", CAS = "110-02-1", Tc = 580, Pc = 5660000, Vc = 0.219, Cc = 0.252, Tb = 357.31, Tm = 234.94, TT = 234.94, TP = 185.638, MW = 84.142, LVB = 0.07947, AF = 0.186, SP = 20120, DM = 1.8E-30, SH = 304600000.0, IGHF = 1.1544E+08, GEF = 1.267E+08, AS = 278400, HFMP = 5085600, HOC = -2.4352E+09, LiqDen = {105, 0.73395, 0.21494, 580, 0.2288, 0}, VP = {101, 88.26733, -6809.188, -9.975872, 0.0000074967, 2}, LiqCp = {16, 84631, -77.085, 9.4174, 0.0060386, -0.0000042543}, HOV = {106, 4.87E+07, 0.35468, 0.57965, -0.92941, 0.39593}, VapCp = {16, 31580, -546.03, 12.548, -0.00032144, 9.6227E-08}, LiqVis = {101, -15.561, 1306.6, 0.66009, 3.2071E-07, 2}, VapVis = {102, 0.0000010722, 0.54275, 557.27, 2874.5, 0}, LiqK = {16, 0.024119, -20.319, -1.5338, -0.0014869, -6.6677E-07}, VapK = {102, 0.00013168, 0.98328, 649.4, -5290.1, 0}, Racketparam = 0.274238, UniquacR = 2.8569, UniquacQ = 2.14, ChaoSeadAF = 0.192846, ChaoSeadSP = 20219.8, ChaoSeadLV = 0.0794773);
-end Thiophene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFivedinitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFivedinitrotoluene.mo
deleted file mode 100644
index 8835e68..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFivedinitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeFivedinitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 391, name = "ThreeFivedinitrotoluene", CAS = "618-85-9", Tc = 800, Pc = 2150000, Vc = 0.487, Cc = 0.238, Tb = 588, Tm = 366.15, TT = 365.65, TP = 35.4684, MW = 182.134, LVB = 0.140577, AF = 0.702302, SP = 21440, DM = 1.44E-29, SH = -22600000.0, IGHF = 2.71E+07, GEF = 2.34E+08, AS = 414000, HFMP = 2.29E+07, HOC = -3.437E+09, LiqDen = {105, 0.45727, 0.227, 814.01, 0.27155, 0}, VP = {101, 63.61855, -10355.64, -5.423477, 2.374318E-07, 2}, LiqCp = {16, 211860, -5.3058, 8.1208, 0.009225, -0.0000034389}, HOV = {106, 5.989509E+07, -0.991558, 3.414071, -4.448985, 2.238465}, VapCp = {16, 94512, -582.56, 13.27, -0.00026587, 5.3735E-08}, LiqVis = {101, -0.25652, 2097.7, -2.0147, 0.0000014987, 2}, VapVis = {102, 4.7633E-08, 0.90246, 116.57, -8469.6, 0}, LiqK = {16, -0.029795, -134.57, -0.63203, -0.0021751, 3.0388E-07}, VapK = {102, 0.00014433, 0.92815, 684.42, 24021, 0}, Racketparam = 0.238, UniquacR = 5.7, UniquacQ = 4.376, ChaoSeadAF = 0.702302, ChaoSeadSP = 21440, ChaoSeadLV = 0.140577);
-end ThreeFivedinitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdimethylhexane.mo
deleted file mode 100644
index f597507..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeFourdimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 235, name = "ThreeFourdimethylhexane", CAS = "583-48-2", Tc = 568.8, Pc = 2690000, Vc = 0.4588, Cc = 0.265, Tb = 390.88, Tm = 0, TT = 0, TP = 0, MW = 114.231, LVB = 0.15973, AF = 0.338, SP = 15140, DM = 0, SH = -1209000000.0, IGHF = -2.13007E+08, GEF = 1.674E+07, AS = 451580, HFMP = 0, HOC = -5.07251E+09, LiqDen = {105, 0.45439, 0.24011, 568.8, 0.23618, 0}, VP = {101, 93.68625, -7521.509, -10.73445, 7.52569E-06, 2}, LiqCp = {16, -327870, 47.226, 12.229, 0.0041484, -0.000004128}, HOV = {106, 5.4702E+07, 0.45918, 0.1856, -0.51513, 0.26338}, VapCp = {16, 34075, -331.34, 12.881, 0.00054108, -1.7153E-07}, LiqVis = {101, -41.742, 2125.1, 4.8163, -0.0000056466, 2}, VapVis = {102, 6.4152E-07, 0.51789, 310.46, 157.69, 0}, LiqK = {16, -0.0004002, -144.47, -0.57247, -0.0042745, 0.0000010836}, VapK = {102, 0.000020807, 1.2133, -200.76, 152640, 0}, Racketparam = 0.265, UniquacR = 5.847, UniquacQ = 4.928, ChaoSeadAF = 0.338, ChaoSeadSP = 15140, ChaoSeadLV = 0.15973);
-end ThreeFourdimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdinitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdinitrotoluene.mo
deleted file mode 100644
index 4d62a57..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeFourdinitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeFourdinitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 389, name = "ThreeFourdinitrotoluene", CAS = "610-39-9", Tc = 842, Pc = 3400000, Vc = 0.487, Cc = 0.237, Tb = 610, Tm = 331.45, TT = 331.45, TP = 2.66366, MW = 182.134, LVB = 0.139231, AF = 0.709209, SP = 21410, DM = 2.13E-29, SH = -22600000.0, IGHF = 3.58E+07, GEF = 2.59E+08, AS = 414000, HFMP = 2.08E+07, HOC = -3.466E+09, LiqDen = {105, 0.48567, 0.23619, 842, 0.28583, 0}, VP = {101, 62.33838, -11025.98, -5.109566, 1.997931E-07, 2}, LiqCp = {16, 144440, 677.88, 6.2554, 0.011911, -0.000005235}, HOV = {106, 6.888359E+07, -1.153409, 5.750305, -8.495374, 4.124815}, VapCp = {16, 94512, -582.56, 13.27, -0.00026587, 5.3735E-08}, LiqVis = {101, -13.817, 2734.2, 0.029663, -2.4471E-08, 2}, VapVis = {102, 2.8655E-08, 0.96106, 104.06, -10189, 0}, LiqK = {16, -0.082395, -25.284, -1.0996, -0.00075328, -2.6136E-07}, VapK = {102, 0.0001043, 0.96342, 702.61, 22699, 0}, Racketparam = 0.237, UniquacR = 5.7, UniquacQ = 4.376, ChaoSeadAF = 0.709209, ChaoSeadSP = 21410, ChaoSeadLV = 0.139231);
-end ThreeFourdinitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreeFivetrimethylheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreeFivetrimethylheptane.mo
deleted file mode 100644
index e5a020b..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreeFivetrimethylheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeThreeFivetrimethylheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 251, name = "ThreeThreeFivetrimethylheptane", CAS = "7154-80-5", Tc = 609.6, Pc = 2320000, Vc = 0.564, Cc = 0.258, Tb = 428.83, Tm = 165, TT = 165, TP = 0.0000151957, MW = 142.285, LVB = 0.19248, AF = 0.383, SP = 15010, DM = 0, SH = -1209000000.0, IGHF = -2.588E+08, GEF = 3.23E+07, AS = 513420, HFMP = 1.4E+07, HOC = -6.2911E+09, LiqDen = {105, 0.32798, 0.22465, 609.6, 0.2413, 0}, VP = {101, 165.0702, -10873.83, -21.67781, 0.0000174271, 2}, LiqCp = {16, 181900, 88.778, 8.7398, 0.011239, -0.0000078705}, HOV = {106, 5.692041E+07, -0.369689, 2.788348, -3.430471, 1.37842}, VapCp = {16, 93450, -461.09, 13.294, 0.00031582, -1.0309E-07}, LiqVis = {101, -7.8795, 1294.8, -0.60549, -4.2086E-07, 2}, VapVis = {102, 5.7085E-07, 0.52829, 329.98, -4470.2, 0}, LiqK = {16, 0.0037809, -39.052, -1.5072, -0.0019367, -8.6862E-07}, VapK = {102, 0.000042493, 1.1211, -89.298, 167970, 0}, Racketparam = 0.258, UniquacR = 7.1951, UniquacQ = 6.088, ChaoSeadAF = 0.383, ChaoSeadSP = 15010, ChaoSeadLV = 0.19248);
-end ThreeThreeFivetrimethylheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreediethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreediethylpentane.mo
deleted file mode 100644
index 3702b87..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreediethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeThreediethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 241, name = "ThreeThreediethylpentane", CAS = "1067-20-5", Tc = 610.05, Pc = 2674980, Vc = 0.473, Cc = 0.249, Tb = 419.34, Tm = 240.12, TT = 240.12, TP = 13.7918, MW = 128.255, LVB = 0.171012, AF = 0.3379, SP = 15220, DM = 0, SH = -1209000000.0, IGHF = -2.31835E+08, GEF = 4.17E+07, AS = 436500, HFMP = 9800000, HOC = -5.68438E+09, LiqDen = {105, 0.61216, 0.28967, 610.05, 0.29325, 0}, VP = {101, 143.8917, -9842.666, -18.51396, 0.000016514, 2}, LiqCp = {16, 167890, 37.678, 8.6605, 0.012988, -0.000011813}, HOV = {106, 5.0222E+07, -0.028455, 0.90984, -0.78409, 0.24027}, VapCp = {16, 120540, -563.25, 13.32, 0.00012473, -3.6626E-08}, LiqVis = {101, -12.975, 1131.8, 0.25767, -3.4761E-07, 2}, VapVis = {102, 3.6575E-07, 0.57536, 184.44, 2017.7, 0}, LiqK = {16, -0.021495, -29.993, -1.4603, -0.0013716, -7.6272E-07}, VapK = {102, 0.000069723, 1.0959, 342.29, 74930, 0}, Racketparam = 0.249, UniquacR = 6.5215, UniquacQ = 5.552, ChaoSeadAF = 0.3379, ChaoSeadSP = 15220, ChaoSeadLV = 0.171012);
-end ThreeThreediethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylTwobutanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylTwobutanone.mo
deleted file mode 100644
index 3296937..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylTwobutanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeThreedimethylTwobutanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 315, name = "ThreeThreedimethylTwobutanone", CAS = "75-97-8", Tc = 567, Pc = 3470000, Vc = 0.368, Cc = 0.261, Tb = 379.45, Tm = 221.15, TT = 221.15, TP = 14.4334, MW = 100.159, LVB = 0.124869, AF = 0.327309, SP = 16920, DM = 9.37E-30, SH = -1209000000.0, IGHF = -2.905E+08, GEF = -1.307E+08, AS = 384400, HFMP = 1.133E+07, HOC = -3.4837E+09, LiqDen = {105, 0.050005, 0.070782, 567, 0.11676, 0}, VP = {101, 93.48771, -7385.263, -10.71444, 7.878115E-06, 2}, LiqCp = {16, 154180, 195.77, 7.7152, 0.0092036, -0.0000029177}, HOV = {106, 5.0163E+07, 0.36416, -0.10654, 0.27936, -0.16414}, VapCp = {16, 104260, -866.95, 13.572, -0.00063607, 2.0716E-07}, LiqVis = {101, -19.254, 1373.2, 1.3346, -0.0000032641, 2}, VapVis = {102, 1.8869E-07, 0.70026, 190.78, -6542.3, 0}, LiqK = {16, -0.15399, 9.8963, -1.0886, -0.00030883, -9.2007E-07}, VapK = {102, 1744.4, 1.0305, 1.6872E+10, -1.3896E+11, 0}, Racketparam = 0.261, UniquacR = 4.5952, UniquacQ = 4.032, ChaoSeadAF = 0.327309, ChaoSeadSP = 16920, ChaoSeadLV = 0.124869);
-end ThreeThreedimethylTwobutanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylhexane.mo
deleted file mode 100644
index c11b666..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeThreedimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 234, name = "ThreeThreedimethylhexane", CAS = "563-16-6", Tc = 562, Pc = 2650000, Vc = 0.4428, Cc = 0.251, Tb = 385.12, Tm = 147.05, TT = 147.05, TP = 0.0000473645, MW = 114.231, LVB = 0.16181, AF = 0.32, SP = 14880, DM = 0, SH = -1209000000.0, IGHF = -2.2012E+08, GEF = 1.32633E+07, AS = 438230, HFMP = 7112800, HOC = -5.06682E+09, LiqDen = {105, 0.45959, 0.24567, 562, 0.21162, 0}, VP = {101, 109.95, -8119.3, -13.232, 0.0000097251, 2}, LiqCp = {16, 130950, -54.41, 9.7102, 0.0098373, -0.0000089507}, HOV = {106, 5.8755E+07, 0.81257, -0.27217, -0.51422, 0.40803}, VapCp = {16, 73854, -426.62, 12.974, 0.00044554, -1.4645E-07}, LiqVis = {101, -7.0202, 924.42, -0.69061, 0.0000021821, 2}, VapVis = {102, 1.9286E-07, 0.65784, 75.166, 8686.9, 0}, LiqK = {16, -0.074777, 3.6654, -1.4953, -0.00045709, -0.000001113}, VapK = {102, 0.000028072, 1.1786, -168.43, 151580, 0}, Racketparam = 0.251, UniquacR = 5.8471, UniquacQ = 5.012, ChaoSeadAF = 0.32, ChaoSeadSP = 14880, ChaoSeadLV = 0.16181);
-end ThreeThreedimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylpentane.mo
deleted file mode 100644
index 2c7b4d5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreeThreedimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreeThreedimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 224, name = "ThreeThreedimethylpentane", CAS = "562-49-2", Tc = 536.3, Pc = 2950000, Vc = 0.4141, Cc = 0.274, Tb = 359.19, Tm = 138.7, TT = 138.7, TP = 0.000229687, MW = 100.204, LVB = 0.1454, AF = 0.269, SP = 14530, DM = 0, SH = -1209000000.0, IGHF = -2.0146E+08, GEF = 2719600, AS = 398150, HFMP = 7066780, HOC = -4.45458E+09, LiqDen = {105, 0.57981, 0.25238, 536.41, 0.28345, 0}, VP = {101, 74.58125, -6059.883, -7.986446, 6.250113E-06, 2}, LiqCp = {16, 122500, 86.779, 8.7861, 0.0099608, -0.0000069264}, HOV = {106, 5.254E+07, 1.1834, -1.8011, 1.5275, -0.48856}, VapCp = {16, 67595, -428.94, 12.79, 0.00052141, -1.6453E-07}, LiqVis = {101, -7.1051, 998.94, -0.73694, 0.0000026961, 2}, VapVis = {102, 9.3561E-07, 0.48169, 385.32, 9.0702, 0}, LiqK = {16, -0.050708, 3.465, -1.5874, -0.00046821, -0.000001622}, VapK = {102, 0.000069501, 1.0643, -68.32, 160740, 0}, Racketparam = 0.274, UniquacR = 5.1727, UniquacQ = 4.472, ChaoSeadAF = 0.269, ChaoSeadSP = 14530, ChaoSeadLV = 0.1454);
-end ThreeThreedimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylheptane.mo
deleted file mode 100644
index 47db976..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threeethylheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 249, name = "Threeethylheptane", CAS = "15869-80-4", Tc = 594.3, Pc = 2430000, Vc = 0.5213, Cc = 0.257, Tb = 416.35, Tm = 158.25, TT = 158.25, TP = 0.0000277743, MW = 128.255, LVB = 0.177515, AF = 0.407991, SP = 15300, DM = 0, SH = -1209000000.0, IGHF = -2.3146E+08, GEF = 2.494E+07, AS = 497400, HFMP = 1.6E+07, HOC = -5.6838E+09, LiqDen = {105, 0.38578, 0.23273, 594.3, 0.25158, 0}, VP = {101, 103.6653, -8269.445, -12.32292, 0.000012256, 2}, LiqCp = {16, 29546, -3.2521, 11.386, 0.0045932, -0.0000035582}, HOV = {106, 6.3311E+07, 1.0505, -1.9581, 2.2955, -0.98973}, VapCp = {16, 137360, -689.88, 13.586, -0.00018791, 5.2355E-08}, LiqVis = {101, -11.279, 1149.8, -0.019903, 1.7111E-07, 2}, VapVis = {102, 0.0000007497, 0.48637, 340.94, -2876.9, 0}, LiqK = {16, -0.038271, 3.4169, -1.6847, -0.00052626, -0.0000013295}, VapK = {102, 0.000030963, 1.1527, -150.17, 156710, 0}, Racketparam = 0.257, UniquacR = 6.5222, UniquacQ = 5.472, ChaoSeadAF = 0.407991, ChaoSeadSP = 15300, ChaoSeadLV = 0.177515);
-end Threeethylheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylhexane.mo
deleted file mode 100644
index 9ed8a76..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threeethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 229, name = "Threeethylhexane", CAS = "619-99-8", Tc = 565.4, Pc = 2610000, Vc = 0.4605, Cc = 0.253, Tb = 391.69, Tm = 0, TT = 0, TP = 0, MW = 114.231, LVB = 0.16101, AF = 0.362, SP = 15210, DM = 0, SH = -1209000000.0, IGHF = -2.10874E+08, GEF = 1.68615E+07, AS = 457860, HFMP = 0, HOC = -5.07398E+09, LiqDen = {105, 0.46206, 0.24436, 565.51, 0.22747, 0}, VP = {101, 97.09596, -7733.566, -11.22583, 7.810756E-06, 2}, LiqCp = {16, 80628, -64.909, 11.186, 0.0048319, -0.0000040172}, HOV = {106, 5.4799E+07, 0.26737, 0.81877, -1.2904, 0.59915}, VapCp = {16, 115160, -618.28, 13.279, 0.0000464, -2.6202E-08}, LiqVis = {101, -7.8742, 897.68, -0.5066, 2.0784E-08, 2}, VapVis = {102, 3.7627E-07, 0.57415, 196.9, -172.94, 0}, LiqK = {16, -0.001637, -138.28, -0.62782, -0.0040963, 8.9774E-07}, VapK = {102, 0.000056588, 1.0789, -123.05, 173090, 0}, Racketparam = 0.253, UniquacR = 5.8478, UniquacQ = 4.932, ChaoSeadAF = 0.362, ChaoSeadSP = 15210, ChaoSeadLV = 0.16101);
-end Threeethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylpentane.mo
deleted file mode 100644
index 47d2f57..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threeethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 220, name = "Threeethylpentane", CAS = "617-78-7", Tc = 540.5, Pc = 2890000, Vc = 0.4158, Cc = 0.267, Tb = 366.63, Tm = 154.55, TT = 154.55, TP = 0.00170947, MW = 100.204, LVB = 0.1444, AF = 0.311, SP = 15040, DM = 0, SH = -1209000000.0, IGHF = -1.89661E+08, GEF = 1.09202E+07, AS = 411540, HFMP = 9547890, HOC = -4.4642E+09, LiqDen = {105, 0.56112, 0.24813, 540.61, 0.27074, 0}, VP = {101, 89.99315, -6915.896, -10.27777, 8.039283E-06, 2}, LiqCp = {16, 152590, 204.56, 5.9318, 0.021701, -0.000022224}, HOV = {106, 5.3257E+07, 1.2647, -2.6729, 3.1124, -1.3109}, VapCp = {16, 102980, -630.04, 13.15, 0.000058616, -2.6799E-08}, LiqVis = {101, -11.885, 1001.1, 0.10351, -0.0000003544, 2}, VapVis = {102, 6.1521E-07, 0.52741, 287.77, 1840.5, 0}, LiqK = {16, -0.055574, 4.7874, -1.5746, -0.0003945, -0.0000016303}, VapK = {102, 0.000065519, 1.0691, -74.423, 161360, 0}, Racketparam = 0.267, UniquacR = 5.1734, UniquacQ = 4.392, ChaoSeadAF = 0.311, ChaoSeadSP = 15040, ChaoSeadLV = 0.1444);
-end Threeethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeheptanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeheptanone.mo
deleted file mode 100644
index f30c3f1..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threeheptanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threeheptanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 308, name = "Threeheptanone", CAS = "106-35-4", Tc = 605, Pc = 3010000, Vc = 0.421, Cc = 0.251, Tb = 420.55, Tm = 234.15, TT = 234.15, TP = 2.29921, MW = 114.185, LVB = 0.140257, AF = 0.407565, SP = 17940, DM = 9.37E-30, SH = -1209000000.0, IGHF = -3.01E+08, GEF = -1.196E+08, AS = 448500, HFMP = 1.81E+07, HOC = -4.098E+09, LiqDen = {105, 0.65544, 0.26958, 605, 0.29059, 0}, VP = {101, 59.93996, -7156.968, -5.201278, 1.288938E-07, 2}, LiqCp = {16, 215140, 447.78, 3.9106, 0.020539, -0.000013511}, HOV = {106, 6.726896E+07, 0.830475, -1.256385, 1.592723, -0.756362}, VapCp = {16, 122140, -668.77, 13.117, -0.0000064986, -3.4969E-08}, LiqVis = {101, -11.982, 1284.2, 0.095491, -8.1894E-07, 2}, VapVis = {102, 1.4757E-07, 0.71999, 184.44, -6805, 0}, LiqK = {16, -0.025728, -61.893, -0.97852, -0.0021604, 1.2683E-07}, VapK = {102, 1201.8, 1.0398, 1.4113E+10, -9.6162E+10, 0}, Racketparam = 0.251, UniquacR = 5.2711, UniquacQ = 4.496, ChaoSeadAF = 0.407565, ChaoSeadSP = 17940, ChaoSeadLV = 0.140257);
-end Threeheptanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threehexanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threehexanone.mo
deleted file mode 100644
index 906769a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threehexanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threehexanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 310, name = "Threehexanone", CAS = "589-38-8", Tc = 582.8, Pc = 3320000, Vc = 0.378, Cc = 0.256, Tb = 396.65, Tm = 215, TT = 217.5, TP = 2.22016, MW = 100.161, LVB = 0.12343, AF = 0.38, SP = 17930, DM = 9.57E-30, SH = -1209000000.0, IGHF = -2.777E+08, GEF = -1.253E+08, AS = 409200, HFMP = 1.11E+07, HOC = -3.492E+09, LiqDen = {105, 0.60844, 0.24303, 582.83, 0.26177, 0}, VP = {101, 109.4591, -8520.55, -13.01531, 9.019631E-06, 2}, LiqCp = {16, 185400, 578.77, 3.0261, 0.02276, -0.000015777}, HOV = {106, 5.134266E+07, -0.294625, 1.94188, -1.96318, 0.653572}, VapCp = {16, 108160, -675.23, 12.973, -0.000036372, -1.5789E-08}, LiqVis = {101, -3.119, 957.18, -1.3764, 0.0000033013, 2}, VapVis = {102, 1.7969E-07, 0.70065, 200.48, -7668.6, 0}, LiqK = {16, 0.0083801, 80.808, -2.2377, 0.00083175, -0.0000033028}, VapK = {102, -0.24291, 0.11759, -2306.6, -3681900, 0}, Racketparam = 0.256, UniquacR = 4.5967, UniquacQ = 3.956, ChaoSeadAF = 0.38, ChaoSeadSP = 17930, ChaoSeadLV = 0.12343);
-end Threehexanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylOnebutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylOnebutene.mo
deleted file mode 100644
index e2e7166..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylOnebutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreemethylOnebutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 106, name = "ThreemethylOnebutene", CAS = "563-45-1", Tc = 452.7, Pc = 3550000, Vc = 0.3049, Cc = 0.288, Tb = 293.21, Tm = 104.66, TT = 104.66, TP = 0.0000144678, MW = 70.134, LVB = 0.11277, AF = 0.211, SP = 13780, DM = 1.07E-30, SH = -27600000.0, IGHF = -2.76E+07, GEF = 7.605E+07, AS = 333900, HFMP = 5359700, HOC = -3.1253E+09, LiqDen = {105, 0.85968, 0.26229, 452.7, 0.27579, 0}, VP = {101, 74.66163, -4956.256, -8.290047, 0.0000100425, 2}, LiqCp = {16, 94996, 92.422, 8.4061, 0.009093, -0.0000045826}, HOV = {106, 3.9174E+07, 0.58094, 0.12579, -0.78785, 0.49354}, VapCp = {16, 82557, -671.08, 12.784, -0.00012458, 4.234E-08}, LiqVis = {101, -11.214, 821.55, -0.010133, 9.4673E-08, 2}, VapVis = {102, 0.0000016555, 0.42535, 455.3, 876.91, 0}, LiqK = {16, -0.017622, 5.9209, -1.694, -0.00045405, -0.0000033564}, VapK = {102, 0.00014816, 0.97375, 75.281, 116540, 0}, Racketparam = 0.272045, UniquacR = 3.5945, UniquacQ = 3.1, ChaoSeadAF = 0.2285, ChaoSeadSP = 14010.2, ChaoSeadLV = 0.111819);
-end ThreemethylOnebutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylThreeethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylThreeethylpentane.mo
deleted file mode 100644
index 09477f2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/ThreemethylThreeethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model ThreemethylThreeethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 237, name = "ThreemethylThreeethylpentane", CAS = "1067-08-9", Tc = 576.5, Pc = 2810000, Vc = 0.4551, Cc = 0.267, Tb = 391.42, Tm = 182.28, TT = 182.28, TP = 0.0625263, MW = 114.231, LVB = 0.15788, AF = 0.305, SP = 15060, DM = 0, SH = -1209000000.0, IGHF = -2.1485E+08, GEF = 2.288E+07, AS = 432960, HFMP = 1.08E+07, HOC = -5.0716E+09, LiqDen = {105, 0.59884, 0.27253, 576.5, 0.28169, 0}, VP = {101, 85.77668, -7097.92, -9.572218, 6.70781E-06, 2}, LiqCp = {16, 77769, 172.95, 9.182, 0.01021, -0.0000086615}, HOV = {106, 6.3775E+07, 1.5194, -2.4569, 2.0687, -0.69375}, VapCp = {16, 89715, -509.11, 13.135, 0.00024858, -7.767E-08}, LiqVis = {101, -18.59, 1270.3, 1.2467, -0.0000036226, 2}, VapVis = {102, 7.5822E-07, 0.50218, 361.22, -3635.6, 0}, LiqK = {16, -0.037427, 7.7785, -1.7161, -0.00028317, -0.0000017728}, VapK = {102, 0.000021773, 1.2197, -136.64, 138470, 0}, Racketparam = 0.267, UniquacR = 5.8471, UniquacQ = 5.012, ChaoSeadAF = 0.305, ChaoSeadSP = 15060, ChaoSeadLV = 0.15788);
-end ThreemethylThreeethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylheptane.mo
deleted file mode 100644
index df57ec2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threemethylheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 227, name = "Threemethylheptane", CAS = "589-81-1", Tc = 563.6, Pc = 2550000, Vc = 0.4711, Cc = 0.253, Tb = 392.08, Tm = 152.65, TT = 152.6, TP = 0.0000523002, MW = 114.231, LVB = 0.16278, AF = 0.371, SP = 15180, DM = 0, SH = -1209000000.0, IGHF = -2.1251E+08, GEF = 1.275E+07, AS = 465510, HFMP = 1.163E+07, HOC = -5.0721E+09, LiqDen = {105, 0.48768, 0.25064, 563.66, 0.24544, 0}, VP = {101, 94.76732, -7652.539, -10.86325, 7.450521E-06, 2}, LiqCp = {16, 137930, 50.329, 9.9028, 0.0059467, -0.0000024618}, HOV = {106, 6.899021E+07, 1.39863, -1.771662, 1.093723, -0.270846}, VapCp = {16, 103080, -583.42, 13.271, 0.000052348, -2.126E-08}, LiqVis = {101, -7.3817, 976.23, -0.66335, 0.0000021183, 2}, VapVis = {102, 0.0000069865, 0.21161, 854.03, -2592.5, 0}, LiqK = {16, -0.043161, 22.706, -1.6829, -0.000063735, -0.0000020484}, VapK = {102, 0.000042535, 1.1138, -151.71, 168420, 0}, Racketparam = 0.253, UniquacR = 5.8478, UniquacQ = 4.932, ChaoSeadAF = 0.371, ChaoSeadSP = 15180, ChaoSeadLV = 0.16278);
-end Threemethylheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylhexane.mo
deleted file mode 100644
index b9f731c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threemethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 219, name = "Threemethylhexane", CAS = "589-34-4", Tc = 535.2, Pc = 2810000, Vc = 0.404, Cc = 0.255, Tb = 365, Tm = 153.75, TT = 153.75, TP = 0.00321303, MW = 100.204, LVB = 0.14674, AF = 0.323, SP = 14950, DM = 0, SH = -1209000000.0, IGHF = -1.9133E+08, GEF = 5080000, AS = 425930, HFMP = 9460000, HOC = -4.46177E+09, LiqDen = {105, 0.53784, 0.24926, 535.2, 0.22945, 0}, VP = {101, 86.76736, -6773.074, -9.77749, 7.535909E-06, 2}, LiqCp = {16, 151720, 437.07, 3.0907, 0.032504, -0.000034822}, HOV = {106, 5.817768E+07, 1.085699, -1.05321, 0.37877, 0.0254378}, VapCp = {16, 80171, -511.41, 12.979, 0.00025345, -8.5984E-08}, LiqVis = {101, -11.794, 999.53, 0.086997, -2.3727E-07, 2}, VapVis = {102, 4.5226E-07, 0.55481, 210.53, 14.061, 0}, LiqK = {16, -0.14432, 11.474, -1.2132, -0.00022172, -0.0000010949}, VapK = {102, 0.000041038, 1.1288, -121.44, 150080, 0}, Racketparam = 0.255, UniquacR = 5.1734, UniquacQ = 4.392, ChaoSeadAF = 0.323, ChaoSeadSP = 14950, ChaoSeadLV = 0.14674);
-end Threemethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylnonane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylnonane.mo
deleted file mode 100644
index a659db0..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylnonane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threemethylnonane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 253, name = "Threemethylnonane", CAS = "5911-04-6", Tc = 613.7, Pc = 2140000, Vc = 0.5904, Cc = 0.247, Tb = 440.95, Tm = 188.35, TT = 188.35, TP = 0.000565366, MW = 142.282, LVB = 0.195076, AF = 0.464925, SP = 15470, DM = 0, SH = -1209000000.0, IGHF = -2.544E+08, GEF = 2.88E+07, AS = 543900, HFMP = 1.88E+07, HOC = -6.291E+09, LiqDen = {105, 0.19012, 0.17319, 613.7, 0.19349, 0}, VP = {101, 90.738, -8476.8, -10.023, 0.0000053448, 2}, LiqCp = {16, 78506, 74.892, 11.023, 0.0040568, -0.0000015927}, HOV = {106, 8.354164E+07, 1.024481, -0.0908156, -1.228122, 0.762381}, VapCp = {16, 133050, -599.42, 13.53, -0.000017353, -3.363E-09}, LiqVis = {101, -12.922, 1267.3, 0.28159, -8.3807E-07, 2}, VapVis = {102, 6.1879E-07, 0.49638, 289.26, -877.62, 0}, LiqK = {16, -0.1781, 10.557, -1.078, -0.00023148, -6.8221E-07}, VapK = {102, 0.000033407, 1.1338, -162.76, 171650, 0}, Racketparam = 0.247, UniquacR = 7.196599, UniquacQ = 6.012, ChaoSeadAF = 0.464925, ChaoSeadSP = 15470, ChaoSeadLV = 0.195076);
-end Threemethylnonane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethyloctane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethyloctane.mo
deleted file mode 100644
index 212e598..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethyloctane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threemethyloctane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 247, name = "Threemethyloctane", CAS = "2216-33-3", Tc = 590.15, Pc = 2340000, Vc = 0.529, Cc = 0.252, Tb = 417.38, Tm = 165.55, TT = 165.55, TP = 0.0000898613, MW = 128.255, LVB = 0.178944, AF = 0.412346, SP = 15380, DM = 0, SH = -1209000000.0, IGHF = -2.336E+08, GEF = 2.17E+07, AS = 501660, HFMP = 1.7E+07, HOC = -5.68128E+09, LiqDen = {105, 0.4999, 0.26438, 590.15, 0.29155, 0}, VP = {101, 169.345, -11170.36, -22.26865, 0.0000190112, 2}, LiqCp = {16, 39163, 25.328, 11.626, 0.0021572, 2.6369E-07}, HOV = {106, 6.3378E+07, 0.67667, -0.53996, 0.45608, -0.18958}, VapCp = {16, 118620, -596.81, 13.418, 0.0000088283, -1.2271E-08}, LiqVis = {101, -11.252, 1147.6, -0.021999, 4.3706E-08, 2}, VapVis = {102, 4.9482E-07, 0.53152, 245.99, 4.1109, 0}, LiqK = {16, -0.1642, 10.91, -1.1265, -0.00023366, -7.9637E-07}, VapK = {102, 0.000040968, 1.1096, -178.72, 180220, 0}, Racketparam = 0.252, UniquacR = 6.5222, UniquacQ = 5.472, ChaoSeadAF = 0.412346, ChaoSeadSP = 15380, ChaoSeadLV = 0.178944);
-end Threemethyloctane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylpentane.mo
deleted file mode 100644
index 53fed46..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threemethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threemethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 137, name = "Threemethylpentane", CAS = "96-14-0", Tc = 504.4, Pc = 3120000, Vc = 0.3667, Cc = 0.273, Tb = 336.4, Tm = 110.251, TT = 110.25, TP = 4.13745E-07, MW = 86.177, LVB = 0.13062, AF = 0.273, SP = 14680, DM = 0, SH = -168070000.0, IGHF = -1.72E+08, GEF = -3420000, AS = 383000, HFMP = 5303200, HOC = -3.85137E+09, LiqDen = {105, 0.64191, 0.2518, 504.61, 0.25114, 0}, VP = {101, 103.3869, -6792.289, -12.56583, 0.0000127267, 2}, LiqCp = {16, 124870, 37.47, 8.4986, 0.010489, -0.0000074005}, HOV = {106, 5.261039E+07, 1.021512, -0.656827, -0.222599, 0.294618}, VapCp = {16, 66323, -479.35, 12.713, 0.00041058, -1.3725E-07}, LiqVis = {101, -4.4466, 561.39, -0.97496, -4.1525E-07, 2}, VapVis = {102, 0.0000014857, 0.42502, 455.77, 119.73, 0}, LiqK = {16, 0.013685, 32.912, -2.24, 0.00097964, -0.0000056292}, VapK = {102, 0.000050178, 1.1143, -67.556, 138050, 0}, Racketparam = 0.2575, UniquacR = 4.499, UniquacQ = 3.852, ChaoSeadAF = 0.275, ChaoSeadSP = 14871.5, ChaoSeadLV = 0.130633);
-end Threemethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threepentanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threepentanone.mo
deleted file mode 100644
index 9185013..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Threepentanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Threepentanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 111, name = "Threepentanone", CAS = "96-22-0", Tc = 561.5, Pc = 3730000, Vc = 0.336, Cc = 0.268, Tb = 375.14, Tm = 234.18, TT = 234.18, TP = 73.4224, MW = 86.134, LVB = 0.10641, AF = 0.342, SP = 18410, DM = 9.41E-30, SH = -27600000.0, IGHF = -2.579E+08, GEF = -1.344E+08, AS = 370000, HFMP = 1.159E+07, HOC = -2.8804E+09, LiqDen = {105, 0.68664, 0.23603, 561.5, 0.27471, 0}, VP = {101, 58.885, -6044.5, -5.3259, 0.0000023057, 2}, LiqCp = {16, 169130, 405.25, 3.0239, 0.024087, -0.000018434}, HOV = {106, 5.083729E+07, 0.764461, -0.828447, -0.00277131, 0.530942}, VapCp = {16, 93124, -637.87, 12.577, 0.00022827, -1.0612E-07}, LiqVis = {101, -1.367, 550.49, -1.4469, 4.9148E-07, 2}, VapVis = {102, 0.0000002611, 0.65778, 216.39, -3537.8, 0}, LiqK = {16, 0.0080662, 16.294, -1.6509, -0.0010676, -9.5001E-07}, VapK = {102, 22.162, 1.0028, 1.8597E+08, 9.2842E+08, 0}, Racketparam = 0, UniquacR = 3.9223, UniquacQ = 3.416, ChaoSeadAF = 0.344, ChaoSeadSP = 18259.5, ChaoSeadLV = 0.106401);
-end Threepentanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Toluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Toluene.mo
deleted file mode 100644
index b70b061..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Toluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Toluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 140, name = "Toluene", CAS = "108-88-3", Tc = 591.75, Pc = 4108000, Vc = 0.316, Cc = 0.264, Tb = 383.79, Tm = 178.18, TT = 178.18, TP = 0.0475285, MW = 92.141, LVB = 0.10687, AF = 0.264, SP = 18250, DM = 1.2E-30, SH = -168070000.0, IGHF = 5.017E+07, GEF = 1.222E+08, AS = 320990, HFMP = 6636000, HOC = -3.734E+09, LiqDen = {105, 0.89799, 0.27359, 591.75, 0.30006, 0}, VP = {101, 32.89891, -5013.81, -1.348918, -1.869928E-06, 2}, LiqCp = {16, 28291, 48.171, 10.912, 0.0020542, 8.7875E-07}, HOV = {106, 5.3752E+07, 0.50341, 0.24755, -0.72898, 0.37794}, VapCp = {16, 47225, -565.85, 12.856, 0.000005535, -1.998E-08}, LiqVis = {101, -152.84, 5644.6, 22.826, -0.000040987, 2}, VapVis = {102, 8.5581E-07, 0.49514, 307.82, 1891.6, 0}, LiqK = {16, -0.072922, -23.153, -1.0277, -0.0017074, 3.6787E-07}, VapK = {102, 0.000006541, 1.4227, 190.97, 21890, 0}, Racketparam = 0.2646, UniquacR = 3.9228, UniquacQ = 2.968, ChaoSeadAF = 0.2591, ChaoSeadSP = 18245.86, ChaoSeadLV = 0.1068);
-end Toluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneFourdimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneFourdimethylcyclohexane.mo
deleted file mode 100644
index dc5313f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneFourdimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransOneFourdimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 280, name = "TransOneFourdimethylcyclohexane", CAS = "2207-04-7", Tc = 590.15, Pc = 2940000, Vc = 0.45, Cc = 0.271, Tb = 392.51, Tm = 236.21, TT = 236.21, TP = 44.9802, MW = 112.213, LVB = 0.147921, AF = 0.2429, SP = 15490, DM = 0, SH = -1209000000.0, IGHF = -1.84598E+08, GEF = 3.17147E+07, AS = 364803, HFMP = 1.2332E+07, HOC = -4.86026E+09, LiqDen = {105, 0.064652, 0.087885, 590.15, 0.13093, 0}, VP = {101, 85.56244, -7078.051, -9.547047, 6.602527E-06, 2}, LiqCp = {16, 119770, 186.95, 7.9604, 0.011554, -0.0000069633}, HOV = {106, 5.5648E+07, 0.9536, -1.3747, 1.3927, -0.55606}, VapCp = {16, 97979, -830.68, 13.935, -0.00055238, 1.5056E-07}, LiqVis = {101, -8.7946, 1113.8, -0.41314, 9.8767E-07, 2}, VapVis = {102, 6.6365E-07, 0.52158, 345.67, -1560.6, 0}, LiqK = {16, -0.0015458, -71.843, -1.1073, -0.0027831, 1.5512E-07}, VapK = {102, 0.012496, 0.37939, -0.8405, 811480, 0}, Racketparam = 0.271, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.2429, ChaoSeadSP = 15490, ChaoSeadLV = 0.147921);
-end TransOneFourdimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclohexane.mo
deleted file mode 100644
index 9ec7491..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransOneThreedimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 278, name = "TransOneThreedimethylcyclohexane", CAS = "2207-03-6", Tc = 598.15, Pc = 2938430, Vc = 0.46, Cc = 0.272, Tb = 397.61, Tm = 183.07, TT = 183.05, TP = 0.0422148, MW = 112.213, LVB = 0.143768, AF = 0.2356, SP = 16040, DM = 0, SH = -1209000000.0, IGHF = -1.76565E+08, GEF = 3.63171E+07, AS = 376225, HFMP = 9865870, HOC = -4.86695E+09, LiqDen = {105, 0.51304, 0.23992, 598.15, 0.27441, 0}, VP = {101, 80.341, -7070.2, -8.6503, 0.0000047054, 2}, LiqCp = {16, 121960, 76.643, 8.8176, 0.0095602, -0.0000057205}, HOV = {106, 6.9382E+07, 2.1184, -4.4766, 4.6776, -1.8318}, VapCp = {16, 101700, -844.25, 13.931, -0.00056374, 1.5762E-07}, LiqVis = {101, -10.854, 1074.4, -0.03203, 4.561E-08, 2}, VapVis = {102, 0.0000023976, 0.3653, 664.66, 3836.7, 0}, LiqK = {16, -0.046977, 2.8897, -1.5646, -0.00046419, -0.0000013304}, VapK = {102, 0.016485, 0.34326, 5.6687, 894520, 0}, Racketparam = 0.272, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.2356, ChaoSeadSP = 16040, ChaoSeadLV = 0.143768);
-end TransOneThreedimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclopentane.mo
deleted file mode 100644
index 62794a9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneThreedimethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransOneThreedimethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 270, name = "TransOneThreedimethylcyclopentane", CAS = "1759-58-6", Tc = 553, Pc = 3400000, Vc = 0.3633, Cc = 0.276, Tb = 363.9, Tm = 139.18, TT = 139.18, TP = 0.0000437759, MW = 98.188, LVB = 0.13264, AF = 0.253, SP = 15660, DM = 0, SH = -1209000000.0, IGHF = -1.336E+08, GEF = 4.1463E+07, AS = 366810, HFMP = 7398000, HOC = -4.279E+09, LiqDen = {105, 0.77915, 0.2805, 553, 0.30466, 0}, VP = {101, 72.714, -6038.9, -7.709, 0.0000063511, 2}, LiqCp = {16, 128140, 215.87, 5.2004, 0.02446, -0.000024789}, HOV = {106, 6.568557E+07, 1.547069, -1.429715, -0.00159084, 0.362451}, VapCp = {16, 86318, -831.43, 13.758, -0.00059782, 1.8276E-07}, LiqVis = {101, -11.152, 996.91, 0.036374, -1.1545E-07, 2}, VapVis = {102, 0.0000007023, 0.52532, 331.02, -5427.4, 0}, LiqK = {16, -0.034026, 3.551, -1.6156, -0.00049883, -0.0000017475}, VapK = {102, 0.0021472, 0.63073, 213.01, 445470, 0}, Racketparam = 0.276, UniquacR = 4.7192, UniquacQ = 3.772, ChaoSeadAF = 0.253, ChaoSeadSP = 15660, ChaoSeadLV = 0.13264);
-end TransOneThreedimethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclohexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclohexane.mo
deleted file mode 100644
index f546751..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclohexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransOneTwodimethylcyclohexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 276, name = "TransOneTwodimethylcyclohexane", CAS = "6876-23-9", Tc = 596.15, Pc = 2938430, Vc = 0.46, Cc = 0.273, Tb = 396.58, Tm = 184.99, TT = 184.99, TP = 0.0803872, MW = 112.213, LVB = 0.145347, AF = 0.2416, SP = 15780, DM = 0, SH = -1209000000.0, IGHF = -1.79996E+08, GEF = 3.44761E+07, AS = 370912, HFMP = 1.04223E+07, HOC = -4.86436E+09, LiqDen = {105, 0.54418, 0.25029, 596.15, 0.26582, 0}, VP = {101, 78.951, -6905.8, -8.4915, 0.0000050406, 2}, LiqCp = {16, 107760, 95.278, 8.9456, 0.0091345, -0.000005166}, HOV = {106, 6.3964E+07, 1.6946, -3.2086, 3.1663, -1.1947}, VapCp = {16, 97739, -799.79, 13.856, -0.00049041, 1.3436E-07}, LiqVis = {101, -9.8695, 1124.4, -0.19468, 4.6083E-07, 2}, VapVis = {102, 0.0000004616, 0.56409, 251.76, 9969.9, 0}, LiqK = {16, -0.096966, -4.6856, -1.2678, -0.00075424, -4.7962E-07}, VapK = {102, 0.014659, 0.3596, 28.311, 846250, 0}, Racketparam = 0.273, UniquacR = 5.3936, UniquacQ = 4.312, ChaoSeadAF = 0.2416, ChaoSeadSP = 15780, ChaoSeadLV = 0.145347);
-end TransOneTwodimethylcyclohexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclopentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclopentane.mo
deleted file mode 100644
index e0b8fce..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransOneTwodimethylcyclopentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransOneTwodimethylcyclopentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 268, name = "TransOneTwodimethylcyclopentane", CAS = "822-50-4", Tc = 553.15, Pc = 3445050, Vc = 0.36, Cc = 0.27, Tb = 365.02, Tm = 155.58, TT = 155.58, TP = 0.00329595, MW = 98.1861, LVB = 0.131474, AF = 0.2692, SP = 15760, DM = 0, SH = -1209000000.0, IGHF = -1.36566E+08, GEF = 3.84928E+07, AS = 366811, HFMP = 7167190, HOC = -4.27609E+09, LiqDen = {105, 0.77149, 0.27784, 553.15, 0.30964, 0}, VP = {101, 89.97, -6815.6, -10.323, 0.000008493, 2}, LiqCp = {16, -27570, -6.4733, 11.325, 0.0043522, -0.0000035776}, HOV = {106, 5.4143E+07, 0.72069, 0.072069, -0.93971, 0.57146}, VapCp = {16, 86316, -831.39, 13.757, -0.0005975, 1.8263E-07}, LiqVis = {101, -10.501, 979.94, -0.073247, 2.6464E-07, 2}, VapVis = {102, 0.0000015301, 0.42849, 479.07, 3.9541, 0}, LiqK = {16, -0.028286, 5.044, -1.6594, -0.00043322, -0.000001941}, VapK = {102, 0.0087025, 0.4463, 190.1, 689820, 0}, Racketparam = 0.27, UniquacR = 4.7192, UniquacQ = 3.772, ChaoSeadAF = 0.2692, ChaoSeadSP = 15760, ChaoSeadLV = 0.131474);
-end TransOneTwodimethylcyclopentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwobutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwobutene.mo
deleted file mode 100644
index 6e6cac5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwobutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransTwobutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 80, name = "TransTwobutene", CAS = "624-64-6", Tc = 428.6, Pc = 4100000, Vc = 0.2377, Cc = 0.276, Tb = 274.03, Tm = 167.62, TT = 167.62, TP = 74.5, MW = 56.108, LVB = 0.09365, AF = 0.218, SP = 14210, DM = 0, SH = -11000000.0, IGHF = -1.1E+07, GEF = 6.32E+07, AS = 296500, HFMP = 9757500, HOC = -2.53E+09, LiqDen = {105, 1.1523, 0.27235, 428.6, 0.28543, 0}, VP = {101, 56.602, -4026.7, -5.5178, 0.0000079176, 2}, LiqCp = {16, 98730, 549.96, 0.83133, 0.038607, -0.000044392}, HOV = {106, 3.3476E+07, 0.31355, 0.41478, -0.75555, 0.40695}, VapCp = {16, 60006, -649.72, 12.368, 0.00014661, -5.1566E-08}, LiqVis = {101, -16.05639, 833.2986, 0.849646, -2.292227E-06, 2}, VapVis = {102, 0.0000010493, 0.48674, 358.01, 137.53, 0}, LiqK = {16, 0.060004, 368.81, -7.3737, 0.025078, -0.000049526}, VapK = {102, 0.000078563, 1.0565, 14.753, 105810, 0}, Racketparam = 0.2721, UniquacR = 2.9189, UniquacQ = 2.563, ChaoSeadAF = 0.2138, ChaoSeadSP = 14207.7, ChaoSeadLV = 0.0893483);
-end TransTwobutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwohexene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwohexene.mo
deleted file mode 100644
index 15af60f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwohexene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransTwohexene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 258, name = "TransTwohexene", CAS = "4050-45-7", Tc = 509.8, Pc = 3168000, Vc = 0.345, Cc = 0.258, Tb = 341.02, Tm = 140.17, TT = 140.17, TP = 0.00179, MW = 84.1595, LVB = 0.125, AF = 0.288635, SP = 15250, DM = 0, SH = -1209000000.0, IGHF = -5.381E+07, GEF = 7.675E+07, AS = 380600, HFMP = 8255030, HOC = -3.72648E+09, LiqDen = {105, 0.7854, 0.271, 509.8, 0.28571, 0}, VP = {101, 102.7613, -6858.249, -12.46469, 0.0000134849, 2}, LiqCp = {16, 145330, 591.61, 0.45085, 0.040176, -0.000043449}, HOV = {106, 4.402196E+07, 0.563356, -0.497314, 0.306975, 0.0161359}, VapCp = {16, 96839, -758.81, 13.112, -0.00018911, 4.7057E-08}, LiqVis = {101, -11.296, 798.85, 0.074688, -2.5765E-07, 2}, VapVis = {102, 3.5985E-08, 0.91455, -9.2013, 1687.6, 0}, LiqK = {16, -0.091076, -0.14352, -1.1963, -0.00093801, -0.0000007123}, VapK = {102, 0.000094853, 1.0175, 2.8366, 154410, 0}, Racketparam = 0.258, UniquacR = 4.2677, UniquacQ = 3.643, ChaoSeadAF = 0.288635, ChaoSeadSP = 15250, ChaoSeadLV = 0.125);
-end TransTwohexene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwopentene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwopentene.mo
deleted file mode 100644
index 1c0284d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TransTwopentene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TransTwopentene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 110, name = "TransTwopentene", CAS = "646-04-8", Tc = 474.2, Pc = 3660000, Vc = 0.293, Cc = 0.272, Tb = 309.49, Tm = 132.89, TT = 132.89, TP = 0.00574, MW = 70.1329, LVB = 0.1091, AF = 0.248372, SP = 14970, DM = 0, SH = -27600000.0, IGHF = -3.11E+07, GEF = 6.98E+07, AS = 343100, HFMP = 8351700, HOC = -3.119E+09, LiqDen = {105, 0.9122, 0.26869, 474.2, 0.28253, 0}, VP = {101, 77.717, -5422.6, -8.6403, 0.0000092035, 2}, LiqCp = {16, 117170, 204.39, 5.1039, 0.022516, -0.00002152}, HOV = {106, 4.3712E+07, 0.84137, -0.81266, 0.47134, -0.094225}, VapCp = {16, 79715, -780.23, 12.979, -0.00024552, 0.0000000696}, LiqVis = {101, -10.52, 657.15, -0.02693, 1.6882E-07, 2}, VapVis = {102, 1.2614E-07, 0.75299, 74.21, 1685.7, 0}, LiqK = {16, -0.074338, -10.004, -1.1218, -0.0016085, -2.2796E-07}, VapK = {102, 0.000026669, 1.1894, -123.11, 111540, 0}, Racketparam = 0.268765, UniquacR = 3.5933, UniquacQ = 3.103, ChaoSeadAF = 0.209, ChaoSeadSP = 14420.78, ChaoSeadLV = 0.109);
-end TransTwopentene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Transdecahydronaphthalene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Transdecahydronaphthalene.mo
deleted file mode 100644
index cbdab71..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Transdecahydronaphthalene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Transdecahydronaphthalene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 191, name = "Transdecahydronaphthalene", CAS = "493-02-7", Tc = 687.05, Pc = 2837100, Vc = 0.48, Cc = 0.238, Tb = 460.46, Tm = 242.77, TT = 242.79, TP = 1.14983, MW = 138.253, LVB = 0.159325, AF = 0.253611, SP = 17042.7, DM = 0, SH = -168070000.0, IGHF = -1.8217E+08, GEF = 7.355E+07, AS = 374550, HFMP = 1.441E+07, HOC = -5.88088E+09, LiqDen = {105, 0.5599, 0.26991, 687.05, 0.2952, 0}, VP = {101, 112.0059, -9619.314, -13.21808, 6.974439E-06, 2}, LiqCp = {16, 110470, -81.629, 10.313, 0.0068781, -0.0000045952}, HOV = {106, 7.646155E+07, 0.918445, 0.395142, -2.202434, 1.398354}, VapCp = {16, 81351, -707.34, 13.793, -0.00018944, 2.0365E-08}, LiqVis = {101, -47.21, 3037.9, 5.4682, -0.0000042842, 2}, VapVis = {102, 2.7061E-07, 0.60485, 153.09, 81.09, 0}, LiqK = {16, 0.087771, 45.415, -2.1613, -0.0061939, 0.0000022159}, VapK = {102, -13.928, 0.65448, -2837300, -2.043E+09, 0}, Racketparam = 0.268306, UniquacR = 6.289, UniquacQ = 4.776, ChaoSeadAF = 0.253611, ChaoSeadSP = 17042.7, ChaoSeadLV = 0.159325);
-end Transdecahydronaphthalene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetaldehyde.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetaldehyde.mo
deleted file mode 100644
index 0ea0c30..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetaldehyde.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Trichloroacetaldehyde
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 36, name = "Trichloroacetaldehyde", CAS = "75-87-6", Tc = 565, Pc = 4410000, Vc = 0.288, Cc = 0.27, Tb = 370.85, Tm = 216, TT = 216, TP = 10.133, MW = 147.388, LVB = 0.0983111, AF = 0.332334, SP = 19150, DM = 6.54E-30, SH = -22970000.0, IGHF = -1.97E+08, GEF = -1.48E+08, AS = 348000, HFMP = 0, HOC = -6.72E+08, LiqDen = {105, 0.92352, 0.2658, 565, 0.27915, 0}, VP = {101, 104.1738, -7649.009, -12.42192, 0.0000106892, 2}, LiqCp = {16, 141170, -5.956, 6.555, 0.014383, -0.000012896}, HOV = {106, 6.2611E+07, 1.7765, -3.981, 4.442, -1.8138}, VapCp = {16, 75534, -497.17, 11.711, -0.00021306, 5.7567E-08}, LiqVis = {101, -15.452, 1500.4, 0.62119, 1.0267E-07, 2}, VapVis = {102, 1.9624E-07, 0.76217, 181.59, -7289.4, 0}, LiqK = {16, -0.0058147, -49.103, -1.1431, -0.0024848, -2.7456E-08}, VapK = {102, 0.00037396, 0.73494, 540.31, 2896.6, 0}, Racketparam = 0.261398, UniquacR = 3.638102, UniquacQ = 3.132, ChaoSeadAF = 0.332283, ChaoSeadSP = 19153.3, ChaoSeadLV = 0.0983111);
-end Trichloroacetaldehyde;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetylchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetylchloride.mo
deleted file mode 100644
index 78b5289..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroacetylchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Trichloroacetylchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 9, name = "Trichloroacetylchloride", CAS = "76-02-8", Tc = 604, Pc = 4320000, Vc = 0.3408, Cc = 0.293, Tb = 391.15, Tm = 216.2, TT = 216.2, TP = 5.18177, MW = 181.833, LVB = 0.112961, AF = 0.282386, SP = 18010, DM = 4.0E-30, SH = -218900000.0, IGHF = -2.398E+08, GEF = -1.8E+08, AS = 360000, HFMP = 9040000, HOC = -5.062E+08, LiqDen = {105, 0.76674, 0.26122, 604, 0.28678, 0}, VP = {101, 174.9617, -10592.68, -23.45621, 0.0000238342, 2}, LiqCp = {16, 177260, -1933.8, 48.92, -0.20004, 0.00024097}, HOV = {106, 1.449329E+08, 7.45895, -20.20511, 23.04844, -9.793955}, VapCp = {16, 91870, -696.64, 12.555, -0.0015691, 6.1156E-07}, LiqVis = {101, -12.095, 1867, -0.00010079, 1.1286E-09, 2}, VapVis = {102, 0.0000001265, 0.7796, 98.46, 0.0024692, 0}, LiqK = {16, 0.043702, -153.3, -0.62199, -0.0058162, 0.0000023649}, VapK = {102, 0.0006898, 0.5929, 623.5, 0.0039481, 0}, Racketparam = 0, UniquacR = 4.177323, UniquacQ = 3.544, ChaoSeadAF = 0.347734, ChaoSeadSP = 18501.6, ChaoSeadLV = 0.112737);
-end Trichloroacetylchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroethylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroethylene.mo
deleted file mode 100644
index 79b096d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trichloroethylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Trichloroethylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 34, name = "Trichloroethylene", CAS = "79-01-6", Tc = 571, Pc = 4910000, Vc = 0.256, Cc = 0.265, Tb = 360.1, Tm = 188.4, TT = 188.4, TP = 1.97868, MW = 131.388, LVB = 0.0901371, AF = 0.21662, SP = 18800, DM = 2.57E-30, SH = -22970000.0, IGHF = -9620000, GEF = 1.606E+07, AS = 325090, HFMP = 0, HOC = -8.6411E+08, LiqDen = {105, 1.0632, 0.27217, 571, 0.2986, 0}, VP = {101, 46.56173, -5021.974, -3.675161, 4.330407E-06, 2}, LiqCp = {16, 111110, 1042.6, -3.1013, 0.043029, -0.000040867}, HOV = {106, 4.571591E+07, 0.581727, -0.122707, -0.842037, 0.831632}, VapCp = {16, 56305, -500.68, 11.893, -0.00053611, 1.6998E-07}, LiqVis = {101, -16.947, 1157.4, 0.95533, 0.0000012051, 2}, VapVis = {102, 1.5903E-07, 0.76088, 56.852, 7589.2, 0}, LiqK = {16, 0.079767, 522.46, -9.4979, 0.032021, -0.00005769}, VapK = {102, 0.00050539, 0.6741, 584.61, 3177.4, 0}, Racketparam = 0, UniquacR = 3.31, UniquacQ = 2.86, ChaoSeadAF = 0.2456, ChaoSeadSP = 18796.4, ChaoSeadLV = 0.0901371);
-end Trichloroethylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethanolamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethanolamine.mo
deleted file mode 100644
index 09e85ce..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethanolamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Triethanolamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 369, name = "Triethanolamine", CAS = "102-71-6", Tc = 787, Pc = 3590000, Vc = 0.472, Cc = 0.202, Tb = 613, Tm = 294.35, TT = 294.35, TP = 0.000287009, MW = 149.188, LVB = 0.132992, AF = 1.28411, SP = 27430, DM = 3.6E-30, SH = -22600000.0, IGHF = -5.54E+08, GEF = -2.994E+08, AS = 538000, HFMP = 2.7191E+07, HOC = -3.5025E+09, LiqDen = {105, 0.028938, 0.058014, 787, 0.099632, 0}, VP = {101, 283.76, -24672, -37.048, 0.000015689, 2}, LiqCp = {16, 285560, 313.35, 6.351, 0.016374, -0.000012842}, HOV = {106, 1.354875E+08, 0.343894, 0.961738, -1.466285, 0.442687}, VapCp = {16, 114870, -616.04, 13.509, -0.00048074, 2.2464E-07}, LiqVis = {101, 33.605, 4399.7, -8.9203, 0.000021038, 2}, VapVis = {102, 3.0013E-08, 0.95199, 45.139, -3355.9, 0}, LiqK = {16, -0.76863, 26.11, -0.3374, 0.0010847, -0.0000011937}, VapK = {102, 0.043843, 0.38395, 6681.4, 1202500, 0}, Racketparam = 0.202, UniquacR = 7.3317, UniquacQ = 6.932, ChaoSeadAF = 1.28411, ChaoSeadSP = 27430, ChaoSeadLV = 0.132992);
-end Triethanolamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethylamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethylamine.mo
deleted file mode 100644
index 0d349c6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethylamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Triethylamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 139, name = "Triethylamine", CAS = "121-44-8", Tc = 535, Pc = 3000000, Vc = 0.39, Cc = 0.263, Tb = 362.9, Tm = 158.45, TT = 158.45, TP = 0.0106462, MW = 101.192, LVB = 0.13996, AF = 0.316193, SP = 15170, DM = 2.2E-30, SH = -168070000.0, IGHF = -9.58E+07, GEF = 1.141E+08, AS = 405400, HFMP = 8520000, HOC = -4.0405E+09, LiqDen = {105, 0.74443, 0.28147, 535, 0.29639, 0}, VP = {101, 109.5632, -7670.939, -13.23524, 8.526035E-06, 2}, LiqCp = {16, -68176, -83.963, 12.887, -0.00053012, 0.0000014554}, HOV = {106, 5.6361E+07, 1.8179, -4.3508, 5.0206, -2.0828}, VapCp = {16, 118700, -798.83, 13.439, -0.00026576, 5.0253E-08}, LiqVis = {101, -8.1405, 722.62, -0.37234, -0.0000014417, 2}, VapVis = {102, 3.6298E-07, 0.63337, 296.37, -2057.9, 0}, LiqK = {16, -0.073124, -11.318, -1.1721, -0.001404, -1.7908E-07}, VapK = {102, 0.00013191, 0.98598, 87.622, 150050, 0}, Racketparam = 0.262814, UniquacR = 5.01, UniquacQ = 4.26, ChaoSeadAF = 0.316157, ChaoSeadSP = 15176.2, ChaoSeadLV = 0.139672);
-end Triethylamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethyleneglycol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethyleneglycol.mo
deleted file mode 100644
index a65879e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Triethyleneglycol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Triethyleneglycol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 138, name = "Triethyleneglycol", CAS = "112-27-6", Tc = 769.5, Pc = 3320000, Vc = 0.443, Cc = 0.23, Tb = 561.5, Tm = 265.95, TT = 265.95, TP = 0.000327262, MW = 150.173, LVB = 0.134127, AF = 0.755952, SP = 25710, DM = 9.97E-30, SH = -168070000.0, IGHF = -7.251E+08, GEF = -4.86E+08, AS = 556500, HFMP = 1.82E+07, HOC = -3.2498E+09, LiqDen = {105, 0.60697, 0.26444, 769.5, 0.24805, 0}, VP = {101, -148.0973, -1446.895, 26.95817, -0.0000266538, 2}, LiqCp = {16, 234210, -89.741, 10.328, 0.0058089, -0.0000030565}, HOV = {106, 1.392895E+08, 1.422819, -1.625802, 1.207667, -0.563316}, VapCp = {16, 88442, -417.2, 12.845, 0.00037163, -1.3999E-07}, LiqVis = {101, -354.9911, 16471.68, 54.55389, -0.0481353, 1}, VapVis = {102, 8.2508E-08, 0.8077, 134.01, -6653.4, 0}, LiqK = {16, -0.089806, 0.43077, -1.6802, 0.0024003, -0.0000033612}, VapK = {102, 0.0000048035, 1.4025, 164.43, 15114, 0}, Racketparam = 0.224225, UniquacR = 6.5342, UniquacQ = 6.12, ChaoSeadAF = 0.758714, ChaoSeadSP = 23437.3, ChaoSeadLV = 0.134187);
-end Triethyleneglycol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trimethylamine.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trimethylamine.mo
deleted file mode 100644
index 54355e2..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Trimethylamine.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Trimethylamine
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 70, name = "Trimethylamine", CAS = "75-50-3", Tc = 433.3, Pc = 4075000, Vc = 0.254, Cc = 0.266, Tb = 276.02, Tm = 156.08, TT = 156.08, TP = 9.92058, MW = 59.111, LVB = 0.09428, AF = 0.206243, SP = 14360, DM = 2.04E-30, SH = -24310000.0, IGHF = -2.431E+07, GEF = 9.899E+07, AS = 287000, HFMP = 6544000, HOC = -2.2449E+09, LiqDen = {105, 0.67928, 0.21649, 433.3, 0.20925, 0}, VP = {101, 110.254, -5770.536, -14.1719, 0.0000238614, 2}, LiqCp = {16, 112140, 1253.3, -12.905, 0.10424, -0.00013798}, HOV = {106, 4.743116E+07, 0.966273, 0.752593, -2.762744, 1.513109}, VapCp = {16, 65203, -794.87, 12.953, -0.00031634, 6.4426E-08}, LiqVis = {101, 9.9961, -126.46, -3.1956, -6.7828E-08, 2}, VapVis = {102, 0.000001161, 0.48519, 364.43, 10928, 0}, LiqK = {16, -0.0043132, -14.875, -1.2529, -0.0019969, -0.0000017575}, VapK = {102, 0.00027205, 0.90104, 140.75, 139110, 0}, Racketparam = 0, UniquacR = 2.99, UniquacQ = 2.64, ChaoSeadAF = 0.205, ChaoSeadSP = 15311.1, ChaoSeadLV = 0.0902163);
-end Trimethylamine;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Two6dinitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Two6dinitrotoluene.mo
deleted file mode 100644
index 8241f6f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Two6dinitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Two6dinitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 388, name = "Two6dinitrotoluene", CAS = "606-20-2", Tc = 780, Pc = 3400000, Vc = 0.487, Cc = 0.242, Tb = 553, Tm = 339, TT = 337.85, TP = 24.9565, MW = 182.134, LVB = 0.136568, AF = 0.714206, SP = 20760, DM = 9.37E-30, SH = -22600000.0, IGHF = 2.86E+07, GEF = 2.32E+08, AS = 414000, HFMP = 2.12E+07, HOC = -3.429E+09, LiqDen = {105, 0.27332, 0.17415, 780, 0.22386, 0}, VP = {101, 115.7657, -12082.2, -13.31782, 5.09858E-06, 2}, LiqCp = {16, 163490, 785.69, 5.0684, 0.014589, -0.0000070833}, HOV = {106, 1.041715E+08, 1.247529, 0.0309575, -2.851863, 1.938855}, VapCp = {16, 94512, -582.56, 13.27, -0.00026587, 5.3735E-08}, LiqVis = {101, -70.386, 5310.9, 8.6262, -0.0000081126, 2}, VapVis = {102, 5.9592E-08, 0.88167, 135.78, -11605, 0}, LiqK = {16, -0.039901, -99.466, -0.76681, -0.0019329, 1.8512E-07}, VapK = {102, 0.00015932, 0.92355, 690.15, 19720, 0}, Racketparam = 0.242, UniquacR = 5.7, UniquacQ = 4.376, ChaoSeadAF = 0.714206, ChaoSeadSP = 20760, ChaoSeadLV = 0.136568);
-end Two6dinitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedimethylhexane.mo
deleted file mode 100644
index d986f6c..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFivedimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 233, name = "TwoFivedimethylhexane", CAS = "592-13-2", Tc = 550, Pc = 2490000, Vc = 0.482, Cc = 0.262, Tb = 382.26, Tm = 182, TT = 182, TP = 0.0683715, MW = 114.231, LVB = 0.1657, AF = 0.357, SP = 14740, DM = 0, SH = -1209000000.0, IGHF = -2.22631E+08, GEF = 1.046E+07, AS = 442330, HFMP = 1.29537E+07, HOC = -5.06398E+09, LiqDen = {105, 0.49779, 0.2525, 550, 0.26429, 0}, VP = {101, 87.65473, -7122.285, -9.843559, 7.04047E-06, 2}, LiqCp = {16, -51796, -110.09, 12.759, 0.00089408, -0.0000004354}, HOV = {106, 6.2389E+07, 1.0017, -0.72582, -0.024698, 0.19155}, VapCp = {16, 66542, -399.08, 12.9, 0.00049831, -1.6255E-07}, LiqVis = {101, -2.9399, 836.45, -1.3966, 0.00000447, 2}, VapVis = {102, 8.3872E-07, 0.47833, 344.26, 27.957, 0}, LiqK = {16, -0.074336, 3.6543, -1.5091, -0.00039812, -0.0000013255}, VapK = {102, 0.000029331, 1.1695, -138.07, 145330, 0}, Racketparam = 0.262, UniquacR = 5.847, UniquacQ = 4.928, ChaoSeadAF = 0.357, ChaoSeadSP = 14740, ChaoSeadLV = 0.1657);
-end TwoFivedimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedinitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedinitrotoluene.mo
deleted file mode 100644
index 7f36c18..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFivedinitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFivedinitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 390, name = "TwoFivedinitrotoluene", CAS = "619-15-8", Tc = 814, Pc = 3400000, Vc = 0.487, Cc = 0.237, Tb = 590, Tm = 325.65, TT = 323.48, TP = 3.04164, MW = 182.134, LVB = 0.135666, AF = 0.712285, SP = 21390, DM = 1.93E-30, SH = -22600000.0, IGHF = 2.71E+07, GEF = 2.36E+08, AS = 414000, HFMP = 2.03E+07, HOC = -3.446E+09, LiqDen = {105, 0.50237, 0.23693, 814, 0.28571, 0}, VP = {101, 90.89499, -12036.13, -9.395524, 2.853055E-06, 2}, LiqCp = {16, 152220, 711.2, 5.8598, 0.012789, -0.0000058246}, HOV = {106, 5.5817E+07, -1.8578, 6.6656, -8.4526, 3.8136}, VapCp = {16, 94512, -582.56, 13.27, -0.00026587, 5.3735E-08}, LiqVis = {101, -10.391, 2604.7, -0.5024, 5.1688E-07, 2}, VapVis = {102, 3.8924E-08, 0.93015, 82.835, -8099.3, 0}, LiqK = {16, -0.078898, -29.065, -1.0796, -0.00084649, -2.5074E-07}, VapK = {102, 0.0001568, 0.92031, 704.11, 20197, 0}, Racketparam = 0.237, UniquacR = 5.7, UniquacQ = 4.376, ChaoSeadAF = 0.712285, ChaoSeadSP = 21390, ChaoSeadLV = 0.135666);
-end TwoFivedinitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFour6trinitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFour6trinitrotoluene.mo
deleted file mode 100644
index 3c75510..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFour6trinitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFour6trinitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 392, name = "TwoFour6trinitrotoluene", CAS = "118-96-7", Tc = 795, Pc = 3040000, Vc = 0.48, Cc = 0.253, Tb = 573, Tm = 355, TT = 354, TP = 0.936248, MW = 227.131, LVB = 0.154989, AF = 0.897249, SP = 23070, DM = 3.87E-30, SH = -22600000.0, IGHF = 1.64E+07, GEF = 2.844E+08, AS = 460700, HFMP = 2.12E+07, HOC = -3.2919E+09, LiqDen = {105, 0.99663, 0.34261, 803.06, 0.50647, 0}, VP = {101, 245.81, -20425, -32.225, 0.00001503, 2}, LiqCp = {16, 188750, 750.94, 4.5661, 0.019107, -0.00001348}, HOV = {106, 2.111008E+07, -12.33056, 37.27643, -41.67226, 16.622}, VapCp = {16, 209680, -1410.9, 14.902, -0.0017672, 4.5403E-07}, LiqVis = {101, 92.002, -1238.6, -16.127, 0.000013297, 2}, VapVis = {102, 5.1205E-08, 0.89283, 134.66, -13583, 0}, LiqK = {16, -0.10196, -488.31, 0.35873, -0.0039133, 0.0000039064}, VapK = {102, 0.00015986, 0.89621, 647.63, 36973, 0}, Racketparam = 0.253, UniquacR = 6.5886, UniquacQ = 5.08, ChaoSeadAF = 0.897249, ChaoSeadSP = 23070, ChaoSeadLV = 0.154989);
-end TwoFour6trinitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourFourtrimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourFourtrimethylhexane.mo
deleted file mode 100644
index b09ee4a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourFourtrimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFourFourtrimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 240, name = "TwoFourFourtrimethylhexane", CAS = "16747-30-1", Tc = 583, Pc = 2500000, Vc = 0.509, Cc = 0.26, Tb = 403.81, Tm = 159.78, TT = 159.78, TP = 0.000306827, MW = 128.255, LVB = 0.178125, AF = 0.352203, SP = 14590, DM = 0, SH = -1209000000.0, IGHF = -2.403E+08, GEF = 2.5E+07, AS = 468400, HFMP = 1.13E+07, HOC = -5.68E+09, LiqDen = {105, 0.098546, 0.11862, 583, 0.15161, 0}, VP = {101, 143.1127, -9541.532, -18.4559, 0.0000171318, 2}, LiqCp = {16, 36795, -79.414, 11.689, 0.0041098, -0.0000031494}, HOV = {106, 5.5551E+07, 0.63316, -0.60532, 0.59593, -0.24062}, VapCp = {16, 84170, -452.22, 13.167, 0.00035197, -1.1076E-07}, LiqVis = {101, -6.9748, 1194.1, -0.75025, -2.9452E-08, 2}, VapVis = {102, 0.0000003308, 0.60466, 252.52, -7535.6, 0}, LiqK = {16, -0.061213, 3.6115, -1.5687, -0.00048198, -0.000001134}, VapK = {102, 0.000028131, 1.1825, -103.57, 142450, 0}, Racketparam = 0.26, UniquacR = 6.5207, UniquacQ = 5.548, ChaoSeadAF = 0.352203, ChaoSeadSP = 14590, ChaoSeadLV = 0.178125);
-end TwoFourFourtrimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylhexane.mo
deleted file mode 100644
index b5fdf78..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFourdimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 232, name = "TwoFourdimethylhexane", CAS = "589-43-5", Tc = 553.5, Pc = 2560000, Vc = 0.472, Cc = 0.263, Tb = 382.58, Tm = 0, TT = 0, TP = 0, MW = 114.231, LVB = 0.16408, AF = 0.344, SP = 14650, DM = 0, SH = -1209000000.0, IGHF = -2.19409E+08, GEF = 1.17152E+07, AS = 447600, HFMP = 0, HOC = -5.06733E+09, LiqDen = {105, 0.49412, 0.25086, 553.5, 0.26728, 0}, VP = {101, 110.28, -8135.7, -13.268, 0.0000097316, 2}, LiqCp = {16, -373730, 38.479, 12.478, 0.0035274, -0.0000034858}, HOV = {106, 5.4006E+07, 0.43973, 0.30966, -0.70429, 0.35515}, VapCp = {16, 68028, -390.94, 12.9, 0.00049032, -1.6117E-07}, LiqVis = {101, -12.459, 1208.2, 0.16649, -2.1296E-07, 2}, VapVis = {102, 0.0000013835, 0.41886, 453.95, -1216.3, 0}, LiqK = {16, -0.012272, -146.3, -0.49024, -0.0043592, 0.0000013669}, VapK = {102, 0.000028277, 1.1747, -150.01, 140960, 0}, Racketparam = 0.263, UniquacR = 5.847, UniquacQ = 4.928, ChaoSeadAF = 0.344, ChaoSeadSP = 14650, ChaoSeadLV = 0.16408);
-end TwoFourdimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylpentane.mo
deleted file mode 100644
index cf6cb1d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFourdimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 223, name = "TwoFourdimethylpentane", CAS = "108-08-7", Tc = 519.7, Pc = 2740000, Vc = 0.4175, Cc = 0.265, Tb = 353.62, Tm = 153.908, TT = 153.912, TP = 0.0066994, MW = 100.204, LVB = 0.14995, AF = 0.304, SP = 14290, DM = 0, SH = -1209000000.0, IGHF = -2.0167E+08, GEF = 3310000, AS = 397000, HFMP = 6845000, HOC = -4.454E+09, LiqDen = {105, 0.49944, 0.24101, 519.81, 0.23086, 0}, VP = {101, 86.23433, -6498.287, -9.772628, 8.133363E-06, 2}, LiqCp = {16, 90283, 22.117, 10.293, 0.0058192, -0.0000033296}, HOV = {106, 5.636917E+07, 1.083678, -0.919235, 0.1428, 0.13605}, VapCp = {16, 66100, -427.67, 12.876, 0.00036594, -1.1245E-07}, LiqVis = {101, -15.849, 1204.5, 0.70216, -0.0000021284, 2}, VapVis = {102, 1.8633E-07, 0.67603, 100.62, -68.047, 0}, LiqK = {16, -0.10048, 3.798, -1.3824, -0.00040413, -0.0000011783}, VapK = {102, 0.0002569, 0.9033, 147.33, 182490, 0}, Racketparam = 0.265, UniquacR = 5.1726, UniquacQ = 4.388, ChaoSeadAF = 0.304, ChaoSeadSP = 14290, ChaoSeadLV = 0.14995);
-end TwoFourdimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdinitrotoluene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdinitrotoluene.mo
deleted file mode 100644
index e8a45d3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoFourdinitrotoluene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoFourdinitrotoluene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 387, name = "TwoFourdinitrotoluene", CAS = "121-14-2", Tc = 814, Pc = 3400000, Vc = 0.487, Cc = 0.245, Tb = 553, Tm = 333, TT = 342.65, TP = 7.8719, MW = 182.134, LVB = 0.137448, AF = 0.712571, SP = 21470, DM = 1.44E-29, SH = -22600000.0, IGHF = 3.36E+07, GEF = 2.18E+08, AS = 414000, HFMP = 2.0126E+07, HOC = -3.416E+09, LiqDen = {105, 0.5108, 0.24037, 814, 0.26806, 0}, VP = {101, 128.9329, -13393.44, -15.15736, 5.597038E-06, 2}, LiqCp = {16, 88958, 1324.4, 2.7528, 0.019721, -0.000011079}, HOV = {106, 1.2919E+08, 1.3248, 1.0872, -4.8737, 2.858}, VapCp = {16, 94512, -582.56, 13.27, -0.00026587, 5.3735E-08}, LiqVis = {101, -41.408, 3947.7, 4.2203, -0.0000035178, 2}, VapVis = {102, 1.9809E-08, 1.0159, 22.316, -3670.3, 0}, LiqK = {16, -0.057001, -67.01, -0.90194, -0.0013614, -3.0209E-08}, VapK = {102, 0.00011852, 0.95914, 734.05, 13896, 0}, Racketparam = 0.245, UniquacR = 5.7, UniquacQ = 4.376, ChaoSeadAF = 0.712571, ChaoSeadSP = 21470, ChaoSeadLV = 0.137448);
-end TwoFourdinitrotoluene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethoxyTwoMethylHeptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethoxyTwoMethylHeptane.mo
deleted file mode 100644
index 6e628ac..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethoxyTwoMethylHeptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoMethoxyTwoMethylHeptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 421, name = "TwoMethoxyTwoMethylHeptane", CAS = "76589-16-7", Tc = 618.2025, Pc = 2357849, Vc = 0.53093, Cc = 0.24355, Tb = 446.7301, Tm = 0, TT = 0, TP = 0, MW = 144.2564, LVB = 0.18511, AF = 0.433286, SP = 14871.82, DM = 0, SH = -61100000.0, IGHF = -9790565, GEF = -6.029269, AS = 1629362, HFMP = 0, HOC = -5.95423E+09, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {200, -8.2705, 2.1937, -3.6992, -3.7256, 2357800}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 6.6655E+07, 0.38, 0, 0, 0}, VapCp = {4, -4265.999, 921.48, -0.5266, 0.000113, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.24355, UniquacR = 6.7654, UniquacQ = 5.792, ChaoSeadAF = 0.433286, ChaoSeadSP = 14871.82, ChaoSeadLV = 0.18511);
-end TwoMethoxyTwoMethylHeptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethylTwoHeptanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethylTwoHeptanol.mo
deleted file mode 100644
index c31a10e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoMethylTwoHeptanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoMethylTwoHeptanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 422, name = "TwoMethylTwoHeptanol", CAS = "625-25-2", Tc = 636.6534, Pc = 2716180, Vc = 0.48244, Cc = 0.247551, Tb = 467.6976, Tm = 0, TT = 0, TP = 0, MW = 130.2296, LVB = 0.15788, AF = 0.723562, SP = 17397.3, DM = 0, SH = -61100000.0, IGHF = -1.238045, GEF = -1.233886, AS = 1322185, HFMP = 0, HOC = -5.204435, LiqDen = {0, 0, 0, 0, 0, 0}, VP = {200, -10.016, 3.415, -6.8543, -4.7824, 2716200}, LiqCp = {0, 0, 0, 0, 0, 0}, HOV = {106, 7.9114E+07, 0.38, 0, 0, 0}, VapCp = {4, -23566, 923.66, -0.6136, 0.0001657, 0}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {0, 0, 0, 0, 0, 0}, LiqK = {16, 0, 0, 0, 0, 0}, VapK = {0, 0, 0, 0, 0, 0}, Racketparam = 0.247551, UniquacR = 6.6204, UniquacQ = 5.904, ChaoSeadAF = 0.723562, ChaoSeadSP = 17397.3, ChaoSeadLV = 0.15788);
-end TwoMethylTwoHeptanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeFourtrimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeFourtrimethylpentane.mo
deleted file mode 100644
index 4f008d3..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeFourtrimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoThreeFourtrimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 159, name = "TwoThreeFourtrimethylpentane", CAS = "565-75-3", Tc = 566.3, Pc = 2730000, Vc = 0.4562, Cc = 0.267, Tb = 386.62, Tm = 163.95, TT = 163.95, TP = 0.00303425, MW = 114.231, LVB = 0.15974, AF = 0.316, SP = 14940, DM = 0, SH = -168070000.0, IGHF = -2.1732E+08, GEF = 1.9E+07, AS = 428400, HFMP = 9267560, HOC = -5.06943E+09, LiqDen = {105, 0.44061, 0.23657, 566.41, 0.23009, 0}, VP = {101, 83.41936, -6957.084, -9.207327, 0.0000063783, 2}, LiqCp = {16, 108880, -13.14, 10.55, 0.00536, -0.0000028819}, HOV = {106, 5.6943E+07, 0.86512, -0.77048, 0.30586, 0.021601}, VapCp = {16, 26624, -291.65, 12.829, 0.00059553, -0.0000001821}, LiqVis = {101, -6.3467, 935.74, -0.76144, 7.5545E-07, 2}, VapVis = {102, 6.7868E-07, 0.51422, 325.4, 22.347, 0}, LiqK = {16, -0.048086, 3.7835, -1.6094, -0.00050636, -0.0000013704}, VapK = {102, 0.000017892, 1.241, -169.67, 132780, 0}, Racketparam = 0, UniquacR = 5.85, UniquacQ = 4.94, ChaoSeadAF = 0.316137, ChaoSeadSP = 14934.3, ChaoSeadLV = 0.159513);
-end TwoThreeFourtrimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreeFourtetramethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreeFourtetramethylpentane.mo
deleted file mode 100644
index 4eddcda..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreeFourtetramethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoThreeThreeFourtetramethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 245, name = "TwoThreeThreeFourtetramethylpentane", CAS = "16747-38-9", Tc = 607.1, Pc = 2670000, Vc = 0.493, Cc = 0.261, Tb = 414.71, Tm = 171.05, TT = 171.03, TP = 0.00089642, MW = 128.258, LVB = 0.17076, AF = 0.313, SP = 15110, DM = 0, SH = -1209000000.0, IGHF = -2.361E+08, GEF = 3.8E+07, AS = 436900, HFMP = 9000000, HOC = -5.6822E+09, LiqDen = {105, 0.49299, 0.25927, 607.51, 0.27003, 0}, VP = {101, 79.047, -7201.2, -8.4677, 0.0000051332, 2}, LiqCp = {16, 61477, 20.611, 11.082, 0.0041652, -0.0000014763}, HOV = {106, 5.5207E+07, 0.63465, -0.82041, 1.0175, -0.45604}, VapCp = {16, 50811, -338.13, 12.991, 0.00056259, -1.7284E-07}, LiqVis = {101, -7.4098, 1217, -0.67198, -2.7904E-07, 2}, VapVis = {102, 3.7299E-07, 0.59636, 289.93, -9056.4, 0}, LiqK = {16, -0.058699, 3.5637, -1.5648, -0.000479, -0.0000010469}, VapK = {102, 0.000035577, 1.1602, -50.424, 142790, 0}, Racketparam = 0.261, UniquacR = 6.5199, UniquacQ = 5.544, ChaoSeadAF = 0.313, ChaoSeadSP = 15110, ChaoSeadLV = 0.17076);
-end TwoThreeThreeFourtetramethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreetrimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreetrimethylpentane.mo
deleted file mode 100644
index e19b6ce..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreeThreetrimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoThreeThreetrimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 158, name = "TwoThreeThreetrimethylpentane", CAS = "560-21-4", Tc = 573.5, Pc = 2820000, Vc = 0.4551, Cc = 0.269, Tb = 387.92, Tm = 172.22, TT = 172.22, TP = 0.0168197, MW = 114.231, LVB = 0.15815, AF = 0.291, SP = 14920, DM = 0, SH = -168070000.0, IGHF = -2.1845E+08, GEF = 1.828E+07, AS = 427020, HFMP = 857720, HOC = -5.06876E+09, LiqDen = {105, 0.56592, 0.26622, 573.5, 0.26429, 0}, VP = {101, 82.87517, -6894.749, -9.15013, 6.430758E-06, 2}, LiqCp = {16, 217000, 82.075, 1.8853, 0.036678, -0.000031911}, HOV = {106, 5.838161E+07, 1.059379, -1.234692, 0.816701, -0.225175}, VapCp = {16, 48585, -365.95, 12.926, 0.00051631, -1.5846E-07}, LiqVis = {101, -10.941, 1191.2, -0.045562, -0.0000023087, 2}, VapVis = {102, 8.2493E-07, 0.49302, 371.93, -89.774, 0}, LiqK = {16, -0.040193, 3.6823, -1.645, -0.00052834, -0.0000014091}, VapK = {102, 0.000018829, 1.2378, -181.1, 146480, 0}, Racketparam = 0, UniquacR = 5.85, UniquacQ = 4.94, ChaoSeadAF = 0.2903, ChaoSeadSP = 14919.5, ChaoSeadLV = 0.158155);
-end TwoThreeThreetrimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylbutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylbutane.mo
deleted file mode 100644
index f60f1b9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylbutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoThreedimethylbutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 134, name = "TwoThreedimethylbutane", CAS = "79-29-8", Tc = 499.9, Pc = 3130000, Vc = 0.3576, Cc = 0.269, Tb = 331.12, Tm = 145.19, TT = 145.19, TP = 0.0152127, MW = 86.177, LVB = 0.13117, AF = 0.248, SP = 14300, DM = 0, SH = -168070000.0, IGHF = -1.768E+08, GEF = -3125000, AS = 365920, HFMP = 799100, HOC = -3.84761E+09, LiqDen = {105, 0.67999, 0.25932, 500.01, 0.25836, 0}, VP = {101, 76.80058, -5679.218, -8.443302, 7.93783E-06, 2}, LiqCp = {16, 126350, -53.429, 8.8794, 0.010279, -0.0000080841}, HOV = {106, 4.7443E+07, 0.91932, -0.91329, 0.50392, -0.089442}, VapCp = {16, 46722, -391.59, 12.599, 0.00056088, -1.7583E-07}, LiqVis = {101, 6.9204, 231.1, -2.7393, -1.3079E-07, 2}, VapVis = {102, 6.8449E-07, 0.52371, 291.92, -3199.1, 0}, LiqK = {16, -0.05308, -5.5491, -1.4118, -0.0011735, -7.4229E-07}, VapK = {102, 0.000032078, 1.1749, -107.52, 129270, 0}, Racketparam = 0.2694, UniquacR = 4.4982, UniquacQ = 3.848, ChaoSeadAF = 0.24754, ChaoSeadSP = 14352.8, ChaoSeadLV = 0.13105);
-end TwoThreedimethylbutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylhexane.mo
deleted file mode 100644
index df7f159..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoThreedimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 231, name = "TwoThreedimethylhexane", CAS = "584-94-1", Tc = 563.4, Pc = 2630000, Vc = 0.4682, Cc = 0.263, Tb = 388.76, Tm = 0, TT = 0, TP = 0, MW = 114.231, LVB = 0.16131, AF = 0.347, SP = 15020, DM = 0, SH = -1209000000.0, IGHF = -2.13886E+08, GEF = 1.50206E+07, AS = 451960, HFMP = 0, HOC = -5.07176E+09, LiqDen = {105, 0.48655, 0.24924, 563.43, 0.24533, 0}, VP = {101, 106.31, -8083.9, -12.636, 0.000008991, 2}, LiqCp = {16, -256410, 53.354, 11.988, 0.00458, -0.0000045457}, HOV = {106, 5.5877E+07, 0.44475, 0.4503, -0.98905, 0.49662}, VapCp = {16, 55247, -379.2, 12.913, 0.00048944, -1.5722E-07}, LiqVis = {101, 8.0389, 480.9, -3.1555, 0.0000074225, 2}, VapVis = {102, 4.4497E-07, 0.56168, 244.71, 41.585, 0}, LiqK = {16, -0.0041864, -133.36, -0.65326, -0.003975, 8.3867E-07}, VapK = {102, 0.000025619, 1.1862, -177.9, 153600, 0}, Racketparam = 0.263, UniquacR = 5.847, UniquacQ = 4.928, ChaoSeadAF = 0.347, ChaoSeadSP = 15020, ChaoSeadLV = 0.16131);
-end TwoThreedimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylpentane.mo
deleted file mode 100644
index a2e4522..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoThreedimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoThreedimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 222, name = "TwoThreedimethylpentane", CAS = "565-59-3", Tc = 537.3, Pc = 2910000, Vc = 0.393, Cc = 0.256, Tb = 362.91, Tm = 0, TT = 0, TP = 0, MW = 100.204, LVB = 0.14505, AF = 0.297, SP = 14820, DM = 0, SH = -1209000000.0, IGHF = -1.941E+08, GEF = 5610000, AS = 414550, HFMP = 0, HOC = -4.45567E+09, LiqDen = {105, 0.60743, 0.26317, 537.3, 0.2444, 0}, VP = {101, 81.051, -6444.3, -8.9383, 0.0000069583, 2}, LiqCp = {16, 144370, -45.964, 9.0642, 0.010184, -0.0000082901}, HOV = {106, 5.686611E+07, 1.319959, -1.914129, 1.410201, -0.377243}, VapCp = {16, 33579, -324.43, 12.683, 0.00063287, -2.0243E-07}, LiqVis = {101, -16.952, 1255.2, 0.89405, -0.0000015964, 2}, VapVis = {102, 0.0000005037, 0.54462, 227.41, 8.0354, 0}, LiqK = {16, -0.054333, 2.0859, -1.4922, -0.00079317, -0.0000012037}, VapK = {102, 0.000019733, 1.2301, -158.93, 129950, 0}, Racketparam = 0.256, UniquacR = 5.1726, UniquacQ = 4.388, ChaoSeadAF = 0.297, ChaoSeadSP = 14820, ChaoSeadLV = 0.14505);
-end TwoThreedimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFivetrimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFivetrimethylhexane.mo
deleted file mode 100644
index 4db7536..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFivetrimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoFivetrimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 239, name = "TwoTwoFivetrimethylhexane", CAS = "3522-94-9", Tc = 568.05, Pc = 2330000, Vc = 0.519, Cc = 0.255, Tb = 397.24, Tm = 167.39, TT = 167.39, TP = 0.000968629, MW = 128.255, LVB = 0.18225, AF = 0.3571, SP = 14380, DM = 0, SH = -1209000000.0, IGHF = -2.533E+08, GEF = 1.38E+07, AS = 461700, HFMP = 6200000, HOC = -5.66643E+09, LiqDen = {105, 0.45081, 0.25256, 569.81, 0.27357, 0}, VP = {101, 133.84, -9023.578, -17.08913, 0.0000169305, 2}, LiqCp = {16, 84566, 233.86, 8.46, 0.013452, -0.000012421}, HOV = {106, 8.039801E+07, 1.702411, -1.574913, 0.0056916, 0.373292}, VapCp = {16, 102010, -531.68, 13.312, 0.00017105, -4.7837E-08}, LiqVis = {101, -12.084, 1011.7, 0.13186, -0.000000312, 2}, VapVis = {102, 6.7588E-07, 0.49876, 301.49, -1437, 0}, LiqK = {16, -0.13721, 56.65, -1.9542, 0.0024543, -0.0000043702}, VapK = {102, 0.000030176, 1.1642, -156.95, 161470, 0}, Racketparam = 0.255, UniquacR = 6.5207, UniquacQ = 5.548, ChaoSeadAF = 0.3571, ChaoSeadSP = 14380, ChaoSeadLV = 0.18225);
-end TwoTwoFivetrimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourFourtetramethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourFourtetramethylpentane.mo
deleted file mode 100644
index 3c89a27..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourFourtetramethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoFourFourtetramethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 244, name = "TwoTwoFourFourtetramethylpentane", CAS = "1070-87-7", Tc = 571.35, Pc = 2360870, Vc = 0.504, Cc = 0.263, Tb = 395.44, Tm = 206.95, TT = 206.95, TP = 1.83952, MW = 128.255, LVB = 0.17923, AF = 0.313609, SP = 14150, DM = 0, SH = -1209000000.0, IGHF = -2.41375E+08, GEF = 3.40159E+07, AS = 431496, HFMP = 9700000, HOC = -5.67978E+09, LiqDen = {105, 0.47711, 0.25904, 574.61, 0.26647, 0}, VP = {101, 136.5701, -9035.55, -17.5287, 0.0000167892, 2}, LiqCp = {16, 119280, 88.665, 9.3063, 0.010453, -0.0000091934}, HOV = {106, 5.75823E+07, 1.154086, -2.055247, 2.209851, -0.923166}, VapCp = {16, 122670, -599.26, 13.402, 0.000099085, -1.741E-08}, LiqVis = {101, -10.148, 1468.8, -0.33327, -0.0000013179, 2}, VapVis = {102, 5.8808E-07, 0.52306, 289.62, -2721.1, 0}, LiqK = {16, -0.038909, -2.6455, -1.623, -0.0006558, -0.0000013711}, VapK = {102, 0.000015165, 1.2696, -148.49, 133700, 0}, Racketparam = 0.263, UniquacR = 6.52, UniquacQ = 5.628, ChaoSeadAF = 0.313609, ChaoSeadSP = 14150, ChaoSeadLV = 0.17923);
-end TwoTwoFourFourtetramethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourtrimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourtrimethylpentane.mo
deleted file mode 100644
index 8dc5c60..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoFourtrimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoFourtrimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 157, name = "TwoTwoFourtrimethylpentane", CAS = "540-84-1", Tc = 543.9, Pc = 2570000, Vc = 0.4697, Cc = 0.266, Tb = 372.39, Tm = 165.777, TT = 165.777, TP = 0.0170695, MW = 114.231, LVB = 0.16607, AF = 0.304, SP = 14080, DM = 0, SH = -168070000.0, IGHF = -2.2401E+08, GEF = 1.394E+07, AS = 422960, HFMP = 9196000, HOC = -5.06528E+09, LiqDen = {105, 0.48523, 0.24924, 543.9, 0.25602, 0}, VP = {101, 83.71044, -6701.601, -9.312194, 6.808451E-06, 2}, LiqCp = {16, 159470, -380.54, 12.372, -0.00044236, 0.0000034887}, HOV = {106, 4.633E+07, 0.37451, -0.066775, -0.010135, 0.080832}, VapCp = {16, 84635, -470.35, 13.011, 0.00041124, -1.2926E-07}, LiqVis = {101, -22.241, 1365.6, 1.8379, -0.0000051189, 2}, VapVis = {102, 1.9933E-07, 0.67222, 163.02, -5306.3, 0}, LiqK = {16, 0.044744, -42.414, -1.7361, -0.0023225, -0.0000040597}, VapK = {102, 0.000011401, 1.3632, 286.23, 6065.2, 0}, Racketparam = 0, UniquacR = 5.85, UniquacQ = 4.94, ChaoSeadAF = 0.3033, ChaoSeadSP = 14050.5, ChaoSeadLV = 0.165452);
-end TwoTwoFourtrimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeFourtetramethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeFourtetramethylpentane.mo
deleted file mode 100644
index 1397fab..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeFourtetramethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoThreeFourtetramethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 243, name = "TwoTwoThreeFourtetramethylpentane", CAS = "1186-53-4", Tc = 592.7, Pc = 2530000, Vc = 0.49, Cc = 0.258, Tb = 406.18, Tm = 152.06, TT = 152.06, TP = 0.000053591, MW = 128.258, LVB = 0.179229, AF = 0.301, SP = 14730, DM = 0, SH = -1209000000.0, IGHF = -2.37358E+08, GEF = 3.26352E+07, AS = 452834, HFMP = 500000, HOC = -5.68208E+09, LiqDen = {105, 0.42889, 0.24425, 592.7, 0.24983, 0}, VP = {101, 137.07, -9700.5, -17.255, 0.000012062, 2}, LiqCp = {16, 177720, -50.337, 8.3416, 0.015008, -0.000013849}, HOV = {106, 5.771831E+07, 1.016576, -1.835135, 2.12911, -0.921819}, VapCp = {16, 83946, -465.16, 13.193, 0.000328, -9.6189E-08}, LiqVis = {101, -8.182, 1248.5, -0.55988, -2.1902E-07, 2}, VapVis = {102, 3.9083E-07, 0.57522, 220.52, -776.34, 0}, LiqK = {16, -0.045924, 4.3553, -1.6529, -0.00040588, -0.000001389}, VapK = {102, 0.000019408, 1.2262, -198.62, 159810, 0}, Racketparam = 0.258, UniquacR = 6.5199, UniquacQ = 5.544, ChaoSeadAF = 0.301, ChaoSeadSP = 14730, ChaoSeadLV = 0.179229);
-end TwoTwoThreeFourtetramethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylbutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylbutane.mo
deleted file mode 100644
index 79aafae..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylbutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoThreeThreetetramethylbutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 238, name = "TwoTwoThreeThreetetramethylbutane", CAS = "594-82-1", Tc = 567.8, Pc = 2870000, Vc = 0.482, Cc = 0.28, Tb = 379.44, Tm = 373.84, TT = 373.96, TP = 86930.2, MW = 114.231, LVB = 0.13902, AF = 0.248, SP = 12790, DM = 0, SH = -1209000000.0, IGHF = -2.256E+08, GEF = 2.223E+07, AS = 389360, HFMP = 7540000, HOC = -5.0558E+09, LiqDen = {105, 0.61397, 0.27674, 567.8, 0.28198, 0}, VP = {101, 120.66, -8500.6, -14.863, 0.000010649, 2}, LiqCp = {16, 239620, 55.905, 3.1054, 0.027363, -0.000020376}, HOV = {106, 5.3062E+07, 0.30484, 0.85323, -1.2161, 0.48282}, VapCp = {16, 73914, -415.76, 12.897, 0.00056384, -1.6707E-07}, LiqVis = {101, -17.538, 1603.5, 0.8804, -0.0000034564, 2}, VapVis = {102, 7.9099E-07, 0.51128, 412.18, -5389.1, 0}, LiqK = {16, -0.0058143, -354.88, 0.79351, -0.0067293, 0.0000023134}, VapK = {102, 0.000012508, 1.3068, -132.52, 121650, 0}, Racketparam = 0.28, UniquacR = 5.8456, UniquacQ = 5.088, ChaoSeadAF = 0.248, ChaoSeadSP = 12790, ChaoSeadLV = 0.13902);
-end TwoTwoThreeThreetetramethylbutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylpentane.mo
deleted file mode 100644
index f70ccf5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreeThreetetramethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoThreeThreetetramethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 242, name = "TwoTwoThreeThreetetramethylpentane", CAS = "7154-79-2", Tc = 607.6, Pc = 2740000, Vc = 0.478, Cc = 0.269, Tb = 413.44, Tm = 263.26, TT = 263.26, TP = 133.839, MW = 128.258, LVB = 0.17034, AF = 0.304, SP = 15060, DM = 0, SH = -1209000000.0, IGHF = -2.36856E+08, GEF = 3.74E+07, AS = 436600, HFMP = 2300000, HOC = -5.68149E+09, LiqDen = {105, 0.58952, 0.28267, 607.6, 0.29572, 0}, VP = {101, 139.0487, -9535.451, -17.78617, 0.0000157521, 2}, LiqCp = {16, 116740, -86.104, 11.13, 0.0046308, -0.000003068}, HOV = {106, 5.3713E+07, 0.39899, -0.032998, 0.06374, -0.0535}, VapCp = {16, 55048, -357.31, 13.013, 0.00055209, -1.6211E-07}, LiqVis = {101, -9.7597, 1441.2, -0.37772, -0.000001226, 2}, VapVis = {102, 8.1934E-07, 0.48521, 356.82, -1384.3, 0}, LiqK = {16, -0.0045701, -120.11, -0.775, -0.0036256, 9.650699E-07}, VapK = {102, 0.000014917, 1.2661, -211.67, 155870, 0}, Racketparam = 0.269, UniquacR = 6.52, UniquacQ = 5.628, ChaoSeadAF = 0.304, ChaoSeadSP = 15060, ChaoSeadLV = 0.17034);
-end TwoTwoThreeThreetetramethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylbutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylbutane.mo
deleted file mode 100644
index 66c2166..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylbutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoThreetrimethylbutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 225, name = "TwoTwoThreetrimethylbutane", CAS = "464-06-2", Tc = 531.1, Pc = 2950000, Vc = 0.3976, Cc = 0.266, Tb = 354.01, Tm = 248.253, TT = 248.57, TP = 914.054, MW = 100.204, LVB = 0.14615, AF = 0.25, SP = 14250, DM = 0, SH = -1209000000.0, IGHF = -2.04765E+08, GEF = 4600000, AS = 383340, HFMP = 2261030, HOC = -4.45223E+09, LiqDen = {105, 0.36152, 0.20413, 531.16, 0.1958, 0}, VP = {101, 68.92285, -5729.492, -7.139255, 5.482993E-06, 2}, LiqCp = {16, 95157, -51.889, 10.538, 0.0057229, -0.0000043706}, HOV = {106, 4.4282E+07, 0.37696, 0.13995, -0.28638, 0.1473}, VapCp = {16, 64561, -425.21, 12.779, 0.00055174, -1.7221E-07}, LiqVis = {101, 15.143, 240.01, -4.2433, 0.0000080652, 2}, VapVis = {102, 8.5825E-08, 0.78963, 152.98, -29510, 0}, LiqK = {16, 0.044619, -214.12, 0.30167, -0.0096656, 0.0000053979}, VapK = {102, 0.000030164, 1.1874, -102.65, 141040, 0}, Racketparam = 0.266, UniquacR = 5.1719, UniquacQ = 4.468, ChaoSeadAF = 0.25, ChaoSeadSP = 14250, ChaoSeadLV = 0.14615);
-end TwoTwoThreetrimethylbutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylpentane.mo
deleted file mode 100644
index 4de4b54..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwoThreetrimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwoThreetrimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 156, name = "TwoTwoThreetrimethylpentane", CAS = "564-02-3", Tc = 563.4, Pc = 2730000, Vc = 0.436, Cc = 0.254, Tb = 382.99, Tm = 160.89, TT = 160.89, TP = 0.0021759, MW = 114.231, LVB = 0.16043, AF = 0.298, SP = 14690, DM = 0, SH = -168070000.0, IGHF = -2.1995E+08, GEF = 1.7726E+07, AS = 423880, HFMP = 8619000, HOC = -5.06754E+09, LiqDen = {105, 0.53892, 0.263, 563.51, 0.24185, 0}, VP = {101, 87.50671, -7031.238, -9.863302, 7.128886E-06, 2}, LiqCp = {16, 170570, -194.18, 8.4382, 0.017272, -0.000019404}, HOV = {106, 6.030131E+07, 1.053957, -0.826185, 0.00124096, 0.214352}, VapCp = {16, 45546, -344.09, 12.853, 0.00059243, -1.8071E-07}, LiqVis = {101, -8.9806, 1118.5, -0.42179, 0.000001606, 2}, VapVis = {102, 4.6777E-07, 0.5509, 223.7, 10.797, 0}, LiqK = {16, -0.050146, 3.605, -1.5994, -0.00051269, -0.0000013443}, VapK = {102, 0.000016836, 1.25, -167.06, 132290, 0}, Racketparam = 0, UniquacR = 5.85, UniquacQ = 4.94, ChaoSeadAF = 0.2975, ChaoSeadSP = 14768.5, ChaoSeadLV = 0.160344);
-end TwoTwoThreetrimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylOnepropanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylOnepropanol.mo
deleted file mode 100644
index 67284b7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylOnepropanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwodimethylOnepropanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 344, name = "TwoTwodimethylOnepropanol", CAS = "75-84-3", Tc = 552.7, Pc = 4078000, Vc = 0.327, Cc = 0.29, Tb = 386.25, Tm = 328.15, TT = 328.15, TP = 8050, MW = 88.1482, LVB = 0.1255, AF = 0.595013, SP = 19040, DM = 5.47E-30, SH = -216400000.0, IGHF = -3.021E+08, GEF = -1.4E+08, AS = 370000, HFMP = 3500000, HOC = -3.061E+09, LiqDen = {105, 0.88741, 0.29, 552.7, 0.28571, 0}, VP = {101, 192.4683, -12413.62, -25.59931, 0.0000246643, 2}, LiqCp = {16, 124850, 368.96, 4.9094, 0.027472, -0.00002893}, HOV = {106, 4.5224E+07, -1.2435, 2.138, 0.13988, -0.73989}, VapCp = {16, 72294.67, -550.0374, 12.86817, 0.000039202, -1.255351E-08}, LiqVis = {101, -12.693, 3446.8, -0.71456, 0.0000011322, 2}, VapVis = {102, 0.000021696, 0.15612, 1926.2, 5137.4, 0}, LiqK = {16, -0.11602, 10.416, -1.227, -0.00033355, -0.00000113}, VapK = {102, 1.2842E-07, 1.9773, -61.933, 2946, 0}, Racketparam = 0.29, UniquacR = 4.5972, UniquacQ = 4.284, ChaoSeadAF = 0.595013, ChaoSeadSP = 19040, ChaoSeadLV = 0.1255);
-end TwoTwodimethylOnepropanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylbutane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylbutane.mo
deleted file mode 100644
index 5d1803a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylbutane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwodimethylbutane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 133, name = "TwoTwodimethylbutane", CAS = "75-83-2", Tc = 488.7, Pc = 3080000, Vc = 0.3591, Cc = 0.272, Tb = 322.87, Tm = 174.28, TT = 174.28, TP = 4.0748, MW = 86.177, LVB = 0.13373, AF = 0.233, SP = 13770, DM = 0, SH = -168070000.0, IGHF = -1.8468E+08, GEF = -8745000, AS = 358340, HFMP = 579100, HOC = -3.8411E+09, LiqDen = {105, 0.68727, 0.26184, 489.01, 0.26217, 0}, VP = {101, 94.2252, -6117.857, -11.25759, 0.0000123761, 2}, LiqCp = {16, 117360, -28.344, 9.2143, 0.0086854, -0.00000596}, HOV = {106, 5.850808E+07, 1.595989, -1.437803, 0.0287957, 0.293443}, VapCp = {16, 73375, -521.55, 12.775, 0.00038975, -1.1854E-07}, LiqVis = {101, 22.562, -455.85, -5.0804, -5.7101E-07, 2}, VapVis = {102, 1.9362E-07, 0.68259, 102.35, -10.082, 0}, LiqK = {16, -0.038291, 4.8824, -1.6311, -0.00047294, -0.0000023877}, VapK = {102, 0.00018521, 0.9549, 83.825, 174320, 0}, Racketparam = 0, UniquacR = 4.4983, UniquacQ = 3.932, ChaoSeadAF = 0.23385, ChaoSeadSP = 13771.5, ChaoSeadLV = 0.133712);
-end TwoTwodimethylbutane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylheptane.mo
deleted file mode 100644
index 2beb166..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwodimethylheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 250, name = "TwoTwodimethylheptane", CAS = "1071-26-7", Tc = 577.8, Pc = 2350000, Vc = 0.525, Cc = 0.257, Tb = 405.97, Tm = 160.15, TT = 160.15, TP = 0.000152983, MW = 128.258, LVB = 0.18151, AF = 0.383, SP = 14720, DM = 0, SH = -1209000000.0, IGHF = -2.461E+08, GEF = 1.79E+07, AS = 471800, HFMP = 8900000, HOC = -5.672E+09, LiqDen = {105, 0.19929, 0.16944, 577.8, 0.19098, 0}, VP = {101, 173.1768, -10891.65, -23.04354, 0.0000217483, 2}, LiqCp = {16, 188490, -126.2, 10.161, 0.0065361, -0.0000033154}, HOV = {106, 5.677584E+07, 0.420266, 0.0606766, -0.058971, -0.0565229}, VapCp = {16, 119340, -582.53, 13.386, 0.000067675, -2.1229E-08}, LiqVis = {101, -11.654, 1250.4, 0.03445, -6.0618E-08, 2}, VapVis = {102, 8.0205E-07, 0.4765, 340.6, -3260.3, 0}, LiqK = {16, -0.04961, 4.5364, -1.657, -0.00038774, -0.0000014465}, VapK = {102, 0.000023582, 1.1966, -148.34, 144910, 0}, Racketparam = 0.257, UniquacR = 6.5215, UniquacQ = 5.552, ChaoSeadAF = 0.383, ChaoSeadSP = 14720, ChaoSeadLV = 0.18151);
-end TwoTwodimethylheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylhexane.mo
deleted file mode 100644
index 36918fc..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwodimethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 230, name = "TwoTwodimethylhexane", CAS = "590-73-8", Tc = 549.8, Pc = 2530000, Vc = 0.478, Cc = 0.265, Tb = 379.99, Tm = 151.97, TT = 151.97, TP = 0.000215228, MW = 114.231, LVB = 0.16529, AF = 0.339, SP = 14580, DM = 0, SH = -1209000000.0, IGHF = -2.24723E+08, GEF = 1.0711E+07, AS = 432710, HFMP = 6778080, HOC = -5.06247E+09, LiqDen = {105, 0.54681, 0.26386, 549.8, 0.27774, 0}, VP = {101, 94.06922, -7328.821, -10.84298, 7.99047E-06, 2}, LiqCp = {16, 125360, 373.89, 5.844, 0.022419, -0.00002308}, HOV = {106, 6.211522E+07, 1.000418, -0.588989, -0.277913, 0.313577}, VapCp = {16, 97647, -528.4, 13.112, 0.00027844, -9.0187E-08}, LiqVis = {101, -11.328, 1166.6, -0.039718, 2.6889E-07, 2}, VapVis = {102, 0.0000018535, 0.38476, 528.24, 78.686, 0}, LiqK = {16, -0.03878, 5.2314, -1.6985, -0.00038448, -0.000001806}, VapK = {102, 0.000045965, 1.1142, -113.91, 162780, 0}, Racketparam = 0.265, UniquacR = 5.8471, UniquacQ = 5.012, ChaoSeadAF = 0.339, ChaoSeadSP = 14580, ChaoSeadLV = 0.16529);
-end TwoTwodimethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethyloctane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethyloctane.mo
deleted file mode 100644
index a0ab019..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethyloctane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwodimethyloctane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 252, name = "TwoTwodimethyloctane", CAS = "15869-87-1", Tc = 602.4, Pc = 2110000, Vc = 0.5897, Cc = 0.248, Tb = 430.05, Tm = 0, TT = 0, TP = 0, MW = 142.282, LVB = 0.197405, AF = 0.428759, SP = 14870, DM = 0, SH = -1209000000.0, IGHF = -2.67E+08, GEF = 2.6E+07, AS = 511000, HFMP = 1.7E+07, HOC = -6.281E+09, LiqDen = {105, 0.27519, 0.20873, 602.4, 0.22241, 0}, VP = {101, 128.2162, -9736.787, -15.87938, 0.0000121145, 2}, LiqCp = {16, 130180, 214, 8.9638, 0.010626, -0.0000085091}, HOV = {106, 6.2139E+07, 0.81955, -1.4728, 1.7846, -0.74179}, VapCp = {16, 133300, -582.81, 13.49, 0.000049115, -1.5637E-08}, LiqVis = {101, -12.132, 1337.2, 0.10372, -1.6576E-07, 2}, VapVis = {102, 6.6483E-07, 0.48953, 292.37, 276.07, 0}, LiqK = {16, -0.054905, -9.2849, -1.513, -0.00077582, -8.6839E-07}, VapK = {102, 0.000023992, 1.186, -157.89, 154490, 0}, Racketparam = 0.248, UniquacR = 7.1959, UniquacQ = 6.092, ChaoSeadAF = 0.428759, ChaoSeadSP = 14870, ChaoSeadLV = 0.197405);
-end TwoTwodimethyloctane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylpentane.mo
deleted file mode 100644
index 6099fd5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwoTwodimethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwoTwodimethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 221, name = "TwoTwodimethylpentane", CAS = "590-35-2", Tc = 520.4, Pc = 2770000, Vc = 0.4158, Cc = 0.266, Tb = 352.32, Tm = 149.34, TT = 149.34, TP = 0.00317517, MW = 100.204, LVB = 0.14967, AF = 0.287, SP = 14260, DM = 0, SH = -1209000000.0, IGHF = -2.06146E+08, GEF = 550000, AS = 392580, HFMP = 5824000, HOC = -4.45048E+09, LiqDen = {105, 0.5639, 0.25328, 520.51, 0.25578, 0}, VP = {101, 85.15112, -6377.959, -9.646055, 8.426861E-06, 2}, LiqCp = {16, 129920, -35.818, 9.4637, 0.0091865, -0.0000074351}, HOV = {106, 5.34663E+07, 0.794603, -0.00994342, -0.969824, 0.623819}, VapCp = {16, 80553, -507.91, 12.99, 0.00027095, -7.6982E-08}, LiqVis = {101, -24.348, 1370.4, 2.2619, -0.0000092505, 2}, VapVis = {102, 3.1425E-07, 0.61072, 160.83, 5436.3, 0}, LiqK = {16, -0.052706, 3.783, -1.5822, -0.00046167, -0.0000017248}, VapK = {102, 0.000010009, 1.3247, -199.43, 115550, 0}, Racketparam = 0.266, UniquacR = 5.1727, UniquacQ = 4.472, ChaoSeadAF = 0.287, ChaoSeadSP = 14260, ChaoSeadLV = 0.14967);
-end TwoTwodimethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twobutanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twobutanol.mo
deleted file mode 100644
index c7c8c29..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twobutanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twobutanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 96, name = "Twobutanol", CAS = "78-92-2", Tc = 536.05, Pc = 4179000, Vc = 0.269, Cc = 0.252, Tb = 372.66, Tm = 158.45, TT = 158.45, TP = 3.16526E-06, MW = 74.123, LVB = 0.09235, AF = 0.574, SP = 22620, DM = 5.54E-30, SH = -134990000.0, IGHF = -2.929E+08, GEF = -1.696E+08, AS = 364690, HFMP = 5971000, HOC = -2.4408E+09, LiqDen = {105, 0.65041, 0.21558, 536.05, 0.22084, 0}, VP = {101, 145.55, -10811, -17.957, 0.0000094132, 2}, LiqCp = {16, 68513, 631.42, 2.7425, 0.03164, -0.000028572}, HOV = {106, 9.123771E+07, 1.779726, -3.389854, 3.546493, -1.385264}, VapCp = {16, 70319, -564.51, 12.517, 0.00018661, -6.3166E-08}, LiqVis = {101, 19.329, 3026.9, -6.6532, 0.000029986, 2}, VapVis = {102, 1.3231E-07, 0.76798, 139.73, -4888.6, 0}, LiqK = {16, 0.031711, -158.34, -0.24491, -0.0057475, 0.000002591}, VapK = {102, 0.0000011661, 1.7056, 340.33, -60553, 0}, Racketparam = 0, UniquacR = 3.4535, UniquacQ = 3.048, ChaoSeadAF = 0.571133, ChaoSeadSP = 22629.5, ChaoSeadLV = 0.0921178);
-end Twobutanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylmxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylmxylene.mo
deleted file mode 100644
index 37d65d7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylmxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twoethylmxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 300, name = "Twoethylmxylene", CAS = "2870-04-4", Tc = 670, Pc = 2960000, Vc = 0.446, Cc = 0.261, Tb = 463.19, Tm = 257, TT = 256.89, TP = 2.81505, MW = 134.218, LVB = 0.151424, AF = 0.405, SP = 18140, DM = 0, SH = -1209000000.0, IGHF = -2.623E+07, GEF = 1.379E+08, AS = 421000, HFMP = 1.471E+07, HOC = -5.548E+09, LiqDen = {105, 0.55372, 0.25979, 670, 0.29804, 0}, VP = {101, 101.54, -9425, -11.552, 0.0000057989, 2}, LiqCp = {16, 77646, -101.26, 11.392, 0.0045401, -0.0000038677}, HOV = {106, 8.2672E+07, 1.1027, -0.68529, -0.33367, 0.36103}, VapCp = {16, 80902, -471.57, 13.059, 0.00022749, -9.0171E-08}, LiqVis = {101, -15.587, 1737.4, 0.54173, -0.0000007502, 2}, VapVis = {102, 0.0000044354, 0.29008, 895.67, 100.88, 0}, LiqK = {16, -0.038284, -32.06, -1.2755, -0.0012699, -0.0000004068}, VapK = {102, 0.000097738, 1.031, 536.66, 42862, 0}, Racketparam = 0.261, UniquacR = 6.0672, UniquacQ = 4.644, ChaoSeadAF = 0.405, ChaoSeadSP = 18140, ChaoSeadLV = 0.151424);
-end Twoethylmxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylpxylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylpxylene.mo
deleted file mode 100644
index d8711d5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoethylpxylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twoethylpxylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 301, name = "Twoethylpxylene", CAS = "1758-88-9", Tc = 680, Pc = 3380000, Vc = 0.461, Cc = 0.252, Tb = 460.09, Tm = 219, TT = 219.52, TP = 0.0748611, MW = 134.218, LVB = 0.153715, AF = 0.36, SP = 17610, DM = 0, SH = -1209000000.0, IGHF = -3.218E+07, GEF = 1.273E+08, AS = 436600, HFMP = 1.519E+07, HOC = -5.543E+09, LiqDen = {105, 0.15639, 0.13957, 680, 0.19566, 0}, VP = {101, 51.35796, -7093.865, -3.98884, 0.0000002143, 2}, LiqCp = {16, 115180, -69.179, 10.574, 0.0065199, -0.0000055164}, HOV = {106, 8.269938E+07, 2.580922, -6.4761, 7.125795, -2.740318}, VapCp = {16, 90693, -533.27, 13.139, 0.00014143, -6.0863E-08}, LiqVis = {101, -12.139, 1509, 0.050995, -2.3531E-08, 2}, VapVis = {102, 0.0000010483, 0.4491, 412.22, -1561.4, 0}, LiqK = {16, -0.080449, 4.7926, -1.4191, -0.00032019, -9.3368E-07}, VapK = {102, 0.000085732, 1.0445, 516.18, 46622, 0}, Racketparam = 0.252, UniquacR = 6.0672, UniquacQ = 4.644, ChaoSeadAF = 0.36, ChaoSeadSP = 17610, ChaoSeadLV = 0.153715);
-end Twoethylpxylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoheptanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoheptanone.mo
deleted file mode 100644
index a0d8421..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twoheptanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twoheptanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 313, name = "Twoheptanone", CAS = "110-43-0", Tc = 611.55, Pc = 2920000, Vc = 0.421, Cc = 0.251, Tb = 424.05, Tm = 238.15, TT = 238.15, TP = 3.54477, MW = 114.185, LVB = 0.140675, AF = 0.418982, SP = 17400, DM = 8.71E-30, SH = -1209000000.0, IGHF = -3.00453E+08, GEF = -1.21796E+08, AS = 456893, HFMP = 1.84E+07, HOC = -4.09952E+09, LiqDen = {105, 0.42296, 0.21673, 611.55, 0.2517, 0}, VP = {101, 104.1321, -8934.299, -12.02629, 6.758209E-06, 2}, LiqCp = {16, 168580, 759.37, 3.3604, 0.023088, -0.000017848}, HOV = {106, 6.522658E+07, 0.472207, 0.238382, -0.54369, 0.222217}, VapCp = {16, 119760, -702.71, 13.229, -0.000074262, -4.5595E-08}, LiqVis = {101, -9.5709, 1186.6, -0.30187, 0.0000013185, 2}, VapVis = {102, 1.5766E-07, 0.71212, 201.61, -8396.4, 0}, LiqK = {16, 0.061916, -162.99, -0.59984, -0.0044095, -0.0000013415}, VapK = {102, 2047.3, 1.0324, 2.297E+10, 7.8096E+08, 0}, Racketparam = 0.251, UniquacR = 5.2711, UniquacQ = 4.496, ChaoSeadAF = 0.418982, ChaoSeadSP = 17400, ChaoSeadLV = 0.140675);
-end Twoheptanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twohexanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twohexanone.mo
deleted file mode 100644
index 4f5aa7e..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twohexanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twohexanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 312, name = "Twohexanone", CAS = "591-78-6", Tc = 587, Pc = 3320000, Vc = 0.378, Cc = 0.254, Tb = 400.7, Tm = 217.35, TT = 217.35, TP = 1.44559, MW = 100.161, LVB = 0.1241, AF = 0.393, SP = 17600, DM = 8.94E-30, SH = -1209000000.0, IGHF = -2.79826E+08, GEF = -1.30081E+08, AS = 417856, HFMP = 1.49E+07, HOC = -3.49E+09, LiqDen = {105, 0.58528, 0.23872, 587.62, 0.26191, 0}, VP = {101, 81.22606, -7467.987, -8.650385, 4.736711E-06, 2}, LiqCp = {16, 171430, 304.46, 6.7554, 0.010928, -0.0000044198}, HOV = {106, 8.140665E+07, 1.724728, -1.991428, 0.65901, 0.10235}, VapCp = {16, 101950, -647, 12.874, 0.00017699, -1.3836E-07}, LiqVis = {101, -9.5407, 1129.1, -0.30673, 6.1273E-07, 2}, VapVis = {102, 1.7562E-07, 0.7037, 196.23, -7085.8, 0}, LiqK = {16, -0.0056603, -27.398, -1.2811, -0.0017572, -3.9285E-07}, VapK = {102, -0.96934, 0.03859, -1883.3, -1.1142E+07, 0}, Racketparam = 0.254, UniquacR = 4.5967, UniquacQ = 3.956, ChaoSeadAF = 0.393, ChaoSeadSP = 17600, ChaoSeadLV = 0.1241);
-end Twohexanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutanol.mo
deleted file mode 100644
index 936adc6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylOnebutanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 343, name = "TwomethylOnebutanol", CAS = "137-32-6", Tc = 575.4, Pc = 3940000, Vc = 0.329, Cc = 0.271, Tb = 401.85, Tm = 195, TT = 195, TP = 0.000803, MW = 88.148, LVB = 0.1083, AF = 0.587733, SP = 22080, DM = 6.27E-30, SH = -216400000.0, IGHF = -3.0209E+08, GEF = -1.41E+08, AS = 386900, HFMP = 7430000, HOC = -3.062E+09, LiqDen = {105, 0.88123, 0.27569, 576.16, 0.26459, 0}, VP = {101, 169.4054, -12535.91, -21.44821, 0.000011664, 2}, LiqCp = {16, 64512, -115.41, 11.54, 0.0018322, 0.0000027168}, HOV = {106, 1.7446E+08, 5.4789, -13.886, 15.653, -6.6531}, VapCp = {16, 76232, -567.6, 12.811, 0.000074113, -1.3012E-08}, LiqVis = {101, 0.00893998, 2796.534, -2.732303, 0.0000087109, 2}, VapVis = {102, 0.000000189, 0.70643, 185.92, -6046.6, 0}, LiqK = {16, 0.080313, -215.29, -0.17577, -0.0076457, 0.000003672}, VapK = {102, 1262.3, 0.94565, 7.7547E+09, -2.8418E+11, 0}, Racketparam = 0.271, UniquacR = 4.5979, UniquacQ = 4.204, ChaoSeadAF = 0.587733, ChaoSeadSP = 22080, ChaoSeadLV = 0.1083);
-end TwomethylOnebutanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutene.mo
deleted file mode 100644
index 23aafdf..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnebutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylOnebutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 105, name = "TwomethylOnebutene", CAS = "563-46-2", Tc = 465, Pc = 3447000, Vc = 0.292, Cc = 0.26, Tb = 304.305, Tm = 135.578, TT = 135.578, TP = 0.0205382, MW = 70.1329, LVB = 0.10872, AF = 0.234056, SP = 14700, DM = 1.7E-30, SH = -134990000.0, IGHF = -3.53E+07, GEF = 6.668E+07, AS = 339500, HFMP = 7910700, HOC = -3.1159E+09, LiqDen = {105, 0.91622, 0.26752, 465, 0.28165, 0}, VP = {101, 77.29304, -5304.146, -8.607604, 9.513458E-06, 2}, LiqCp = {16, 121560, 527.31, 1.2291, 0.036295, -0.000037525}, HOV = {106, 4.6374E+07, 1.4214, -2.5789, 2.5516, -0.95454}, VapCp = {16, 81218, -803.24, 13.077, -0.00034159, 9.7536E-08}, LiqVis = {101, -10.065, 690.04, -0.13044, 0.0000004745, 2}, VapVis = {102, 5.0873E-07, 0.55006, 197.77, -68.455, 0}, LiqK = {16, -0.024046, 2.4654, -1.5931, -0.00074325, -0.0000024745}, VapK = {102, 0.00018088, 0.94101, 77.857, 153680, 0}, Racketparam = 0.270022, UniquacR = 3.5939, UniquacQ = 3.224, ChaoSeadAF = 0.228663, ChaoSeadSP = 14695.4, ChaoSeadLV = 0.10868);
-end TwomethylOnebutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOneheptene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOneheptene.mo
deleted file mode 100644
index 7ad5923..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOneheptene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylOneheptene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 420, name = "TwomethylOneheptene", CAS = "15870-10-7", Tc = 564, Pc = 2400000, Vc = 0.497, Cc = 0.25, Tb = 392.37, Tm = 185.78, TT = 185.77, TP = 0.113498, MW = 112.213, LVB = 0.156655, AF = 0.35513, SP = 15180, DM = 0, SH = -61100000.0, IGHF = -9.699E+07, GEF = 9.32E+07, AS = 457800, HFMP = 1.44E+07, HOC = -4.948E+09, LiqDen = {105, 0.53765, 0.25476, 567.01, 0.28376, 0}, VP = {101, 108.46, -8257.2, -12.941, 0.0000091062, 2}, LiqCp = {16, 88257, 855.11, 3.1929, 0.026245, -0.000022451}, HOV = {106, 5.8021E+07, 1.4711, -3.336, 3.8018, -1.5579}, VapCp = {16, 92500, -450.54, 12.712, 0.00068864, -3.0334E-07}, LiqVis = {101, -34.674, 1655.3, 3.8693, -0.0000085602, 2}, VapVis = {102, 5.7686E-07, 0.51551, 255.32, -429.98, 0}, LiqK = {16, -0.0714, 1.7767, -1.4729, -0.00055517, -0.0000010492}, VapK = {102, 0.00085233, 0.71803, 81.386, 330930, 0}, Racketparam = 0.25, UniquacR = 5.6171, UniquacQ = 4.844, ChaoSeadAF = 0.35513, ChaoSeadSP = 15180, ChaoSeadLV = 0.156655);
-end TwomethylOneheptene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepentene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepentene.mo
deleted file mode 100644
index b669495..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepentene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylOnepentene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 262, name = "TwomethylOnepentene", CAS = "763-29-1", Tc = 507, Pc = 3160000, Vc = 0.359, Cc = 0.261, Tb = 335.26, Tm = 137.43, TT = 137.42, TP = 0.000805463, MW = 84.1595, LVB = 0.124649, AF = 0.261138, SP = 15070, DM = 1.89E-30, SH = -1209000000.0, IGHF = -5.22581E+07, GEF = 7.2969E+07, AS = 374000, HFMP = 7029120, HOC = -3.72209E+09, LiqDen = {105, 0.13372, 0.11276, 507, 0.1472, 0}, VP = {101, 85.161, -6171.1, -9.6632, 0.0000085639, 2}, LiqCp = {16, 173630, -41311, 386.78, -1.1602, 0.0012063}, HOV = {106, 5.397303E+07, 1.23932, -1.433928, 0.797889, -0.142823}, VapCp = {16, 92049, -683.66, 13.009, -0.000089454, 1.0969E-08}, LiqVis = {101, -11.406, 797.71, 0.099228, -5.3373E-07, 2}, VapVis = {102, 6.3076E-07, 0.52447, 272.22, -3046.8, 0}, LiqK = {16, -0.026056, 4.3913, -1.6749, -0.00048682, -0.0000023385}, VapK = {102, 0.000074858, 1.0485, -32.169, 140340, 0}, Racketparam = 0.261, UniquacR = 4.2689, UniquacQ = 3.64, ChaoSeadAF = 0.261138, ChaoSeadSP = 15070, ChaoSeadLV = 0.124649);
-end TwomethylOnepentene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepropanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepropanol.mo
deleted file mode 100644
index 94e5950..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylOnepropanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylOnepropanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 95, name = "TwomethylOnepropanol", CAS = "78-83-1", Tc = 547.78, Pc = 4300000, Vc = 0.273, Cc = 0.258, Tb = 381.04, Tm = 165.15, TT = 165.15, TP = 2.46096E-06, MW = 74.123, LVB = 0.09291, AF = 0.59, SP = 22900, DM = 5.47E-30, SH = -134990000.0, IGHF = -2.832E+08, GEF = -1.549E+08, AS = 348000, HFMP = 6322000, HOC = -2.449E+09, LiqDen = {105, 0.80194, 0.24515, 547.81, 0.21175, 0}, VP = {101, 174.0368, -12288.81, -22.23928, 0.0000131856, 2}, LiqCp = {16, 114500, 844.65, -3.6753, 0.058766, -0.000062464}, HOV = {106, 6.1411E+07, -0.67703, 2.6884, -2.3416, 0.75942}, VapCp = {16, 20857, -275.26, 12.137, 0.00070478, -0.0000002462}, LiqVis = {101, -107.9662, 6199.736, 14.5721, -0.000017552, 2}, VapVis = {102, 7.9881E-07, 0.52424, 295.54, 17281, 0}, LiqK = {16, -0.27685, 36.722, -1.0689, 0.00066056, -0.0000014048}, VapK = {102, 2189.9, 0.91222, 1.1244E+10, -5.1003E+11, 0}, Racketparam = 0, UniquacR = 3.4535, UniquacQ = 3.048, ChaoSeadAF = 0.592, ChaoSeadSP = 23750.6, ChaoSeadLV = 0.0930277);
-end TwomethylOnepropanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylThreeethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylThreeethylpentane.mo
deleted file mode 100644
index 1a53aeb..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylThreeethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylThreeethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 236, name = "TwomethylThreeethylpentane", CAS = "609-26-7", Tc = 567, Pc = 2700000, Vc = 0.4453, Cc = 0.254, Tb = 388.81, Tm = 158.2, TT = 158.2, TP = 0.000447428, MW = 114.231, LVB = 0.15972, AF = 0.331, SP = 15140, DM = 0, SH = -1209000000.0, IGHF = -2.11208E+08, GEF = 1.87861E+07, AS = 443760, HFMP = 1.13386E+07, HOC = -5.07477E+09, LiqDen = {105, 0.54567, 0.26412, 567.03, 0.24308, 0}, VP = {101, 92.12933, -7403.468, -10.51119, 7.396006E-06, 2}, LiqCp = {16, 11076, -131.1, 12.479, 0.0013888, -7.3844E-07}, HOV = {106, 5.9697E+07, 0.73134, 0.033175, -0.91459, 0.58962}, VapCp = {16, 86476, -441, 12.894, 0.00051253, -1.9205E-07}, LiqVis = {101, -10.931, 1059.8, -0.066598, 1.3283E-07, 2}, VapVis = {102, 5.6587E-07, 0.52506, 255.1, -76.481, 0}, LiqK = {16, -0.069311, 4.0311, -1.5221, -0.00039448, -0.0000012799}, VapK = {102, 0.000026967, 1.1845, -133.92, 140280, 0}, Racketparam = 0.254, UniquacR = 5.847, UniquacQ = 4.928, ChaoSeadAF = 0.331, ChaoSeadSP = 15140, ChaoSeadLV = 0.15972);
-end TwomethylThreeethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutanol.mo
deleted file mode 100644
index db17c4d..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylTwobutanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 194, name = "TwomethylTwobutanol", CAS = "75-85-4", Tc = 545, Pc = 3790000, Vc = 0.323, Cc = 0.27, Tb = 375.15, Tm = 264.35, TT = 264.35, TP = 161.196, MW = 88.15, LVB = 0.1095, AF = 0.478, SP = 20840, DM = 5.67E-30, SH = -168070000.0, IGHF = -3.297E+08, GEF = -1.652E+08, AS = 362800, HFMP = 4456000, HOC = -3.0391E+09, LiqDen = {105, 0.71131, 0.24603, 545, 0.25077, 0}, VP = {101, 111.96, -9620.4, -12.673, 0.0000022964, 2}, LiqCp = {16, 145240, -80.948, 10.283, 0.0042992, 0.0000021924}, HOV = {106, 1.022286E+08, 1.245977, -0.515176, -0.350588, 0.262112}, VapCp = {16, 74328, -529.61, 12.79, 0.000073612, -9.0525E-09}, LiqVis = {101, -783.84, 31606, 120.39, -0.00015466, 2}, VapVis = {102, 1.8945E-07, 0.71394, 173.97, -1855.4, 0}, LiqK = {16, 0.052544, -120.78, -0.20746, -0.0081579, 0.0000039201}, VapK = {102, 1156.2, 0.93842, 5.9829E+09, -1.5337E+11, 0}, Racketparam = 0.248616, UniquacR = 4.5972, UniquacQ = 4.284, ChaoSeadAF = 0.478, ChaoSeadSP = 20840, ChaoSeadLV = 0.1095);
-end TwomethylTwobutanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutene.mo
deleted file mode 100644
index fc800c7..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwobutene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylTwobutene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 107, name = "TwomethylTwobutene", CAS = "513-35-9", Tc = 470, Pc = 3860000, Vc = 0.292, Cc = 0.288, Tb = 311.7, Tm = 139.39, TT = 139.39, TP = 0.01937, MW = 70.134, LVB = 0.10757, AF = 0.339, SP = 15210, DM = 1.13E-30, SH = -27600000.0, IGHF = -4.18E+07, GEF = 6.045E+07, AS = 338600, HFMP = 7597700, HOC = -3.1088E+09, LiqDen = {105, 0.93623, 0.2731, 470, 0.25849, 0}, VP = {101, 82.2327, -5590.502, -9.366663, 0.0000104545, 2}, LiqCp = {16, 127040, 1071.7, -7.883, 0.075072, -0.000089164}, HOV = {106, 4.3456E+07, 0.64226, -0.070051, -0.5395, 0.35656}, VapCp = {16, 75343, -774.17, 12.975, -0.00022009, 6.0763E-08}, LiqVis = {101, -11.234, 703.42, 0.094871, -0.0000017625, 2}, VapVis = {102, 8.6256E-07, 0.47637, 263.56, -2475.7, 0}, LiqK = {16, -0.050847, 3.0532, -1.4724, -0.00063704, -0.0000020121}, VapK = {102, 0.00020806, 0.92265, 107.34, 175680, 0}, Racketparam = 0.260813, UniquacR = 3.5919, UniquacQ = 3.22, ChaoSeadAF = 0.27667, ChaoSeadSP = 15247.2, ChaoSeadLV = 0.106707);
-end TwomethylTwobutene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwopropanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwopropanol.mo
deleted file mode 100644
index 7bcb845..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/TwomethylTwopropanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model TwomethylTwopropanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 97, name = "TwomethylTwopropanol", CAS = "75-65-0", Tc = 506.21, Pc = 3973000, Vc = 0.275, Cc = 0.26, Tb = 355.49, Tm = 298.97, TT = 298.97, TP = 5884.28, MW = 74.123, LVB = 0.09488, AF = 0.613, SP = 21620, DM = 5.57E-30, SH = -134990000.0, IGHF = -3.124E+08, GEF = -1.776E+08, AS = 326300, HFMP = 6703000, HOC = -2.4239E+09, LiqDen = {105, 0.40838, 0.17034, 508.88, 0.1974, 0}, VP = {101, 196.8976, -12439.78, -26.03107, 0.0000198743, 2}, LiqCp = {16, -158220, -166.8, 13.168, 0.0013959, -0.0000019876}, HOV = {106, 9.49928E+07, 1.077392, -0.185452, -0.822732, 0.535399}, VapCp = {16, 65560, -540.88, 12.558, 0.00014695, -5.2324E-08}, LiqVis = {101, -933.24, 39184, 142.25, -0.0001583, 2}, VapVis = {102, 2.5934E-07, 0.64853, 136.6, 9124.5, 0}, LiqK = {16, 0.0056947, 358.71, -5.5774, 0.012913, -0.000018273}, VapK = {102, 4.2365E-07, 1.7929, -130.93, 17989, 0}, Racketparam = 0, UniquacR = 3.4528, UniquacQ = 3.128, ChaoSeadAF = 0.612, ChaoSeadSP = 21491.8, ChaoSeadLV = 0.0948614);
-end TwomethylTwopropanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylheptane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylheptane.mo
deleted file mode 100644
index d74b5b8..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylheptane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylheptane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 226, name = "Twomethylheptane", CAS = "592-27-8", Tc = 559.6, Pc = 2480000, Vc = 0.4882, Cc = 0.26, Tb = 390.8, Tm = 164.16, TT = 164.16, TP = 0.0010587, MW = 114.231, LVB = 0.16463, AF = 0.378, SP = 15050, DM = 0, SH = -1209000000.0, IGHF = -2.154E+08, GEF = 1.18E+07, AS = 459570, HFMP = 1.1878E+07, HOC = -5.06933E+09, LiqDen = {105, 0.40246, 0.22797, 559.66, 0.23428, 0}, VP = {101, 97.9971, -7746.664, -11.37588, 8.143433E-06, 2}, LiqCp = {16, 66821, 33.207, 11.285, 0.0021902, 8.6142E-07}, HOV = {106, 6.657838E+07, 1.352117, -1.871983, 1.354613, -0.391149}, VapCp = {16, 108850, -612.4, 13.327, -0.0000091854, -2.9587E-09}, LiqVis = {101, -7.3762, 968.16, -0.65227, 0.0000018143, 2}, VapVis = {102, 4.5347E-07, 0.55194, 231.19, -1256.6, 0}, LiqK = {16, -0.00038221, 38.981, -2.075, 0.00062625, -0.0000038423}, VapK = {102, 0.000048089, 1.0964, -142.76, 170130, 0}, Racketparam = 0.26, UniquacR = 5.8478, UniquacQ = 4.932, ChaoSeadAF = 0.378, ChaoSeadSP = 15050, ChaoSeadLV = 0.16463);
-end Twomethylheptane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylhexane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylhexane.mo
deleted file mode 100644
index 37280aa..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylhexane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylhexane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 218, name = "Twomethylhexane", CAS = "591-76-4", Tc = 530.1, Pc = 2730000, Vc = 0.421, Cc = 0.261, Tb = 363.18, Tm = 154.9, TT = 154.9, TP = 0.00429886, MW = 100.204, LVB = 0.1486, AF = 0.331, SP = 14730, DM = 0, SH = -1209000000.0, IGHF = -1.9472E+08, GEF = 3470000, AS = 420410, HFMP = 9184000, HOC = -4.45935E+09, LiqDen = {105, 0.4821, 0.23526, 530.41, 0.23824, 0}, VP = {101, 90.20617, -6876.202, -10.31895, 8.219062E-06, 2}, LiqCp = {16, 142210, 82.605, 8.5784, 0.010085, -0.000006336}, HOV = {106, 4.861947E+07, 0.640142, -0.832218, 0.945728, -0.370956}, VapCp = {16, 88324, -552.27, 13.044, 0.00017909, -6.2753E-08}, LiqVis = {101, -10.237, 971.42, -0.18335, 0.0000010057, 2}, VapVis = {102, 0.0000041509, 0.28637, 700.76, 14523, 0}, LiqK = {16, 0.060786, 305.44, -6.3461, 0.018265, -0.000033419}, VapK = {102, 0.000062491, 1.0749, -62.587, 153720, 0}, Racketparam = 0.261, UniquacR = 5.1734, UniquacQ = 4.392, ChaoSeadAF = 0.331, ChaoSeadSP = 14730, ChaoSeadLV = 0.1486);
-end Twomethylhexane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylindene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylindene.mo
deleted file mode 100644
index d4fb304..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylindene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylindene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 169, name = "Twomethylindene", CAS = "2177-47-1", Tc = 711, Pc = 3460000, Vc = 0.436, Cc = 0.255, Tb = 479.45, Tm = 353.15, TT = 353.15, TP = 3020.69, MW = 130.186, LVB = 0.13407, AF = 0.350814, SP = 19650, DM = 0, SH = -168070000.0, IGHF = 1.15E+08, GEF = 2.19E+08, AS = 361000, HFMP = 0, HOC = -5.21E+09, LiqDen = {105, 0.58652, 0.25339, 711, 0.28941, 0}, VP = {101, 92.273, -9299.2, -10.097, 0.0000042786, 2}, LiqCp = {16, 156160, -200.07, 10.512, 0.0025015, -0.0000010635}, HOV = {106, 7.303067E+07, 0.433923, 0.764504, -1.615634, 0.843055}, VapCp = {16, -154380, -193.88, 13.203, 0.00019348, -5.2535E-08}, LiqVis = {0, 0, 0, 0, 0, 0}, VapVis = {102, 9.6835E-07, 0.47111, 397.83, 9327.5, 0}, LiqK = {16, 0.057046, -181.52, -0.63312, -0.0038758, -8.2839E-07}, VapK = {102, 0.00009568, 1.0268, 701.49, -31051, 0}, Racketparam = 0.259776, UniquacR = 5.104812, UniquacQ = 3.552, ChaoSeadAF = 0.32769, ChaoSeadSP = 17790.3, ChaoSeadLV = 0.133656);
-end Twomethylindene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnaphthalene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnaphthalene.mo
deleted file mode 100644
index 797cf0f..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnaphthalene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylnaphthalene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 175, name = "Twomethylnaphthalene", CAS = "91-57-6", Tc = 761, Pc = 3540000, Vc = 0.462, Cc = 0.258, Tb = 514.2, Tm = 307.73, TT = 307.73, TP = 18.6897, MW = 142.2, LVB = 0.14577, AF = 0.374, SP = 19680, DM = 1.4E-30, SH = -168070000.0, IGHF = 1.161E+08, GEF = 2.163E+08, AS = 380000, HFMP = 1.212E+07, HOC = -5.58286E+09, LiqDen = {105, 0.53405, 0.25024, 761.16, 0.28587, 0}, VP = {101, 98.05854, -10275.56, -10.82814, 3.919145E-06, 2}, LiqCp = {16, 74335, -307.25, 13.46, -0.0028051, 0.000003645}, HOV = {106, 9.0724E+07, 1.2004, -1.1581, 0.47852, -0.081108}, VapCp = {16, 69292, -534.4, 13.21, -0.00001663, -8.8386E-09}, LiqVis = {101, -88.346, 4977.8, 11.629, -0.0000078261, 2}, VapVis = {102, 0.0000029847, 0.34183, 891.22, -28677, 0}, LiqK = {16, 0.0084839, -307.37, 0.18174, -0.0046509, 0.0000016652}, VapK = {102, 0.000098384, 1.0234, 722.6, 42453, 0}, Racketparam = 0, UniquacR = 5.610415, UniquacQ = 3.936, ChaoSeadAF = 0.3815, ChaoSeadSP = 19870.3, ChaoSeadLV = 0.143396);
-end Twomethylnaphthalene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnonane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnonane.mo
deleted file mode 100644
index b3b2438..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylnonane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylnonane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 254, name = "Twomethylnonane", CAS = "871-83-0", Tc = 621, Pc = 2050000, Vc = 0.601, Cc = 0.244, Tb = 440.15, Tm = 198.5, TT = 198.5, TP = 0.00248675, MW = 142.282, LVB = 0.196826, AF = 0.472342, SP = 15380, DM = 0, SH = -1209000000.0, IGHF = -2.5652E+08, GEF = 2.841E+07, AS = 538020, HFMP = 1.75E+07, HOC = -6.2888E+09, LiqDen = {105, 0.2243, 0.18661, 621, 0.23259, 0}, VP = {101, 133.13, -10462, -16.388, 0.0000099287, 2}, LiqCp = {16, -52606, 80.981, 11.786, 0.0026831, -6.0448E-07}, HOV = {106, 7.023987E+07, -0.879246, 6.371272, -9.404583, 4.418702}, VapCp = {16, 137030, -599.28, 13.509, 0.0000018563, -1.0781E-08}, LiqVis = {101, -3.1519, 949.54, -1.2725, 0.0000012986, 2}, VapVis = {102, 9.2127E-07, 0.44292, 352.44, -1163.9, 0}, LiqK = {16, -0.16513, 15.121, -1.1582, -0.00011252, -0.0000008534}, VapK = {102, 0.000030641, 1.1437, -171.78, 168770, 0}, Racketparam = 0.244, UniquacR = 7.196599, UniquacQ = 6.012, ChaoSeadAF = 0.472342, ChaoSeadSP = 15380, ChaoSeadLV = 0.196826);
-end Twomethylnonane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethyloctane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethyloctane.mo
deleted file mode 100644
index 95f1027..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethyloctane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethyloctane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 246, name = "Twomethyloctane", CAS = "3221-61-2", Tc = 587, Pc = 2310000, Vc = 0.529, Cc = 0.25, Tb = 416.44, Tm = 193.05, TT = 193.05, TP = 0.0206, MW = 128.258, LVB = 0.18075, AF = 0.423, SP = 15310, DM = 0, SH = -1209000000.0, IGHF = -2.348E+08, GEF = 2.21E+07, AS = 496800, HFMP = 1.8E+07, HOC = -5.6791E+09, LiqDen = {105, 0.048725, 0.083928, 587, 0.13299, 0}, VP = {101, 117.6637, -9065.067, -14.28093, 0.0000101806, 2}, LiqCp = {16, 69326, 112.91, 10.449, 0.0058606, -0.0000035224}, HOV = {106, 6.8687E+07, 1.3406, -2.5809, 2.7985, -1.1501}, VapCp = {16, 145390, -732.92, 13.658, -0.00027343, 8.6186E-08}, LiqVis = {101, -14.31, 1234.5, 0.50422, -0.0000012054, 2}, VapVis = {102, 0.0000005318, 0.52649, 272.37, -710.16, 0}, LiqK = {16, -0.15278, 14.586, -1.1974, -0.00013887, -9.4417E-07}, VapK = {102, 0.00002892, 1.1595, -163.72, 160440, 0}, Racketparam = 0.25, UniquacR = 6.5222, UniquacQ = 5.472, ChaoSeadAF = 0.423, ChaoSeadSP = 15310, ChaoSeadLV = 0.18075);
-end Twomethyloctane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpentane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpentane.mo
deleted file mode 100644
index 0fe84f5..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpentane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylpentane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 136, name = "Twomethylpentane", CAS = "107-83-5", Tc = 497.5, Pc = 3010000, Vc = 0.3667, Cc = 0.267, Tb = 333.4, Tm = 119.55, TT = 119.55, TP = 0.0000206558, MW = 86.177, LVB = 0.13289, AF = 0.278, SP = 14400, DM = 0, SH = -168070000.0, IGHF = -1.7455E+08, GEF = -5338000, AS = 380890, HFMP = 6268000, HOC = -3.84915E+09, LiqDen = {105, 0.657, 0.25467, 497.71, 0.26808, 0}, VP = {101, 77.6873, -5802.911, -8.543267, 7.871718E-06, 2}, LiqCp = {16, 137510, -55.266, 8.2006, 0.013273, -0.00001165}, HOV = {106, 4.724E+07, 0.784961, -0.571271, 0.114935, 0.0796185}, VapCp = {16, 70761, -504.8, 12.795, 0.00029839, -9.4564E-08}, LiqVis = {101, -12.416, 938.41, 0.18259, 4.2586E-07, 2}, VapVis = {102, 0.0000020458, 0.38326, 542.64, -1147.6, 0}, LiqK = {16, -0.099248, 3.6931, -1.2881, -0.00063949, -0.0000011122}, VapK = {102, 0.000056887, 1.0953, -66.761, 139530, 0}, Racketparam = 0.2581, UniquacR = 4.499, UniquacQ = 3.852, ChaoSeadAF = 0.2791, ChaoSeadSP = 14417.6, ChaoSeadLV = 0.132931);
-end Twomethylpentane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpropanal.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpropanal.mo
deleted file mode 100644
index 62d8fc4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twomethylpropanal.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twomethylpropanal
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 82, name = "Twomethylpropanal", CAS = "78-84-2", Tc = 507, Pc = 4100000, Vc = 0.263, Cc = 0.256, Tb = 337.25, Tm = 208.15, TT = 208.15, TP = 34.8247, MW = 72.1057, LVB = 0.0920264, AF = 0.36218, SP = 18450, DM = 9.0E-30, SH = -17100000.0, IGHF = -2.158E+08, GEF = -1.214E+08, AS = 331200, HFMP = 1.2E+07, HOC = -2.2913E+09, LiqDen = {105, 0.97266, 0.25698, 507, 0.28571, 0}, VP = {101, 102.1731, -7116.016, -12.16592, 0.0000111612, 2}, LiqCp = {16, 143330, 110.87, 5.2999, 0.018869, -0.000016131}, HOV = {106, 4.95108E+07, 0.263532, 1.209662, -2.271572, 1.223299}, VapCp = {16, 68500, -741.45, 12.977, -0.00061649, 3.0243E-07}, LiqVis = {101, -10.535, 970.52, -0.049339, 1.1673E-08, 2}, VapVis = {102, 1.9586E-07, 0.71384, 159.71, -212.67, 0}, LiqK = {16, 0.10024, -223.61, -0.25771, -0.00474, -0.000011884}, VapK = {102, -2151.4, -0.21039, 974960, -5.0943E+09, 0}, Racketparam = 0, UniquacR = 3.2471, UniquacQ = 2.872, ChaoSeadAF = 0.37009, ChaoSeadSP = 18234.6, ChaoSeadLV = 0.0920137);
-end Twomethylpropanal;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twonitropropane.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twonitropropane.mo
deleted file mode 100644
index 6ec846a..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twonitropropane.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twonitropropane
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 382, name = "Twonitropropane", CAS = "79-46-9", Tc = 595, Pc = 4450000, Vc = 0.288, Cc = 0.26, Tb = 393.4, Tm = 181.83, TT = 181.83, TP = 0.021584, MW = 89.0932, LVB = 0.0905535, AF = 0.383568, SP = 20530, DM = 1.24E-29, SH = -22600000.0, IGHF = -1.39E+08, GEF = -1.2803E+07, AS = 347700, HFMP = 7790000, HOC = -1.846E+09, LiqDen = {105, 0.27031, 0.13967, 595, 0.17588, 0}, VP = {101, 57.04038, -6262.318, -4.993807, 1.61213E-06, 2}, LiqCp = {16, 67863, 138.63, 8.8679, 0.01051, -0.00001051}, HOV = {106, 5.543435E+07, 0.377393, 0.18894, -0.0391329, -0.243258}, VapCp = {16, 58543, -558.36, 12.559, 0.000040137, -3.1383E-08}, LiqVis = {101, -26.48, 1441.6, 2.6439, -0.0000074647, 2}, VapVis = {102, 0.000005644, 0.32789, 1291.7, 6279.8, 0}, LiqK = {16, 0.085284, -50.915, -1.467, -0.0035856, -0.000001687}, VapK = {102, 0.0042281, 0.52696, 790.25, 431610, 0}, Racketparam = 0.26, UniquacR = 3.3573, UniquacQ = 2.948, ChaoSeadAF = 0.383568, ChaoSeadSP = 20530, ChaoSeadLV = 0.0905535);
-end Twonitropropane;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanol.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanol.mo
deleted file mode 100644
index 2bcbd32..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanol.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twopentanol
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 342, name = "Twopentanol", CAS = "6032-29-7", Tc = 552, Pc = 3880000, Vc = 0.327, Cc = 0.26, Tb = 392.15, Tm = 200, TT = 200, TP = 0.00596587, MW = 88.1482, LVB = 0.109448, AF = 0.674371, SP = 21700, DM = 5.39E-30, SH = -216400000.0, IGHF = -3.138E+08, GEF = -1.593E+08, AS = 396400, HFMP = 8480000, HOC = -3.0515E+09, LiqDen = {105, 1.319, 0.3371, 552, 0.32218, 0}, VP = {101, 156.6278, -11701.22, -19.61134, 0.0000119964, 2}, LiqCp = {16, 223900, 2827.9, -24.806, 0.11426, -0.00010479}, HOV = {106, 8.4515E+07, 0.5603, 0.52669, -1.3675, 0.83639}, VapCp = {16, 81533, -562.17, 12.749, 0.00015514, -6.2807E-08}, LiqVis = {101, -161.5575, 9388.477, 22.02304, -0.0000121894, 2}, VapVis = {102, 3.2586E-07, 0.63457, 242.49, -572.84, 0}, LiqK = {16, -0.29342, 50.682, -1.2923, 0.0017888, -0.0000028966}, VapK = {102, 1300.2, 0.95377, 8.1158E+09, -2.9211E+11, 0}, Racketparam = 0.26, UniquacR = 4.5979, UniquacQ = 4.204, ChaoSeadAF = 0.558707, ChaoSeadSP = 21700, ChaoSeadLV = 0.109448);
-end Twopentanol;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanone.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanone.mo
deleted file mode 100644
index ca24299..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Twopentanone.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Twopentanone
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 311, name = "Twopentanone", CAS = "107-87-9", Tc = 561.1, Pc = 3690000, Vc = 0.301, Cc = 0.238, Tb = 375.39, Tm = 196.29, TT = 196.29, TP = 0.752347, MW = 86.134, LVB = 0.10733, AF = 0.346, SP = 18290, DM = 9.07E-30, SH = -1209000000.0, IGHF = -2.592E+08, GEF = -1.384E+08, AS = 378600, HFMP = 1.062E+07, HOC = -2.88E+09, LiqDen = {105, 0.8193, 0.25958, 561.1, 0.28941, 0}, VP = {101, 92.01772, -7341.876, -10.45756, 7.61086E-06, 2}, LiqCp = {16, 119520, 155.09, 9.2758, 0.0038398, 0.0000015236}, HOV = {106, 6.074187E+07, 1.097819, -1.350154, 0.926065, -0.25017}, VapCp = {16, 86927, -727.52, 12.986, -0.00023161, 6.926E-08}, LiqVis = {101, -8.4812, 921.84, -0.40943, 6.8984E-07, 2}, VapVis = {102, 2.4641E-07, 0.66525, 208.96, -62.76, 0}, LiqK = {16, 0.010889, -36.658, -1.2206, -0.0022413, -2.5211E-07}, VapK = {102, -0.017912, 0.4825, -3887.7, -1296300, 0}, Racketparam = 0.238, UniquacR = 3.9223, UniquacQ = 3.416, ChaoSeadAF = 0.346, ChaoSeadSP = 18290, ChaoSeadLV = 0.10733);
-end Twopentanone;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetate.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetate.mo
deleted file mode 100644
index 7485d67..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetate.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Vinylacetate
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 339, name = "Vinylacetate", CAS = "108-05-4", Tc = 501.45, Pc = 4150000, Vc = 0.266, Cc = 0.248, Tb = 345.65, Tm = 180.35, TT = 180.35, TP = 0.70586, MW = 86.0892, LVB = 0.0929486, AF = 0.529352, SP = 18580, DM = 5.97E-30, SH = -216400000.0, IGHF = -3.157E+08, GEF = -2.287E+08, AS = 334400, HFMP = 5370000, HOC = -1.95E+09, LiqDen = {105, 0.80837, 0.2388, 524.34, 0.25151, 0}, VP = {101, -28.90631, -2451.071, 8.43748, -0.000014969, 2}, LiqCp = {16, 104670, 68.241, 7.8309, 0.01301, -0.00001011}, HOV = {106, 5.178411E+07, 1.329393, -3.127105, 3.542901, -1.384803}, VapCp = {16, 50651, -432.89, 12.118, 0.00048734, -1.8964E-07}, LiqVis = {101, -20.187, 1398, 1.3362, 8.2076E-07, 2}, VapVis = {102, 1.4727E-07, 0.76076, 119.27, 67.359, 0}, LiqK = {16, -0.068153, 28.848, -1.5016, 0.00051317, -0.0000030057}, VapK = {102, -5281900, -0.16154, 2.8419E+09, -1.7045E+13, 0}, Racketparam = 0.248, UniquacR = 3.2485, UniquacQ = 2.904, ChaoSeadAF = 0.351307, ChaoSeadSP = 18580, ChaoSeadLV = 0.0929486);
-end Vinylacetate;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetylene.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetylene.mo
deleted file mode 100644
index e84aa26..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylacetylene.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Vinylacetylene
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 71, name = "Vinylacetylene", CAS = "689-97-4", Tc = 454, Pc = 4860000, Vc = 0.205, Cc = 0.264, Tb = 278.25, Tm = 0, TT = 0, TP = 0, MW = 52.0746, LVB = 0.0769826, AF = 0.106852, SP = 16360, DM = 1.3E-30, SH = 304600000.0, IGHF = 3.046E+08, GEF = 3.06E+08, AS = 279400, HFMP = 0, HOC = -2.362E+09, LiqDen = {105, 1.2594, 0.25931, 454, 0.29553, 0}, VP = {101, 79.0442, -5001.865, -8.984128, 0.0000129415, 2}, LiqCp = {16, 68382, -63.514, 9.912, 0.0031404, -1.0307E-07}, HOV = {106, 3.313507E+07, -0.0105563, 0.71867, -0.291074, 0.0215152}, VapCp = {16, 49981, -581.7, 12.052, -0.00010825, 3.173E-08}, LiqVis = {101, -2.2453, 320.68, -1.2895, -5.6512E-09, 2}, VapVis = {102, 6.7484E-07, 0.5304, 230.17, -0.0024795, 0}, LiqK = {16, -0.05887, -27.718, -0.92317, -0.0023581, 1.5773E-07}, VapK = {102, 0.000054197, 1.0632, -70.589, 90617, 0}, Racketparam = 0.281184, UniquacR = 3.526, UniquacQ = 2.94, ChaoSeadAF = 0.11815, ChaoSeadSP = 17035, ChaoSeadLV = 0.0740148);
-end Vinylacetylene;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylchloride.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylchloride.mo
deleted file mode 100644
index 54d7321..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Vinylchloride.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Vinylchloride
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 39, name = "Vinylchloride", CAS = "75-01-4", Tc = 432, Pc = 5670000, Vc = 0.179, Cc = 0.283, Tb = 259.25, Tm = 119.36, TT = 119.36, TP = 0.0191781, MW = 62.4982, LVB = 0.0692236, AF = 0.100107, SP = 15960, DM = 4.84E-30, SH = 28450000.0, IGHF = 2.845E+07, GEF = 4.195E+07, AS = 273540, HFMP = 4744000, HOC = -1.178E+09, LiqDen = {105, 1.4882, 0.26866, 432, 0.2693, 0}, VP = {101, 30.50309, -3204.111, -1.15716, -3.151817E-06, 2}, LiqCp = {16, 29928, 167.46, 5.6386, 0.023319, -0.000024747}, HOV = {106, 2.6581E+07, -2.1189, 8.303, -9.8551, 4.0685}, VapCp = {16, 39013, -667.91, 11.935, -0.00030895, 9.1245E-08}, LiqVis = {101, -3.586, 386.19, -1.1014, -9.1164E-07, 2}, VapVis = {102, 4.1288E-07, 0.63726, 118.97, 5390.5, 0}, LiqK = {16, 0.060341, 155.36, -4.6785, 0.015523, -0.000038165}, VapK = {102, -260.51, 0.58623, -1.7838E+08, -1.6691E+09, 0}, Racketparam = 0.281776, UniquacR = 1.9124, UniquacQ = 1.492, ChaoSeadAF = 0.100107, ChaoSeadSP = 17766.2, ChaoSeadLV = 0.0646597);
-end Vinylchloride;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Water.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Water.mo
deleted file mode 100644
index 808afd4..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Water.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Water
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 14, name = "Water", CAS = "7732-18-5", Tc = 647.14, Pc = 2.2064E+07, Vc = 0.05595, Cc = 0.229, Tb = 373.15, Tm = 273.15, TT = 273.16, TP = 611.73, MW = 18.015, LVB = 0.01807, AF = 0.344, SP = 47860, DM = 6.17E-30, SH = 0.0, IGHF = -2.41814E+08, GEF = -2.2859E+08, AS = 188724, HFMP = 6001740, HOC = 0, LiqDen = {106, 32.51621, -3.213004, 7.92411, -7.359898, 2.703522}, VP = {101, 74.55502, -7295.586, -7.442448, 0.0000042881, 2}, LiqCp = {16, 75539, -22297, 136.02, -0.25622, 0.00018273}, HOV = {106, 5.964E+07, 0.86515, -1.1134, 0.67764, -0.026925}, VapCp = {16, 33200, -878.9001, 8.436956, 0.00207627, -6.467085E-07}, LiqVis = {101, -133.7, 6785.7, 18.47, -0.000014736, 2}, VapVis = {102, 7.002327E-08, 0.934576, 195.6338, -13045.99, 0}, LiqK = {16, -1.5697, -55.141, 0.7832, 0.0011484, -0.0000018151}, VapK = {102, 0.0000065986, 1.3947, 59.478, -15484, 0}, Racketparam = 0.2338, UniquacR = 0.92, UniquacQ = 1.4, ChaoSeadAF = 0.328, ChaoSeadSP = 47812.7, ChaoSeadLV = 0.0180674);
-end Water;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Xenon.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/Xenon.mo
deleted file mode 100644
index 31edeca..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/Xenon.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.ChemsepDatabase;
-
-model Xenon
- extends Modelica.Icons.Record;
- extends GeneralProperties(SN = 200, name = "Xenon", CAS = "7440-63-3", Tc = 289.74, Pc = 5840000, Vc = 0.118, Cc = 0.286, Tb = 165.01, Tm = 161.25, TT = 161.25, TP = 81667.9, MW = 131.29, LVB = 0.04291, AF = 0.006, SP = 15910, DM = 0, SH = 0.0, IGHF = 0, GEF = 0, AS = 169578, HFMP = 2294950, HOC = 0, LiqDen = {105, 2.4063, 0.28552, 289.74, 0.28967, 0}, VP = {101, 31.497, -1758.9, -1.8727, 0.0000091652, 2}, LiqCp = {16, 44610, -221, 1.0811, 0.026515, -0.000013257}, HOV = {106, 1.740633E+07, -0.233725, 3.148357, -4.995262, 2.477111}, VapCp = {16, 20786, 0, 0, 0, 0}, LiqVis = {101, -7.7421, -0.53776, -0.00050184, -5.2934E-08, 2}, VapVis = {102, 0.0000014055, 0.57778, 188.46, -312.26, 0}, LiqK = {16, -0.012175, 143.58, -4.2655, 0.011041, -0.000032937}, VapK = {102, 0.00026719, 0.62046, 215.6, -8144.4, 0}, Racketparam = 0.286, UniquacR = 1.13, UniquacQ = 1.13, ChaoSeadAF = 0.006, ChaoSeadSP = 15910, ChaoSeadLV = 0.04291);
-end Xenon;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/package.mo b/src/main/Simulator/Simulator/Files/ChemsepDatabase/package.mo
deleted file mode 100644
index f016cc6..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/package.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files;
-
-package ChemsepDatabase
- extends Modelica.Icons.RecordsPackage;
-
-end ChemsepDatabase;
diff --git a/src/main/Simulator/Simulator/Files/ChemsepDatabase/package.order b/src/main/Simulator/Simulator/Files/ChemsepDatabase/package.order
deleted file mode 100644
index 8bc58b9..0000000
--- a/src/main/Simulator/Simulator/Files/ChemsepDatabase/package.order
+++ /dev/null
@@ -1,432 +0,0 @@
-GeneralProperties
-Air
-Argon
-Bromine
-Carbontetrachloride
-Carbonmonoxide
-Carbondioxide
-Carbondisulfide
-Phosgene
-Trichloroacetylchloride
-Hydrogenchloride
-Chlorine
-Hydrogeniodide
-Hydrogen
-Water
-Hydrogensulfide
-Ammonia
-Neon
-Nitricacid
-Nitricoxide
-Nitrogendioxide
-Nitrogen
-Nitrousoxide
-Oxygen
-Sulfurdioxide
-Sulfurtrioxide
-Chloroform
-Hydrogencyanide
-Formaldehyde
-Methylchloride
-Methyliodide
-Methane
-Methanol
-Methylamine
-Trichloroethylene
-Dichloroacetylchloride
-Trichloroacetaldehyde
-Acetylene
-Dichloroacetaldehyde
-Vinylchloride
-Acetylchloride
-OneOneTwotrichloroethane
-Acetonitrile
-Ethylene
-OneOnedichloroethane
-OneTwodichloroethane
-Acetaldehyde
-Ethyleneoxide
-Aceticacid
-Methylformate
-Ethylchloride
-Ethane
-Ethanol
-Dimethylether
-Ethyleneglycol
-Dimethylsulfide
-Ethylmercaptan
-Ethylamine
-Acrylonitrile
-Methylacetylene
-Propadiene
-Propylene
-Acetone
-Ethylformate
-Methylacetate
-Propionicacid
-Nndimethylformamide
-Propane
-Isopropanol
-Onepropanol
-Trimethylamine
-Vinylacetylene
-Thiophene
-Methacrylonitrile
-Dimethylacetylene
-Ethylacetylene
-OneTwobutadiene
-OneThreebutadiene
-Onebutene
-CisTwobutene
-TransTwobutene
-Isobutene
-Twomethylpropanal
-Methylethylketone
-Tetrahydrofuran
-OneFourdioxane
-Nbutyricacid
-Ethylacetate
-Methylpropionate
-Npropylformate
-Sulfolane
-Nndimethylacetamide
-Nbutane
-Isobutane
-Onebutanol
-TwomethylOnepropanol
-Twobutanol
-TwomethylTwopropanol
-Diethylether
-Diethyleneglycol
-Diethylamine
-Furfural
-Pyridine
-Isoprene
-Cyclopentane
-TwomethylOnebutene
-ThreemethylOnebutene
-TwomethylTwobutene
-Onepentene
-CisTwopentene
-TransTwopentene
-Threepentanone
-Methylisopropylketone
-Npropylacetate
-Isopentane
-Npentane
-Neopentane
-OneTwoFourtrichlorobenzene
-Mdichlorobenzene
-Odichlorobenzene
-Pdichlorobenzene
-Bromobenzene
-Monochlorobenzene
-Iodobenzene
-Nitrobenzene
-Benzene
-Phenol
-Aniline
-Cyclohexanone
-Cyclohexane
-Onehexene
-Methylcyclopentane
-Cyclohexanol
-TwoTwodimethylbutane
-TwoThreedimethylbutane
-Nhexane
-Twomethylpentane
-Threemethylpentane
-Triethyleneglycol
-Triethylamine
-Toluene
-Mcresol
-Ocresol
-Pcresol
-Methylcyclohexane
-Ethylcyclopentane
-Oneheptene
-Nheptane
-Styrene
-Ethylbenzene
-Mxylene
-Oxylene
-Pxylene
-Ethylcyclohexane
-Npropylcyclopentane
-Noctane
-TwoTwoThreetrimethylpentane
-TwoTwoFourtrimethylpentane
-TwoThreeThreetrimethylpentane
-TwoThreeFourtrimethylpentane
-Tetraethyleneglycol
-Indene
-Indane
-Cumene
-Npropylbenzene
-Npropylcyclohexane
-Nnonane
-Naphthalene
-Onemethylindene
-Twomethylindene
-Dicyclopentadiene
-Nbutylbenzene
-Nbutylcyclohexane
-Ndecane
-Onemethylnaphthalene
-Twomethylnaphthalene
-Nundecane
-Acenaphthene
-Biphenyl
-Ndodecane
-Fluorene
-Ntridecane
-Phenanthrene
-Ntetradecane
-Npentadecane
-Fluoranthene
-Pyrene
-Onephenylnaphthalene
-Nhexadecane
-Chrysene
-Cisdecahydronaphthalene
-Transdecahydronaphthalene
-Methyltertbutylether
-Methyltertpentylether
-TwomethylTwobutanol
-Nitrogentrioxide
-Nitrogentetroxide
-HeliumFour
-Fluorine
-Krypton
-Xenon
-Ozone
-Carbonylsulfide
-Sulfurhexafluoride
-Dimethylsulfoxide
-Nheptadecane
-Noctadecane
-Nnonadecane
-Nheneicosane
-Ndocosane
-Ntricosane
-Ntetracosane
-Npentacosane
-Nhexacosane
-Nheptacosane
-Noctacosane
-Nnonacosane
-Squalane
-Twomethylhexane
-Threemethylhexane
-Threeethylpentane
-TwoTwodimethylpentane
-TwoThreedimethylpentane
-TwoFourdimethylpentane
-ThreeThreedimethylpentane
-TwoTwoThreetrimethylbutane
-Twomethylheptane
-Threemethylheptane
-Fourmethylheptane
-Threeethylhexane
-TwoTwodimethylhexane
-TwoThreedimethylhexane
-TwoFourdimethylhexane
-TwoFivedimethylhexane
-ThreeThreedimethylhexane
-ThreeFourdimethylhexane
-TwomethylThreeethylpentane
-ThreemethylThreeethylpentane
-TwoTwoThreeThreetetramethylbutane
-TwoTwoFivetrimethylhexane
-TwoFourFourtrimethylhexane
-ThreeThreediethylpentane
-TwoTwoThreeThreetetramethylpentane
-TwoTwoThreeFourtetramethylpentane
-TwoTwoFourFourtetramethylpentane
-TwoThreeThreeFourtetramethylpentane
-Twomethyloctane
-Threemethyloctane
-Fourmethyloctane
-Threeethylheptane
-TwoTwodimethylheptane
-ThreeThreeFivetrimethylheptane
-TwoTwodimethyloctane
-Threemethylnonane
-Twomethylnonane
-Fourmethylnonane
-Fivemethylnonane
-CisTwohexene
-TransTwohexene
-Oneoctene
-Onenonene
-Oneundecene
-TwomethylOnepentene
-FourmethylcisTwopentene
-FourmethyltransTwopentene
-Cyclohexene
-OneOnedimethylcyclopentane
-CisOneTwodimethylcyclopentane
-TransOneTwodimethylcyclopentane
-CisOneThreedimethylcyclopentane
-TransOneThreedimethylcyclopentane
-Isopropylcyclopentane
-OnemethylOneethylcyclopentane
-Nbutylcyclopentane
-OneOnedimethylcyclohexane
-CisOneTwodimethylcyclohexane
-TransOneTwodimethylcyclohexane
-CisOneThreedimethylcyclohexane
-TransOneThreedimethylcyclohexane
-CisOneFourdimethylcyclohexane
-TransOneFourdimethylcyclohexane
-Tertbutylcyclohexane
-Oethyltoluene
-Methyltoluene
-Pethyltoluene
-OneTwoThreetrimethylbenzene
-OneTwoFourtrimethylbenzene
-Mesitylene
-Isobutylbenzene
-Secbutylbenzene
-Tertbutylbenzene
-Ocymene
-Mcymene
-Pcymene
-Odiethylbenzene
-Mdiethylbenzene
-Pdiethylbenzene
-OneTwoThreeFourtetramethylbenzene
-OneTwoThreeFivetetramethylbenzene
-OneTwoFourFivetetramethylbenzene
-Twoethylmxylene
-Twoethylpxylene
-Fourethylmxylene
-Fourethyloxylene
-OnemethylThreenpropylbenzene
-OnemethylFournpropylbenzene
-Pdiisopropylbenzene
-Methylisobutylketone
-Threeheptanone
-Fourheptanone
-Threehexanone
-Twopentanone
-Twohexanone
-Twoheptanone
-FivemethylTwohexanone
-ThreeThreedimethylTwobutanone
-Diisobutylketone
-Diisopropylketone
-Propanal
-Butanal
-Pentanal
-Hexanal
-Heptanal
-Diisopropylether
-Dinbutylether
-Disecbutylether
-Methylethylether
-Methylnpropylether
-Isopropylbutylether
-Methylisobutylether
-Methylisopropylether
-Tertbutylethylether
-Ethyltertpentylether
-Butylvinylether
-Anisole
-Isopropylacetate
-Nbutylacetate
-Isobutylacetate
-Npentylacetate
-Vinylacetate
-Nhexylacetate
-Onepentanol
-Twopentanol
-TwomethylOnebutanol
-TwoTwodimethylOnepropanol
-Onehexanol
-Oneheptanol
-OneFourbutanediol
-Methylmercaptan
-Npropylmercaptan
-Tertbutylmercaptan
-Isobutylmercaptan
-Secbutylmercaptan
-Nhexylmercaptan
-Methylethylsulfide
-Methylnpropylsulfide
-Methyltbutylsulfide
-Methyltpentylsulfide
-Dinpropylsulfide
-Diethylsulfide
-Diethyldisulfide
-Dimethyldisulfide
-Dinpropyldisulfide
-Ditertbutyldisulfide
-Ethylmethyldisulfide
-Ethylpropyldisulfide
-Diphenyldisulfide
-Monoethanolamine
-Diethanolamine
-Triethanolamine
-Ethylenediamine
-Diisopropylamine
-Naminoethylpiperazine
-Diethylenetriamine
-Naminoethylethanolamine
-Pphenylenediamine
-Piperazine
-Methylethanolamine
-Dimethylethanolamine
-Nitromethane
-Nitroethane
-Onenitropropane
-Twonitropropane
-Onenitrobutane
-Onitrotoluene
-Pnitrotoluene
-Mnitrotoluene
-TwoFourdinitrotoluene
-Two6dinitrotoluene
-ThreeFourdinitrotoluene
-TwoFivedinitrotoluene
-ThreeFivedinitrotoluene
-TwoFour6trinitrotoluene
-Oxalicacid
-Acrylicacid
-Methacrylicacid
-Benzoicacid
-Otoluicacid
-Ptoluicacid
-Salicylicacid
-Adipicacid
-Phthalicacid
-Maleicacid
-Terephthalicacid
-Aceticanhydride
-Maleicanhydride
-Ketene
-Methylmethacrylate
-Dimethylterephthalate
-OneTwopropyleneoxide
-Cumenehydroperoxide
-Propionitrile
-Dimethylcarbonate
-DiEthylCarbonate
-MethylEthylCarbonate
-MethylPhenylCarbonate
-EthylPhenylCarbonate
-DiPhenylCarbonate
-Ethylenecarbonate
-Propylenecarbonate
-TwomethylOneheptene
-TwoMethoxyTwoMethylHeptane
-TwoMethylTwoHeptanol
-Methylal
-MethylDiEthanolAmine
-Diethylethanolamine
-Diisopropanolamine
-Cyclobutane
-Isopropylmercaptan
-Glycerol
-Neicosane
-DiButylCarbonate
diff --git a/src/main/Simulator/Simulator/Files/Icons/AbsorptionColumn.mo b/src/main/Simulator/Simulator/Files/Icons/AbsorptionColumn.mo
deleted file mode 100644
index 8ff36c1..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/AbsorptionColumn.mo
+++ /dev/null
@@ -1,9 +0,0 @@
-within Simulator.Files.Icons;
-
-model AbsorptionColumn
-equation
-
-annotation(
- Icon(coordinateSystem(extent = {{-250, -450}, {250, 450}}, initialScale = 0.1), graphics = {Line(points = {{-90, 400}, {-90, -400}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{90, 400}, {90, -400}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-90, 400}, {-30, 440}, {30, 440}, {90, 400}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(rotation = 180, points = {{-90, 400}, {-30, 440}, {30, 440}, {90, 400}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(points = {{-90, 250}, {10, 250}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-10, 167}, {90, 167}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-90, 83}, {10, 83}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-10, 0}, {90, 0}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-90, -84}, {10, -84}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-10, -167}, {90, -167}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-90, -250}, {10, -250}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-250, 300}, {-90, 300}}, color = {0, 70, 70}, thickness = 0.3), Line(rotation = 180, points = {{-250, 300}, {-90, 300}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{90, 300}, {250, 300}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-250, -300}, {-90, -300}}, color = {0, 70, 70}, thickness = 0.3), Text(extent = {{-500, -460}, {500, -520}}, textString = "%name", fontSize = 50)}),
- Diagram(coordinateSystem(extent = {{-250, -450}, {250, 450}})),
- __OpenModelica_commandLineOptions = "");end AbsorptionColumn;
diff --git a/src/main/Simulator/Simulator/Files/Icons/AdiabaticCompressor.mo b/src/main/Simulator/Simulator/Files/Icons/AdiabaticCompressor.mo
deleted file mode 100644
index 2434329..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/AdiabaticCompressor.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model AdiabaticCompressor
-equation
-
-annotation(
- Icon(graphics = {Polygon(lineColor = {0, 70, 70},lineThickness = 0.3, points = {{-100, 80}, {100, 50}, {100, -50}, {-100, -80}, {-100, 80}}), Text(extent = {{-500, -100}, {500, -160}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));end AdiabaticCompressor;
diff --git a/src/main/Simulator/Simulator/Files/Icons/AdiabaticExpander.mo b/src/main/Simulator/Simulator/Files/Icons/AdiabaticExpander.mo
deleted file mode 100644
index 7726886..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/AdiabaticExpander.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.Icons;
-
-model AdiabaticExpander
- annotation(
- Icon(graphics = {Polygon(lineColor = {0, 70, 70}, lineThickness = 0.3, points = {{-100, 50}, {100, 80}, {100, -80}, {-100, -50}, {-100, 50}}), Text(extent = {{-500, -100}, {500, -160}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));
-end AdiabaticExpander;
diff --git a/src/main/Simulator/Simulator/Files/Icons/CentrifugalPump.mo b/src/main/Simulator/Simulator/Files/Icons/CentrifugalPump.mo
deleted file mode 100644
index 6e69c4b..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/CentrifugalPump.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model CentrifugalPump
-equation
-
-annotation(
- Icon(graphics = {Ellipse(origin = {0, 15}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-85, 85}, {85, -85}}, endAngle = 360), Line(origin = {-66, -60}, points = {{0, 0}, {0, 0}}), Line(points = {{0, 100}, {100, 100}}, color = {0, 70, 70}, thickness = 0.3), Rectangle(lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-90, -80}, {90, -100}}), Line(points = {{-100, 15}, {0, 15}}, color = {0, 70, 70}, thickness = 0.3), Text(extent = {{-500, -120}, {500, -180}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));end CentrifugalPump;
diff --git a/src/main/Simulator/Simulator/Files/Icons/CompoundSeparator.mo b/src/main/Simulator/Simulator/Files/Icons/CompoundSeparator.mo
deleted file mode 100644
index 03ad944..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/CompoundSeparator.mo
+++ /dev/null
@@ -1,9 +0,0 @@
-within Simulator.Files.Icons;
-
-model CompoundSeparator
-equation
-
-annotation(
-
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}}, initialScale = 0.1), graphics = {Line(origin = {-100, 0}, points = {{0, 120}, {0, -120}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 120}, {0, -120}}, color = {0, 70, 70}, thickness = 0.3), Rectangle(origin = {0, 125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Rectangle(origin = {0, -125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Text(extent = {{-500, -220}, {500, -280}}, textString = "%name", fontSize = 50), Line(origin = {-100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {0, 150}, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(origin = {0, -150}, rotation = 180, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier)}),
- __OpenModelica_commandLineOptions = "");end CompoundSeparator;
diff --git a/src/main/Simulator/Simulator/Files/Icons/ConversionReactor.mo b/src/main/Simulator/Simulator/Files/Icons/ConversionReactor.mo
deleted file mode 100644
index af09bc7..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/ConversionReactor.mo
+++ /dev/null
@@ -1,9 +0,0 @@
-within Simulator.Files.Icons;
-
-model ConversionReactor
-equation
-annotation(
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}}), graphics = {Line(points = {{-100, 120}, {-100, -120}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 120}, {0, -120}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {0, 150}, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Rectangle(origin = {0, 125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Rectangle(origin = {0, -125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Text(extent = {{-500, -220}, {500, -280}}, textString = "%name", fontSize = 50), Line(origin = {0, 80}, points = {{-100, 0}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{100, -80}, {33.3, 80}, {-33.3, -80}, {-100, 80}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-2, 1.58}, points = {{-100, -80}, {-33.3, 80}, {33.3, -80}, {100, 80}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {0, -150}, rotation = 180, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(origin = {0, -80}, points = {{-100, 0}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3)}),
- __OpenModelica_commandLineOptions = "",
- Diagram(coordinateSystem(extent = {{-100, -200}, {100, 200}})));
-end ConversionReactor;
diff --git a/src/main/Simulator/Simulator/Files/Icons/Cooler.mo b/src/main/Simulator/Simulator/Files/Icons/Cooler.mo
deleted file mode 100644
index 0a3f93d..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/Cooler.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model Cooler
-equation
-
-annotation(
- Icon(graphics = {Ellipse(origin = {-1, 2}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-100, 100}, {100, -100}}, endAngle = 360), Line(origin = {-1.21, 0.36}, points = {{-100, 100}, {100, -100}}, color = {255, 0, 0}, thickness = 0.3), Line(origin = {90, -90}, points = {{10, 10}, {10, -10}, {-10, -10}}, color = {255, 0, 0}, thickness = 0.3), Text(origin = {-3, -5}, lineColor = {0, 70, 70}, extent = {{-50, 50}, {50, -50}}, textString = "C", textStyle = {TextStyle.Bold}), Text(extent = {{-500, -120}, {500, -180}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));end Cooler;
diff --git a/src/main/Simulator/Simulator/Files/Icons/DistillationColumn.mo b/src/main/Simulator/Simulator/Files/Icons/DistillationColumn.mo
deleted file mode 100644
index ee515ca..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/DistillationColumn.mo
+++ /dev/null
@@ -1,8 +0,0 @@
-within Simulator.Files.Icons;
-
-model DistillationColumn
- annotation(
- Icon(coordinateSystem(extent = {{-250, -600}, {250, 600}}, initialScale = 0.1), graphics = {Line(points = {{-250, 400}, {-250, -400}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-70, 400}, {-70, -400}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-250, 400}, {-190, 440}, {-130, 440}, {-70, 400}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Ellipse(origin = {150, 505}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-100, 100}, {100, -100}}, endAngle = 360), Ellipse(origin = {150, -503}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-100, 100}, {100, -100}}, endAngle = 360), Line(points = {{50, 500}, {-160, 500}, {-160, 440}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-70, 300}, {250, 300}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{150, 400}, {150, 300}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{50, -500}, {-160, -500}, {-160, -440}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{150, -300}, {150, -400}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{250, -300}, {-70, -300}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{50, -400}, {250, -600}}, color = {255, 0, 0}, thickness = 0.3), Line(points = {{50, 400}, {250, 600}}, color = {255, 0, 0}, thickness = 0.3), Line(points = {{230, 600}, {250, 600}, {250, 580}}, color = {255, 0, 0}, thickness = 0.3), Line(points = {{70, -400}, {50, -400}, {50, -420}}, color = {255, 0, 0}, thickness = 0.3), Line(points = {{-250, 250}, {-150, 250}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-250, 83}, {-150, 83}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-250, -84}, {-150, -84}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-250, -250}, {-150, -250}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-170, 167}, {-70, 167}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-170, 0}, {-70, 0}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-170, -167}, {-70, -167}}, color = {0, 70, 70}, thickness = 0.3), Text(extent = {{-500, -620}, {500, -680}}, textString = "%name", fontSize = 50), Line(points = {{-250, -400}, {-190, -440}, {-130, -440}, {-70, -400}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier)}),
- Diagram(coordinateSystem(extent = {{-250, -600}, {250, 600}})),
- __OpenModelica_commandLineOptions = "");
-end DistillationColumn;
diff --git a/src/main/Simulator/Simulator/Files/Icons/EnergyStream.mo b/src/main/Simulator/Simulator/Files/Icons/EnergyStream.mo
deleted file mode 100644
index fa45906..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/EnergyStream.mo
+++ /dev/null
@@ -1,8 +0,0 @@
-within Simulator.Files.Icons;
-
-model EnergyStream
-annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Line(points = {{-100, 0}, {100, 0}}, color = {255, 0, 0}, thickness = 0.3), Line(points = {{80, 20}, {100, 0}, {80, -20}}, color = {255, 0, 0}, thickness = 0.3), Text(extent = {{-500, -40}, {500, -100}}, textString = "%name", fontSize = 50)}));
-
-
-end EnergyStream;
diff --git a/src/main/Simulator/Simulator/Files/Icons/EquilibriumReactor.mo b/src/main/Simulator/Simulator/Files/Icons/EquilibriumReactor.mo
deleted file mode 100644
index 9aa9a0e..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/EquilibriumReactor.mo
+++ /dev/null
@@ -1,10 +0,0 @@
-within Simulator.Files.Icons;
-
-model EquilibriumReactor
-equation
-
-annotation(
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}}), graphics = {Line(points = {{-100, 120}, {-100, -120}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 120}, {0, -120}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {0, 150}, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Rectangle(origin = {0, 125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Rectangle(origin = {0, -125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Text(extent = {{-500, -220}, {500, -280}}, textString = "%name", fontSize = 50), Line(origin = {0, 80}, points = {{-100, 0}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{100, -80}, {33.3, 80}, {-33.3, -80}, {-100, 80}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-2, 1.58}, points = {{-100, -80}, {-33.3, 80}, {33.3, -80}, {100, 80}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {0, -150}, rotation = 180, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(origin = {0, -80}, points = {{-100, 0}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3)}),
- __OpenModelica_commandLineOptions = "",
- Diagram(coordinateSystem(extent = {{-100, -200}, {100, 200}})));
-end EquilibriumReactor;
diff --git a/src/main/Simulator/Simulator/Files/Icons/Flash.mo b/src/main/Simulator/Simulator/Files/Icons/Flash.mo
deleted file mode 100644
index eeb3f0f..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/Flash.mo
+++ /dev/null
@@ -1,8 +0,0 @@
-within Simulator.Files.Icons;
-
-model Flash
-annotation(
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}}, initialScale = 0.1), graphics = {Line(origin = {-100, 0}, points = {{0, 120}, {0, -120}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 120}, {0, -120}}, color = {0, 70, 70}, thickness = 0.3), Rectangle(origin = {0, 125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Rectangle(origin = {0, -125}, lineColor = {0, 70, 70}, lineThickness = 0.3, extent = {{-120, 5}, {120, -5}}), Text(extent = {{-500, -220}, {500, -280}}, textString = "%name", fontSize = 50), Line(origin = {-100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, 130}, {0, 150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {-100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {100, 0}, points = {{0, -130}, {0, -150}}, color = {0, 70, 70}, thickness = 0.3), Line(origin = {0, 150}, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(origin = {0, -150}, rotation = 180, points = {{-100, 0}, {-85, 20}, {-40, 40}, {40, 40}, {85, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(points = {{-100, 0}, {-87.5, -20}, {-62.5, 20}, {-37.5, -20}, {-12.5, 20}, {12.5, -20}, {37.5, 20}, {62.5, -20}, {87.5, 20}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier)}),
-
- __OpenModelica_commandLineOptions = "");
-end Flash;
diff --git a/src/main/Simulator/Simulator/Files/Icons/HeatExchanger.mo b/src/main/Simulator/Simulator/Files/Icons/HeatExchanger.mo
deleted file mode 100644
index e0287ce..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/HeatExchanger.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files.Icons;
-
-model HeatExchanger
- annotation(
- Icon(graphics = {Ellipse(lineColor = {0, 70, 70}, lineThickness = 0.3,extent = {{-100, 100}, {100, -100}}, endAngle = 360), Line(points = {{-100, 0}, {-35, 30}, {35, -30}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3), Text(extent = {{-500, -120}, {500, -180}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));
-end HeatExchanger;
diff --git a/src/main/Simulator/Simulator/Files/Icons/Heater.mo b/src/main/Simulator/Simulator/Files/Icons/Heater.mo
deleted file mode 100644
index fb4cd17..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/Heater.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model Heater
- annotation(
- Diagram,
- Icon(graphics = {Ellipse(lineColor = {0, 70, 70}, lineThickness = 0.3,extent = {{-100, 100}, {100, -100}}, endAngle = 360), Line(points = {{-100, -100}, {100, 100}}, color = {255, 0, 0}, thickness = 0.3), Line(origin = {90, 90}, points = {{-10, 10}, {10, 10}, {10, -10}}, color = {255, 0, 0}, thickness = 0.3), Text(lineColor = {0, 70, 70},extent = {{-50, 50}, {50, -50}}, textString = "H", textStyle = {TextStyle.Bold}), Text( extent = {{-500, -120}, {500, -180}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));
-end Heater;
diff --git a/src/main/Simulator/Simulator/Files/Icons/MaterialStream.mo b/src/main/Simulator/Simulator/Files/Icons/MaterialStream.mo
deleted file mode 100644
index 84e2d16..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/MaterialStream.mo
+++ /dev/null
@@ -1,8 +0,0 @@
-within Simulator.Files.Icons;
-
-model MaterialStream
-
-annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Line(points = {{-100, 0}, {100, 0}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{80, 20}, {100, 0}, {80, -20}}, color = {0, 70, 70}, thickness = 0.3), Text(extent = {{-500, -40}, {500, -100}}, textString = "%name", fontSize = 50)}));
-
-end MaterialStream;
diff --git a/src/main/Simulator/Simulator/Files/Icons/Mixer.mo b/src/main/Simulator/Simulator/Files/Icons/Mixer.mo
deleted file mode 100644
index a135f1a..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/Mixer.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model Mixer
-
- annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Polygon(origin = {-1, 1}, lineColor = {0, 70, 70}, fillColor = {19, 224, 255}, lineThickness = 0.3, points = {{-100, 100}, {0, 100}, {100, 0}, {0, -100}, {-100, -100}, {-100, 100}}), Text( extent = {{-500, -120}, {500, -180}}, textString = "%name", fontSize = 50)}));
-end Mixer;
diff --git a/src/main/Simulator/Simulator/Files/Icons/PFR.mo b/src/main/Simulator/Simulator/Files/Icons/PFR.mo
deleted file mode 100644
index dd799e8..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/PFR.mo
+++ /dev/null
@@ -1,9 +0,0 @@
-within Simulator.Files.Icons;
-
-model PFR
-equation
-
-annotation(
- Icon(coordinateSystem(extent = {{-350, -100}, {350, 100}}, initialScale = 0.1), graphics = {Line(points = {{-320, 70}, {320, 70}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-320, -70}, {320, -70}}, color = {0, 70, 70}, thickness = 0.3), Text(extent = {{-500, -90}, {500, -150}}, textString = "%name", fontSize = 50), Line(points = {{-250, 70}, {-250, -70}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{250, 70}, {250, -70}}, color = {0, 70, 70}, thickness = 0.3), Line(points = {{-320, 70}, {-350, 30}, {-350, -30}, {-320, -70}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(rotation = 180, points = {{-320, 70}, {-350, 30}, {-350, -30}, {-320, -70}}, color = {0, 70, 70}, thickness = 0.3, smooth = Smooth.Bezier), Line(points = {{-250, 70}, {-200, -70}, {-150, 70}, {-100, -70}, {-50, 70}, {0, -70}, {50, 70}, {100, -70}, {150, 70}, {200, -70}, {250, 70}}, color = {0, 70, 70}, thickness = 0.3), Line(rotation = 180, points = {{-250, 70}, {-200, -70}, {-150, 70}, {-100, -70}, {-50, 70}, {0, -70}, {50, 70}, {100, -70}, {150, 70}, {200, -70}, {250, 70}}, color = {0, 70, 70}, thickness = 0.3)}),
- Diagram(coordinateSystem(extent = {{-350, -100}, {350, 100}})),
- __OpenModelica_commandLineOptions = "");end PFR;
diff --git a/src/main/Simulator/Simulator/Files/Icons/Splitter.mo b/src/main/Simulator/Simulator/Files/Icons/Splitter.mo
deleted file mode 100644
index 1f409be..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/Splitter.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model Splitter
-
-annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Polygon(origin = {-1, 1}, rotation = 180, lineColor = {0, 70, 70}, fillColor = {19, 224, 255}, lineThickness = 0.3, points = {{-100, 100}, {0, 100}, {100, 0}, {0, -100}, {-100, -100}, {-100, 100}}), Text(extent = {{-500, -120}, {500, -180}}, textString = "%name", fontSize = 50)}));
-end Splitter;
diff --git a/src/main/Simulator/Simulator/Files/Icons/Valve.mo b/src/main/Simulator/Simulator/Files/Icons/Valve.mo
deleted file mode 100644
index a1404bd..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/Valve.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Icons;
-
-model Valve
-equation
-
-annotation(
- Icon(graphics = {Polygon(origin = {0, -4}, lineColor = {0, 70, 70}, lineThickness = 0.3, points = {{-100, 66}, {-100, -66}, {100, 66}, {100, -66}, {-100, 66}}), Text(extent = {{-500, -86}, {500, -146}}, textString = "%name", fontSize = 50)}, coordinateSystem(initialScale = 0.1)));end Valve;
diff --git a/src/main/Simulator/Simulator/Files/Icons/package.mo b/src/main/Simulator/Simulator/Files/Icons/package.mo
deleted file mode 100644
index 2c5dd43..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.Files;
-
-package Icons
- extends Modelica.Icons.IconsPackage;
-end Icons;
diff --git a/src/main/Simulator/Simulator/Files/Icons/package.order b/src/main/Simulator/Simulator/Files/Icons/package.order
deleted file mode 100644
index e8b8983..0000000
--- a/src/main/Simulator/Simulator/Files/Icons/package.order
+++ /dev/null
@@ -1,18 +0,0 @@
-Mixer
-Heater
-Cooler
-Valve
-Splitter
-Flash
-PFR
-HeatExchanger
-CompoundSeparator
-CentrifugalPump
-AdiabaticCompressor
-AdiabaticExpander
-ConversionReactor
-EquilibriumReactor
-DistillationColumn
-AbsorptionColumn
-MaterialStream
-EnergyStream
diff --git a/src/main/Simulator/Simulator/Files/Interfaces/enConn.mo b/src/main/Simulator/Simulator/Files/Interfaces/enConn.mo
deleted file mode 100644
index 68180e1..0000000
--- a/src/main/Simulator/Simulator/Files/Interfaces/enConn.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.Files.Interfaces;
-
-connector enConn
- Real Q;
- annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Rectangle(lineColor = {255, 0, 0}, fillColor = {255, 0, 0}, fillPattern = FillPattern.Solid, extent = {{-50, 50}, {50, -50}})}));
-end enConn;
diff --git a/src/main/Simulator/Simulator/Files/Interfaces/matConn.mo b/src/main/Simulator/Simulator/Files/Interfaces/matConn.mo
deleted file mode 100644
index ae96650..0000000
--- a/src/main/Simulator/Simulator/Files/Interfaces/matConn.mo
+++ /dev/null
@@ -1,8 +0,0 @@
-within Simulator.Files.Interfaces;
-
-connector matConn
- Real P, T, F, H, S,x_pc[3, Nc], xvap;
- parameter Integer Nc;
- annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Rectangle(lineColor = {0, 70, 70}, fillColor = {0, 70, 70}, fillPattern = FillPattern.Solid, extent = {{-50, 50}, {50, -50}})}));
-end matConn;
diff --git a/src/main/Simulator/Simulator/Files/Interfaces/package.mo b/src/main/Simulator/Simulator/Files/Interfaces/package.mo
deleted file mode 100644
index 43fbbd9..0000000
--- a/src/main/Simulator/Simulator/Files/Interfaces/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.Files;
-
-package Interfaces
- extends Modelica.Icons.InterfacesPackage;
-end Interfaces;
diff --git a/src/main/Simulator/Simulator/Files/Interfaces/package.order b/src/main/Simulator/Simulator/Files/Interfaces/package.order
deleted file mode 100644
index ed3ffc4..0000000
--- a/src/main/Simulator/Simulator/Files/Interfaces/package.order
+++ /dev/null
@@ -1,3 +0,0 @@
-matConn
-enConn
-trayConn
diff --git a/src/main/Simulator/Simulator/Files/Interfaces/trayConn.mo b/src/main/Simulator/Simulator/Files/Interfaces/trayConn.mo
deleted file mode 100644
index 54df149..0000000
--- a/src/main/Simulator/Simulator/Files/Interfaces/trayConn.mo
+++ /dev/null
@@ -1,8 +0,0 @@
-within Simulator.Files.Interfaces;
-
-connector trayConn
- Real F, H, x_c[Nc];
- parameter Integer Nc;
- annotation(
- Icon(coordinateSystem(initialScale = 0.1), graphics = {Rectangle(fillColor = {8, 184, 211}, fillPattern = FillPattern.Solid, extent = {{-50, 50}, {50, -50}})}));
-end trayConn;
diff --git a/src/main/Simulator/Simulator/Files/Models/Flash.mo b/src/main/Simulator/Simulator/Files/Models/Flash.mo
deleted file mode 100644
index c548260..0000000
--- a/src/main/Simulator/Simulator/Files/Models/Flash.mo
+++ /dev/null
@@ -1,68 +0,0 @@
-within Simulator.Files.Models;
-
- model Flash
- //this is basic flash model. comp and Nc has to be defined in model. thermodyanamic model must also be extended along with this model for K value.
- import Simulator.Files.*;
- Real F_p[3](each min = 0, start = {Fg,Fliqg,Fvapg});
- Real x_pc[3, Nc](each min = 0, each max = 1, start={xguess,xg,yg});
- Real Cp_pc[3, Nc], H_pc[3, Nc], S_pc[3, Nc], Cp_p[3], H_p[3], S_p[3];
- Real xliq(min = 0, max = 1, start = xliqg);
- Real xvap(min = 0, max = 1, start = xvapg);
- Real P(min = 0, start = Pg);
- Real T(min = 0, start = Tg);
- Real Pbubl(start = Pmin, min = 0)"Bubble point pressure";
- Real Pdew(start = Pmax, min = 0)"dew point pressure";
-
- extends GuessModels.InitialGuess;
-
- equation
-//Mole Balance
- F_p[1] = F_p[2] + F_p[3];
- x_pc[1, :] .* F_p[1] = x_pc[2, :] .* F_p[2] + x_pc[3, :] .* F_p[3];
-
- //Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6]) ./ philiqbubl_c[:]);
- //Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6])) .* phivapdew_c[:]);
- if P >= Pbubl then
- x_pc[3, :] = zeros(Nc);
- // sum(x_pc[2, :]) = 1;
- F_p[3] = 0;
- elseif P >= Pdew then
- //VLE region
- for i in 1:Nc loop
- // x_pc[3, i] = K[i] * x_pc[2, i];
- x_pc[2, i] = x_pc[1, i] ./ (1 + xvap * (K_c[i] - 1));
- end for;
- sum(x_pc[2, :]) = 1;
- //sum y = 1
- else
- //above dew point region
- x_pc[2, :] = zeros(Nc);
- // sum(x_pc[3, :]) = 1;
- F_p[2] = 0;
- end if;
- //Energy Balance
- for i in 1:Nc loop
-//Specific Heat and Enthalpy calculation
- Cp_pc[2, i] = ThermodynamicFunctions.LiqCpId(C[i].LiqCp, T);
- Cp_pc[3, i] = ThermodynamicFunctions.VapCpId(C[i].VapCp, T);
- H_pc[2, i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- H_pc[3, i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- (S_pc[2, i], S_pc[3, i]) = ThermodynamicFunctions.SId(C[i].VapCp, C[i].HOV, C[i].Tb, C[i].Tc, T, P, x_pc[2, i], x_pc[3, i]);
- end for;
- for i in 2:3 loop
- Cp_p[i] = sum(x_pc[i, :] .* Cp_pc[i, :]) + Cpres_p[i];
- H_p[i] = sum(x_pc[i, :] .* H_pc[i, :]) + Hres_p[i];
- S_p[i] = sum(x_pc[i, :] .* S_pc[i, :]) + Sres_p[i];
- end for;
- Cp_p[1] = xliq * Cp_p[2] + xvap * Cp_p[3];
- Cp_pc[1, :] = x_pc[1, :] .* Cp_p[1];
- H_p[1] = xliq * H_p[2] + xvap * H_p[3];
- H_pc[1, :] = x_pc[1, :] .* H_p[1];
- S_p[1] = xliq * S_p[2] + xvap * S_p[3];
- S_pc[1, :] = x_pc[1, :] * S_p[1];
-//phase molar fractions
- xliq = F_p[2] / F_p[1];
- xvap = F_p[3] / F_p[1];
- end Flash;
diff --git a/src/main/Simulator/Simulator/Files/Models/ReactionManager/Arhenious.mo b/src/main/Simulator/Simulator/Files/Models/ReactionManager/Arhenious.mo
deleted file mode 100644
index f804474..0000000
--- a/src/main/Simulator/Simulator/Files/Models/ReactionManager/Arhenious.mo
+++ /dev/null
@@ -1,18 +0,0 @@
-within Simulator.Files.Models.ReactionManager;
-
- function Arhenious
- extends Modelica.Icons.Function;
- // Reaction rate constant k = A*exp(-E/RT)
- input Integer Nr ;
- input Real Af_r "To calulate reaction rate for forward reaction (Arrhenius constants of forward reaction)";
- input Real Ef_r "To calculate reaction rate for forward reaction";
- input Real T;
-
- output Real kf_r "reaction rate constants for forward reaction";
-
- algorithm
-
- kf_r := Af_r .* exp(-Ef_r/(8.314*T));
-
-
- end Arhenious;
diff --git a/src/main/Simulator/Simulator/Files/Models/ReactionManager/BaseCalc.mo b/src/main/Simulator/Simulator/Files/Models/ReactionManager/BaseCalc.mo
deleted file mode 100644
index 1f91147..0000000
--- a/src/main/Simulator/Simulator/Files/Models/ReactionManager/BaseCalc.mo
+++ /dev/null
@@ -1,41 +0,0 @@
-within Simulator.Files.Models.ReactionManager;
-
-function BaseCalc
-//This function is used to detect the base component of the stream
-extends Modelica.Icons.Function;
-input Integer Nc"Numner of components";
-input Real F[Nc]"Stream flow rate";
-input Real Sc[Nc]"Stoichiometric coefficient of the model";
-output Integer N"Component index of the result check";
-
-protected
-Real v1;
-Real v2;
-
-algorithm
-
-for i in 1:Nc loop
- if Sc[i]<0 then
- N:=i;
- break;
- else
- i:=i;
- end if;
-end for;
-
-v1:=F[N]/abs(Sc[N]);
-
-for i in 1:Nc loop
-if Sc[i]<0 then
- v2:=F[i]/abs(Sc[i]);
-if v2=-0.1 then
- Chk_r[i]:=1;
- else
- Chk_r[i]:=0;
- end if;
- end for;
- end Stoichiometrycheck;
-
diff --git a/src/main/Simulator/Simulator/Files/Models/ReactionManager/package.mo b/src/main/Simulator/Simulator/Files/Models/ReactionManager/package.mo
deleted file mode 100644
index 0b24e8d..0000000
--- a/src/main/Simulator/Simulator/Files/Models/ReactionManager/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.Files.Models;
-
-package ReactionManager
- extends Modelica.Icons.Package;
-end ReactionManager;
diff --git a/src/main/Simulator/Simulator/Files/Models/ReactionManager/package.order b/src/main/Simulator/Simulator/Files/Models/ReactionManager/package.order
deleted file mode 100644
index b9a039e..0000000
--- a/src/main/Simulator/Simulator/Files/Models/ReactionManager/package.order
+++ /dev/null
@@ -1,6 +0,0 @@
-Stoichiometrycheck
-Arhenious
-BaseCalc
-ConversionReaction
-KineticReaction
-EquilibriumReaction
diff --git a/src/main/Simulator/Simulator/Files/Models/gammaNRTL.mo b/src/main/Simulator/Simulator/Files/Models/gammaNRTL.mo
deleted file mode 100644
index 114176c..0000000
--- a/src/main/Simulator/Simulator/Files/Models/gammaNRTL.mo
+++ /dev/null
@@ -1,31 +0,0 @@
-within Simulator.Files.Models;
-
-model gammaNRTL
- // input Simulator.Files.Chemsep_Database.General_Properties C[Nc];
- parameter Integer Nc;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- Real x_c[Nc](each min = 0, each max = 1, each start = 1 / (Nc + 1)), T(min = 0, start = 273.15);
- Real gma_c[Nc](each start = 1);
- Real tau[Nc, Nc], G[Nc, Nc], alpha[Nc, Nc], A[Nc, Nc], BIPS[Nc, Nc, 2];
- Real sum1[Nc](each start = 1), sum2[Nc](each start = 1);
- constant Real R = 1.98721;
-equation
- BIPS = Simulator.Files.ThermodynamicFunctions.BIPNRTL(Nc, C.CAS);
- A = BIPS[:, :, 1];
- alpha = BIPS[:, :, 2];
- tau = A ./ (R * T);
-// G = exp(-alpha .* tau);//this equation is giving error in OM 1.11 hence for loop used
- for i in 1:Nc loop
- for j in 1:Nc loop
- G[i, j] = exp(-alpha[i, j] * tau[i, j]);
- end for;
- end for;
-//G = {{1, 1.1574891705 }, {0.8455436959, 1}};
- for i in 1:Nc loop
- sum1[i] = sum(x_c[:] .* G[:, i]);
- sum2[i] = sum(x_c[:] .* tau[:, i] .* G[:, i]);
- end for;
- for i in 1:Nc loop
- log(gma_c[i]) = sum(x_c[:] .* tau[:, i] .* G[:, i]) / sum(x_c[:] .* G[:, i]) + sum(x_c[:] .* G[i, :] ./ sum1[:] .* (tau[i, :] .- sum2[:] ./ sum1[:]));
- end for;
-end gammaNRTL;
diff --git a/src/main/Simulator/Simulator/Files/Models/package.mo b/src/main/Simulator/Simulator/Files/Models/package.mo
deleted file mode 100644
index d45a23e..0000000
--- a/src/main/Simulator/Simulator/Files/Models/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.Files;
-
-package Models
- extends Modelica.Icons.UtilitiesPackage;
-end Models;
diff --git a/src/main/Simulator/Simulator/Files/Models/package.order b/src/main/Simulator/Simulator/Files/Models/package.order
deleted file mode 100644
index e3b45ea..0000000
--- a/src/main/Simulator/Simulator/Files/Models/package.order
+++ /dev/null
@@ -1,3 +0,0 @@
-Flash
-gammaNRTL
-ReactionManager
diff --git a/src/main/Simulator/Simulator/Files/OtherFunctions/colBoolCalc.mo b/src/main/Simulator/Simulator/Files/OtherFunctions/colBoolCalc.mo
deleted file mode 100644
index 4dc352d..0000000
--- a/src/main/Simulator/Simulator/Files/OtherFunctions/colBoolCalc.mo
+++ /dev/null
@@ -1,13 +0,0 @@
-within Simulator.Files.OtherFunctions;
-
-function colBoolCalc
- extends Modelica.Icons.Function;
- //column boolean calculator
- input Integer noOfStages, noOfExCons, exConStages[noOfExCons];
- output Boolean bool[noOfStages];
-algorithm
- bool := fill(false, noOfStages);
- for i in 1:noOfExCons loop
- bool[exConStages[i]] := true;
- end for;
-end colBoolCalc;
diff --git a/src/main/Simulator/Simulator/Files/OtherFunctions/package.mo b/src/main/Simulator/Simulator/Files/OtherFunctions/package.mo
deleted file mode 100644
index 6cf5c45..0000000
--- a/src/main/Simulator/Simulator/Files/OtherFunctions/package.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files;
-
-package OtherFunctions
- extends Modelica.Icons.FunctionsPackage;
-
-end OtherFunctions;
diff --git a/src/main/Simulator/Simulator/Files/OtherFunctions/package.order b/src/main/Simulator/Simulator/Files/OtherFunctions/package.order
deleted file mode 100644
index 292facd..0000000
--- a/src/main/Simulator/Simulator/Files/OtherFunctions/package.order
+++ /dev/null
@@ -1 +0,0 @@
-colBoolCalc
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPNRTL.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPNRTL.mo
deleted file mode 100644
index a119c78..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPNRTL.mo
+++ /dev/null
@@ -1,44 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function BIPNRTL
-extends Modelica.Icons.Function;
-input Integer Nc;
-input String CAS[Nc];
-output Real BIP[Nc, Nc, 2];
-protected
-constant String Us = "_";
-String c_cc[Nc, Nc];
-String d_cc[Nc, Nc];
-constant String CAS_CAS[352] = {"67-56-1_56-23-5", "67-56-1_75-25-2", "67-66-3_67-56-1", "75-09-2_67-56-1", "67-56-1_75-12-7", "151-67-7_67-56-1", "75-01-4_67-56-1", "67-56-1_75-05-8", "67-56-1_107-06-2", "67-56-1_64-19-7", "107-31-3_67-56-1", "67-56-1_64-17-5", "67-56-1_67-68-5", "124-40-3_67-56-1", "67-64-1_67-56-1", "123-38-6_67-56-1", "75-56-9_67-56-1", "79-20-9_67-56-1", "67-56-1_79-09-4", "67-56-1_68-12-2", "67-56-1_71-23-8", "109-87-5_67-56-1", "67-56-1_110-02-1", "106-99-0_67-56-1", "67-56-1_96-33-3", "115-11-7_67-56-1", "67-56-1_78-93-3", "67-56-1_109-99-9", "67-56-1_123-91-1", "67-56-1_141-78-6", "67-56-1_126-33-0", "106-97-8_67-56-1", "67-56-1_71-36-3", "67-56-1_78-92-2", "60-29-7_67-56-1", "67-56-1_110-63-4", "67-56-1_110-86-1", "542-92-7_67-56-1", "78-79-5_67-56-1", "1574-41-0_67-56-1", "2004-70-8_67-56-1", "67-56-1_80-62-6", "513-35-9_67-56-1", "67-56-1_563-80-4", "67-56-1_110-89-4", "1634-04-4_67-56-1", "67-56-1_392-56-3", "67-56-1_108-90-7", "67-56-1_71-43-2", "67-56-1_62-53-3", "67-56-1_109-06-8", "67-56-1_108-99-6", "67-56-1_108-89-4", "67-56-1_110-83-8", "67-56-1_110-82-7", "592-41-6_67-56-1", "67-56-1_123-86-4", "67-56-1_110-54-3", "67-56-1_121-44-8", "67-56-1_108-88-3", "67-56-1_108-48-5", "67-56-1_592-76-7", "67-56-1_108-87-2", "67-56-1_142-82-5", "67-56-1_100-41-4", "67-56-1_108-38-3", "67-56-1_106-42-3", "67-56-1_111-66-0", "67-56-1_111-65-9", "67-56-1_540-84-1", "56-23-5_67-56-1", "67-66-3_64-17-5", "75-09-2_64-17-5", "64-17-5_127-18-4", "64-17-5_75-05-8", "64-17-5_107-06-2", "64-17-5_64-19-7", "64-17-5_107-21-1", "124-40-3_64-17-5", "67-64-1_64-17-5", "79-20-9_64-17-5", "64-17-5_67-63-0", "64-17-5_110-02-1", "108-05-4_64-17-5", "64-17-5_78-93-3", "109-99-9_64-17-5", "64-17-5_123-91-1", "141-78-6_64-17-5", "64-17-5_126-33-0", "64-17-5_78-92-2", "60-29-7_64-17-5", "64-17-5_78-83-1", "109-73-9_64-17-5", "64-17-5_110-86-1", "78-79-5_64-17-5", "64-17-5_80-62-6", "513-35-9_64-17-5", "64-17-5_563-80-4", "64-17-5_109-60-4", "78-78-4_64-17-5", "109-66-0_64-17-5", "64-17-5_123-51-3", "64-17-5_108-86-1", "64-17-5_108-90-7", "64-17-5_71-43-2", "64-17-5_62-53-3", "64-17-5_108-99-6", "64-17-5_110-82-7", "592-41-6_64-17-5", "64-17-5_108-93-0", "64-17-5_123-86-4", "110-54-3_64-17-5", "64-17-5_111-43-3", "64-17-5_121-44-8", "64-17-5_108-88-3", "64-17-5_100-66-3", "64-17-5_108-48-5", "64-17-5_628-63-7", "64-17-5_142-82-5", "64-17-5_100-41-4", "64-17-5_106-42-3", "64-17-5_111-65-9", "64-17-5_540-84-1", "64-17-5_544-76-3", "64-17-5_112-80-1", "56-23-5_71-23-8", "71-23-8_127-18-4", "79-01-6_71-23-8", "107-06-2_71-23-8", "71-23-8_64-19-7", "124-40-3_71-23-8", "71-23-8_79-09-4", "67-63-0_71-23-8", "71-23-8_109-86-4", "107-10-8_71-23-8", "71-23-8_79-41-4", "78-93-3_71-23-8", "109-99-9_71-23-8", "109-69-3_71-23-8", "71-23-8_78-83-1", "109-73-9_71-23-8", "71-23-8_110-86-1", "71-23-8_80-62-6", "71-23-8_109-60-4", "71-23-8_123-51-3", "392-56-3_71-23-8", "71-23-8_108-90-7", "71-43-2_71-23-8", "71-23-8_109-06-8", "71-23-8_108-99-6", "71-23-8_108-89-4", "110-82-7_71-23-8", "110-54-3_71-23-8", "71-23-8_142-84-7", "121-44-8_71-23-8", "71-23-8_107-46-0", "71-23-8_108-88-3", "71-23-8_108-48-5", "71-23-8_142-82-5", "71-23-8_100-41-4", "71-23-8_111-65-9", "71-23-8_124-18-5", "71-23-8_112-30-1", "67-56-1_7732-18-5", "67-56-1_67-66-3", "67-56-1_64-17-5", "67-56-1_67-64-1", "67-56-1_71-43-2", "67-56-1_110-82-7", "67-56-1_108-88-3", "67-56-1_142-82-5", "7732-18-5_67-64-1", "7732-18-5_78-93-3", "7732-18-5_108-95-2", "64-17-5_7732-18-5", "64-17-5_67-66-3", "64-17-5_67-64-1", "64-17-5_78-93-3", "64-17-5_71-43-2", "64-17-5_110-82-7", "64-17-5_108-88-3", "64-17-5_142-82-5", "64-17-5_106-42-3", "67-64-1_67-66-3", "67-64-1_71-43-2", "67-64-1_108-95-2", "67-64-1_110-82-7", "67-64-1_108-88-3", "78-93-3_71-43-2", "78-93-3_110-82-7", "78-93-3_108-88-3", "78-93-3_142-82-5", "71-43-2_67-66-3", "71-43-2_108-95-2", "71-43-2_108-88-3", "71-43-2_106-42-3", "108-88-3_67-66-3", "108-88-3_106-42-3", "108-87-2_108-95-2", "7732-18-5_79-34-5", "109-87-5_7732-18-5", "107-10-8_7732-18-5", "78-93-3_7732-18-5", "78-84-2_7732-18-5", "109-99-9_7732-18-5", "7732-18-5_123-91-1", "141-78-6_7732-18-5", "7732-18-5_126-33-0", "7732-18-5_127-19-5", "7732-18-5_110-91-8", "7732-18-5_71-36-3", "78-83-1_7732-18-5", "75-65-0_7732-18-5", "60-29-7_7732-18-5", "7732-18-5_110-63-4", "7732-18-5_513-85-9", "7732-18-5_111-46-6", "109-73-9_7732-18-5", "109-89-7_7732-18-5", "7732-18-5_98-01-1", "7732-18-5_110-86-1", "7732-18-5_120-94-5", "7732-18-5_123-51-3", "7732-18-5_75-85-4", "7732-18-5_108-95-2", "7732-18-5_62-53-3", "7732-18-5_109-06-8", "7732-18-5_108-99-6", "7732-18-5_108-89-4", "7732-18-5_100-63-0", "7732-18-5_108-94-1", "7732-18-5_141-79-7", "7732-18-5_108-93-0", "7732-18-5_123-86-4", "7732-18-5_123-42-2", "108-20-3_7732-18-5", "7732-18-5_111-27-3", "7732-18-5_626-93-7", "7732-18-5_111-76-2", "121-44-8_7732-18-5", "7732-18-5_100-51-6", "7732-18-5_108-48-5", "7732-18-5_123-92-2", "7732-18-5_98-86-2", "7732-18-5_91-22-5", "7732-18-5_98-82-8", "56-23-5_71-43-2", "71-43-2_75-25-2", "67-66-3_71-43-2", "74-88-4_71-43-2", "71-43-2_75-52-5", "75-15-0_71-43-2", "76-13-1_71-43-2", "71-43-2_127-18-4", "71-43-2_79-01-6", "71-43-2_76-01-7", "71-43-2_79-34-5", "71-55-6_71-43-2", "71-43-2_106-93-4", "71-43-2_107-06-2", "75-03-6_71-43-2", "71-43-2_123-39-7", "71-43-2_79-24-3", "71-43-2_67-68-5", "71-43-2_107-15-3", "71-43-2_68-12-2", "71-43-2_108-03-2", "71-43-2_79-46-9", "71-43-2_110-02-1", "109-73-9_71-43-2", "75-64-9_71-43-2", "109-89-7_71-43-2", "71-43-2_110-86-1", "71-43-2_392-56-3", "71-43-2_106-46-7", "71-43-2_108-86-1", "71-43-2_108-90-7", "71-43-2_462-06-6", "71-43-2_98-95-3", "71-43-2_62-53-3", "71-43-2_108-91-8", "71-43-2_121-44-8", "71-43-2_100-47-0", "71-43-2_108-88-3", "71-43-2_100-60-7", "71-43-2_100-42-5", "71-43-2_100-41-4", "71-43-2_108-38-3", "71-43-2_106-42-3", "71-43-2_91-66-7", "71-43-2_98-82-8", "71-43-2_103-65-1", "71-43-2_92-06-8", "56-23-5_108-88-3", "67-66-3_108-88-3", "75-15-0_108-88-3", "79-01-6_108-88-3", "75-05-8_108-88-3", "624-83-9_108-88-3", "107-06-2_108-88-3", "108-88-3_79-24-3", "108-88-3_67-68-5", "108-88-3_107-15-3", "107-12-0_108-88-3", "108-88-3_68-12-2", "110-02-1_108-88-3", "108-88-3_126-33-0", "109-89-7_108-88-3", "108-88-3_110-86-1", "392-56-3_108-88-3", "108-88-3_108-86-1", "108-88-3_108-90-7", "462-06-6_108-88-3", "108-88-3_98-95-3", "108-88-3_109-06-8", "108-88-3_108-99-6", "108-88-3_100-47-0", "108-88-3_100-41-4", "108-88-3_106-42-3", "107-13-1_100-42-5", "100-41-4_100-42-5", "100-42-5_103-65-1", "56-23-5_100-41-4", "75-05-8_100-41-4", "107-13-1_100-41-4", "109-89-7_100-41-4", "108-90-7_100-41-4", "100-41-4_98-95-3", "100-41-4_62-53-3", "100-41-4_98-82-8", "100-41-4_104-51-8", "56-23-5_108-38-3", "108-38-3_68-12-2", "110-86-1_108-38-3", "108-38-3_62-53-3", "106-42-3_108-38-3", "107-06-2_95-47-6", "107-15-3_95-47-6", "95-47-6_68-12-2", "56-23-5_106-42-3", "75-05-8_106-42-3", "107-06-2_106-42-3", "106-42-3_68-12-2", "392-56-3_106-42-3", "108-90-7_106-42-3", "106-42-3_62-53-3", "56-23-5_98-82-8", "103-65-1_98-95-3", "95-63-6_526-73-8", "104-51-8_98-95-3", "99-87-6_62-53-3", "91-57-6_90-12-0"};
-
-constant Real BIPdb[352, 3] = {{378.8254, 1430.7379, 0.2892}, {879.0968, 1063.6098, 0.6381}, {1414.2712, -141.8030, 0.2949}, {1560.0282, 441.3372, 0.6234}, {617.5847, -153.4695, 0.3003}, {9870.3530, -6982.8569, 0.187e-1}, {1789.7165, -34.9448, 0.2912}, {343.7042, 314.5879, 0.2981}, {348.6035, 1020.1431, 0.2921}, {16.6465, -217.1261, 0.3051}, {584.5720, 298.5567, 0.2962}, {-327.9991, 376.2667, 0.3057}, {-168.3182, -497.4171, 0.3079}, {-1018.1430, -54.3882, 0.3134}, {184.2662, 226.5580, 0.3009}, {1046.6524, -865.2660, 0.3084}, {924.8499, -61.1796, 0.2986}, {381.4559, 346.5360, 0.2965}, {-50.1450, -78.0859, 0.3056}, {-124.0904, 0.3428, 09.1633}, {24.9003, 9.5349, 0.3011}, {608.9115, 712.0226, 0.7259}, {-90.1051, 1217.1035, 0.2976}, {1353.0599, 610.8292, 0.4670}, {676.8360, 169.9831, 0.2958}, {1333.6000, 556.3608, 0.3697}, {307.4271, 217.9098, 0.3003}, {169.4153, 383.1579, 0.3002}, {607.4050, 76.7683, 0.2985}, {345.5416, 420.7355, 0.2962}, {1069.2756, 906.5741, 0.7182}, {1440.1498, 1053.7716, 0.4647}, {793.8173, -486.3299, 0.2483}, {-308.5610, 285.4420, 0.3036}, {705.9989, 211.1580, 0.2953}, {446.9520, -450.5858, 0.3152}, {-45.0888, 84.1956, 0.3027}, {1541.9324, 736.0352, 0.4515}, {1445.6425, 543.5270, 0.4260}, {1545.3339, 799.1289, 0.4753}, {1514.2761, 782.1729, 0.4657}, {590.2790, 380.8401, 0.2963}, {1355.6853, 660.9164, 0.3381}, {642.3761, -6.2901, 0.2987}, {590.8820, -1169.7242, 0.1387}, {851.4954, 465.8360, 0.8178}, {930.5910, 1244.1303, 0.4701}, {857.0852, 1348.0903, 0.4707}, {721.6136, 1158.5131, 0.4694}, {407.7440, 117.2473, 0.3008}, {226.0820, -385.6823, 0.3095}, {-163.4505, -86.1482, 0.3075}, {304.2242, -452.3483, 0.3053}, {1178.5792, 1618.9792, 0.4568}, {1315.1631, 1497.2135, 0.4222}, {1222.6032, 1145.1085, 0.4402}, {328.2162, 453.0017, 0.2961}, {1619.3829, 1622.2911, 0.4365}, {-476.8503, 1126.1143, 0.2874}, {939.7275, 1090.9297, 0.4643}, {-273.3320, 59.6250, 0.3051}, {1313.5497, 1143.9059, 0.4163}, {1444.5850, 1719.4586, 0.4397}, {1500.2043, 1519.3346, 0.4277}, {1080.1231, 1038.1572, 0.4251}, {991.1609, 822.1357, 0.2910}, {974.6545, 851.1070, 0.2921}, {1456.3583, 1147.8132, 0.4396}, {1681.6918, 1511.4353, 0.4381}, {1447.0909, 1386.4703, 0.4313}, {1339.9000, 488.6648, 0.4622}, {1438.3602, -327.5518, 0.3023}, {1332.8036, -153.0761, 0.3057}, {685.8542, 807.5935, 0.2900}, {529.7267, 338.1632, 0.2964}, {333.3502, 939.3870, 0.2926}, {-34.1971, -190.7763, 0.3050}, {1644.0484, -203.7691, 0.3704}, {-1224.5739, 370.7683, 0.3105}, {36.2965, 434.8228, 0.2987}, {188.3139, 158.0118, 0.3013}, {690.1392, -529.3472, 0.3125}, {222.3096, 1057.7115, 0.2918}, {505.1637, 320.7403, 0.2959}, {64.4957, 463.1931, 0.3010}, {661.3708, -200.6915, 0.3015}, {505.5637, 111.8389, 0.2988}, {305.6041, 330.5105, 0.2988}, {1195.1601, 705.0897, 0.5676}, {-559.8205, 802.5411, 0.2721}, {763.6707, 71.1984, 0.2946}, {53.1671, 82.0442, 0.3023}, {-612.3956, -5.7834, 0.3062}, {163.6655, -169.9802, 0.3017}, {1402.5377, 653.4866, 0.5056}, {456.9676, 386.5893, 0.2963}, {1412.7516, 674.7726, 0.4569}, {-54.0946, 639.6806, 0.3009}, {760.4933, 129.3970, 0.2950}, {1610.2811, 935.1426, 0.4960}, {1183.3812, 412.7546, 0.2886}, {51.1705, -42.8613, 0.3009}, {820.8023, 1349.6853, 0.4995}, {645.7829, 1383.7110, 0.5229}, {516.1410, 1065.9086, 0.4774}, {1823.3542, -523.0474, 0.3005}, {315.6078, -339.0825, 0.3056}, {876.7933, 1390.4162, 0.4485}, {1399.1806, 949.7239, 0.5011}, {1719.8644, -833.8389, 0.2920}, {841.9935, -55.3231, 0.2958}, {1218.1065, 575.2985, 0.2882}, {442.6124, 634.1687, 0.2945}, {-248.0407, 697.9004, 0.2996}, {713.5653, 1147.8607, 0.5292}, {3458.4788, -1438.8884, 0.1704}, {-48.2159, -19.6212, 0.3016}, {552.3897, 266.1248, 0.2964}, {1137.2650, 1453.5947, 0.4786}, {801.7191, 1006.8831, 0.4962}, {768.3633, 760.0800, 0.2914}, {1206.8097, 1385.3721, 0.4717}, {1091.0432, 1500.6711, 0.4738}, {2359.4082, 1509.2033, 0.4448}, {975.6816, -343.5446, 0.2988}, {1537.6384, 537.2439, 0.6310}, {608.3777, 646.0412, 0.2913}, {926.6139, 196.0696, 0.3007}, {636.9927, 364.0596, 0.2956}, {256.8999, -327.5173, 0.3044}, {81.4870, -703.3731, 0.2697}, {-189.7856, -32.4657, 0.3070}, {167.2501, -175.2928, 0.3057}, {-406.3767, 830.8897, 0.3013}, {-602.9687, -45.3543, 0.3061}, {276.6356, -423.9162, 0.3025}, {148.8670, 213.3829, 0.3016}, {562.4611, -302.2498, 0.3003}, {1201.9959, 506.8982, 0.5468}, {-2.8139, -13.8657, 0.3034}, {-698.9510, 34.7593, 0.3001}, {374.8691, -412.2861, 0.3110}, {504.0900, 125.6451, 0.2993}, {340.0210, 111.7437, 0.3005}, {12.2207, -31.8303, 0.3033}, {922.5224, 528.5894, 0.2937}, {456.2867, 538.5114, 0.2946}, {874.2419, 285.7774, 0.2899}, {529.6444, -608.3163, 0.3054}, {479.7439, -540.4699, 0.3045}, {523.8291, -603.0924, 0.3084}, {1707.7883, 353.2705, 0.5914}, {1092.1470, 480.6740, 0.2940}, {617.3558, -459.5845, 0.2892}, {991.6157, -435.2018, 0.3067}, {1615.0711, -498.3638, 0.1028}, {25.6220, 922.0009, 0.175e-1}, {472.9353, -545.1853, 0.2960}, {1198.9720, 1377.2975, 0.5193}, {563.6173, 475.5966, 0.2921}, {1109.3040, 334.2112, 0.2907}, {945.3159, 520.2926, 0.2895}, {1068.0694, -588.3325, 0.2958}, {-189.0469, 792.8020, 0.2999}, {-105.4657, 1335.3416, 0.2873}, {67.2902, -70.5092, 0.3009}, {296.2432, 118.0803, 0.3003}, {761.7553, 1094.8556, 0.4893}, {1313.9316, 1862.4639, 0.4410}, {884.0230, 1008.0037, 0.4064}, {1566.4390, 1598.3126, 0.4408}, {1324.9767, 814.1435, 0.5663}, {653.9718, 1883.6007, 0.3607}, {2419.3354, 1844.3794, 0.6308}, {-57.9601, 1241.7396, 0.2937}, {-285.3881, 1289.2198, 0.2909}, {375.3497, 45.3706, 0.3006}, {437.1923, 33.6363, 0.3022}, {255.3591, 1047.1959, 0.2970}, {761.7739, 1393.7993, 0.4376}, {542.4128, 772.4394, 0.2937}, {1114.2947, 1305.9242, 0.4758}, {1020.8405, 889.3461, 0.6180}, {-651.1909, 301.8389, 0.3054}, {-396.4935, 886.5703, 0.2971}, {-754.9547, -280.3830, 0.3086}, {429.8705, 727.6490, 0.2925}, {-247.9492, 727.5102, 0.2950}, {-644.8573, 898.3999, 0.1563}, {605.7381, 235.4493, 0.2963}, {503.0737, -181.5533, 0.2996}, {681.5104, 931.4616, 0.9809}, {-227.3671, -86.1025, 0.3062}, {373.4202, 318.1885, 0.2986}, {60.1980, -51.0865, 0.3019}, {-50.2635, 14.2180, 0.3056}, {-583.6169, 629.2214, 0.2974}, {226.4602, -241.7457, 0.2874}, {2587.8730, -439.4469, 0.2836}, {2435.8879, 102.7658, 0.972e-1}, {1608.0700, 1818.2947, 0.4898}, {-455.9152, 1301.6396, 0.2981}, {674.4614, 1809.8868, 0.3536}, {1166.8333, 1090.0262, 0.2862}, {915.7450, 1725.0977, 0.4522}, {715.9592, 548.8965, 0.2920}, {1285.9880, 1606.0820, 0.4393}, {1160.1372, 467.9008, 0.5573}, {75.5965, 328.8977, 0.3009}, {-803.1654, 1732.7268, 0.2954}, {2633.6951, 504.0381, 0.4447}, {639.8173, 2491.0163, 0.4385}, {471.7718, 2030.8877, 0.5155}, {1544.0251, 2086.4776, 0.3792}, {1310.8994, 1920.1402, 0.5778}, {2531.7402, -758.0034, 0.3020}, {1186.7304, -99.9000, 0.2974}, {160.3429, 2104.4002, 0.6379}, {-169.1652, 1372.3121, 0.2932}, {2602.6374, 436.9686, 0.3950}, {1835.0881, 419.8087, 0.6802}, {-239.6197, 573.8298, 0.3055}, {3633.5330, -494.8389, 0.2816}, {19947.2334, -15910.4563, 0.56e-2}, {2385.3714, 282.6970, 0.4942}, {11965.5274, -7391.5468, 0.235e-1}, {1979.5492, 197.0009, 0.6371}, {2559.3708, 418.7524, 0.5361}, {2325.9141, 162.3029, 0.5622}, {1473.9606, -66.4169, 0.811e-1}, {2983.8991, -171.6660, 0.2673}, {2121.4973, 101.3068, 0.1504}, {2232.9727, 641.3504, 0.4399}, {3805.0038, 918.2419, 0.2951}, {1323.2731, 845.9826, 0.6780}, {2665.1471, 4202.0746, 0.5409}, {2991.1845, -464.8054, 0.1563}, {1880.1699, 489.1746, 0.2938}, {1914.0077, 220.0262, 0.4776}, {-5096.5280, 28437.1380, 0.381e-1}, {4689.8409, 301.3998, 0.3168}, {2222.5960, 831.9908, 0.5706}, {1874.8967, 856.9565, 0.3734}, {725.1364, 858.8268, 00.}, {11675.1604, -3887.1802, 0.902e-1}, {2986.1161, -84.8485, 0.860e-1}, {-4.9421, 84.0212, 0.3055}, {893.4167, -566.9011, 0.2551}, {176.8791, -288.2136, 0.3061}, {294.4424, -185.2944, 0.3013}, {273.5119, 524.9030, 0.2961}, {161.2943, 431.5524, 0.3008}, {-53.1528, 551.9630, 0.3013}, {-94.1122, 288.6566, 0.3023}, {140.5075, -127.4605, 0.3064}, {-225.8274, 197.7460, 0.3030}, {-73.7504, -250.7743, 0.3055}, {-73.4845, 97.5682, 0.3038}, {-100.9240, 300.0048, 0.3046}, {58.8289, -39.5526, 0.3035}, {394.5891, 298.1172, 0.3004}, {1512.9737, 639.2332, 0.5231}, {527.2886, -57.1531, 0.3004}, {810.5440, 408.5646, 0.6691}, {490.0693, 560.0207, 0.2957}, {736.7867, -251.4046, 0.3074}, {-157.3069, 595.6615, 0.3012}, {1088.4773, -446.4137, 0.3068}, {-347.2708, 503.5971, 0.3045}, {65.9717, 67.1231, 0.3024}, {-344.6666, 757.9930, 0.3067}, {52.3512, -42.2029, 0.2813}, {541.0855, -319.8327, 0.2795}, {1085.4557, -715.7662, 0.2989}, {1441.9721, -865.5699, 0.2830}, {1538.3464, -819.5924, 0.3214}, {700.4097, -450.6274, 0.3251}, {277.6641, -292.2391, 0.3040}, {1311.3264, -523.3212, 0.3110}, {776.8671, -178.3464, 0.2990}, {717.4228, -684.6315, 0.2908}, {130.6061, -27.3294, 0.3037}, {1390.4880, -636.1853, 0.2851}, {111.1157, -121.2437, 0.3033}, {52.3967, 94.0417, 0.3020}, {-643.5999, 970.4264, 0.3110}, {-70.8372, 57.0902, 0.3034}, {-454.1872, 615.2806, 0.2878}, {-50.2635, 14.2180, 0.3056}, {85.2080, 104.9548, 0.3019}, {1915.7178, -810.5032, 0.3693}, {-192.1433, 141.5054, 0.3032}, {64.1947, 78.6570, 0.3022}, {-69.6810, 95.3839, 0.3041}, {629.2214, -583.6169, 0.2974}, {-591.6879, 1052.8580, 0.2439}, {185.3799, -250.7688, 0.3062}, {790.7250, 724.0955, 0.9353}, {-167.8974, 104.6027, 0.3029}, {-217.7768, 251.5704, 0.3097}, {537.4434, 21.7626, 0.3011}, {1063.2839, 192.0041, 0.2898}, {432.7908, 592.5054, 0.2969}, {-95.6685, 717.0741, 0.3009}, {-2260.2463, 3666.1775, 0.711e-1}, {510.1471, -197.5696, 0.3015}, {5175.2573, 224.8869, 0.4600}, {91.4853, -153.9388, 05.1012}, {264.6428, -60.3423, 0.2992}, {668.6525, -666.7128, 0.2414}, {-47.4722, 15.0630, 0.3049}, {-40.5158, 15.0972, 0.3037}, {386.4643, -304.6112, 0.3083}, {806.4313, -288.9774, 0.2969}, {396.5492, -97.1224, 0.3028}, {-490.8706, 1036.9557, 0.2963}, {-676.6725, 1239.9195, 0.3000}, {663.0837, -482.5109, 0.3005}, {226.4602, -241.7457, 0.2874}, {598.0263, -130.4323, 0.3023}, {-539.7919, 813.9959, 0.3466}, {649.8687, -453.4673, 0.3067}, {-172.3762, 122.4657, 0.3034}, {1102.5396, 5.3234, 0.2980}, {1304.6073, -338.2481, 0.2994}, {928.9662, -553.9006, 0.3457}, {357.7079, -307.8057, 0.3076}, {519.4154, -64.0219, 0.3003}, {243.6463, 384.0030, 0.2989}, {26.2560, -27.6358, 0.3043}, {-789.9294, 957.1492, 0.3026}, {-232.4578, 163.8924, 0.3047}, {308.9034, 548.6670, 0.2960}, {-78.8985, 351.0029, 0.3009}, {-259.4169, 1034.4099, 0.2992}, {282.0248, -254.9358, 0.3085}, {718.2538, -479.1971, 0.2870}, {1357.7269, -110.2727, 0.1967}, {559.7795, 332.8093, 0.2947}, {-192.9687, 121.7193, 0.3044}, {1413.0042, -210.0314, 0.2938}, {848.1184, -557.9036, 0.2733}, {153.1239, 722.4999, 0.2942}, {1004.5491, -949.1003, 0.2906}, {-395.6312, 359.7555, 0.3055}, {311.9792, 408.2084, 0.2972}, {-106.8166, 13.4903, 0.3033}, {329.7212, 143.3943, 0.3007}, {878.2759, -655.9008, 0.3261}, {370.6529, 140.0817, 0.3003}, {-118.3505, 885.1196, 0.2950}, {-615.6730, 811.3338, 0.3353}};
-
-algorithm
-for i in 1:Nc loop
- for j in 1:Nc loop
- for k in 1:2 loop
- BIP[i, j, k] := 0;
- end for;
- end for;
-end for;
-for i in 1:Nc loop
- for j in 1:Nc loop
- c_cc[i, j] := CAS[i] + Us + CAS[j];
- d_cc[i, j] := CAS[j] + Us + CAS[i];
- for k in 1:352 loop
- if c_cc[i, j] == CAS_CAS[k] then
- BIP[i, j, 1] := BIPdb[k, 1];
- BIP[j, i, 1] := BIPdb[k, 2];
- BIP[i, j, 2] := BIPdb[k, 3];
- BIP[j, i, 2] := BIPdb[k, 3];
- end if;
- if d_cc[i, j] == CAS_CAS[k] then
- BIP[j, i, 1] := BIPdb[k, 1];
- BIP[i, j, 1] := BIPdb[k, 2];
- BIP[i, j, 2] := BIPdb[k, 3];
- BIP[j, i, 2] := BIPdb[k, 3];
- end if;
- end for;
- end for;
-end for;
-end BIPNRTL;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPPR.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPPR.mo
deleted file mode 100644
index 8122a78..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPPR.mo
+++ /dev/null
@@ -1,27 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function BIPPR
- extends Modelica.Icons.Function;
- input Integer Nc;
- input String C[Nc];
- output Real Kij_cc[Nc, Nc];
- protected
- String Name;
- String Namerev;
- constant String C1_C2[179] = {"Heliumfour_Carbonmonoxide", "Hydrogen_Nitrogen", "Hydrogen_Carbonmonoxide", "Hydrogen_Methane", "Hydrogen_Ethylene", "Hydrogen_Ethane", "Hydrogen_Carbondioxide", "Hydrogen_Propylene", "Hydrogen_Propane", "Hydrogen_Nbutane", "Hydrogen_Nhexane", "Hydrogen_Nheptane", "Hydrogen_Toluene", "Hydrogen_Quinoline", "Hydrogen_Bicyclohexyl", "Hydrogen_Onemethylnaphthalene", "Nitrogen_Carbonmonoxide", "Nitrogen_Argon", "Nitrogen_Oxygen", "Nitrogen_Methane", "Nitrogen_Ethylene", "Nitrogen_Ethane", "Nitrogen_Nitrousoxide", "Nitrogen_Carbondioxide", "Nitrogen_Hydrogensulfide", "Nitrogen_Propylene", "Nitrogen_Propane", "Nitrogen_Ammonia", "Nitrogen_Dichlorodiflouromethane", "Nitrogen_Isobutane", "Nitrogen_Sulfurdioxide", "Nitrogen_Nbutane", "Nitrogen_Isoc5", "Nitrogen_Npentane", "Nitrogen_Methanol", "Nitrogen_Nhexane", "Nitrogen_Benzene", "Nitrogen_Nheptane", "Nitrogen_Noctane", "Nitrogen_Ndecane", "Carbonmonoxide_Methane", "Carbonmonoxide_Ethane", "Carbonmonoxide_Hydrogensulfide", "Carbonmonoxide_Propane", "Argon_Oxygen", "Argon_Methane", "Argon_Ammonia", "Oxygen_Krypton", "Oxygen_Nitrousoxide", "Methane_Ethylene", "Methane_Ethane", "Methane_Nitrousoxide", "Methane_Carbondioxide", "Methane_Carbonylsulfide", "Methane_Propylene", "Methane_Propane", "Methane_Isobutane", "Methane_Sulfurdioxide", "Methane_Nbutane", "Methane_Isoc5", "Methane_Npentane", "Methane_Nhexane", "Methane_Benzene", "Methane_Cyclohexane", "Methane_Nheptane", "Methane_Toluene", "Methane_Noctane", "Methane_Mxylene", "Methane_Nnonane", "Methane_Ndecane", "Methane_Mcresol", "Methane_Tetralin", "Methane_Onemethylnaphthalene", "Methane_Diphenylmethane", "Ethylene_Ethane", "Ethylene_Acetylene", "Ethylene_Carbondioxide", "Ethylene_Nbutane", "Ethylene_Benzene", "Ethylene_Nheptane", "Ethylene_Ndecane", "Carbondioxide_Ethane", "Ethane_Hydrogensulfide", "Ethane_Propylene", "Ethane_Propane", "Ethane_Isobutane", "Ethane_Nbutane", "Ethane_Ethylether", "Ethane_Npentane", "Ethane_Acetone", "Ethane_Methylacetate", "Ethane_Methanol", "Ethane_Nhexane", "Ethane_Benzene", "Ethane_Cyclohexane", "Ethane_Nheptane", "Ethane_Noctane", "Ethane_Ndecane", "Carbondioxide_Nitrousoxidedioxide", "Acetylene_Propylene", "Trifluoromethane_Triflourochloromethane", "Trifluorochloromethane_Dichlorodifluoromethane", "Carbondioxide_Hydrogensulfide", "Carbondioxide_Difluoromethane", "Carbondioxide_Propylene", "Carbondioxide_Propane", "Carbondioxide_Isobutane", "Carbondioxide_Onebutene", "Carbondioxide_Nbutane", "Carbondioxide_Isoc5", "Carbondioxide_Ethylether", "Carbondioxide_Npentane", "Carbondioxide_Methylacetate", "Carbondioxide_Methanol", "Carbondioxide_Nhexane", "Carbondioxide_Benzene", "Carbondioxide_Cyclohexane", "Carbondioxide_Nheptane", "Carbondioxide_Water", "Carbondioxide_Toluene", "Carbondioxide_Ndecane", "Carbondioxide_Nbutylbenzene", "Hydrogensulfide_Propane", "Hydrogensulfide_Isobutane", "Hydrogensulfide_Npentane", "Hydrogensulfide_Water", "Hydrogensulfide_Ndecane", "Propylene_Propane", "Propylene_Isobutane", "Propylene_Onecfour", "Propane_Isobutane", "Propane_Nbutane", "Propane_Isopentane", "Propane_Npentane", "Propane_Nhexane", "Propane_Ethanol", "Propane_Benzene", "Propane_Nheptane", "Propane_Noctane", "Propane_Ndecane", "Pentaflourohloroethane_Difluorochloromethane", "Difluorochloromethane_Dichlorodifluoromethane", "Ammonia_Water", "Ammonia_Watert=two7three.one5k", "Isobutane_Nbutane", "Sulfurdioxide_Benzene", "Onebutene_One", "Onebutene_Nbutane", "One_Threebutadiene", "Nbutane_Npentane", "Nbutane_Nhexane", "Nbutane_Nheptane", "Nbutane_Noctane", "Nbutane_Ndecane", "Npentane_Benzene", "Npentane_Cyclohexane", "Npentane_Nheptane", "Npentane_Noctane", "Two_Twodimethylbutane", "Two_Threedimethylbutane", "Twomethylpentane_Onepentanol", "Onepentanol_Threemethylpentane", "Methanol_Water", "Nhexane_Benzene", "Nhexane_Cyclohexane", "Nhexane_Twopropanol", "Nhexane_Nheptane", "Nhexane_Isopentanol", "Nhexane_Onepentanol", "Cyclohexane_Benzene", "Benzene_Nheptane", "Benzene_Isooctane", "Benzene_Noctane", "Cyclohexene_Cyclohexane", "Cyclohexane_One", "Cyclohexane_Cyclohexanone", "One_Twodichloroethane", "Nheptane_Isooctane", "Nheptane_Twopentanone"};
- constant Real BIPdb[size(C1_C2, 1)] = {1, 7.1100E-02, 9.1900E-02, 2.6300E-02, 6.3300E-02, -7.5600E-02, 0, 0, 0, 0, -3.00E-02, 0, -1, -1, -1, 0, 3.300E-02, -2.6000E-03, -1.5900E-02, 2.8900E-02, 8.5600E-02, 3.4400E-02, 4.4000E-03, -2.2200E-02, 0, 9.00E-02, 8.7800E-02, 0, 1.0700E-02, 0, 8.00E-02, 7.1100E-02, 9.2200E-02, 0, 0, 0, 0, 0, 0, 0, 3.00E-02, -2.2600E-02, 5.4400E-02, 2.5900E-02, 1.0700E-02, 2.300E-02, 0, 2.5600E-02, 4.7800E-02, 3.7800E-02, -3.3000E-03, 2.5600E-02, 7.9300E-02, 2.8900E-02, 3.300E-02, 1.1900E-02, 2.5600E-02, 0, 2.4400E-02, -5.6000E-03, 2.300E-02, 4.00E-02, 8.0700E-02, 3.8900E-02, 4.0100E-02, 9.700E-02, 4.9600E-02, 8.4400E-02, 4.7400E-02, 4.8900E-02, 0, 0, 0, 8.7400E-02, 1.1900E-02, 6.5200E-02, 5.7800E-02, 9.2200E-02, 3.1100E-02, 1.4400E-02, 2.5300E-02, 0, 8.2200E-02, 8.9000E-03, 1.1000E-03, -6.7000E-03, 8.9000E-03, 1.8100E-02, 7.8000E-03, 0, 0, 2.700E-02, -4.00E-02, 3.2200E-02, 1.7800E-02, 7.4000E-03, 1.8500E-02, 1.4400E-02, 4.8000E-03, 0, 0, 3.3700E-02, 9.7800E-02, 1.700E-02, 9.3300E-02, 0, 0, 5.9300E-02, 0, 0, 4.700E-02, -1.00E-02, -4.9300E-02, 2.200E-02, 0, 7.7400E-02, 0, 0, 6.3000E-03, 0, 0, 0, 6.00E-02, 4.7400E-02, 6.300E-02, 3.9400E-02, 3.3300E-02, 9.6000E-03, -1.4400E-02, 4.0000E-04, -7.8000E-03, 3.3000E-03, 1.1100E-02, 2.6700E-02, 7.0000E-04, 3.1500E-02, 2.3300E-02, 5.6000E-03, 0, 0, 8.7400E-02, 5.2200E-02, 0, 0, -4.0000E-04, 1.5000E-03, 2.2000E-03, 7.0000E-04, 1.4100E-02, 1.7400E-02, -5.6000E-03, 3.3000E-03, 7.4000E-03, 7.8000E-03, 1.8900E-02, 3.7000E-03, 7.4000E-03, 0, 4.5200E-02, 4.6700E-02, 4.6700E-02, 4.7800E-02, -7.7800E-02, 8.9000E-03, -3.000E-03, 8.4400E-02, -7.8000E-03, 4.8500E-02, 4.5600E-02, 1.2600E-02, 1.1000E-03, 4.0000E-04, 3.000E-03, 1.1000E-03, 7.300E-02, 6.5900E-02, 4.300E-02, 4.0000E-04, 6.9300E-02};
- algorithm
- for i in 1:Nc loop
- for j in 1:Nc loop
- Name := C[i] + "_" + C[j];
- Namerev := C[j] + "_" + C[i];
- if i == j then
- Kij_cc[i, j] := 0;
- elseif FindString(C1_C2, Name) == (-1) then
- Kij_cc[i, j] := BIPdb[index(C1_C2, Namerev)];
- else
- Kij_cc[i, j] := BIPdb[index(C1_C2, Name)];
- end if;
- end for;
- end for;
- end BIPPR;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPUNIQUAC.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPUNIQUAC.mo
deleted file mode 100644
index e3cf2d0..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/BIPUNIQUAC.mo
+++ /dev/null
@@ -1,37 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function BIPUNIQUAC
- extends Modelica.Icons.Function;
- input Integer Nc;
- input String C[Nc];
- output Real BIP[Nc, Nc];
- constant String Us = "_";
- String c_cc[Nc, Nc];
- String d_cc[Nc, Nc];
- constant String C1_C2[440] = {"Butane_Methanol", "Pentane_Ethanol", "Twomethylbutane_Ethanol", "Hexane_Ethanol", "Hexane_Onepropanol", "Cyclohexane_Onepropanol", "Methylcyclohexane_Phenol", "Isobutylene_Methanol", "Twomethyltwobutene_Methanol", "Twomethyltwobutene_Ethanol", "Onehexene_Methanol", "Onehexene_Ethanol", "Onethreebutadiene_Methanol", "Onethreepentadiene_Methanol", "Transonethreepentadiene_Methanol", "Isoprene_Methanol", "Isoprene_Ethanol", "Cyclopentadiene_Methanol", "Benzene_Chloroform", "Benzene_Phenol", "Benzene_Toluene", "Benzene_Pxylene", "Benzene_Onepropanol", "Toluene_Chloroform", "Toluene_Pxylene", "Acetaldehyde_Water", "Propionicaldehyde_Water", "Propionicaldehyde_Methanol", "Isobutyraldehyde_Water", "Acetone_Chloroform", "Acetone_Benzene", "Acetone_Phenol", "Acetone_Cyclohexane", "Acetone_Toluene", "Acetone_Ethanol", "Twobutanone_Benzene", "Twobutanone_Cyclohexane", "Twobutanone_Toluene", "Twobutanone_Nheptane", "Twobutanone_Water", "Twobutanone_Onepropanol", "Methanol_Water", "Methanol_Chloroform", "Methanol_Ethanol", "Methanol_Acetone", "Methanol_Benzene", "Methanol_Cyclohexane", "Methanol_Toluene", "Methanol_Nheptane", "Methanol_Tetrachloromethane", "Methanol_Tribromomethane", "Methanol_Acetonitrile", "Methanol_Onetwodichloroethane", "Methanol_Aceticacid", "Methanol_Dimethylsulfoxide", "Methanol_Propionicacid", "Methanol_Nndimethylformamide", "Methanol_Propanol", "Methanol_Thiophene", "Methanol_Methylacrylate", "Methanol_Twobutanone", "Methanol_Tetrahyrofuran", "Methanol_Onefourdioxane", "Methanol_Ethylacetate", "Methanol_Sulfolane", "Methanol_Onebutanol", "Methanol_Twobutanol", "Methanol_Tertbutanol", "Methanol_Onefourbutanediol", "Methanol_Pyridine", "Methanol_Methylmethacrylate", "Methanol_Methylisopropylketone", "Methanol_Threepentanone", "Methanol_Piperidine", "Methanol_Hexafluorobenzene", "Methanol_Chlorobenzene", "Methanol_Aniline", "Methanol_Twomethylpyridine", "Methanol_Threemethylpyridine", "Methanol_Fourmethylpyridine", "Methanol_Cyclohexene", "Methanol_Nbutylacetate", "Methanol_Hexane", "Methanol_Triethylamine", "Methanol_Twomethylphenol", "Methanol_Two6dimethylpyridine", "Methanol_Oneheptane", "Methanol_Methylcyclohexane", "Methanol_Heptane", "Methanol_Ethylbenzene", "Methanol_Mxylene", "Methanol_Pxylene", "Methanol_Oneoctene", "Methanol_Octane", "Methanol_Twotwofourtrimethylpentane", "Methanol_Onedodecanol", "Methanol_Oleic acid", "Ethanol_Water", "Ethanol_Chloroform", "Ethanol_Acetone", "Ethanol_Twobutanone", "Ethanol_Benzene", "Ethanol_Cyclohexane", "Ethanol_Toluene", "Ethanol_Nheptane", "Ethanol_Pxylene", "Ethanol_Tetrachloroethylene", "Ethanol_Acetonitrile", "Ethanol_Onetwodichloroethane", "Ethanol_Acetic acid", "Ethanol_Onetwoethanediol", "Ethanol_Twopropanol", "Ethanol_Onetwopropanediol", "Ethanol_Thiophene", "Ethanol_Onefourdioxane", "Ethanol_Sulfolane", "Ethanol_Morpholine", "Ethanol_Twobutanol", "Ethanol_Twomethylonepropanol", "Ethanol_Pyridine", "Ethanol_Methylmethacrylate", "Ethanol_Methylisopropyl", "Ethanol_Propylacetate", "Ethanol_Threemethylonebutanol", "Ethanol_Bromobenzene", "Ethanol_Chlorobezene", "Ethanol_Aniline", "Ethanol_Twomethylpyridine", "Ethanol_Threemethylpyridine", "Ethanol_Cyclohexanol", "Ethanol_Butylacetate", "Ethanol_Dipropylether", "Ethanol_Triethylamine", "Ethanol_Anisole", "Ethanol_Two6dimethylpyridine", "Ethanol_Pentylacetate", "Ethanol_Heptane", "Ethanol_Ethylbezene", "Ethanol_Octane", "Ethanol_Twotwofourtrimethylpentane", "Ethanol_Hexadecane", "Ethanol_Oleicacid", "Onepropanol_Water", "Onepropanol_Tetrachloroethylene", "Onepropanol_Aceticacid", "Onepropanol_Propionicacid", "Onepropanol_Twomethoxyethanol", "Propylamine_Onepropanol", "Onepropanol_Methacrylicacid", "Onepropanol_Twomethylonepropanol", "Onepropanol_Pyridine", "Onepropanol_Methylmethacrylate", "Onepropnaol_Propylacetate", "Onepropanol_Threemethylbutanol", "Onepropnaol_Chlorobenzene", "Onepropanol_Twomethylpyridine", "Onepropanol_Threemethylpyridine", "Onepropanol_Fourmethylpyridine", "Onepropanol_Propylpropionate", "Onepropanol_Dipropylamine", "Onepropanol_Hexamethyldisiloxane", "Onepropanol_Toluene", "Onepropnaol_Two6dimethylpyridine", "Onepropanol_Heptane", "Onepropanol_Pxylene", "Onepropanol_Octane", "Onepropanol_Decane", "Onepropanol_Onedecanol", "Twopropanol_Water", "Twopropanol_Onepropanol", "Isobutanol_Water", "Tertbutanol_Water", "Allylalcohol_Water", "Methylformate_Methanol", "Methylacetate_Water", "Methylacetate_Methanol", "Methylacetate_Ethanol", "Ethylacetate_Water", "Ethylacetate_Ethanol", "Vinylacetate_Ethanol", "Diethylether_Water", "Diethylether_Methanol", "Diethylether_Ethanol", "Diisopropylether_Water", "Methyltertbutylether_Methanol", "Dimethoxymethane_Water", "Dimethoxymethane_Methanol", "Ethyleneoxide_Water", "Propyleneoxide_Methanol", "Tetrahydrofuran_Water", "Tetrahydrofuran_Ethanol", "Tetrahydrofuran_Onepropanol", "Tetrachloromethane_Methanol", "Tertachloromethane_Onepropanol", "Vinylcloride_Methanol", "Dichloromethane_Methanol", "Dichloromethane_Ethanol", "Chloroform_Methanol", "Chloroform_Ethanol", "Onetwodichloroethane_Onepropanol", "Trichloroethylene_Onepropanol", "Threechloroonepropene_Water", "Butylchloride_Onepropanol", "Dimethylamine_Water", "Dimethylamine_Methanol", "Dimethylamine_Ethanol", "Dimethylamine_Onepropanol", "Ethylamine_Water", "Triethylamine_Water", "Triethylamine_Onepropanol", "Diethylamine_Water", "Diethylamine_Ethanol", "Propylamine_Water", "Nbutylamine_Water", "Butylamine_Ethanol", "Butylamine_Onepropanol", "Isopropylamine_Water", "Acetonitrile_Water", "Propionitrile_Water", "Acrylonitrile_Water", "Hexafluorobenzene_Onepropnaol", "Water_Acetone", "Water_Twobutanone", "Water_Phenol", "Water_Aceticacid", "Water_Nmethylformamide", "Water_Dimethylsulfoxide", "Water_Ethylenediamine", "Water_Acrylicacid", "Water_Propionicacid", "Water_Onethreefivetrioxane", "Water_Nndimethylformamide", "Water_Onefourdioxane", "Water_Sulfolane", "Water_Nndimethylacetamide", "Water_Morpholine", "Water_Nbutanol", "Water_Onefourbutanediol", "Water_Twothreebutanediol", "Water_Diethylenegylcol", "Water_Furfural", "Water_Pyridine", "Water_Nmethylpyrrolidone", "Water_Threemethylbutanol", "Water_Twomethyltwobutanol", "Water_Aniline", "Water_Twomethylpyridine", "Water_Threemethylpyridine", "Water_Fourmethylpyridine", "Water_Phenylhydrazine", "Water_Cyclohexanone", "Water_Mesityloxide", "Water_Cyclohexanol", "Water_Nbutylacetate", "Water_Diacetonealcohol", "Water_Onehexanol", "Water_Twohexanol", "Water_Twobutoxyethanol", "Water_Benzylalcohol", "Water_Two6dimethylpyridinr", "Water_Isopentylacetate", "Water_Acetophenone", "Water_Quinoline", "Water_Isopropylbenzene", "Halothane_Methanol", "Methanol_Formamide", "Methane_Acetone", "Methane_Propane", "Methane_Nbutane", "Methane_Npentane", "Methane_Benzene", "Methane_Nhexane", "Methane_Ndecane", "Ethane_Nheptane", "Ibutane_Nbutane", "Npentane_Acetone", "Nhexane_Nitroethane", "Nhexane_Aniline", "Nhexane_Methylcyclop", "Nhexane_Toluene", "Nheptane_Benzene", "Nheptane_Toluene", "Nctane_Nitroethane", "Nctane_Ipropanol", "Twotwofourtrimethylpentane_Nitroethane", "Twotwofourtrimethylpentane_Furfural", "Twotwofourtrimethylpentane_Benzene", "Twotwofourtrimethylpentane_Cyclohexane", "Twotwofourtrimethylpentane_Toluene", "Ndecane_Npropanol", "Ndecane_Nbutanol", "Ndecane_Ipropanol", "Cyclopentane_Benzene", "Methylcyclopentane_Benzene", "Methylcyclopentane_Toluene", "Cyclohexane_Nitromethan", "Cyclohexane_Npropanol", "Cyclohexane_Nbutanol", "Cyclohexane_Benzene", "Cyclohexane_Methylcyclop", "Cyclohexane_Nhexane", "Cyclohexane_Toluene", "Cyclohexane_Heptane", "Methylcyclohexane_Toluene", "Onebutene_Ibutane", "Onebutene_Propane", "Onebutene_Nbutane", "Benzene_Twobutanone", "Benzene_Nbutanol", "Benzene_Nhexane", "Benzene_Water", "Toluene_Furfural", "Hydrogen_Methanol", "Hydrogen_Acetone", "Hydrogen_Benzene", "Hydrogen_Nhexane", "Hydrogen_Mxylene", "Hydrogen_Nctane", "Hydrogen_Water", "Hydrogen_Ammonia", "Nitrogen_Nbutane", "Nitrogen_Nhexane", "Nitrogen_Water", "Nitrogen_Ammonia", "Carbonmonoxide_Methanol", "Carbonmonoxide_Acetone", "Carbonmonoxide_Benzene", "Carbonmonoxide_Nctane", "Acetaldehyde_Aceticacid", "Acetaldehyde_Vinylacetat", "Acetone_Carbontetra", "Acetone_Acetonitrile", "Acetone_Methanol", "Acetone_Aceticacid", "Acetone_Furfural", "Acetone_Nhexane", "Acetone_Water", "Acetone_Vinylacetat", "Methanol_Carbontetra", "Methanol_Ipropanol", "Methanol_Ethylacetat", "Methanol_Diethylamin", "Methanol_Methylisobut", "Methanol_Nhexane", "Methanol_Two.threedimethyl", "Methanol_Triethylamin", "Methanol_Anisole", "Ethanol_One.twodichloro", "Ethanol_Aceticacid", "Ethanol_Npropanol", "Ethanol_Tertbutanol", "Ethanol_Methylcyclop", "Ethanol_Nhexane", "Ethanol_Methylcyclo", "Ethanol_Nctane", "Ethanol_Twotwofourtrimethyl", "Ethanol_Ndecane", "Npropanol_Carbontetra", "Npropanol_Aceticacid", "Npropanol_Benzene", "Npropanol_Nhexane", "Npropanol_Toluene", "Npropanol_Nheptane", "Npropanol_Water", "Ipropanol_Ethylacetat", "Ipropanol_Benzene", "Ipropanol_Nheptane", "Ipropanol_Water", "Ipropanol_Twotwofourtrimethyl", "Nbutanol_Carbontetra", "Nbutanol_Aceticacid", "Nbutanol_Nhexane", "Nbutanol_Nheptane", "Nbutanol_Nctane", "Ibutanol_Benzene", "Secbutanol_Benzene", "Tertbutanol_Benzene", "Formicacid_Aceticacid", "Aceticacid_Toluene", "Aceticacid_Nheptane", "Propionicacid_Methylisobut", "Propionicacid_Nctane", "Methylacetate_Chloroform", "Methylacetate_Benzene", "Ethylacetate_Aceticacid", "Ethylacetate_Npropanol", "Ethylacetate_Furfural", "Ethylacetate_Benzene", "Ethylacetate_Toluene", "Ethylacetate_Ethylbenzen", "Vinylacetate_Aceticacid", "Vinylacetate_Water", "Dioxane_Benzene", "Carbontetrachloride_Acetonitrile", "Carbontetrachloride_Ethanol", "Carbontetrachloride_Furfural", "Carbontetrachloride_Benzene", "Carbontetrachloride_Cyclohexane", "Carbontetrachloride_Methylcyclop", "Carbontetrachloride_Toluene", "Carbontetrachloride_Nheptane", "Dichloromethane_Dichloroetan", "Chloroform_Carbontetra", "Chloroform_Formicacid", "Chloroform_Aceticacid", "Chloroform_Ethylacetate", "Chloroform_Benzene", "Nitromethane_Carbontetra", "Nitromethane_Benzene", "Nitroethane_Carbontetra", "Nitroethane_Npropanol", "Nitroethane_Benzene", "Onenitropropane_Carbontetra", "Onenitropropane_Benzene", "Twonitropropane_Carbontetra", "Twonitropropane_Benzene", "Twonitropropane_Nhexane", "Acetonitrile_Benzene", "Acetonitrile_Nheptane", "Acrylonitrile_Acetonitrile", "Aniline_Methylcyclop", "Furfural_Onebutene", "Furfural_Nbutane", "Furfural_Ibutane", "Furfural_Benzene", "Furfural_Cyclohexane", "Water_Formicacid", "Water_Acetonitrile", "Water_Nitroethane", "Water_Dioxane", "Water_Onebutene", "Water_Ibutane", "Water_Toluene", "Water_Acrylonitril", "Water_Cisbutenetwo", "Water_Transbutene", "Water_Isobutene", "Water_Butadiene", "Carbondisulfide_Methanol", "Carbondisulfide_Acetone"};
- constant Real BIPdb[440, 2] = {{1289.4881, 6.7114}, {938.0838, -112.7209}, {849.013, -56.7699}, {1056.8977, -135.5484}, {743.1034, -127.2476}, {1251.6417, -391.9511}, {1525.5351, -516.0584}, {1403.5125, -70.3003}, {1499.6766, -66.3796}, {983.1208, -123.8651}, {1329.9294, -21.5842}, {970.6914, -128.7022}, {1300.2481, -72.9715}, {1489.1438, -97.747}, {1477.5985, -92.9294}, {1514.3534, -144.3088}, {912.9208, -118.3758}, {1410.4509, -61.3753}, {-119.7224, -29.4499}, {72.2429, 197.453}, {70.7224, -58.3017}, {5.7397, 0.5699}, {378.6125, 20.5261}, {860.8206, -554.8868}, {121.3912, -119.706}, {-1132.16, -231.7521}, {735.9692, 208.343}, {416.3831, -377.9488}, {1263.005, -81.883}, {1566.0069, -781.5877}, {-358.9226, 604.28}, {-468.3882, 27.3851}, {-77.5361, 543.595}, {-315.279, 555.7418}, {94.5536, 117.867}, {-300.8429, 385.863}, {146.0313, 100.2596}, {366.3689, -250.2784}, {-184.485, 559.8999}, {775.153, 30.4806}, {147.6576, -8.2705}, {-337.1298, 549.2958}, {-271.0633, 1304.9835}, {-474.7791, 762.8153}, {-84.2364, 403.8524}, {-67.7213, 1117.8797}, {-32.2887, 1703.2055}, {-58.1103, 1190.6454}, {17.9144, 1360.0217}, {-95.2921, 1463.4548}, {-92.0642, 984.2538}, {101.9628, 334.9587}, {-80.7067, 1094.1304}, {-40.7254, -51.0491}, {-366.7607, 84.4189}, {7.1816, 0.3295}, {-156.3839, 103.9406}, {-26.2861, 113.5565}, {-265.3781, 1099.9741}, {-25.1614, 600.3028}, {-136.0158, 584.0634}, {-153.2518, 629.7314}, {-19.0988, 451.089}, {-138.9829, 770.3047}, {-28.6882, 675.1045}, {40.3898, 121.5049}, {471.807, -279.7321}, {-291.983, 403.6892}, {-286.6527, 490.8909}, {425.4563, -393.3415}, {-98.6602, 843.2593}, {-100.1669, 594.2312}, {-83.8392, 609.2057}, {-383.9791, 153.8253}, {-90.0876, 1245.166}, {-118.0717, 1402.7818}, {-144.7753, 517.8626}, {-603.5633, 950.103}, {-206.2407, 81.4664}, {-78.8509, -53.173}, {-38.5257, 1529.9926}, {-174.2617, 892.9417}, {38.3254, 1391.4917}, {-318.8007, 905.0708}, {-502.2428, 548.3889}, {-272.5909, 272.4921}, {-12.605, 1363.9261}, {1.0023, 1552.7297}, {-27.9877, 1578.6097}, {-57.095, 1259.4286}, {-41.7377, 1208.1529}, {-47.6694, 1231.2086}, {-32.2567, 1396.3019}, {-32.7911, 1561.8955}, {-59.6929, 1577.3145}, {18.9334, 484.2757}, {-149.1808, 952.0283}, {173.801, 109.8687}, {-305.3246, 881.3549}, {94.2417, 98.7523}, {-25.7234, 250.3958}, {-127.9893, 744.8826}, {-153.0128, 1100.3231}, {-97.5633, 698.6183}, {-150.277, 1127.5232}, {-63.9673, 664.259}, {-61.6485, 783.4873}, {392.2083, 91.3933}, {-39.1051, 669.688}, {-25.2901, -86.9343}, {818.093, -200.1567}, {437.5184, -324.6275}, {181.0206, -57.8238}, {-77.9585, 662.4746}, {50.8172, 212.2982}, {177.7675, 306.35}, {-712.473, 1116.7138}, {-311.9029, 474.5511}, {-117.4292, 220.9133}, {378.8209, -378.8991}, {-105.4041, 544.4089}, {-260.5944, 652.4019}, {-13.0186, 405.1733}, {82.3751, -18.3336}, {-169.9204, 998.8196}, {-205.6039, 1032.724}, {1262.584, -446.4834}, {139.4905, -225.4203}, {-578.9542, 942.9023}, {634.1484, -339.732}, {-38.4912, 384.6715}, {-177.4837, 780.0513}, {-305.4069, 674.3341}, {928.9185, -379.9781}, {-432.4206, 583.2958}, {-161.4264, 631.1662}, {-115.7807, 1040.2891}, {-127.6343, 841.5199}, {-152.8323, 1156.688}, {-165.9382, 1120.4853}, {-401.4408, 1783.7857}, {-180.7604, 627.9668}, {190.5947, 290.554}, {-13.5513, 473.6899}, {-729.0848, 1660.0903}, {-83.3064, -4.418}, {-300.7498, 511.0851}, {-274.4208, 15.9476}, {114.789, -169.5098}, {47.0059, -46.6524}, {423.4439, -423.9207}, {-27.435, 256.1456}, {-91.8942, 278.7259}, {-19.2402, 27.9161}, {1.3035, 311.4544}, {163.7157, -281.9383}, {199.1862, -290.3666}, {180.7309, -293.8268}, {-585.5214, 1186.3162}, {-1.1304, 48.1557}, {-218.4928, 677.0367}, {-1.7464, 340.4905}, {-595.2165, 936.7248}, {-91.2018, 743.266}, {-74.7475, 427.6292}, {-48.752, 525.9933}, {-175.9432, 744.763}, {89.4506, 31.0832}, {327.443, 64.4408}, {103.5993, -103.7179}, {350.1707, 309.5428}, {230.5098, 271.3048}, {281.7442, 47.6526}, {623.2636, -2.0107}, {830.7943, 47.5023}, {611.2312, -70.982}, {267.0169, -79.2922}, {1441.5619, -205.7336}, {436.0416, -98.562}, {483.9533, -67.6116}, {1198.9207, 102.271}, {906.3646, -157.3556}, {642.6982, -171.8091}, {1415.2748, 81.2811}, {1024.985, -203.711}, {1098.9416, -44.1418}, {657.2765, -4.6934}, {10542.2026, -344.1682}, {791.0185, -210.2403}, {835.2626, 10.5163}, {559.1539, -260.1951}, {381.8256, -244.669}, {1029.3332, -171.0842}, {957.274, -252.3762}, {7661.2894, -187.7083}, {1516.5558, -229.3734}, {796.2935, -172.0713}, {1295.4282, -271.461}, {981.7658, -335.4504}, {272.4952, 107.634}, {538.1802, -90.5235}, {1260.1312, 81.3308}, {748.22, -172.7007}, {-1070.3252, 1057.3916}, {-520.5358, -200.8021}, {-1071.4286, 1018.5371}, {-71.2521, -231.1124}, {149.3345, -412.065}, {242.4137, 2458.766}, {701.924, -371.1197}, {721.1889, -312.3228}, {-613.4553, 1006.1474}, {426.0894, -302.8076}, {-379.6694, 874.815}, {-17.1391, -220.6087}, {-188.4751, -68.9772}, {-553.685, 1001.0323}, {266.3109, 332.5988}, {367.0686, 510.5582}, {395.4004, 537.1531}, {535.7543, -38.2344}, {-110.3829, 698.7989}, {752.9217, 39.6746}, {934.8834, -501.3763}, {-251.6868, 407.0073}, {-867.7066, 2091.772}, {-292.3021, -523.6271}, {-175.0216, -724.876}, {-417.4722, 1189.9025}, {486.4688, -146.6582}, {-210.5536, 915.1339}, {639.5742, -556.8715}, {-444.013, 1302.0378}, {-397.8616, 997.3999}, {453.4841, -463.0383}, {933.6195, -802.5279}, {548.2453, 89.0444}, {-370.3689, 1635.7568}, {489.1312, -286.7611}, {-346.2827, 900.5916}, {537.7334, -36.221}, {-56.5403, -97.5005}, {-801.2765, 1402.6755}, {819.6231, -223.7898}, {-178.9352, 1021.7979}, {-91.7122, 485.3384}, {-657.2675, 1253.468}, {1280.6209, -655.1387}, {-358.5748, 333.911}, {-334.1695, 857.6208}, {316.6082, 95.0342}, {-56.9399, 1043.7692}, {-286.8493, 1023.7144}, {394.2396, 756.4163}, {-351.0861, 1188.5242}, {-9.7248, 802.6348}, {-172.0599, 1138.3704}, {-178.571, 670.1422}, {83.4921, 304.0167}, {-497.9465, 893.7955}, {-250.5667, 1438.236}, {234.4706, 641.1422}, {-847.2235, 663.5428}, {-310.5637, 1655.4649}, {1653.8373, -379.2679}, {319.3243, -34.2606}, {-0.26, 471}, {-2.01, 604}, {-2.05, 731}, {-1.32, 509}, {-0.38, 473}, {-0.06, 94}, {-0.24, 150}, {264.89, -112.61}, {1, 1}, {266.31, -22.83}, {230.64, -5.86}, {283.76, 34.82}, {-138.84, 162.13}, {34.27, 4.3}, {245.42, -135.93}, {108.24, -72.96}, {333.48, -30.98}, {1107.44, -166.18}, {236.48, 10.66}, {410.08, -4.98}, {80.91, -27.13}, {141.01, -112.66}, {141.11, -94.6}, {1137.2, -201.82}, {1430.77, -259.67}, {1074.76, -207.27}, {15.19, 33.15}, {56.47, -6.47}, {89.77, -48.05}, {517.19, 105.01}, {1284.75, -173.42}, {1393.11, -196.9}, {-32.57, 88.26}, {144.37, -118.82}, {172.73, -145.56}, {83.67, -44.04}, {-76.36, 98.22}, {210.35, -134.19}, {-23.03, 35.11}, {126.71, -98.63}, {-23.03, 35.11}, {350.47, -226.16}, {928.9, -181.24}, {-77.13, 132.43}, {2057.42, 115.13}, {74.87, 244.12}, {3.94, 218}, {3.23, 218}, {1.97, 810}, {2.99, -4}, {2.09, 765}, {-0.05, 1646}, {9.97, -880}, {0.68, 1344}, {-1.67, 814}, {0.07, 336}, {3.76, 913}, {-3.35, 2098}, {0.83, 552}, {0.48, 408}, {-1.04, 1062}, {-3.38, 1878}, {458.43, -212.77}, {-117.74, 243.51}, {-92.32, 246.68}, {-176.38, 261.53}, {359.1, -96.9}, {461.81, -262.3}, {-101.3, 195.63}, {-33.08, 261.51}, {530.99, -100.71}, {-82.48, 110.6}, {-29.64, 1127.95}, {-24.85, 31.22}, {-107.54, 579.61}, {-374.88, 676.42}, {-105.94, 688.03}, {-2.66, 1636.05}, {-7.18, 1463.9}, {-186.66, 664.29}, {-48.39, 782.28}, {-105.66, 929.71}, {-210.53, 244.67}, {210.95, -67.7}, {-2.62, 9.24}, {-118.27, 1383.93}, {-108.93, 1441.57}, {-117.57, 1340.56}, {-109.08, 1385.91}, {-120.42, 1449.61}, {-127.48, 1254.65}, {-166.93, 1336.03}, {299.33, 445.77}, {-155.1, 928.5}, {-144.11, 1326.05}, {-195.4, 818.34}, {-160.43, 1306.22}, {78.37, 583.03}, {-190.57, 522.07}, {-145.52, 854.75}, {-162.54, 1295.6}, {217.23, 11.59}, {-198.06, 994}, {-188.77, 1248.17}, {-296.3, 546.68}, {-159.24, 1370.74}, {-251.11, 1291.98}, {-236.21, 1098.91}, {-162.39, 861.06}, {784.99, -168.83}, {744.89, -165.4}, {-144.58, 241.64}, {-67.91, 298.09}, {-8.49, 342.57}, {-78.49, 136.46}, {-183.2, 556.12}, {-187.87, 121.17}, {203.46, -143.88}, {-214.39, 63.04}, {539.64, -190.31}, {-19.15, 48.52}, {233.81, -181.49}, {309.41, -214.26}, {137.11, -105.5}, {330.03, -124.12}, {1557.23, 131.36}, {363.78, -197.65}, {458.86, -40.18}, {1192.49, -135.27}, {476.85, -100.42}, {-37.52, 43.39}, {98.18, -84.82}, {161.96, -129.21}, {-168.53, 203.67}, {88.3, -59.13}, {1, 1}, {-14.74, 38.19}, {461.38, 90.36}, {346.43, -98.44}, {24.16, -119.49}, {4.98, -50.53}, {0.59, 398.4}, {73.79, 82.2}, {73.06, 295.06}, {574.22, -94.39}, {16.61, 46.05}, {-95.68, 267.13}, {535.16, -246.81}, {-134.32, 307.25}, {794.91, -344.15}, {-32.95, 252.2}, {60.28, 89.57}, {23.71, 545.79}, {183.65, -142.35}, {54.36, 228.71}, {49.12, 242.1}, {88.87, 257.71}, {97.14, 268}, {71, 12}, {41.17, 354.83}, {-508.85, 1019.29}, {122.02, 122.07}, {138.44, 920.08}, {-328.7, 927.26}, {590.17, 777.95}, {646.79, 1173.23}, {305.71, 1371.36}, {155.78, 471.21}, {356.45, -18.31}, {356.45, -18.31}, {346.74, 657.5}, {496.1, 270.6}, {1166.49, 138.15}, {157.31, 103.91}};
- algorithm
- for i in 1:Nc loop
- for j in 1:Nc loop
- for k in 1:2 loop
- BIP[i, j] := 0;
- end for;
- end for;
- end for;
- for i in 1:Nc loop
- for j in 1:Nc loop
- c_cc[i, j] := C[i] + Us + C[j];
- d_cc[i, j] := C[j] + Us + C[i];
- for k in 1:440 loop
- if c_cc[i, j] == C1_C2[k] then
- BIP[i, j] := BIPdb[k, 1];
- BIP[j, i] := BIPdb[k, 2];
- end if;
- if d_cc[i, j] == C1_C2[k] then
- BIP[j, i] := BIPdb[k, 1];
- BIP[i, j] := BIPdb[k, 2];
- end if;
- end for;
- end for;
- end for;
- end BIPUNIQUAC;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Dens.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Dens.mo
deleted file mode 100644
index 96ed37a..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Dens.mo
+++ /dev/null
@@ -1,24 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function Dens
- //This function is developed by swaroop katta
- //this function calculates density of pure componets as a function of temperature using chemsep database.
- extends Modelica.Icons.Function;
- input Real LiqDen[6], Tc, T, P;
- output Real rho "units kmol/m3";
- protected
- Real Tr;
- protected
- parameter Real R = 8.314 "gas constant";
- algorithm
- Tr := T / Tc;
- if T < Tc then
- if LiqDen[1] == 105 then
- rho := LiqDen[2] / LiqDen[3] ^ (1 + (1 - T / LiqDen[4]) ^ LiqDen[5]) * 1000;
- elseif LiqDen[1] == 106 then
- rho := LiqDen[2] * (1 - Tr) ^ (LiqDen[3] + LiqDen[4] * Tr + LiqDen[5] * Tr ^ 2 + LiqDen[6] * Tr ^ 3) * 1000;
- end if;
- else
- rho := P / (R * T * 1000);
- end if;
- end Dens;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/DensityRacket.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/DensityRacket.mo
deleted file mode 100644
index 15a2c77..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/DensityRacket.mo
+++ /dev/null
@@ -1,49 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function DensityRacket
- extends Modelica.Icons.Function;
- input Integer Nc;
- input Real T;
- input Real P;
- input Real Pc_c[Nc];
- input Real Tc_c[Nc];
- input Real RP_c[Nc];
- input Real AF_c[Nc];
- input Real MW_c[Nc];
- input Real Psat[Nc];
- output Real rho_c[Nc];
- parameter Real R = 83.14;
-protected
- Real Tr_c[Nc], Pcbar_c[Nc], temp[Nc], Tcor_c[Nc], a, b, c_c[Nc], d, e_c[Nc], Beta_c[Nc], f, g, h, j, k, RPnew_c[Nc];
-algorithm
- for i in 1:Nc loop
- Pcbar_c[i] := Pc_c[i] / 100000;
- Tr_c[i] := T / Tc_c[i];
- if Tr_c[i] > 0.99 then
- Tr_c[i] := 0.5;
- end if;
- if RP_c[i] == 0 then
- RPnew_c[i] := 0.29056 - 0.08775 * AF_c[i];
- else
- RPnew_c[i] := RP_c[i];
- end if;
- temp[i] := R * (Tc_c[i] / Pcbar_c[i]) * RPnew_c[i] ^ (1 + (1 - Tr_c[i]) ^ (2 / 7));
- if T < Tc_c[i] then
- a := -9.070217;
- b := 62.45326;
- d := -135.1102;
- f := 4.79594;
- g := 0.250047;
- h := 1.14188;
- j := 0.0861488;
- k := 0.0344483;
- e_c[Nc] := exp(f + g * AF_c[i] + h * AF_c[i] * AF_c[i]);
- c_c[Nc] := j + k * AF_c[i];
- Beta_c[i] := Pc_c[i] * ((-1) + a * (1 - Tr_c[i]) ^ (1 / 3) + b * (1 - Tr_c[i]) ^ (2 / 3) + d * (1 - Tr_c[i]) + e_c[i] * (1 - Tr_c[i]) ^ (4 / 3));
- Tcor_c[i] := temp[i] * (1 - c_c[i] * log((Beta_c[i] + P) / (Beta_c[i] + Psat[i])));
- rho_c[i] := 0.001 * MW_c[i] / (Tcor_c[i] * 0.000001);
- else
- rho_c[i] := 0.001 * MW_c[i] / (temp[i] * 0.000001);
- end if;
- end for;
-end DensityRacket;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstant1V.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstant1V.mo
deleted file mode 100644
index 2b28bf0..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstant1V.mo
+++ /dev/null
@@ -1,16 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function EOSConstant1V
- extends Modelica.Icons.Function;
- input Integer Nc;
- input Real compMolFrac[Nc];
- input Real a_ij[Nc, Nc];
- output Real amv;
-protected
- Real amvv[Nc];
-algorithm
- for i in 1:Nc loop
- amvv[i] := sum(compMolFrac[i] .* compMolFrac[:] .* a_ij[i, :]);
- end for;
- amv := sum(amvv[:]);
-end EOSConstant1V;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantII.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantII.mo
deleted file mode 100644
index 6a9f9f4..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantII.mo
+++ /dev/null
@@ -1,14 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function EOSConstantII
- extends Modelica.Icons.Function;
- parameter Real R_gas = 8.314;
- input Integer Nc;
- input Real Tc[Nc], Pc[Nc];
- input Real T;
- output Real b[Nc];
-algorithm
- for i in 1:Nc loop
- b[i] := 0.08664 * R_gas * (Tc[i] / Pc[i]);
- end for;
-end EOSConstantII;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantIII.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantIII.mo
deleted file mode 100644
index bfcc5be..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstantIII.mo
+++ /dev/null
@@ -1,12 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function EOSConstantIII
- extends Modelica.Icons.Function;
- input Integer Nc;
- input Real a[Nc];
- output Real a_ij[Nc, Nc];
-algorithm
- for i in 1:Nc loop
- a_ij[i, :] := (a[i] .* a[:]) .^ 0.5;
- end for;
-end EOSConstantIII;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstants.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstants.mo
deleted file mode 100644
index 5027815..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/EOSConstants.mo
+++ /dev/null
@@ -1,14 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function EOSConstants
- extends Modelica.Icons.Function;
- parameter Real R_gas = 8.314;
- input Integer Nc;
- input Real Tc[Nc], Pc[Nc];
- input Real T;
- output Real a[Nc];
-algorithm
- for i in 1:Nc loop
- a[i] := 0.42748 * R_gas ^ 2 * (Tc[i] ^ 2.5 / (Pc[i] * T ^ 0.5));
- end for;
-end EOSConstants;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/FindString.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/FindString.mo
deleted file mode 100644
index b71e249..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/FindString.mo
+++ /dev/null
@@ -1,19 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function FindString
- extends Modelica.Icons.Function;
- input String Comp_A[:];
- input String Comp;
- output Integer Int;
- protected
- Integer i, Len = size(Comp_A, 1);
- algorithm
- Int := -1;
- i := 1;
- while Int == (-1) and i <= Len loop
- if Comp_A[i] == Comp then
- Int := i;
- end if;
- i := i + 1;
- end while;
- end FindString;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HLiqId.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HLiqId.mo
deleted file mode 100644
index 58fabec..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HLiqId.mo
+++ /dev/null
@@ -1,14 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function HLiqId
- /* Calculates Enthalpy of Ideal Liquid*/
- extends Modelica.Icons.Function;
- input Real SH(unit = "J/kmol") "from chemsep database std. Heat of formation";
- input Real VapCp[6] "from chemsep database";
- input Real HOV[6] "from chemsep database";
- input Real Tc "critical temp, from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real Hliq(unit = "J/mol") "Molar Enthalpy";
- algorithm
- Hliq := HVapId(SH, VapCp, HOV, Tc, T) - ThermodynamicFunctions.HV(HOV, Tc, T);
- end HLiqId;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HV.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HV.mo
deleted file mode 100644
index e558974..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HV.mo
+++ /dev/null
@@ -1,18 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function HV
- /*Returns Heat of Vaporization*/
- extends Modelica.Icons.Function;
- input Real HOV[6] "from chemsep database";
- input Real Tc(unit = "K") "Critical Temperature";
- input Real T(unit = "K") "Temperature";
- output Real Hvap(unit = "J/mol") "Heat of Vaporization";
- protected
- Real Tr = T / Tc;
- algorithm
- if T < Tc then
- Hvap := HOV[2] * (1 - Tr) ^ (HOV[3] + HOV[4] * Tr + HOV[5] * Tr ^ 2 + HOV[6] * Tr ^ 3) / 1000;
- else
- Hvap := 0;
- end if;
- end HV;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HVapId.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HVapId.mo
deleted file mode 100644
index 7e681c2..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/HVapId.mo
+++ /dev/null
@@ -1,20 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function HVapId
- /* Calculates enthalpy of ideal vapor */
- extends Modelica.Icons.Function;
- input Real SH(unit = "J/kmol") "from chemsep database std. Heat of formation";
- input Real VapCp[6] "from chemsep database";
- input Real HOV[6] "from chemsep database";
- input Real Tc "critical temp, from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real Hvap(unit = "J/mol") "Molar Enthalpy";
- protected
- Integer n = 100;
- Real Cp[n - 1];
- algorithm
- for i in 1:n - 1 loop
- Cp[i] := VapCpId(VapCp, 298.15 + i * (T - 298.15) / n);
- end for;
- Hvap := (T - 298.15) * (VapCpId(VapCp, T) / 2 + sum(Cp[:]) + VapCpId(VapCp, 298.15) / 2) / n;
- end HVapId;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiqCpId.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiqCpId.mo
deleted file mode 100644
index 66a7dbf..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiqCpId.mo
+++ /dev/null
@@ -1,11 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function LiqCpId
- /*Calculates specific heat of liquid at given Temperature*/
- extends Modelica.Icons.Function;
- input Real LiqCp[6] "from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real Cpliq(unit = "J/mol") "Specific heat of liquid";
- algorithm
- Cpliq := (LiqCp[2] + exp(LiqCp[3] / T + LiqCp[4] + LiqCp[5] * T + LiqCp[6] * T ^ 2)) / 1000;
- end LiqCpId;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiquidFugacityCoeffcient.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiquidFugacityCoeffcient.mo
deleted file mode 100644
index 94069ee..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/LiquidFugacityCoeffcient.mo
+++ /dev/null
@@ -1,82 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function LiquidFugacityCoeffcient
- extends Modelica.Icons.Function;
-
- input Integer Nc;
- input Real Tc[Nc];
- input Real Pc[Nc];
- input Real W_c[Nc];
- input Real T,P;
- input Real V_c[Nc];
- input Real S;
- input Real gma_c[Nc];
-
- output Real Philiq_c[Nc](each start = 2);
- protected Real Tr_c[Nc];
- protected Real Pr_c[Nc];
- protected Real v0_c[Nc](each start=2),v1_c[Nc](each start=2),v_c[Nc];
- protected Real A[10];
-
- algorithm
-
-
- for i in 1:Nc loop
- Tr_c[i] := T / Tc[i];
- Pr_c[i] := P / Pc[i];
-
- if(Tc[i] == 33.19) then
- A[1] := 1.50709;
- A[2] := 2.74283;
- A[3] := -0.0211;
- A[4] := 0.00011;
- A[5] := 0;
- A[6] := 0.008585;
- A[7] := 0;
- A[8] := 0;
- A[9] := 0;
- A[10] :=0;
-
- v0_c[i] := 10^(A[1] + (A[2]/Tr_c[i]) + (A[3]*Tr_c[i])+(A[4] *Tr_c[i] *Tr_c[i])+(A[5] *Tr_c[i]*Tr_c[i]*Tr_c[i])+((A[6] +(A[7] *Tr_c[i]) +(A[8]*Tr_c[i]*Tr_c[i]))*Pr_c[i])+((A[9] +(A[10]*Tr_c[i]))*(Pr_c[i]*Pr_c[i])) - (log10(Pr_c[i])));
-
- elseif(Tc[i] == 190.56) then
- A[1] := 1.36822;
- A[2] := -1.54831;
- A[3] := 0;
- A[4] := 0.02889;
- A[5] := -0.01076;
- A[6] := 0.10486;
- A[7] := -0.02529;
- A[8] := 0;
- A[9] := 0;
- A[10] := 0;
-
- v0_c[i] := 10^(A[1] + (A[2]/Tr_c[i]) + (A[3]*Tr_c[i])+(A[4] *Tr_c[i] *Tr_c[i])+(A[5] *Tr_c[i]*Tr_c[i]*Tr_c[i])+((A[6] +(A[7] *Tr_c[i]) +(A[8]*Tr_c[i]*Tr_c[i]))*Pr_c[i])+((A[9] +(A[10]*Tr_c[i]))*(Pr_c[i]*Pr_c[i])) - (log10(Pr_c[i])));
-
- else
- A[1] := 2.05135;
- A[2] := -2.10889;
- A[3] := 0;
- A[4] := -0.19396;
- A[5] := 0.02282;
- A[6] := 0.08852;
- A[7] := 0;
- A[8] := -0.00872;
- A[9] := -0.00353;
- A[10] := 0.00203;
-
- v0_c[i] := 10^(A[1] + (A[2]/Tr_c[i]) + (A[3]*Tr_c[i])+(A[4] *Tr_c[i] *Tr_c[i])+(A[5] *Tr_c[i]*Tr_c[i]*Tr_c[i])+((A[6] +(A[7] *Tr_c[i]) +(A[8]*Tr_c[i]*Tr_c[i]))*Pr_c[i])+((A[9] +(A[10]*Tr_c[i]))*(Pr_c[i]*Pr_c[i])) - (log10(Pr_c[i])));
-
- end if;
-
- v1_c[i] := 10^(-4.23893 + (8.65808 * Tr_c[i]) - (1.2206 / Tr_c[i]) - (3.15224 * Tr_c[i] ^ 3) - 0.025 * (Pr_c[i] - 0.6));
-
- if(v1_c[i] == 0) then
- v_c[i] := 10^(log10(v0_c[i]) );
- else
- v_c[i] := 10^(log10(v0_c[i]) + (W_c[i] * log10(v1_c[i])));
- end if;
- Philiq_c[i] := v_c[i] * gma_c[i];
- end for;
-
- end LiquidFugacityCoeffcient;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/PoyntingCF.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/PoyntingCF.mo
deleted file mode 100644
index 4616a54..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/PoyntingCF.mo
+++ /dev/null
@@ -1,24 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function PoyntingCF
- extends Modelica.Icons.Function;
- import Simulator.Files.Thermodynamic_Functions.*;
- input Integer Nc;
- input Real Pc, Tc, RP, AF, MW;
- input Real T, P;
- input Real gma, Psat, rho;
- parameter Integer Choice = 2;
- output Real PCF;
-protected
- Real vl;
-algorithm
- if T < 0.98 * Tc then
- vl := 1 / rho;
- end if;
-
- if Choice == 1 then
- PCF := exp(vl * abs(P - Psat) / (8314.47 * T));
- else
- PCF := 1;
- end if;
-end PoyntingCF;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Psat.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Psat.mo
deleted file mode 100644
index 2b779ae..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/Psat.mo
+++ /dev/null
@@ -1,11 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function Psat
- extends Modelica.Icons.Function;
- /*Returns vapor pressure at given temperature*/
- input Real VP[6] "from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real Pvap(unit = "Pa") "Vapor pressure";
- algorithm
- Pvap := exp(VP[2] + VP[3] / T + VP[4] * log(T) + VP[5] .* T .^ VP[6]);
- end Psat;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SId.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SId.mo
deleted file mode 100644
index bc94e61..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SId.mo
+++ /dev/null
@@ -1,48 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function SId
- extends Modelica.Icons.Function;
- import Modelica.Constants.*;
-
-
- input Real VapCp[6];
- input Real HOV[6];
- input Real Tb;
- input Real Tc;
- input Real T;
- input Real P;
- input Real xliq;
- input Real xvap;
- output Real Sliq, Svap;
- protected
- parameter Real Tref = 298.15, Pref = 101325;
- Real S, Cp[n - 1];
- parameter Integer n = 10;
-
- algorithm
- S := 0;
- for i in 1:n - 1 loop
- Cp[i] := Simulator.Files.ThermodynamicFunctions.VapCpId(VapCp, 298.15 + i * (T - 298.15) / n) / (298.15 + i * (T - 298.15) / n);
- end for;
- if T >= Tref then
- S := (T - 298.15) * (Simulator.Files.ThermodynamicFunctions.VapCpId(VapCp, T) / (2 * T) + sum(Cp[:]) + Simulator.Files.ThermodynamicFunctions.VapCpId(VapCp, 298.15) / (2 * 298.15)) / n;
- else
- S := -(T - 298.15) * (Simulator.Files.ThermodynamicFunctions.VapCpId(VapCp, T) / (2 * T) + sum(Cp[:]) + Simulator.Files.ThermodynamicFunctions.VapCpId(VapCp, 298.15) / (2 * 298.15)) / n;
- end if;
- if xliq > 0 and xvap > 0 then
- Sliq := S - R * log(P / Pref) - R * log(xliq) - HV(HOV, Tc, T) / T;
- Svap := S - R * log(P / Pref) - R * log(xvap);
- elseif xliq <= 0 and xvap <= 0 then
- Sliq := 0;
- Svap := 0;
- elseif xliq == 0 then
- Sliq := 0;
- Svap := S - R * log(P / Pref) - R * log(xvap);
- elseif xvap == 0 then
- Sliq := S - R * log(P / Pref) - R * log(xliq) - HV(HOV, Tc, T) / T;
- Svap := 0;
- else
- Sliq := 0;
- Svap := 0;
- end if;
- end SId;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SolublityParameter.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SolublityParameter.mo
deleted file mode 100644
index 15d2afd..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/SolublityParameter.mo
+++ /dev/null
@@ -1,25 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function SolublityParameter
- extends Modelica.Icons.Function;
-
- input Integer Nc;
- input Real V_c[Nc];
- input Real SP_c[Nc];
- input Real x_c[Nc];
-
- output Real S;
- protected Real Vs,V;
-
- algorithm
-
- V := sum(x_c[:] .* V_c[:]);
- Vs := sum(x_c[:] .* V_c[:] .* SP_c[:]);
-
- if(V==0) then
- S :=0;
- else
- S := Vs / V;
- end if;
-
- end SolublityParameter;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/TowUNIQUAC.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/TowUNIQUAC.mo
deleted file mode 100644
index 60209d3..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/TowUNIQUAC.mo
+++ /dev/null
@@ -1,19 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function TowUNIQUAC
- extends Modelica.Icons.Function;
- input Integer Nc;
- input Real a_cc[Nc,Nc];
- input Real T;
- output Real tau_cc[Nc,Nc](start = 1);
-
- protected Real R = 1.98721;
- algorithm
-
- for i in 1:Nc loop
- for j in 1:Nc loop
- tau_cc[i,j] := exp(-a_cc[i,j]/(R * T));
- end for;
- end for;
-
-end TowUNIQUAC ;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/VapCpId.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/VapCpId.mo
deleted file mode 100644
index 5042d02..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/VapCpId.mo
+++ /dev/null
@@ -1,11 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
- function VapCpId
- /*Calculates Vapor Specific Heat*/
- extends Modelica.Icons.Function;
- input Real VapCp[6] "from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real Cpvap(unit = "J/mol.K") "specific heat";
- algorithm
- Cpvap := (VapCp[2] + exp(VapCp[3] / T + VapCp[4] + VapCp[5] * T + VapCp[6] * T ^ 2)) / 1000;
- end VapCpId;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/index.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/index.mo
deleted file mode 100644
index a076f3a..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/index.mo
+++ /dev/null
@@ -1,10 +0,0 @@
-within Simulator.Files.ThermodynamicFunctions;
-
-function index
- extends Modelica.Icons.Function;
- input String[:] comps;
- input String comp;
- output Integer i;
-algorithm
- i := Modelica.Math.BooleanVectors.firstTrueIndex({k == comp for k in comps});
-end index;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.mo b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.mo
deleted file mode 100644
index 543d5bf..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files;
-
-package ThermodynamicFunctions
- extends Modelica.Icons.FunctionsPackage;
-
-end ThermodynamicFunctions;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.order b/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.order
deleted file mode 100644
index 1ef0048..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicFunctions/package.order
+++ /dev/null
@@ -1,22 +0,0 @@
-Psat
-LiqCpId
-VapCpId
-HV
-HLiqId
-HVapId
-SId
-Dens
-BIPNRTL
-TowUNIQUAC
-BIPUNIQUAC
-BIPPR
-FindString
-index
-DensityRacket
-PoyntingCF
-SolublityParameter
-EOSConstantII
-EOSConstantIII
-EOSConstant1V
-EOSConstants
-LiquidFugacityCoeffcient
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/GraysonStreed.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/GraysonStreed.mo
deleted file mode 100644
index 5fbc14b..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/GraysonStreed.mo
+++ /dev/null
@@ -1,208 +0,0 @@
-within Simulator.Files.ThermodynamicPackages;
-
- model GraysonStreed
-
- //====================================================================
- //Header Files and Parameters
- import Simulator.Files.Thermodynamic_Functions.*;
- parameter Real R = 8.314;
- parameter Real u = 1;
- import Simulator.Files.*;
- parameter Real W_c[Nc];
- parameter Real SP_c[Nc](each unit = "(cal/mL)^0.5");
- parameter Real V_c[Nc](each unit = "mL/mol");
- parameter Real T_c[Nc] = C.Tc;
- parameter Real Pc_c[Nc] = C.Pc;
- parameter Real Rgas = 8314470;
-
- //====================================================================
- //Model Variables
- Real Cpres_p[3], Hres_p[3], Sres_p[3];
- Real K_c[Nc];
- Real S(start = 3), gma_c[Nc];
- Real philiq_c[Nc](each start = 2), phivap_c[Nc](each start = 0.99), phivapdew_c[Nc](each start = 1.2);
- Real S_bubl, philiqbubl_c[Nc](each start = 1.5), gmabubl[Nc];
- //Vapour Phase Fugacity coefficient
- Real a_c[Nc], b_c[Nc];
- Real aij_c[Nc, Nc];
- Real amv, amvdew, bmv, bmvdew;
- Real Avap, Avapdew, Bvap(start = 3), Bvapdew;
- Real Zvap(start = 3), Zvapdew;
- Real t1_c[Nc], t3_c[Nc], t4, t2(start = 10);
- Real t1dew_c[Nc], t3dew_c[Nc], t4dew, t2dew(start = 10);
- Real Cvap[4], ZRvap[3, 2], ZVap[3];
- Real Cvapdew[4], ZRvapdew[3, 2], ZVapdew[3];
- Real gmabubl_c[Nc](each start = 0.5), gmadew_c[Nc](each start = 2.06221);
- Real gmaliq_c[Nc], Pvap_c[Nc];
- Real A_c[Nc], B_c[Nc], C_c[Nc], D_c[Nc], E, G, H_c[Nc], I, J;
- Real xliqdew_c[Nc];
- Real Tr_c[Nc];
- Real Prbubl_c[Nc](each start = 2);
- Real Vo_c[Nc](each start = 2), V1_c[Nc](each start = 2), v_c[Nc];
- Real Vs, V;
- equation
-//======================================================================================================
-//Calculation Routine for Liquid Phase Fugacity Coefficient
- S = Simulator.Files.ThermodynamicFunctions.SolublityParameter(Nc, V_c, SP_c, x_pc[2, :]);
- for i in 1:Nc loop
- gma_c[i] = exp(V_c[i] * (SP_c[i] - S) ^ 2 / (Rgas * T));
- end for;
- philiq_c = Simulator.Files.ThermodynamicFunctions.LiquidFugacityCoeffcient(Nc, T_c, Pc_c, W_c, T, P, V_c, S, gma_c);
- for i in 1:Nc loop
- Pvap_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, T);
- gmaliq_c[i] = philiq_c[i] * (P / Pvap_c[i]);
- end for;
-//========================================================================================================
-//Calculation Routine for Vapour Phase Fugacity Coefficient
-//Calculation of Equation of State Constants
- a_c = Simulator.Files.ThermodynamicFunctions.EOSConstants(Nc, T_c, Pc_c, T);
- b_c = Simulator.Files.ThermodynamicFunctions.EOSConstantII(Nc, T_c, Pc_c, T);
- aij_c = Simulator.Files.ThermodynamicFunctions.EOSConstantIII(Nc, a_c);
- amv = Simulator.Files.ThermodynamicFunctions.EOSConstant1V(Nc, x_pc[3, :], aij_c);
- bmv = sum(x_pc[3, :] .* b_c[:]);
- Avap = amv * P / (R * T) ^ 2;
- Bvap = bmv * P / (R * T);
- for i in 1:Nc loop
- if bmv == 0 then
- C_c[i] = 0;
- else
- C_c[i] = b_c[i] / bmv;
- end if;
- end for;
- for i in 1:Nc loop
- if amv == 0 then
- D_c[i] = 0;
- else
- D_c[i] = a_c[i] / amv;
- end if;
- end for;
- for i in 1:Nc loop
- t1_c[i] = b_c[i] * (Zvap - 1) / bmv;
- t3_c[i] = Avap / (Bvap * u ^ (2 ^ 0.5)) * (C_c[i] - 2 * D_c[i] ^ 0.5);
- end for;
- t4 = log(2 * Zvap + Bvap * (u + u ^ (2 ^ 0.5))) / (2 * Zvap + Bvap * (u - u ^ (2 ^ 0.5)));
- t2 = -log(Zvap - Bvap);
- Cpres_p[:] = zeros(3);
- Hres_p[:] = zeros(3);
- Sres_p[:] = zeros(3);
- for i in 1:Nc loop
- phivap_c[i] = exp(t1_c[i] + t2 + t3_c[i] * t4);
- K_c[i] = philiq_c[i] / phivap_c[i];
- end for;
-//====================================================================================================
-//Bubble Point Algorithm
- V = sum(x_pc[1, :] .* V_c[:]);
- Vs = sum(x_pc[1, :] .* V_c[:] .* SP_c[:]);
- S_bubl = Vs / V;
- for i in 1:Nc loop
- gmabubl[i] = exp(V_c[i] * (SP_c[i] - S_bubl) ^ 2 / (Rgas * T));
- end for;
- for i in 1:Nc loop
- Tr_c[i] = T / T_c[i];
- if Pc_c[i] <= 0 then
- Prbubl_c[i] = 0;
- else
- Prbubl_c[i] = Pbubl / Pc_c[i];
- end if;
- if T_c[i] == 33.19 then
- Vo_c[i] = 10 ^ (1.50709 + 2.74283 / Tr_c[i] + (-0.0211) * Tr_c[i] + 0.00011 * Tr_c[i] * Tr_c[i] + 0.008585 - log10(Prbubl_c[i]));
- elseif T_c[i] == 190.56 then
- Vo_c[i] = 10 ^ (1.36822 + (-1.54831) / Tr_c[i] + 0.02889 * Tr_c[i] * Tr_c[i] + (-0.01076) * Tr_c[i] * Tr_c[i] * Tr_c[i] + 0.10486 + (-0.02529) * Tr_c[i] - log10(Prbubl_c[i]));
- else
- Vo_c[i] = 10 ^ (2.05135 + (-2.10889) / Tr_c[i] + (-0.19396) * Tr_c[i] * Tr_c[i] + 0.02282 * Tr_c[i] * Tr_c[i] * Tr_c[i] + (0.08852 + (-0.00872) * Tr_c[i] * Tr_c[i]) * Prbubl_c[i] + ((-0.00353) + 0.00203 * Tr_c[i]) * (Prbubl_c[i] * Prbubl_c[i]) - log10(Prbubl_c[i]));
- end if;
- V1_c[i] = 10 ^ ((-4.23893) + 8.65808 * Tr_c[i] - 1.2206 / Tr_c[i] - 3.15224 * Tr_c[i] ^ 3 - 0.025 * (Prbubl_c[i] - 0.6));
- if V1_c[i] == 0 then
- v_c[i] = 10 ^ log10(Vo_c[i]);
- else
- v_c[i] = 10 ^ (log10(Vo_c[i]) + W_c[i] * log10(V1_c[i]));
- end if;
- philiqbubl_c[i] = v_c[i] * gmabubl[i];
- end for;
- for i in 1:Nc loop
- gmabubl_c[i] = philiqbubl_c[i] * (Pbubl / Pvap_c[i]);
- end for;
-//===================================================================================
-//Dew Point Algorithm
- for i in 1:Nc loop
- if gmadew_c[i] * Pvap_c[i] == 0 then
- xliqdew_c[i] = 0;
- else
- xliqdew_c[i] = x_pc[1, i] * Pdew / (gmadew_c[i] * Pvap_c[i]);
- end if;
- end for;
- amvdew = Simulator.Files.ThermodynamicFunctions.EOSConstant1V(Nc, xliqdew_c[:], aij_c);
- bmvdew = sum(xliqdew_c[:] .* b_c[:]);
- Avapdew = amvdew * Pdew / (R * T) ^ 2;
- Bvapdew = bmvdew * Pdew / (R * T);
- for i in 1:Nc loop
- if bmvdew == 0 then
- A_c[i] = 0;
- else
- A_c[i] = b_c[i] / bmvdew;
- end if;
- end for;
- for i in 1:Nc loop
- if amvdew == 0 then
- B_c[i] = 0;
- else
- B_c[i] = a_c[i] / amvdew;
- end if;
- end for;
- if Bvapdew * u ^ (2 ^ 0.5) == 0 then
- E = 0;
- else
- E = Bvapdew * u ^ (2 ^ 0.5);
- end if;
- if E == 0 then
- G = 0;
- else
- G = Avapdew / E;
- end if;
- if bmvdew == 0 then
- I = 0;
- else
- I = (Zvapdew - 1) / bmvdew;
- end if;
- if Zvapdew - Bvapdew <= 0 then
- J = 0;
- else
- J = -log(Zvapdew - Bvapdew);
- end if;
- for i in 1:Nc loop
- t1dew_c[i] = b_c[i] * I;
- t3dew_c[i] = G * (A_c[i] - 2 * B_c[i] ^ 0.5);
- end for;
- if (2 * Zvapdew + Bvapdew * (u + u ^ (2 ^ 0.5))) / (2 * Zvapdew + Bvapdew * (u - u ^ (2 ^ 0.5))) <= 0 then
- t4dew = 0;
- else
- t4dew = log((2 * Zvapdew + Bvapdew * (u + u ^ (2 ^ 0.5))) / (2 * Zvapdew + Bvapdew * (u - u ^ (2 ^ 0.5))));
- end if;
- t2dew = J;
- for i in 1:Nc loop
- phivapdew_c[i] = exp(t1dew_c[i] + t2dew + t3dew_c[i] * t4dew);
- if Pvap_c[i] == 0 then
- H_c[i] = 0;
- else
- H_c[i] = Pdew / Pvap_c[i];
- end if;
- gmadew_c[i] = phivapdew_c[i] * H_c[i];
- end for;
- algorithm
- Cvapdew[1] := 1;
- Cvapdew[2] := -(1 + Bvapdew - u * Bvapdew);
- Cvapdew[3] := Avapdew - u * Bvapdew - u * Bvapdew ^ 2;
- Cvapdew[4] := -Avapdew * Bvapdew;
- ZRvapdew := Modelica.Math.Vectors.Utilities.roots(Cvapdew);
- ZVapdew := {ZRvapdew[i, 1] for i in 1:3};
- Zvapdew := max({ZVapdew});
- algorithm
- Cvap[1] := 1;
- Cvap[2] := -(1 + Bvap - u * Bvap);
- Cvap[3] := Avap - u * Bvap - u * Bvap ^ 2;
- Cvap[4] := -Avap * Bvap;
- ZRvap := Modelica.Math.Vectors.Utilities.roots(Cvap);
- ZVap := {ZRvap[i, 1] for i in 1:3};
- Zvap := max({ZVap});
-//==========================================================================================================
- end GraysonStreed;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/NRTL.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/NRTL.mo
deleted file mode 100644
index cf4eba1..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/NRTL.mo
+++ /dev/null
@@ -1,32 +0,0 @@
-within Simulator.Files.ThermodynamicPackages;
-
- model NRTL
- import Simulator.Files.Thermodynamic_Functions.*;
- Simulator.Files.Models.gammaNRTL Gma(Nc = Nc, C = C, x_c = x_pc[2, :], T = T), GmaDew(Nc = Nc, C = C, x_c = xliqdew_c, T = T), GmaBubl(Nc = Nc, C = C, x_c = x_pc[1, :], T = T);
- Real xliqdew_c[Nc], rho_c[Nc];
- Real Cpres_p[3] "residual specific heat", Hres_p[3] "residual enthalpy", Sres_p[3] "residual Entropy", K_c[Nc], gma_c[Nc](each start = 1), gmabubl_c[Nc](each start = 1), gmadew_c[Nc](each start = 1);
- Real philiqbubl_c[Nc], phivapdew_c[Nc], Pvap_c[Nc];
- equation
- gma_c= Gma.gma_c;
- for i in 1:Nc loop
- xliqdew_c[i] = x_pc[1, i] * Pdew / (gmadew_c[i] * Pvap_c[i]);
- rho_c[i] = Simulator.Files.ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, T, P);
- end for;
- for i in 1:Nc loop
- philiqbubl_c[i] = 1;
- phivapdew_c[i] = 1;
- end for;
- for i in 1:Nc loop
- gmabubl_c[i] = GmaBubl.gma_c[i];
- gmadew_c[i] = GmaDew.gma_c[i];
- end for;
- for i in 1:Nc loop
- Pvap_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, T);
- end for;
- for i in 1:Nc loop
- K_c[i] = gma_c[i] * Pvap_c[i] / P;
- end for;
- Cpres_p[:] = zeros(3);
- Hres_p[:] = zeros(3);
- Sres_p = zeros(3);
- end NRTL;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/PengRobinson.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/PengRobinson.mo
deleted file mode 100644
index e0f3ce9..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/PengRobinson.mo
+++ /dev/null
@@ -1,160 +0,0 @@
-within Simulator.Files.ThermodynamicPackages;
-
- model PengRobinson
-
- //=====================================================================
- //Header files and Parameters
- import Simulator.Files.*;
- parameter Real R = 8.314 "Ideal Gas Constant";
- parameter Real kij_c[Nc, Nc](each start = 1) = Simulator.Files.ThermodynamicFunctions.BIPPR(Nc, C.name);
-
- //======================================================================
- //Model Variables
- Real Tr_c[Nc](each start = Tg) "Reduced temperature";
- Real b_c[Nc];
- Real a_c[Nc](start = xg);
- Real m_c[Nc];
- Real q_c[Nc];
- Real aij_c[Nc, Nc];
- Real K_c[Nc](start = K_guess);
- Real Pvap_c[Nc](start=Pg) "Saturated Vapor Pressure";
- Real philiq_c[Nc](each start = 5) "Liquid Phase Fugasity coefficient";
- Real phivap_c[Nc](each start = 5) "Vapor Phase Fugasity coefficient";
- Real gmabubl_c[Nc], gmadew_c[Nc];
- Real philiqbubl_c[Nc], phivapdew_c[Nc];
- Real Cpres_p[3], Hres_p[3], Sres_p[3];
- Real aMliq, bMliq;
- Real Aliq(start=xliqg), Bliq(start=xvapg);
- Real Cliq[4];
- Real Z_RL[3, 2](start=xliqg);
- Real Zliq[3](start=xliqg), Zll(start=xvapg);
- Real sumxliq[Nc];
- Real aMvap, bMvap;
- Real Avap(start=xliqg), Bvap(start=xvapg);
- Real Cvap[4];
- Real Z_RV[3, 2](start= xvapg);
- Real Zvap[3](start=xvapg), Zvv;
- Real sumxvap[Nc];
- Real A, B, Cdummy, D_c[Nc], E, F, G, H_c[Nc], I_c[Nc], J_c[Nc];
- Real gma[Nc];
-
- extends GuessModels.InitialGuess;
- //======================================================================
- equation
- for i in 1:Nc loop
- Pvap_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, T);
- gmadew_c[i] = 1;
- gmabubl_c[i] = 1;
- philiqbubl_c[i] = 1;
- phivapdew_c[i] = 1;
- gma[i] = 1;
- end for;
- Cpres_p[:] = zeros(3);
- Hres_p[:] = zeros(3);
- Sres_p[:] = zeros(3);
- Tr_c = T ./ C.Tc;
- b_c = 0.0778 * R * C.Tc ./ C.Pc;
- m_c = 0.37464 .+ 1.54226 * C.AF .- 0.26992 * C.AF .^ 2;
- q_c = 0.45724 * R ^ 2 * C.Tc .^ 2 ./ C.Pc;
- a_c = q_c .* (1 .+ m_c .* (1 .- sqrt(Tr_c))) .^ 2;
- aij_c = {{(1 - kij_c[i, j]) * sqrt(a_c[i] * a_c[j]) for i in 1:Nc} for j in 1:Nc};
-
- //======================================================================
-//Liquid_Fugacity Coefficient Calculation Routine
- aMliq = sum({{x_pc[2, i] * x_pc[2, j] * aij_c[i, j] for i in 1:Nc} for j in 1:Nc});
- bMliq = sum(b_c .* x_pc[2, :]);
- Aliq = aMliq * P / (R * T) ^ 2;
- Bliq = bMliq * P / (R * T);
- Cliq[1] = 1;
- Cliq[2] = Bliq - 1;
- Cliq[3] = Aliq - 3 * Bliq ^ 2 - 2 * Bliq;
- Cliq[4] = Bliq ^ 3 + Bliq ^ 2 - Aliq * Bliq;
- Z_RL = Modelica.Math.Vectors.Utilities.roots(Cliq);
- Zliq = {Z_RL[i, 1] for i in 1:3};
- Zll = min({Zliq});
- sumxliq = {sum({x_pc[2, j] * aij_c[i, j] for j in 1:Nc}) for i in 1:Nc};
- if Zll + 2.4142135 * Bliq <= 0 then
- A = 1;
- else
- A = Zll + 2.4142135 * Bliq;
- end if;
- if Zll - 0.414213 * Bliq <= 0 then
- B = 1;
- else
- B = Zll - 0.414213 * Bliq;
- end if;
- if Zll - Bliq <= 0 then
- Cdummy = 0;
- else
- Cdummy = log(Zll - Bliq);
- end if;
- for i in 1:Nc loop
- if bMliq == 0 then
- D_c[i] = 0;
- else
- D_c[i] = b_c[i] / bMliq;
- end if;
- end for;
- for i in 1:Nc loop
- if aMliq == 0 then
- J_c[i] = 0;
- else
- J_c[i] = sumxliq[i] / aMliq;
- end if;
- end for;
- philiq_c = exp(Aliq / (Bliq * sqrt(8)) * log(A / B) .* (D_c .- 2 * J_c) .+ (Zll - 1) * D_c .- Cdummy);
-
- //======================================================================
-//Vapour Fugacity Calculation Routine
- aMvap = sum({{x_pc[3, i] * x_pc[3, j] * aij_c[i, j] for i in 1:Nc} for j in 1:Nc});
- bMvap = sum(b_c .* x_pc[3, :]);
- Avap = aMvap * P / (R * T) ^ 2;
- Bvap = bMvap * P / (R * T);
- Cvap[1] = 1;
- Cvap[2] = Bvap - 1;
- Cvap[3] = Avap - 3 * Bvap ^ 2 - 2 * Bvap;
- Cvap[4] = Bvap ^ 3 + Bvap ^ 2 - Avap * Bvap;
- Z_RV = Modelica.Math.Vectors.Utilities.roots(Cvap);
- Zvap = {Z_RV[i, 1] for i in 1:3};
- Zvv = max({Zvap});
- sumxvap = {sum({x_pc[3, j] * aij_c[i, j] for j in 1:Nc}) for i in 1:Nc};
- if Zvv + 2.4142135 * Avap <= 0 then
- E = 1;
- else
- E = Zvv + 2.4142135 * Bvap;
- end if;
- if Zvv - 0.414213 * Bvap <= 0 then
- F = 1;
- else
- F = Zvv - 0.414213 * Bvap;
- end if;
- if Zvv - Bvap <= 0 then
- G = 0;
- else
- G = log(Zvv - Bvap);
- end if;
- for i in 1:Nc loop
- if bMvap == 0 then
- H_c[i] = 0;
- else
- H_c[i] = b_c[i] / bMvap;
- end if;
- end for;
- for i in 1:Nc loop
- if aMvap == 0 then
- I_c[i] = 0;
- else
- I_c[i] = sumxvap[i] / aMvap;
- end if;
- end for;
- phivap_c = exp(Avap / (Bvap * sqrt(8)) * log(E / F) .* (H_c .- 2 * I_c) .+ (Zvv - 1) * H_c .- G);
- for i in 1:Nc loop
- if philiq_c[i] == 0 or phivap_c[i] == 0 then
- K_c[i] = 0;
- else
- K_c[i] = philiq_c[i] / phivap_c[i];
- end if;
- end for;
- end PengRobinson;
-
- //=============================================================================================================
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/RaoultsLaw.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/RaoultsLaw.mo
deleted file mode 100644
index c318000..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/RaoultsLaw.mo
+++ /dev/null
@@ -1,25 +0,0 @@
-within Simulator.Files.ThermodynamicPackages;
-
- model RaoultsLaw
- import Simulator.Files.ThermodynamicFunctions.*;
- Real K_c[Nc](each min = 0), Cpres_p[3], Hres_p[3], Sres_p[3];
- Real gma_c[Nc], gmabubl_c[Nc], gmadew_c[Nc];
- Real philiqbubl_c[Nc], phivapdew_c[Nc], Pvap_c[Nc];
- equation
- for i in 1:Nc loop
- gma_c[i] = 1;
- gmabubl_c[i] = 1;
- gmadew_c[i] = 1;
- philiqbubl_c[i] = 1;
- phivapdew_c[i] = 1;
- end for;
- for i in 1:Nc loop
- Pvap_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, T);
- end for;
- for j in 1:Nc loop
- K_c[j] = Pvap_c[j] / P;
- end for;
- Cpres_p[:] = zeros(3);
- Hres_p[:] = zeros(3);
- Sres_p[:] = zeros(3);
- end RaoultsLaw;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIFAC.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIFAC.mo
deleted file mode 100644
index e64210f..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIFAC.mo
+++ /dev/null
@@ -1,189 +0,0 @@
-within Simulator.Files.ThermodynamicPackages;
-
- model UNIFAC
- //Libraries
- import Simulator.Files.*;
- import Simulator.Files.ThermodynamicFunctions;
- //Parameter Section
- parameter Integer m = 4 "substitue of number of different group";
- parameter Integer k = 4 "number of different group in component i";
- //Van de wal surface area and volume constant's
- parameter Real V_ck[Nc, k] = {{1, 1, 1, 0}, {1, 0, 1, 0}} "number of group of kind k in molecule ";
- parameter Real R_ck[Nc, k] = {{0.9011, 0.6744, 1.6724, 0}, {0.9011, 0, 1.6724, 0}} "group volume of group k ";
- parameter Real Q_ck[Nc, k] = {{0.848, 0.540, 1.448, 0}, {0.848, 0, 1.448, 0}} "group surface area of group k";
- //Intreraction parameter
- parameter Real a[m, k] = {{0, 0, 476.4, 1318}, {0, 0, 476.4, 1318}, {26.76, 26.76, 0, 472.5}, {300, 300, -195.4, 0}} "Binary intraction parameter";
- Real Psat[Nc] "Saturated Vapour Pressure at the input temperature";
- //Intermediate values used to compute UNIFAC R and Q values
- Real q[Nc] "Van der walls molecular surface area";
- Real r[Nc] "Van der walls molecular volume";
- Real e_kc[k, Nc] "Group Surface area fraction of comp i";
- Real tow[m, k] "Boltzmann factors";
- Real B_ck[Nc, k] "UNIFAC parameter ";
- Real theta_k[k] "UNIFAC parameter";
- Real sum_c[Nc];
- Real S_k[k] "Unifac parameter ";
- Real J_c[Nc] "Surface area fraction of comp i";
- Real L_c[Nc] "Molecular volume fraction of comp i";
- //Activity Coefficients
- Real gmacom_c[Nc] "Combinatorial activity coefficient of comp i";
- Real gmares_c[Nc] "Residual activity coefficient of comp i";
- Real gma_c[Nc] " Activity coefficient";
- Real K_c[Nc] "Equlibrium constant of compound i";
- //Fugacity coefficient at the Bubble and Dew Points
- Real philbubl_c[Nc], phivdew_c[Nc];
- //Activity Coefficient at the Bubble and Dew Points
- Real gmabubl_c[Nc], gmadew_c[Nc](each start = 1.5);
- //Excess Energy Properties
- Real Cpres_c[3], Hres_c[3], Sres_c[3];
- //===============================================================================
- //Bubble Point Calculation Variables
- Real theta_bubl[k] "UNIFAC parameter";
- Real Sbubl_c[k] "Unifac parameter ";
- Real Jbubl_c[Nc] "Surface area fraction of comp i";
- Real Lbubl_c[Nc] "Molecular volume fraction of comp i";
- Real gmacbubl_C[Nc] "Combinatorial activity coefficient of components at bubble point";
- Real gmarbubl_C[Nc] "Residual activity coefficient of components at bubble point";
- Real sumbubl_c[Nc];
- //===============================================================================
- //Dew Point Calculation Routine
- Real theta_dew[k] "UNIFAC parameter";
- Real Sdew_c[k] "Unifac parameter ";
- Real Jdew_c[Nc] "Surface area fraction of comp i";
- Real Ldew_c[Nc] "Molecular volume fraction of comp i";
- Real gmacdew_c[Nc] "combinatorial activity coefficient of components at dew point";
- Real gmardew_c[Nc] "residual activity coefficient of components at dew point";
- Real sumdew_c[Nc];
- Real xliqdew_c[Nc](each start = 0.5);
- //==============================================================================
- equation
- Cpres_c[:] = zeros(3);
- Hres_c[:] = zeros(3);
- Sres_c[:] = zeros(3);
- for i in 1:Nc loop
- Psat[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP[:], T);
- end for;
- for i in 1:Nc loop
- philbubl_c[i] = 1;
- phivdew_c[i] = 1;
- end for;
- for i in 1:m loop
-//tow_m_k=exp((-a_m_k)/t)
- tow[i, :] = exp((-a[i, :]) / T);
- end for;
-// Equlibrium constant
- for i in 1:Nc loop
- K_c[i] = gma_c[i] * Psat[i] / P;
- end for;
-//surface area constant
- for i in 1:Nc loop
- q[i] = sum(V_ck[i, :] .* Q_ck[i, :]);
-//surface volume constant
- r[i] = sum(V_ck[i, :] .* R_ck[i, :]);
- e_kc[:, i] = V_ck[i, :] .* Q_ck[i, :] / q[i];
- end for;
- for i in 1:Nc loop
- J_c[i] = r[i] / sum(r[:] .* x_pc[2, :]);
- L_c[i] = q[i] / sum(q[:] .* x_pc[2, :]);
- gmacom_c[i] = exp(1 - J_c[i] + log(J_c[i]) + (-5 * q[i] * (1 - J_c[i] / L_c[i] + log(J_c[i] / L_c[i]))));
- end for;
-//=======================================================================================
- for j in 1:k loop
- theta_k[j] = sum(x_pc[2, :] .* q[:] .* e_kc[j, :]) / sum(x_pc[2, :] .* q[:]);
- end for;
- for i in 1:k loop
- S_k[i] = sum(theta_k[:] .* tow[:, i]);
- end for;
- algorithm
- for i in 1:Nc loop
- for j in 1:k loop
- for l in 1:m loop
- B_ck[i, j] := sum(e_kc[:, i] .* tow[:, j]);
- end for;
- end for;
- end for;
- sum_c[:] := fill(0, Nc);
- for j in 1:k loop
- for i in 1:Nc loop
- sum_c[i] := sum_c[i] + theta_k[j] * B_ck[i, j] / S_k[j] - e_kc[j, i] * log(B[i, j] / S_k[j]);
- gmares_c[i] := exp(q[i] * (1 - sum_c[i]));
- end for;
- end for;
- equation
-// activity coefficient:
- for i in 1:Nc loop
- gma_c[i] = exp(log(gmares_c[i]) + log(gmacom_c[i]));
- end for;
-//===============================================================================================
-//Bubble Point Calculation Routine
- for i in 1:Nc loop
- Jbubl_c[i] = r[i] / sum(r[:] .* x_pc[1, :]);
- Lbubl_c[i] = q[i] / sum(q[:] .* x_pc[1, :]);
- gmacbubl_C[i] = exp(1 - Jbubl_c[i] + log(Jbubl_c[i]) + (-5 * q[i] * (1 - Jbubl_c[i] / Lbubl_c[i] + log(Jbubl_c[i] / Lbubl_c[i]))));
- end for;
- for j in 1:k loop
- theta_bubl[j] = sum(x_pc[1, :] .* q[:] .* e_kc[j, :]) / sum(x_pc[1, :] .* q[:]);
- end for;
- for i in 1:k loop
- Sbubl_c[i] = sum(theta_bubl[:] .* tow[:, i]);
- end for;
- algorithm
- sumbubl_c[:] := fill(0, Nc);
- for j in 1:k loop
- for i in 1:Nc loop
- sumbubl_c[i] := sumbubl_c[i] + theta_bubl[j] * B[i, j] / Sbubl_c[j] - e_kc[j, i] * log(B[i, j] / Sbubl_c[j]);
- gmarbubl_C[i] := exp(q[i] * (1 - sumbubl_c[i]));
- end for;
- end for;
- equation
- for i in 1:Nc loop
- gmabubl_c[i] = exp(log(gmarbubl_C[i]) + log(gmacbubl_C[i]));
- end for;
-//=======================================================================================================
-//Dew Point Calculation Routine
- for i in 1:Nc loop
- xliqdew_c[i] = x_pc[1, i] * Pdew / (gmadew_c[i] * Psat[i]);
- end for;
- for i in 1:Nc loop
- Jdew_c[i] = r[i] / sum(r[:] .* xliqdew_c[:]);
- Ldew_c[i] = q[i] / sum(q[:] .* xliqdew_c[:]);
- gmacdew_c[i] = exp(1 - Jdew_c[i] + log(Jdew_c[i]) + (-5 * q[i] * (1 - Jdew_c[i] / Ldew_c[i] + log(Jdew_c[i] / Ldew_c[i]))));
- end for;
- for j in 1:k loop
- theta_dew[j] = sum(xliqdew_c[:] .* q[:] .* e_kc[j, :]) / sum(xliqdew_c[:] .* q[:]);
- end for;
- for i in 1:k loop
- Sdew_c[i] = sum(theta_dew[:] .* tow[:, i]);
- end for;
- algorithm
- sumdew_c[:] := fill(0, Nc);
- for j in 1:k loop
- for i in 1:Nc loop
- sumdew_c[i] := sumdew_c[i] + theta_dew[j] * B[i, j] / Sdew_c[j] - e_kc[j, i] * log(B[i, j] / Sdew_c[j]);
- gmardew_c[i] := exp(q[i] * (1 - sumdew_c[i]));
- end for;
- end for;
- equation
- for i in 1:Nc loop
- gmadew_c[i] = exp(log(gmardew_c[i]) + log(gmacdew_c[i]));
- end for;
-//=================================================================================================s
- annotation(
- Documentation(info = "
-
- UNIFAC-Universal Functional group Model
-
- Description:
-
- UNIFAC(Univeral functional group) model is a semi empherical system to determine the activity coefficient in non ideal mixtures. It makes use of the functional group present in the chemical molecule to predict the phase equlibria of the system.
- The activity coefficent comprises of two major contibutions named as combinatorial and residual contribution
- Combinatorial contribution focusses on the deviation from ideality as a result of molecular shape while the residual contribution quantifies the interaction between different groups in the system.
-
- Equations and References:
- https://wikimedia.org/api/rest_v1/media/math/render/svg/b6eb40a653fe590b5bfa137fe76342eef6a502d2
-
-
- "),
- experiment(StopTime = 1.0, Interval = 0.001));
- end UNIFAC;
-
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIQUAC.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIQUAC.mo
deleted file mode 100644
index 932c692..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/UNIQUAC.mo
+++ /dev/null
@@ -1,349 +0,0 @@
-within Simulator.Files.ThermodynamicPackages;
-
- model UNIQUAC
- //Libraries
- import Simulator.Files.*;
- //Parameter Section
- //Binary Interaction Parameters
- //Function :BIP_UNIQUAC is used to obtain the interaction parameters
- parameter Real a[Nc, Nc] = ThermodynamicFunctions.BIPUNIQUAC(Nc, C.name);
- //Uniquac Parameters R and Q called from Chemsep Database
- parameter Real R[Nc] = C.UniquacR;
- parameter Real Q[Nc] = C.UniquacQ;
- parameter Integer Z = 10 "Compresseblity-Factor";
- //Variable Section
- Real tow[Nc, Nc] "Energy interaction parameter";
- //Intermediate variables to calculate the combinatorial and residual part of activity coefficient at the input conditions
- Real r(each start = 2, min = 0, max = 1), q(each start = 2);
- Real theta_c[Nc];
- Real S_c[Nc](each start = 1);
- Real Sum_c[Nc];
- //Activity Coefficients
- Real gmacom_c[Nc](each start = 1.2) "Combinatorial Part of activity coefficent at input conditions";
- Real gmares_c[Nc](each start = 1.2) "Residual part of activity coefficient at input conditions";
- Real gmanew_c[Nc](each start = 1.2);
- Real gma_c[Nc](each start = 1.2) "Activity coefficient with Poynting correction";
- //Fugacity coefficient
- Real phil[Nc](each start = 0.5) "Fugacity coefficient at the input conditions";
- //Dew Point Calculation Variables
- Real xliqdew_c[Nc](each start = 0.5, each min = 0, each max = 1);
- //Intermediate variables to calculate the combinatorial and residual part of activity coefficient at dew point
- Real rdew(start = 2), qdew(start = 2);
- Real thetadew_c[Nc](each start = 2);
- Real Sdew_c[Nc](each start = 1);
- Real sum_dew[Nc](each start = 2);
- //Activity Coefficients
- Real gmacdew_c[Nc](each start = 5) "Combinatorial Part of activity coefficent at dew point";
- Real gmardew_c[Nc](each start = 2.5) "Residual part of activity coefficient at dew point";
- Real gmaolddew_c[Nc](each start = 2.2) "Combinatorial Part of activity coefficent(without correction)";
- Real gmadew_c[Nc](each start = 2.2) "Activity coefficent at dew point";
- //Fugacity coefficient
- Real phivapdew_c[Nc] "Vapour Fugacity coefficient at dew point";
- Real phildew_c[Nc](each start = 0.5);
- Real PCFdew_c[Nc] "Poynting Correction Factor";
- //Bubble Point Calculation Variables
- //Intermediate variables to calculate the combinatorial and residual part of activity coefficient at bubble point
- Real rbubl(start = 2), qbubl(start = 2);
- Real thetabubl_c[Nc];
- Real Sbubl_c[Nc];
- Real Sumbubl_c[Nc];
- //Activity Coefficients
- Real gmacbubl_c[Nc](each start = 2) "Combinatorial Part of activity coefficent at bubble point";
- Real gmarbubl_c[Nc](each start = 1) "Residual part of activity coefficent at bubble point";
- Real gmaoldbubl_c[Nc](each start = 1) "Combinatorial Part of activity coefficent(without correction)";
- Real gmabubl_c[Nc](each start = 1) "Activity coefficent at bubble point";
- //Fugacity coefficient
- Real philiqbubl_c[Nc];
- Real phibubl[Nc](each start = 0.5) "Liquid Phase Fugacity coefficient";
- Real PCFbubl_c[Nc] "Poynting Correction Factor";
- //Phase Envelope
- Real Pvap_c[Nc](each unit = "Pa") "Saturated Vapour Pressure at the input temperature";
- Real PCF_c[Nc] "Poynting correction factor";
- Real K_c[Nc](each start = 0.7) "Distribution Coefficient";
- //Residual Energy Parameters
- Real Cpres_p[3], Hres_p[3], Sres_p[3];
- //Transport Properties at the input conditions
- Real Density[Nc](each unit = "kmol/m^3");
- Real A[Nc], B[Nc], D[Nc], E[Nc], Ff[Nc];
- Real Cc[Nc];
- Real A_bubl[Nc], B_bubl[Nc], C_bubl[Nc], D_bubl[Nc], E_bubl[Nc], F_bubl[Nc];
- Real A_dew[Nc], B_dew[Nc], C_dew[Nc], D_dew[Nc], E_dew[Nc], F_dew[Nc];
- //===========================================================================================================
- //Equation Section
- equation
-//Fugacity coefficients set to 1 since the model type is Activity Coefficient
- for i in 1:Nc loop
- philiqbubl_c[i] = 1;
- phivapdew_c[i] = 1;
- end for;
-//Calculation of Intermediate parameters to evaluate combinatorial and residual part of the activity coefficient
-//Note : compMolFrac is the referenced from "Material Stream" model
- r = sum(x_pc[2, :] .* R[:]);
- q = sum(x_pc[2, :] .* Q[:]);
-//Calculation of Energy interaction parameter at the input tempetraure
-//Function :Tow_UNIQUAC is used to instantiated
- tow = Simulator.Files.ThermodynamicFunctions.TowUNIQUAC(Nc, a, T);
-//Calculation of Combinatorial and Residual Activity coefficient
- for i in 1:Nc loop
- if q > 0 then
- theta_c[i] = x_pc[2, i] * Q[i] * (1 / q);
- elseif q < 0 then
- theta_c[i] = 0;
- else
- theta_c[i] = 0;
- end if;
- end for;
- for i in 1:Nc loop
- if theta_c[i] == 0 then
- S_c[i] = 1;
- else
- S_c[i] = sum(theta_c[:] .* tow[i, :]);
- end if;
- if S_c[i] == 1 then
- Sum_c[i] = 0;
- else
- Sum_c[i] = sum(theta_c[:] .* tow[i, :] ./ S_c[:]);
- end if;
- end for;
- for i in 1:Nc loop
- if S_c[i] == 1 then
- Cc[i] = 0;
- elseif S_c[i] > 0 then
- Cc[i] = log(S_c[i]);
- else
- Cc[i] = 0;
- end if;
- gmares_c[i] = exp(Q[i] * (1 - Cc[i] - Sum_c[i]));
- end for;
-// //===================================================================
-// equation
- for i in 1:Nc loop
- if r > 0 then
- D[i] = R[i] / r;
- elseif r <= 0 then
- D[i] = 0;
- else
- D[i] = 0;
- end if;
- if q > 0 then
- E[i] = Q[i] / q;
- elseif q <= 0 then
- E[i] = 0;
- else
- E[i] = 0;
- end if;
- if E[i] == 0 or D[i] == 0 then
- Ff[i] = 0;
- else
- Ff[i] = D[i] / E[i];
- end if;
- if D[i] > 0 then
- A[i] = log(D[i]);
- elseif D[i] == 1 then
- A[i] = 0;
- else
- A[i] = 0;
- end if;
- if Ff[i] > 1 then
- B[i] = log(Ff[i]);
- elseif Ff[i] == 1 then
- B[i] = 0;
- else
- B[i] = 0;
- end if;
- log(gmacom_c[i]) = 1 - D[i] + A[i] + (-Z / 2 * Q[i] * (1 - Ff[i] + B[i]));
- gma_c[i] = gmacom_c[i] * gmares_c[i];
- end for;
-//=====================================================================================================
-//Excess Energy parameters are set to 0 since the calculation mode is Ideal
- Cpres_p[:] = zeros(3);
- Hres_p[:] = zeros(3);
- Sres_p[:] = zeros(3);
-//Calculation of Saturated vapour pressure and Density at the given input condition
- for i in 1:Nc loop
- Pvap_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, T);
- Density[i] = Simulator.Files.ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, T, P) * 1E-3;
- end for;
-//Calculation of Poynting correction Factor at input conditions,Bubble Point and Dew Point
-//Function :Poynting_CF is called from the Simulator Package
- for i in 1:Nc loop
- PCF_c[i] = ThermodynamicFunctions.PoyntingCF(Nc,C[i].Pc,C[i].Tc,C[i].Racketparam,C[i].AF,C[i].MW, T, P, gma_c[i], Pvap_c[i], Density[i]);
- PCFbubl_c[i] = ThermodynamicFunctions.PoyntingCF(Nc,C[i].Pc,C[i].Tc,C[i].Racketparam,C[i].AF,C[i].MW, T, Pbubl, gma_c[i], Pvap_c[i], Density[i]);
- PCFdew_c[i] = ThermodynamicFunctions.PoyntingCF(Nc,C[i].Pc,C[i].Tc,C[i].Racketparam,C[i].AF, C[i].MW, T, Pdew, gma_c[i], Pvap_c[i], Density[i]);
- end for;
-//Calculation of Fugacity coefficient with Poynting correction
- phil[:] = gma_c[:] .* Pvap_c[:] ./ P .* PCF_c[:];
- phil[:] = gmanew_c[:] .* Pvap_c[:] ./ P;
-//Calculation of Distribution coefficient
- K_c[:] = gmanew_c[:] .* Pvap_c[:] ./ P;
-//Binary Phase Envelope
-//The same calculation routine is followed at the DewPoint
-//Dew Point
- rdew = sum(xliqdew_c[:] .* R[:]);
- qdew = sum(xliqdew_c[:] .* Q[:]);
- for i in 1:Nc loop
- if qdew == 0 or x_pc[1, i] == 0 then
- xliqdew_c[i] = 0;
- else
- xliqdew_c[i] = x_pc[1, i] * Pdew / (gmadew_c[i] * Pvap_c[i]);
- end if;
- if qdew == 0 or xliqdew_c[i] == 0 then
- thetadew_c[i] = 0;
- else
- thetadew_c[i] = xliqdew_c[i] * Q[i] * (1 / qdew);
- end if;
- if thetadew_c[i] == 0 then
- Sdew_c[i] = 1;
- else
- Sdew_c[i] = sum(thetadew_c[:] .* tow[i, :]);
- end if;
- end for;
-//===================================================================================================
- for i in 1:Nc loop
- if Sdew_c[i] == 1 then
- sum_dew[i] = 0;
- else
- sum_dew[i] = sum(thetadew_c[:] .* tow[i, :] ./ Sdew_c[:]);
- end if;
- if Sdew_c[i] == 1 then
- C_dew[i] = 0;
- elseif Sdew_c[i] > 0 then
- C_dew[i] = log(Sdew_c[i]);
- else
- C_dew[i] = 0;
- end if;
- gmardew_c[i] = exp(Q[i] * (1 - C_dew[i] - sum_dew[i]));
- end for;
-//===============================================================================================
- for i in 1:Nc loop
- if rdew == 0 then
- D_dew[i] = 0;
- else
- D_dew[i] = R[i] / rdew;
- end if;
- if qdew == 0 then
- E_dew[i] = 0;
- else
- E_dew[i] = Q[i] / qdew;
- end if;
- if E_dew[i] == 0 then
- F_dew[i] = 0;
- else
- F_dew[i] = D_dew[i] / E_dew[i];
- end if;
- if D_dew[i] > 0 then
- A_dew[i] = log(D_dew[i]);
- elseif D_dew[i] == 1 then
- A_dew[i] = 0;
- else
- A_dew[i] = 0;
- end if;
- if F_dew[i] > 0 then
- B_dew[i] = log(F_dew[i]);
- elseif F_dew[i] == 1 then
- B_dew[i] = 0;
- else
- B_dew[i] = 0;
- end if;
- log( gmacdew_c[i]) = 1 - D_dew[i] + A_dew[i] + (-Z / 2 * Q[i] * (1 - F_dew[i] + B_dew[i]));
- gmaolddew_c[i] = gmacdew_c[i] * gmardew_c[i];
- end for;
- for i in 1:Nc loop
- if Pdew == 0 then
- phildew_c[i] = 1;
- gmadew_c[i] = 1;
- else
- phildew_c[i] = gmaolddew_c[i] .* Pvap_c[i] ./ Pdew .* PCFdew_c[i];
- phildew_c[i] = gmadew_c[i] .* Pvap_c[i] ./ Pdew;
- end if;
- end for;
-//The same calculation routine is followed at the Bubble Point
-//Bubble Point
- rbubl = sum(x_pc[1, :] .* R[:]);
- qbubl = sum(x_pc[1, :] .* Q[:]);
- for i in 1:Nc loop
- if x_pc[1, i] == 0 then
- thetabubl_c[i] = 0;
- else
- thetabubl_c[i] = x_pc[1, i] * Q[i] * (1 / qbubl);
- end if;
- if thetabubl_c[i] == 0 then
- Sbubl_c[i] = 1;
- else
- Sbubl_c[i] = sum(thetabubl_c[:] .* tow[i, :]);
- end if;
- if Sbubl_c[i] == 1 then
- Sumbubl_c[i] = 0;
- else
- Sumbubl_c[i] = sum(thetabubl_c[:] .* tow[i, :] ./ Sbubl_c[:]);
- end if;
- if Sbubl_c[i] == 1 then
- C_bubl[i] = 0;
- elseif Sbubl_c[i] > 0 then
- C_bubl[i] = log(Sbubl_c[i]);
- else
- C_bubl[i] = 0;
- end if;
- log( gmarbubl_c[i]) = Q[i] * (1 - C_bubl[i] - Sumbubl_c[i]);
-//=========================================================================================================
- if rbubl == 0 then
- D_bubl[i] = 0;
- else
- D_bubl[i] = R[i] / rbubl;
- end if;
- if qbubl == 0 then
- E_bubl[i] = 0;
- else
- E_bubl[i] = Q[i] / qbubl;
- end if;
- if E_bubl[i] == 0 then
- F_bubl[i] = 0;
- else
- F_bubl[i] = D_bubl[i] / E_bubl[i];
- end if;
- if D_bubl[i] > 0 then
- A_bubl[i] = log(D_bubl[i]);
- elseif D_bubl[i] == 1 then
- A_bubl[i] = 0;
- else
- A_bubl[i] = 0;
- end if;
- if F_bubl[i] > 0 then
- B_bubl[i] = log(F_bubl[i]);
- elseif F_bubl[i] == 1 then
- B_bubl[i] = 0;
- else
- B_bubl[i] = 0;
- end if;
- log(gmacbubl_c[i]) = 1 - D_bubl[i] + A_bubl[i] + (-Z / 2 * Q[i] * (1 - F_bubl[i] + B_bubl[i]));
- gmaoldbubl_c[i] = gmacbubl_c[i] * gmarbubl_c[i];
- end for;
- for i in 1:Nc loop
- if Pbubl == 0 then
- phibubl[i] = 1;
- gmabubl_c[i] = 1;
- else
- phibubl[i] = gmaoldbubl_c[i] .* Pvap_c[i] ./ Pbubl .* PCFbubl_c[i];
- phibubl[i] = gmabubl_c[i] .* Pvap_c[i] ./ Pbubl;
- end if;
- end for;
- annotation(
- Documentation(info = "
-
- UNIQUAC-Universal Quasi Coefficient Model
-
- Description:
-
- UNIQUAC(Univeral Quasi Coefficient) model is an activity coefficient based thermodynamic model used to predict phase equilibria in Chemical Engineering.
- The activity coefficent comprises of two major contibutions named as combinatorial and residual contribution
- Combinatorial contribution focusses on the deviation from ideality as a result of molecular shape while the residual contribution quantifies the enthalpic correction caused by the change in interactive forces between different molecules.
-
- Equations and References:
- https://wikimedia.org/api/rest_v1/media/math/render/svg/21b673ea8edb013fc1675d11b7e40263bef90ffa
-
-
- "),
- experiment(StopTime = 1.0, Interval = 0.001));
- end UNIQUAC;
-
- //=======================================================================================================
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.mo b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.mo
deleted file mode 100644
index 95bd58e..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files;
-
-package ThermodynamicPackages
- extends Modelica.Icons.VariantsPackage;
-
-end ThermodynamicPackages;
diff --git a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.order b/src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.order
deleted file mode 100644
index 8f1c507..0000000
--- a/src/main/Simulator/Simulator/Files/ThermodynamicPackages/package.order
+++ /dev/null
@@ -1,6 +0,0 @@
-RaoultsLaw
-NRTL
-UNIQUAC
-UNIFAC
-PengRobinson
-GraysonStreed
diff --git a/src/main/Simulator/Simulator/Files/TransportProperties/LiqK.mo b/src/main/Simulator/Simulator/Files/TransportProperties/LiqK.mo
deleted file mode 100644
index e6886d9..0000000
--- a/src/main/Simulator/Simulator/Files/TransportProperties/LiqK.mo
+++ /dev/null
@@ -1,10 +0,0 @@
-within Simulator.Files.TransportProperties;
-
- function LiqK
- extends Modelica.Icons.Function;
- input Real LiqK[6] "from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real kliq;
- algorithm
- kliq := LiqK[2] + exp(LiqK[3] / T + LiqK[4] + LiqK[5] * T + LiqK[6] * T ^ 2);
- end LiqK;
diff --git a/src/main/Simulator/Simulator/Files/TransportProperties/LiqVis.mo b/src/main/Simulator/Simulator/Files/TransportProperties/LiqVis.mo
deleted file mode 100644
index 825174b..0000000
--- a/src/main/Simulator/Simulator/Files/TransportProperties/LiqVis.mo
+++ /dev/null
@@ -1,11 +0,0 @@
-within Simulator.Files.TransportProperties;
-
- function LiqVis
- extends Modelica.Icons.Function;
- //This function calculates the liquid viscocity of the stream
- input Real LiqVis[6];
- input Real T;
- output Real Liqvisc;
- algorithm
- Liqvisc := exp(LiqVis[2] + LiqVis[3] / T + LiqVis[4] * log(T) + LiqVis[5] * T ^ LiqVis[6]);
- end LiqVis;
diff --git a/src/main/Simulator/Simulator/Files/TransportProperties/VapK.mo b/src/main/Simulator/Simulator/Files/TransportProperties/VapK.mo
deleted file mode 100644
index bcb5ed3..0000000
--- a/src/main/Simulator/Simulator/Files/TransportProperties/VapK.mo
+++ /dev/null
@@ -1,10 +0,0 @@
-within Simulator.Files.TransportProperties;
-
- function VapK
- extends Modelica.Icons.Function;
- input Real VapK[6] "from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real kvap;
- algorithm
- kvap := VapK[6] + VapK[2] * T ^ VapK[3] / (1 + VapK[4] / T + VapK[5] / T ^ 2);
- end VapK;
diff --git a/src/main/Simulator/Simulator/Files/TransportProperties/VapVisc.mo b/src/main/Simulator/Simulator/Files/TransportProperties/VapVisc.mo
deleted file mode 100644
index 31e3dbd..0000000
--- a/src/main/Simulator/Simulator/Files/TransportProperties/VapVisc.mo
+++ /dev/null
@@ -1,10 +0,0 @@
-within Simulator.Files.TransportProperties;
-
- function VapVisc
- extends Modelica.Icons.Function;
- input Real VapVis[6] "from chemsep database";
- input Real T(unit = "K") "Temperature";
- output Real vapvisc;
- algorithm
- vapvisc := VapVis[6] + VapVis[2] * T ^ VapVis[3] / (1 + VapVis[4] / T + VapVis[5] / T ^ 2);
- end VapVisc;
diff --git a/src/main/Simulator/Simulator/Files/TransportProperties/package.mo b/src/main/Simulator/Simulator/Files/TransportProperties/package.mo
deleted file mode 100644
index 7bafb58..0000000
--- a/src/main/Simulator/Simulator/Files/TransportProperties/package.mo
+++ /dev/null
@@ -1,6 +0,0 @@
-within Simulator.Files;
-
-package TransportProperties
- extends Modelica.Icons.FunctionsPackage;
-
-end TransportProperties;
diff --git a/src/main/Simulator/Simulator/Files/TransportProperties/package.order b/src/main/Simulator/Simulator/Files/TransportProperties/package.order
deleted file mode 100644
index c109137..0000000
--- a/src/main/Simulator/Simulator/Files/TransportProperties/package.order
+++ /dev/null
@@ -1,4 +0,0 @@
-LiqVis
-LiqK
-VapK
-VapVisc
diff --git a/src/main/Simulator/Simulator/Files/package.mo b/src/main/Simulator/Simulator/Files/package.mo
deleted file mode 100644
index 361b84f..0000000
--- a/src/main/Simulator/Simulator/Files/package.mo
+++ /dev/null
@@ -1,4 +0,0 @@
-within Simulator;
-package Files
- extends Modelica.Icons.BasesPackage;
-end Files;
diff --git a/src/main/Simulator/Simulator/Files/package.order b/src/main/Simulator/Simulator/Files/package.order
deleted file mode 100644
index 2d8ff2f..0000000
--- a/src/main/Simulator/Simulator/Files/package.order
+++ /dev/null
@@ -1,8 +0,0 @@
-ChemsepDatabase
-TransportProperties
-ThermodynamicFunctions
-Interfaces
-Models
-OtherFunctions
-Icons
-ThermodynamicPackages
diff --git a/src/main/Simulator/Simulator/GuessModels/GuessInput.mo b/src/main/Simulator/Simulator/GuessModels/GuessInput.mo
deleted file mode 100644
index fb27ad8..0000000
--- a/src/main/Simulator/Simulator/GuessModels/GuessInput.mo
+++ /dev/null
@@ -1,7 +0,0 @@
-within Simulator.GuessModels;
-
-model GuessInput
-
- parameter Real Pg = 101325;
- parameter Real Fg = 100;
-end GuessInput;
diff --git a/src/main/Simulator/Simulator/GuessModels/InitialGuess.mo b/src/main/Simulator/Simulator/GuessModels/InitialGuess.mo
deleted file mode 100644
index a52288b..0000000
--- a/src/main/Simulator/Simulator/GuessModels/InitialGuess.mo
+++ /dev/null
@@ -1,143 +0,0 @@
-within Simulator.GuessModels;
-
-model InitialGuess
-
- //Inputs Required to generate Guess Values
- extends GuessInput;
- //==========================================================================================
- //Guess variables for Pressures and Temperatures
- protected
- parameter Real xguess[Nc](each fixed = false);
- parameter Real Tg(fixed = false);
- parameter Real Temp(fixed = false, start = 300);
- parameter Real Pxc[Nc](each fixed = false), Pxm[Nc](each fixed = false);
- parameter Real Px(fixed = false);
- parameter Real Pmin(fixed = false), Pmax(fixed = false);
- parameter Real Tc[Nc](each fixed = false);
- parameter Real Psatt[Nc](each fixed = false);
- parameter Real Psatbg[Nc](each fixed = false);
- parameter Real Psatdg[Nc](each fixed = false);
- parameter Real Tbg(fixed = false, start = 200);
- parameter Real Tdg(fixed = false, start = 300);
-
- //Guess Variables for Enthalpies
- parameter Real Htotg(fixed = false);
- parameter Real Hliqg(fixed = false);
- parameter Real Hvapg(fixed = false);
- parameter Real Hmixg(fixed = false);
- parameter Real Hcompg[Nc](each fixed = false);
- parameter Real Hcomplg[Nc](each fixed = false);
- parameter Real Hcompvg[Nc](each fixed = false);
- //Guess variables for MoleFractions
- parameter Real ymol[Nc](each fixed = false), xmol[Nc](each fixed = false);
- parameter Real xg[Nc](each fixed = false), yg[Nc](each fixed = false);
-
- //Guess for VLE variables
- parameter Real xvapg(fixed = false), xliqg(fixed = false);
- parameter Real Beta(fixed = false), Alpha(fixed = false);
- parameter Real K_guess[Nc](each fixed = false);
-
- //Flow Rate-Guess
- parameter Real Fliqg(fixed = false), Fvapg(fixed = false);
-
- //======================================================================================
- initial equation
- for i in 1:Nc loop
- xguess[i] = 1/Nc;
- end for;
-//Initial guess for tray temperature
- Temp = (Tbg + Tdg) / 2;
-//Generation of Dew Temperatures for DC_guess
- Pg = 1 / sum(xguess[:] ./ Psatdg);
-//Generation of Bubble Temperature for DC guess-(Temperatures)
- Pg = sum(xguess[:] .* Psatbg[:]);
- for i in 1:Nc loop
- Psatbg[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, Tbg);
- Psatdg[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, Tdg);
- end for;
- Fg = Fliqg + Fvapg;
- xguess[1] * Fg = xg[1] * Fliqg + yg[1] * Fvapg;
-//============================================================================
- Tc = C.Tc;
- for i in 1:Nc loop
- Psatt[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, Temp);
- K_guess[i] = Psatt[i] / Pg;
- end for;
- xliqg = 1 - xvapg;
-//=============================================================================
- if Pg >= Pmax then
- xvapg = 0;
- elseif Pg >= Pmin then
- xvapg = (Pg - Pmin) / (Pmax - Pmin);
- else
- xvapg = 1;
- end if;
-//==============================================================================
- if xvapg > 1 then
- Beta = 1;
- elseif xvapg < 0 then
- Beta = 0;
- else
- Beta = xvapg;
- end if;
- Alpha = 1 - Beta;
- for i in 1:Nc loop
- if xguess[i] <> 0 then
- if Beta > 0 and Beta <> 1 then
- ymol[i] = xguess[i] * K_guess[i] / ((K_guess[i] - 1) * xvapg + 1);
- elseif Beta == 1 then
- ymol[i] = xguess[i];
- else
- ymol[i] = 0;
- end if;
- if Beta > 0 and Beta < 1 then
- xmol[i] = ymol[i] / K_guess[i];
- elseif Beta == 0 then
- xmol[i] = xguess[i];
- else
- xmol[i] = 0;
- end if;
- else
- xmol[i] = 0;
- ymol[i] = 0;
- end if;
- end for;
- for i in 1:Nc loop
- if xmol[i] < 0 then
- xg[i] = 0;
- elseif xg[i] > 1 then
- xg[i] = 1;
- else
- xg[i] = xmol[i];
- end if;
- if ymol[i] < 0 then
- yg[i] = 0;
- elseif ymol[i] > 1 then
- yg[i] = 1;
- else
- yg[i] = ymol[i];
- end if;
- end for;
-//Algorithm for computing the minimum pressure and maximum pressure of the system
- for i in 1:Nc loop
- Pxc[i] = xguess[i] / Psatt[i];
- end for;
- Px = sum(Pxc[:]);
- Pmin = 1 / Px;
- for i in 1:Nc loop
- Pxm[i] = xguess[i] * Psatt[i];
- end for;
- Pmax = sum(Pxm[:]);
-//Generating the temperature in case of PH Flash
- Tg = Temp;
- Htotg = Hmixg;
- for i in 1:Nc loop
- Hcompg[i] = xguess[i] * Htotg;
- Hcomplg[i] = Simulator.Files.ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Temp);
- Hcompvg[i] = Simulator.Files.ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Temp);
- end for;
- Htotg = Hliqg + Hvapg;
- Hliqg = sum(xguess .* Hcomplg);
- Hvapg = sum(xguess .* Hcompvg);
- equation
-end InitialGuess;
diff --git a/src/main/Simulator/Simulator/GuessModels/package.mo b/src/main/Simulator/Simulator/GuessModels/package.mo
deleted file mode 100644
index 585e061..0000000
--- a/src/main/Simulator/Simulator/GuessModels/package.mo
+++ /dev/null
@@ -1,4 +0,0 @@
-within Simulator;
-package GuessModels
- extends Modelica.Icons.UtilitiesPackage;
-end GuessModels;
diff --git a/src/main/Simulator/Simulator/GuessModels/package.order b/src/main/Simulator/Simulator/GuessModels/package.order
deleted file mode 100644
index 846e250..0000000
--- a/src/main/Simulator/Simulator/GuessModels/package.order
+++ /dev/null
@@ -1,2 +0,0 @@
-InitialGuess
-GuessInput
diff --git a/src/main/Simulator/Simulator/Streams/EnergyStream.mo b/src/main/Simulator/Simulator/Streams/EnergyStream.mo
deleted file mode 100644
index b7cfa29..0000000
--- a/src/main/Simulator/Simulator/Streams/EnergyStream.mo
+++ /dev/null
@@ -1,14 +0,0 @@
-within Simulator.Streams;
-
-model EnergyStream
- extends Simulator.Files.Icons.EnergyStream;
- Real Q;
- Simulator.Files.Interfaces.enConn In annotation(
- Placement(visible = true, transformation(origin = {-100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Files.Interfaces.enConn Out annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-equation
-//connector equation
- Q = In.Q;
- Q = Out.Q;
-end EnergyStream;
diff --git a/src/main/Simulator/Simulator/Streams/MaterialStream.mo b/src/main/Simulator/Simulator/Streams/MaterialStream.mo
deleted file mode 100644
index 6d78e99..0000000
--- a/src/main/Simulator/Simulator/Streams/MaterialStream.mo
+++ /dev/null
@@ -1,142 +0,0 @@
-within Simulator.Streams;
-
-model MaterialStream "Model representing Material Stream"
- //1 - Mixture, 2 - Liquid phase, 3 - Gas Phase
-
- extends Simulator.Files.Icons.MaterialStream;
- import Simulator.Files.*;
- parameter Integer Nc "Number of components";
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- Real P(unit = "Pa", min = 0, start = Pg) "Pressure";
- Real T(unit = "K", start = Tg) "Temperature";
- Real Pbubl(unit = "Pa", min = 0, start = Pmin) "Bubble point pressure";
- Real Pdew(unit = "Pa", min = 0, start = Pmax) "dew point pressure";
- Real xliq(unit = "-", start = xliqg, min = 0, max = 1) "Liquid Phase mole fraction";
- Real xvap(unit = "-", start = xvapg, min = 0, max = 1) "Vapor Phase mole fraction";
- Real xmliq(unit = "-", start = xliqg, min = 0, max = 1) "Liquid Phase mass fraction";
- Real xmvap(unit = "-",start =xvapg, min = 0, max = 1) "Vapor Phase Mass fraction";
- Real F_p[3](each unit = "mol/s", each min = 0, start={Fg,Fliqg,Fvapg}) "Total molar flow in phase";
- Real Fm_p[3](each unit = "kg/s", each min = 0, each start = Fg) "Total mass flow in phase";
- Real MW_p[3](each unit = "-", each start = 0, each min = 0) "Average Molecular weight in phase";
- Real x_pc[3, Nc](each unit = "-", each min = 0, each max = 1, start={xguess,xg,yg}) "Component mole fraction in phase";
- Real xm_pc[3, Nc](each unit ="-", start={xguess,xg,yg}, each min = 0, each max = 1) "Component mass fraction in phase";
- Real F_pc[3, Nc](each unit = "mol/s", each start = Fg, each min = 0) "Component molar flow in phase";
- Real Fm_pc[3, Nc](each unit = "kg/s", each min = 0, each start = Fg) "Component mass flow in phase";
- Real Cp_p[3](each unit = "kJ/[kmol.K]",start={Hmixg,Hliqg,Hvapg}) "Phase molar specific heat";
- Real Cp_pc[3, Nc](each unit = "kJ/[kmol.K]") "Component molar specific heat in phase";
- Real H_p[3](each unit = "kJ/kmol",start={Hmixg,Hliqg,Hvapg}) "Phase molar enthalpy";
- Real H_pc[3, Nc](each unit = "kJ/kmol") "Component molar enthalpy in phase";
- Real S_p[3](each unit = "kJ/[kmol.K]") "Phase molar entropy";
- Real S_pc[3, Nc](each unit = "kJ/[kmol.K]") "Component molar entropy in phase";
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess(Nc = Nc);
-
-equation
-//Connector equations
- In.P = P;
- In.T = T;
- In.F = F_p[1];
- In.H = H_p[1];
- In.S = S_p[1];
- In.x_pc = x_pc;
- In.xvap = xvap;
- Out.P = P;
- Out.T = T;
- Out.F = F_p[1];
- Out.H = H_p[1];
- Out.S = S_p[1];
- Out.x_pc = x_pc;
- Out.xvap = xvap;
-//=====================================================================================
-//Mole Balance
- F_p[1] = F_p[2] + F_p[3];
-// x_pc[1, :] .* F_p[1] = x_pc[2, :] .* F_p[2] + x_pc[3, :] .* F_p[3];
-//component molar and mass flows
- for i in 1:Nc loop
- F_pc[:, i] = x_pc[:, i] .* F_p[:];
- end for;
- if P >= Pbubl then
-//below bubble point region
- xm_pc[3, :] = zeros(Nc);
- Fm_pc[1, :] = xm_pc[1, :] .* Fm_p[1];
- xm_pc[2, :] = xm_pc[1, :];
- elseif P >= Pdew then
- for i in 1:Nc loop
- Fm_pc[:, i] = xm_pc[:, i] .* Fm_p[:];
- end for;
- else
-//above dew point region
- xm_pc[2, :] = zeros(Nc);
- Fm_pc[1, :] = xm_pc[1, :] .* Fm_p[1];
- xm_pc[3, :] = xm_pc[1, :];
- end if;
-//phase molar and mass fractions
- xliq = F_p[2] / F_p[1];
- xvap = F_p[3] / F_p[1];
- xmliq = Fm_p[2] / Fm_p[1];
- xmvap = Fm_p[3] / Fm_p[1];
-//Conversion between mole and mass flow
- for i in 1:Nc loop
- Fm_pc[:, i] = F_pc[:, i] * C[i].MW;
- end for;
- Fm_p[:] = F_p[:] .* MW_p[:];
-//Energy Balance
- for i in 1:Nc loop
-//Specific Heat and Enthalpy calculation
- Cp_pc[2, i] = ThermodynamicFunctions.LiqCpId(C[i].LiqCp, T);
- Cp_pc[3, i] = ThermodynamicFunctions.VapCpId(C[i].VapCp, T);
- H_pc[2, i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- H_pc[3, i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- (S_pc[2, i], S_pc[3, i]) = ThermodynamicFunctions.SId(C[i].VapCp, C[i].HOV, C[i].Tb, C[i].Tc, T, P, x_pc[2, i], x_pc[3, i]);
- end for;
- for i in 2:3 loop
- Cp_p[i] = sum(x_pc[i, :] .* Cp_pc[i, :]) + Cpres_p[i];
- H_p[i] = sum(x_pc[i, :] .* H_pc[i, :]) + Hres_p[i];
- S_p[i] = sum(x_pc[i, :] .* S_pc[i, :]) + Sres_p[i];
- end for;
- Cp_p[1] = xliq * Cp_p[2] + xvap * Cp_p[3];
- Cp_pc[1, :] = x_pc[1, :] .* Cp_p[1];
- H_p[1] = xliq * H_p[2] + xvap * H_p[3];
- H_pc[1, :] = x_pc[1, :] .* H_p[1];
- S_p[1] = xliq * S_p[2] + xvap * S_p[3];
- S_pc[1, :] = x_pc[1, :] * S_p[1];
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6]) ./ philiqbubl_c[:]);
-//Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6])) .* phivapdew_c[:]);
- if P >= Pbubl then
-//below bubble point region
- x_pc[3, :] = zeros(Nc);
-// sum(x_pc[2, :]) = 1;
- F_p[3] = 0;
- x_pc[2,:] = x_pc[1,:];
- elseif P >= Pdew then
-//VLE region
- for i in 1:Nc loop
- x_pc[3, i] = K_c[i] * x_pc[2, i];
- x_pc[2, i] = x_pc[1, i] ./ (1 + xvap * (K_c[i] - 1));
- end for;
- sum(x_pc[3, :]) = 1;
-//sum y = 1
- else
-//above dew point region
- x_pc[2, :] = zeros(Nc);
-// sum(x_pc[3, :]) = 1;
- F_p[2] = 0;
- x_pc[3, :] = x_pc[1, :];
- end if;
-algorithm
- for i in 1:Nc loop
- MW_p[:] := MW_p[:] + C[i].MW * x_pc[:, i];
- end for;
-
-annotation(
- Documentation(info = "A Material Stream represents whatever enters and leaves the simulation passing through the unit operations.
-
-
For variables which are decalared as 1-D array, the array size represent the phase where the array element indices 1 represents mixed phase, 2 represents liquid phase and 3 represents vapor phase.
For example, variable F_p[3] represents Total molar flow in different phase. So when simulated, the variables in the results will be as follow:
F_p[1] is Molar flow in mixed phase
F_p[2] is Molar flow in liquid phase
F_p[3] is Molar flow in vapor phase
For variables which are decalared as 2-D array, the first indice represent phase and second indice represents components.
For example, variable F_pc[3,Nc] represents Component molar flow in different phase. So when simulated, the variables in the results will be as follow:
F_pc[1,Nc] is Molar flow of Ncth in mixed phase
F_pc[2,Nc] is Molar flow of Ncth in liquid phase
F_pc[3,Nc] is Molar flow of Ncth in vapor phase
For examples on simulating a material stream, go to Examples >> MaterialStream
"));
-
- end MaterialStream;
diff --git a/src/main/Simulator/Simulator/Streams/package.mo b/src/main/Simulator/Simulator/Streams/package.mo
deleted file mode 100644
index 74a32da..0000000
--- a/src/main/Simulator/Simulator/Streams/package.mo
+++ /dev/null
@@ -1,4 +0,0 @@
-within Simulator;
-package Streams
- extends Modelica.Icons.VariantsPackage;
-end Streams;
diff --git a/src/main/Simulator/Simulator/Streams/package.order b/src/main/Simulator/Simulator/Streams/package.order
deleted file mode 100644
index 4d1c5ab..0000000
--- a/src/main/Simulator/Simulator/Streams/package.order
+++ /dev/null
@@ -1,2 +0,0 @@
-MaterialStream
-EnergyStream
diff --git a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsCol.mo b/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsCol.mo
deleted file mode 100644
index 6f962ec..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsCol.mo
+++ /dev/null
@@ -1,50 +0,0 @@
-within Simulator.UnitOperations.AbsorptionColumn;
-
-model AbsCol
- extends Simulator.Files.Icons.AbsorptionColumn;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.GeneralProperties C[Nc];
- parameter Integer Nc "Number of Components";
- parameter Integer Nt;
-
- Simulator.Files.Interfaces.matConn In_Top(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 80}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-250, 302}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn In_Bot(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, -80}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-250, -300}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out_Top(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 80}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, 300}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out_Bot(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, -80}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, -300}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
-//connector equation
- tray[1].Fliq_s[1] = In_Top.F;
- tray[1].xliq_sc[1, :] = In_Top.x_pc[1, :];
- tray[1].Hliq_s[1] = In_Top.H;
- tray[1].Fvap_s[2] = Out_Top.F;
- tray[1].xvap_sc[2, :] = Out_Top.x_pc[1, :];
-// tray[1].vapMolEnth[2] = Out_Top.mixMolEnth;
- tray[1].T = Out_Top.T;
- tray[Nt].Fliq_s[2] = Out_Bot.F;
- tray[Nt].xliq_sc[2, :] = Out_Bot.x_pc[1, :];
-// tray[Nt].liqMolEnth[2] = Out_Bot.mixMolEnth;
- tray[Nt].T = Out_Bot.T;
- tray[Nt].Fvap_s[1] = In_Bot.F;
- tray[Nt].xvap_sc[1, :] = In_Bot.x_pc[1, :];
- tray[Nt].Hvap_s[1] = In_Bot.H;
- for i in 1:Nt - 1 loop
- connect(tray[i].Out_Liq, tray[i + 1].In_Liq);
- connect(tray[i].In_Vap, tray[i + 1].Out_Vap);
- end for;
-//tray pressures
- for i in 2:Nt - 1 loop
- tray[i].P = tray[1].P + i * (tray[Nt].P - tray[1].P) / (Nt - 1);
- end for;
- tray[1].P = In_Top.P;
- tray[Nt].P = In_Bot.P;
- tray[1].P = Out_Top.P;
- tray[Nt].P = Out_Bot.P;
- annotation(
- Icon(coordinateSystem(extent = {{-250, -450}, {250, 450}})),
- Diagram(coordinateSystem(extent = {{-250, -450}, {250, 450}})),
- __OpenModelica_commandLineOptions = "");
-end AbsCol;
diff --git a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsTray.mo b/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsTray.mo
deleted file mode 100644
index 25b9baf..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/AbsTray.mo
+++ /dev/null
@@ -1,75 +0,0 @@
-within Simulator.UnitOperations.AbsorptionColumn;
-
-model AbsTray
- import Simulator.Files.*;
- parameter Integer Nc;
- parameter ChemsepDatabase.GeneralProperties C[Nc];
- Real P(min = 0, start = Pg);
- Real T(min = 0, start = Tg);
- Real Fvap_s[2](each min = 0, start={Fg,Fg});
- Real Fliq_s[2](each min = 0, start={Fliqg,Fliqg});
- Real xvap_sc[2, Nc](each min = 0, each max = 1, start=xvapg);
- Real xliq_sc[2, Nc](each min = 0, each max = 1, start=xliqg);
- Real Hvap_s[2](start={Hvapg,Hvapg}), Hliq_s[2](start={Hliqg,Hliqg}), Hvapout_c[Nc], Hliqout_c[Nc];
- Real x_pc[3, Nc](each min =0, each max = 0,start=xliqg);
- Real Pdew(min = 0, start =Pmax);
- Real Pbubl(min = 0, start =Pmin);
-
- Simulator.Files.Interfaces.trayConn In_Liq(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn Out_Liq(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn Out_Vap(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn In_Vap(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
- equation
-//connector equation
- In_Liq.F = Fliq_s[1];
- In_Liq.H = Hliq_s[1];
- In_Liq.x_c[:] = xliq_sc[1, :];
- Out_Liq.F = Fliq_s[2];
- Out_Liq.H = Hliq_s[2];
- Out_Liq.x_c[:] = xliq_sc[2, :];
- In_Vap.F = Fvap_s[1];
- In_Vap.H = Hvap_s[1];
- In_Vap.x_c[:] = xvap_sc[1, :];
- Out_Vap.F = Fvap_s[2];
- Out_Vap.H = Hvap_s[2];
- Out_Vap.x_c[:] = xvap_sc[2, :];
-//Adjustment for thermodynamic packages
- x_pc[1, :] = (Fvap_s[2] .* xvap_sc[2, :] + Fliq_s[2] .* xliq_sc[2, :]) / (Fliq_s[2] + Fvap_s[2]);
- x_pc[2, :] = xliq_sc[2,:];
- x_pc[3, :] = xvap_sc[2,:];
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6]) ./ philiqbubl_c[:]);
-//Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6])) .* phivapdew_c[:]);
-//molar balance
- Fvap_s[1] .* xvap_sc[1, :] + Fliq_s[1] .* xliq_sc[1, :] = Fvap_s[2] .* xvap_sc[2, :] + Fliq_s[2] .* xliq_sc[2, :];
-//equillibrium
- xvap_sc[2, :] = K_c[:] .* xliq_sc[2, :];
-//raschford rice
-// xliq_sc[2, :] = ((Fvap_s[1] .* xvap_sc[1, :] + Fliq_s[1] .* xliq_sc[1, :])/(Fvap_s[1] + Fliq_s[1]))./(1 .+ (Fvap_s[1]/(Fliq_s[1] + Fvap_s[1])) .* (K[:] .- 1));
-// for i in 1:Nc loop
-// xvap_sc[2,i] = ((K[i]/(K[1])) * xliq_sc[2,i]) / (1 + (K[i] / (K[1])) * xliq_sc[2,i]);
-// end for;
-//summation equation
- sum(xliq_sc[2, :]) = 1;
- sum(xvap_sc[2, :]) = 1;
-// Enthalpy balance
- Fvap_s[1] * Hvap_s[1] + Fliq_s[1] * Hliq_s[1] = Fvap_s[2] * Hvap_s[2] + Fliq_s[2] * Hliq_s[2];
-//enthalpy calculation
- for i in 1:Nc loop
- Hliqout_c[i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- Hvapout_c[i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- end for;
- Hliq_s[2] = sum(xliq_sc[2, :] .* Hliqout_c[:]) + Hres_p[2];
- Hvap_s[2] = sum(xvap_sc[2, :] .* Hvapout_c[:]) + Hres_p[3];
- annotation(
- Diagram(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- Icon(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- __OpenModelica_commandLineOptions = "");
- end AbsTray;
diff --git a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.mo b/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.mo
deleted file mode 100644
index 5afa5fc..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.UnitOperations;
-
-package AbsorptionColumn
- extends Modelica.Icons.Package;
-end AbsorptionColumn;
diff --git a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.order b/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.order
deleted file mode 100644
index 8322d9c..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/AbsorptionColumn/package.order
+++ /dev/null
@@ -1,2 +0,0 @@
-AbsTray
-AbsCol
diff --git a/src/main/Simulator/Simulator/UnitOperations/AdiabaticCompressor.mo b/src/main/Simulator/Simulator/UnitOperations/AdiabaticCompressor.mo
deleted file mode 100644
index 19e4248..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/AdiabaticCompressor.mo
+++ /dev/null
@@ -1,78 +0,0 @@
-within Simulator.UnitOperations;
-
-model AdiabaticCompressor "Model of an adiabatic compressor to provide energy to vapor stream in form of pressure"
- extends Simulator.Files.Icons.AdiabaticCompressor;
-
- extends Simulator.Files.Models.Flash;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "number of components";
-
- //====================================================================================
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow rate";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Inlet stream molar enthalpy";
- Real Sin(unit = "kJ/[kmol/K]") "Inlet stream molar entropy";
- Real xvapin(unit = "-", min = 0, max = 1, start = xvapg) "Inlet stream vapor phase mol fraction";
-
- Real Fout(min = 0, start = Fg) "Outlet stream molar flow rate";
- Real Q(unit = "W") "Power required";
- Real Pdel(unit = "Pa") "Pressure increase";
- Real Tdel(unit = "K") "Temperature increase";
-
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Tout(unit = "Pa", min = 0, start = Tg) "Outlet stream temperature";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Outlet stream molar enthalpy";
- Real Sout(unit = "kJ/[kmol.K]") "Outlet stream molar entropy";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor phase mole fraction";
- Real x_c[Nc](each unit = "-", each min = 0, each max = 1,start=xg) "Component mole fraction";
-
- parameter Real Eff(unit = "-") "Efficiency";
-
- //========================================================================================
- Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -66}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //========================================================================================
-
- extends GuessModels.InitialGuess;
-
-equation
-//connector equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.S = Sin;
- In.x_pc[1, :] = x_c[:];
- In.xvap = xvapin;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc[1, :] = x_c[:];
- Out.xvap = xvapout;
- En.Q = Q;
-//=============================================================================================
- Fin = Fout;
-//material balance
- Hout = Hin + (H_p[1] - Hin) / Eff;
- Q = Fin * (H_p[1] - Hin) / Eff;
-//energy balance
- Pin + Pdel = Pout;
-//pressure calculation
- Tin + Tdel = Tout;
-//temperature calculation
-//=========================================================================
-//ideal flash
- Fin = F_p[1];
- Pout = P;
- Sin = S_p[1];
- x_c[:] = x_pc[1, :];
-annotation(
- Documentation(info = "Adiabatic Compressor is generally used to provide energy to a vapor material stream. The energy supplied is in form of pressure.
To simulate an adiabatic compressor, Efficiency of the compressor should be provided as calculation parameter. Additionally, one of the following variables must be defined:- Outlet Pressure
- Pressure Increase
- Power Required
For example on simulating an adiabatic compressor, go to Examples >> Compressor
"));
- end AdiabaticCompressor;
diff --git a/src/main/Simulator/Simulator/UnitOperations/AdiabaticExpander.mo b/src/main/Simulator/Simulator/UnitOperations/AdiabaticExpander.mo
deleted file mode 100644
index b5fdaf6..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/AdiabaticExpander.mo
+++ /dev/null
@@ -1,75 +0,0 @@
-within Simulator.UnitOperations;
-
-model AdiabaticExpander "Model of an adiabatic expander to extract energy from a vapor stream in form of pressure"
- //=====================================================================================
- //Header Files and Parameters
- extends Simulator.Files.Icons.AdiabaticExpander;
- extends Simulator.Files.Models.Flash;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components";
- parameter Real Eff(unit = "-") "Expander efficiency";
- //====================================================================================
- //Model Variables
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow rate";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Inlet stream molar enthalpy";
- Real xvapin(unit = "-", min = 0, max = 1, start = xvapg) "Inlet stream vapor phase mole fraction";
- Real xin_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Component mole fraction";
- Real Sin(unit = "kJ/[kmol.K]") "Inlet stream molar entropy";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Q(unit = "W") "Generated Power";
- Real Pdel(unit = "Pa") "Pressure drop";
- Real Tdel(unit = "K") "Temperature change";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Outlet stream molar flow rate";
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real Hout(unit = "kJ/kmol") "Outlet stream molar enthalpy";
- Real Sout(unit = "kJ/[kmol.k]") "Outlet stream molar entropy";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor phase mole fraction";
- //========================================================================================
- //Instantiation of connectors
- Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -66}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
-equation
-//========================================================================================
-//connector equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.S = Sin;
- In.x_pc[1, :] = xin_c[:];
- In.xvap = xvapin;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc[1, :] = xin_c[:];
- Out.xvap = xvapout;
- En.Q = Q;
-//=============================================================================================
-//Material and Energy balance
- Fin = Fout;
- Hout = Hin + (H_p[1] - Hin) * Eff;
- Q = Fin * (H_p[1] - Hin) * Eff;
-//=============================================================================================
-//Pressure and Temperature calculation
- Pin - Pdel = Pout;
- Tin - Tdel = Tout;
-//=========================================================================
-//Ideal flash
- Fin = F_p[1];
- Pout = P;
- Sin = S_p[1];
- xin_c[:] = x_pc[1, :];
- annotation(
- Documentation(info = "Adiabatic Expander is generally used to extract energy from a vapor material stream. The energy extracted is in form of pressure.
To simulate an adiabatic expander, Efficiency of the expander should be provided as calculation parameter. Additionally, one of the following variables must be defined:- Outlet Pressure
- Pressure Drop
- Power Required
For example on simulating an adiabatic expander, go to Examples >> Expander
"));
-end AdiabaticExpander;
diff --git a/src/main/Simulator/Simulator/UnitOperations/CentrifugalPump.mo b/src/main/Simulator/Simulator/UnitOperations/CentrifugalPump.mo
deleted file mode 100644
index 6b5934b..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/CentrifugalPump.mo
+++ /dev/null
@@ -1,76 +0,0 @@
-within Simulator.UnitOperations;
-
-model CentrifugalPump "Model of a centrifugal pump to provide energy to liquid stream in form of pressure"
- //===========================================================================
- //Header files and Parameters
- extends Simulator.Files.Icons.CentrifugalPump;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc = 2 "Number of components";
- parameter Real Eff(unit = "-") "Efficiency";
- //===========================================================================
- //Model Variables
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Inlet stream molar enthalpy";
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow";
- Real xin_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Inlet stream components molar fraction";
- Real Tdel(unit = "K") "Temperature increase";
- Real Pdel(unit = "K") "Pressure increase";
- Real Q(unit = "W") "Power required";
- Real rho_c[Nc](each unit = "kmol/m3", each min = 0) "Component molar density";
- Real rho(unit = "kmol/m3", min = 0) "Density";
- Real Pvap(unit = "Pa", min = 0, start = Pg) "Vapor pressure of mixture at Outlet temperature";
- Real NPSH(unit = "m") "Net Positive Suction Head";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Outlet stream molar enthalpy";
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Outlet stream molar flow";
- Real xout_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Outlet stream molar fraction";
- //============================================================================
- //Instantiation of Connectors
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {102, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {2, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -70}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-equation
-//============================================================================
-//Connector equation
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.x_pc[1, :] = xin_c[:];
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.x_pc[1, :] = xout_c[:];
- En.Q = Q;
-//=============================================================================
-//Pump equations
- Fin = Fout;
- xin_c = xout_c;
- Pin + Pdel = Pout;
- Tin + Tdel = Tout;
-//=============================================================================
-//Calculation of Density
- for i in 1:Nc loop
- rho_c[i] = Simulator.Files.ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, Tin, Pin);
- end for;
- rho = 1 / sum(xin_c ./ rho_c);
-//==============================================================================
-//Energy Balance and NPSH Calculation
- Hout = Hin + Pdel / rho;
- Q = Fin * (Hout - Hin) / Eff;
- NPSH = (Pin - Pvap) / rho;
-//===============================================================================
-//Vapor Pressure of mixture at Outlet Temperature
- Pvap = sum(xin_c .* exp(C[:].VP[2] + C[:].VP[3] / Tout + C[:].VP[4] * log(Tout) + C[:].VP[5] .* Tout .^ C[:].VP[6]));
- annotation(
- Documentation(info = "Centrifugal pump is generally used to provide energy to a liquid material stream. The energy supplied is in form of pressure.
To simulate a centrifugal pump, Efficiency of the pump should be provided as calculation parameter. Additional one of the following input variables must be defined:- Outlet Pressure
- Pressure Increase
- Power Required
For example on simulating a centrifual pum, go to Examples >> Pump
"));
-
-end CentrifugalPump;
diff --git a/src/main/Simulator/Simulator/UnitOperations/CompoundSeparator.mo b/src/main/Simulator/Simulator/UnitOperations/CompoundSeparator.mo
deleted file mode 100644
index 577551a..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/CompoundSeparator.mo
+++ /dev/null
@@ -1,93 +0,0 @@
-within Simulator.UnitOperations;
-
-model CompoundSeparator
- extends Simulator.Files.Icons.CompoundSeparator;
- parameter Integer Nc "Number of components";
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] "Components array";
- parameter Integer SepStrm "Specified Stream";
-
- Real Pin(min = 0, start = Pg) "inlet pressure";
- Real Tin(min = 0, start = Tg) "inlet temperature";
- Real xin_c[Nc](each min = 0, each max = 1, start=xguess) "inlet mixture mole fraction";
- Real Fin(min = 0, start = 100) "inlet mixture molar flow";
- Real Fin_c[Nc](each min = 0, each start = Fg) "inlet compound molar flow";
- Real Fmin_c[Nc](each min = 0, each start =Fg) "inlet compound mass flow";
- Real Hin(start=Htotg) "inlet mixture molar enthalpy";
-
- Real Q "energy required";
- Real SepVal_c[Nc] "Separation factor value";
-
- Real Pout_s[2](each min = 0, start={Pg,Pg}) "outlet Pressure";
- Real Tout_s[2](each min = 0, start={Tg,Tg}) "outlet temperature";
- Real xout_sc[2, Nc](each min = 0, each max = 1, start={xg,xg}) "outlet mixture mole fraction";
- Real Fout_s[2](each min = 0, start = {Fg,Fg}) "Outlet mixture molar flow";
- Real Fout_sc[2, Nc](each min = 0, start = {Fg,Fg}) "outlet compounds molar flow";
- Real Fmout_sc[2, Nc](each min = 0, start={Fg,Fg}) "outlet compound mass flow";
- Real Hout_s[2](start={Hvapg,Hliqg}) "outlet mixture molar enthalpy";
-
- parameter String SepFact_c[Nc] "Separation factor";
- // separation factor: Molar_Flow, Mass_Flow, Inlet_Molar_Flow_Percent, Inlet_Mass_Flow_Percent.
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out1(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 70}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 80}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -130}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out2(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, -70}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -80}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
-equation
-// Connector equation
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.x_pc[1, :] = xin_c[:];
- In.H = Hin;
- Out1.P = Pout_s[1];
- Out1.T = Tout_s[1];
- Out1.F = Fout_s[1];
- Out1.x_pc[1, :] = xout_sc[1, :];
- Out1.H = Hout_s[1];
- Out2.F = Fout_s[2];
- Out2.x_pc[1, :] = xout_sc[2, :];
- Out2.H = Hout_s[2];
- Out2.P = Pout_s[2];
- Out2.T = Tout_s[2];
- En.Q = Q;
-// Pressure and temperature equations
- Pout_s[1] = Pin;
- Pout_s[2] = Pin;
- Tout_s[1] = Tin;
- Tout_s[2] = Tin;
-// mole balance
- Fin = sum(Fout_s[:]);
- Fin_c[:] = xout_sc[1, :] * Fout_s[1] + xout_sc[2, :] * Fout_s[2];
-// Conversion
- Fin_c = xin_c .* Fin;
- Fmin_c = Fin_c .* C[:].MW;
- for i in 1:2 loop
- Fout_sc[i, :] = xout_sc[i, :] .* Fout_s[i];
- Fmout_sc[i, :] = Fout_sc[i, :] .* C[:].MW;
- end for;
- sum(xout_sc[2, :]) = 1;
- for i in 1:Nc loop
- if SepFact_c[i] == "Molar_Flow" then
- SepVal_c[i] = Fout_sc[SepStrm, i];
- elseif SepFact_c[i] == "Mass_Flow" then
- SepVal_c[i] = Fmout_sc[SepStrm, i];
- elseif SepFact_c[i] == "Inlet_Molar_Flow_Percent" then
- Fout_sc[SepStrm, i] = SepVal_c[i] * Fin_c[i] / 100;
- elseif SepFact_c[i] == "Inlet_Mass_Flow_Percent" then
- Fmout_sc[SepStrm, i] = SepVal_c[i] * Fmin_c[i] / 100;
- end if;
- end for;
-//Energy balance
- Q = sum(Hout_s .* Fout_s) - Fin * Hin;
-
-annotation(
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}})),
- Diagram(coordinateSystem(extent = {{-100, -200}, {100, 200}})),
- __OpenModelica_commandLineOptions = "");
- end CompoundSeparator;
diff --git a/src/main/Simulator/Simulator/UnitOperations/ConversionReactor.mo b/src/main/Simulator/Simulator/UnitOperations/ConversionReactor.mo
deleted file mode 100644
index 78a18a9..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/ConversionReactor.mo
+++ /dev/null
@@ -1,88 +0,0 @@
-within Simulator.UnitOperations;
-
-model ConversionReactor "Model of a conversion reactor to calculate the outlet stream mole fraction of components"
-
-//=============================================================================
- //Header Files and Parameters
- extends Simulator.Files.Icons.ConversionReactor;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components";
- parameter String CalcMode = "Isothermal" "Required mode of operation: Isothermal, Define_Out_Temperature, Adiabatic";
- parameter Real Tdef(unit = "K") = 300 "Defined outlet temperature, applicable if Define_Out_Temperature mode is chosen";
- parameter Real Pdel(unit = "Pa") = 0 "Pressure drop";
- parameter Real X_r[Nr] = fill(0.4, Nr) "Conversion of base component";
- //=============================================================================
- //Model Variables
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow rate";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Inlet stream molar enthalpy";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real xin_c[Nc](each unit = "K", each min = 0, each max = 1, start=xg) "Inlet stream component mole fraction";
-
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Outlet stream molar flow rate";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Outlet stream molar enthalpy";
- Real xout_c[Nc](each unit = "=", each min = 0, each max = 1, start=xg) "Outlet stream component mole fraction";
- Real Pout(unit = "Pa", min = 0, start =Pg) "Outlet stream pressure";
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real Fout_cr[Nc, Nr](each unit = "mol/s") "Molar flor rate of components after each reaction";
- //=============================================================================
- //Instanstiation of Connectors
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn energy annotation(
- Placement(visible = true, transformation(origin = {0, -98}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -130}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-equation
-//=============================================================================
-//Connector Equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.x_pc[1, :] = xin_c[:];
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.x_pc[1, :] = xout_c[:];
-//=============================================================================
-//Mole Balance
- for i in 1:Nc loop
- Fout_cr[i, 1] = Fin * xin_c[i] - Coef_cr[i, 1] / Coef_cr[BC_r[1], 1] * Fin * xin_c[BC_r[1]] * X_r[1];
- end for;
- if Nr > 1 then
- for j in 2:Nr loop
- for i in 1:Nc loop
- Fout_cr[i, j] = Fout_cr[i, j - 1] - Coef_cr[i, j] / Coef_cr[BC_r[j], j] * Fin * xin_c[BC_r[j]] * X_r[j];
- end for;
- end for;
- end if;
- Fout = sum(Fout_cr[:, Nr]);
- for i in 1:Nc loop
- xout_c[i] = Fout_cr[i, Nr] / Fout;
- end for;
-//=============================================================================
-//Outlet Pressure
- Pin - Pdel = Pout;
-//=============================================================================
-//Energy Balance
- if CalcMode == "Isothermal" then
- Tin = Tout;
- energy.Q = Hout * Fout - Hin * Fin + sum(Hr_r .* Fin .* xin_c[BC_r] .* X_r);
- elseif CalcMode == "Adiabatic" then
- Hout * Fout + sum(Hr_r .* Fin .* xin_c[BC_r] .* X_r) = Hin * Fin;
- energy.Q = 0;
- elseif CalcMode == "Define_Outlet_Temperature" then
- Tout = Tdef;
- energy.Q = Hout * Fout - Hin * Fin + sum(Hr_r .* Fin .* xin_c[BC_r] .* X_r);
- end if;
-
-annotation(
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}}, initialScale = 0.1)),
- Diagram(coordinateSystem(extent = {{-100, -200}, {100, 200}}, initialScale = 0.1)),
- __OpenModelica_commandLineOptions = "",
- Documentation(info = "Conversion Reactor is used to calculate the mole fraction of components at outlet stream when the conversion of base component for the reaction is defined.
To simulate a convension reactor, following calculation parameters must be provided:- Calculation Mode
- Outlet Temperature (If calculation mode is Define_Out_Temperature\"
- Number of Reactions
- Base Component
- Stoichiometric Coefficient of Components in Reaction
- Conversion of Base Component
- Pressure Drop
For example on simulating a conversion reactor, go to Examples >> CR >> test
"));
- end ConversionReactor;
diff --git a/src/main/Simulator/Simulator/UnitOperations/Cooler.mo b/src/main/Simulator/Simulator/UnitOperations/Cooler.mo
deleted file mode 100644
index 945f38d..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/Cooler.mo
+++ /dev/null
@@ -1,70 +0,0 @@
-within Simulator.UnitOperations;
-
-model Cooler "Model of a cooler to heat a material stream"
- extends Simulator.Files.Icons.Cooler;
-
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "number of components";
- //====================================================================================
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow rate";
- Real Pin(unit = "Pa", min = 0, start =Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real Hin(unit = "kJ/kmol") "Inlet stream molar enthalpy";
- Real Sin(unit = "kJ/[kmol.K]") "Inlet stream molar entropy";
- Real xvapin(unit = "-", min = 0, max = 1, start = xvapg) "Inlet stream vapor phase mole fraction";
-
- Real Q(unit = "W") "Heat removed";
- Real Tdel(unit = "K") "Temperature drop";
-
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Outlet stream molar flow rate";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor phase mole fraction";
- Real Hout(unit = "kJ/kmol") "Outlet stream molar enthalpy";
- Real Sout(unit = "kJ/[kmol.K]") "Outlet stream molar entropy";
- Real x_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Component mole fraction";
- //========================================================================================
- parameter Real Pdel(unit = "Pa") "Pressure drop";
- parameter Real Eff(unit = "-") "Efficiency";
-
- //========================================================================================
- Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //========================================================================================
-
- extends GuessModels.InitialGuess;
-
-equation
-//connector equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.S = Sin;
- In.x_pc[1, :] = x_c[:];
- In.xvap = xvapin;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc[1, :] = x_c[:];
- Out.xvap = xvapout;
- En.Q = Q;
-//=============================================================================================
- Fin = Fout;
-//material balance
- Hin - Eff * Q / Fin = Hout;
-//energy balance
- Pin - Pdel = Pout;
-//pressure calculation
- Tin - Tdel = Tout;
-//temperature calculation
-annotation(
- Documentation(info = "The cooler is used to simulate the cooling process of a material stream.
Following calculation parameters must be provided to the cooler:
- Pressure Drop
- Efficiency
In addition to the above parameters, any one additional variable from the below list must be provided for the model to simulate successfully:
- Outlet Temperature (Tout)
- Temperature Drop (Tdel)
- Heat Removed (Q)
- Outlet Stream Vapor Phase Mole Fraction (xvapout)
For example on simulating a cooler, go to Examples >> Cooler
"));
-
- end Cooler;
diff --git a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Cond.mo b/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Cond.mo
deleted file mode 100644
index 29fc163..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Cond.mo
+++ /dev/null
@@ -1,109 +0,0 @@
-within Simulator.UnitOperations.DistillationColumn;
-
- model Cond "Model of a condenser used in distillation column"
- import Simulator.Files.*;
- parameter ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc = 2 "Number of components";
- parameter Boolean Bin = false;
- Real P(unit = "K", min = 0, start = Pg) "Pressure";
- Real T(unit = "Pa", min = 0, start = Tg) "Temperature";
- Real Fin(unit = "mol/s", min = 0, start =Fg) "Feed molar flow rate";
- Real xin_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Feed components mole fraction";
- Real xvapin_c[Nc](each unit = "-", each min = 0, each max = 1, start=xvapg) "Inlet components vapor molar fraction";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Feed inlet molar enthalpy";
-
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Side draw molar flow";
- Real Fvapin(unit = "mol/s", min = 0, start = Fg) "Inlet vapor molar flow";
- Real Fliqout(unit = "mol/s", min = 0, start = Fg) "Outlet liquid molar flow";
- Real xout_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Side draw components mole fraction";
- Real xliqout_c[Nc](each unit = "-", each min = 0, each max = 1, start=xliqg) "Outlet components liquid mole fraction";
-
- Real Hvapin(unit = "kJ/kmol",start=Hvapg) "Inlet vapor molar enthalpy";
- Real Hliqout(unit = "kJ/kmol",start=Hliqg) "Outlet liquid molar enthalpy";
- Real Q(unit = "W") "Heat load";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Side draw molar enthalpy";
- Real Hliqout_c[Nc](each unit = "kJ/kmol") "Outlet liquid components molar enthalpy";
- Real x_pc[3, Nc](each unit = "-", each min = 0, each max = 1,start={xguess,xguess,xguess}) "Component mole fraction";
- Real Pdew(unit = "Pa", min = 0, start = Pmax) "Dew point pressure";
- Real Pbubl(unit = "Pa", min = 0,start=Pmin) "Bubble point pressure";
-
- //String sideDrawType(start = "Null");
- //L or V
- parameter String Ctype "Condenser type: Partial or Total";
- replaceable Simulator.Files.Interfaces.matConn In(Nc = Nc) if Bin annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn In_Dmy(Nc = Nc, P = 0, T = 0, x_pc = zeros(3, Nc), F = 0, H = 0, S = 0, xvap = 0) if not Bin annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn Out_Liq(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn In_Vap(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {100, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
- equation
-//connector equation
- if Bin then
- In.x_pc[1, :] = xin_c[:];
- In.H = Hin;
- In.F = Fin;
- else
- In_Dmy.x_pc[1, :] = xin_c[:];
- In_Dmy.H = Hin;
- In_Dmy.F = Fin;
- end if;
-
- Out.P = P;
- Out.T = T;
- Out.x_pc[1, :] = xout_c[:];
- Out.F = Fout;
- Out.H = Hout;
- Out_Liq.F = Fliqout;
- Out_Liq.H = Hliqout;
- Out_Liq.x_c[:] = xliqout_c[:];
- In_Vap.F = Fvapin;
- In_Vap.H = Hvapin;
- In_Vap.x_c[:] = xvapin_c[:];
- En.Q = Q;
-//Adjustment for thermodynamic packages
- x_pc[1, :] = (Fout .* xout_c[:] + Fliqout .* xliqout_c[:]) ./ (Fout + Fliqout);
- x_pc[2, :] = xliqout_c[:];
- x_pc[3, :] = K_c[:] .* x_pc[2, :];
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* Pvap_c[:] ./ philiqbubl_c[:]);
-//Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* Pvap_c[:]) .* phivapdew_c[:]);
-//molar balance
-//Fin + Fvapin = Fout + Fliqout;
- Fin .* xin_c[:] + Fvapin .* xvapin_c[:] = Fout .* xout_c[:] + Fliqout .* xliqout_c[:];
-//equillibrium
- if Ctype == "Partial" then
- xout_c[:] = K_c[:] .* xliqout_c[:];
- elseif Ctype == "Total" then
- xout_c[:] = xliqout_c[:];
- end if;
-//summation equation
-// sum(xliqout_c[:]) = 1;
- sum(xout_c[:]) = 1;
-// Enthalpy balance
- Fin * Hin + Fvapin * Hvapin = Fout * Hout + Fliqout * Hliqout + Q;
-//Temperature calculation
- if Ctype == "Total" then
- P = sum(xout_c[:] .* Pvap_c[:]);
- elseif Ctype == "Partial" then
- 1 / P = sum(xout_c[:] ./ Pvap_c[:]);
- end if;
-// outlet liquid molar enthalpy calculation
- for i in 1:Nc loop
- Hliqout_c[i] = Simulator.Files.ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- end for;
- Hliqout = sum(xliqout_c[:] .* Hliqout_c[:]) + Hres_p[2];
- annotation(
- Diagram(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- Icon(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- __OpenModelica_commandLineOptions = "");
- end Cond;
diff --git a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistCol.mo b/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistCol.mo
deleted file mode 100644
index 64e1cc9..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistCol.mo
+++ /dev/null
@@ -1,79 +0,0 @@
-within Simulator.UnitOperations.DistillationColumn;
-
- model DistCol
- extends Simulator.Files.Icons.DistillationColumn;
- parameter Integer Nc "Number of components";
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- import data = Simulator.Files.ChemsepDatabase;
- parameter Boolean Bin_t[Nt] = Simulator.Files.OtherFunctions.colBoolCalc(Nt, Ni, InT_s);
- parameter Integer Nt = 4 "Number of stages";
- parameter Integer Nout = 0 "Number of side draws";
- parameter Integer NQ = 0 "Number of heat load";
- parameter Integer Ni = 1 "Number of feed streams";
- parameter Integer InT_s[Ni] "Feed stage location";
- parameter String Ctype = "Total" "Condenser type: Total or Partial";
-
- Real RR(min = 0);
- Simulator.Files.Interfaces.matConn In_s[Ni](each Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-248, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-250, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Dist(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {250, 316}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, 298}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Bot(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {250, -296}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {252, -300}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn Cduty annotation(
- Placement(visible = true, transformation(origin = {246, 590}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, 600}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn Rduty annotation(
- Placement(visible = true, transformation(origin = {252, -588}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, -598}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out_s[Nout](each Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-36, 32}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-70, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En[NQ] annotation(
- Placement(visible = true, transformation(origin = {-34, -54}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-70, -60}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- equation
- for i in 1:Ni loop
- if InT_s[i] == 1 then
- connect(In_s[i], condenser.In);
- elseif InT_s[i] == Nt then
- connect(In_s[i], reboiler.In);
- elseif InT_s[i] > 1 and InT_s[i] < Nt then
-//this is adjustment done since OpenModelica 1.11 is not handling array modification properly
- In_s[i].P = tray[InT_s[i] - 1].Pdmy1;
- In_s[i].T = tray[InT_s[i] - 1].Tdmy1;
- In_s[i].F = tray[InT_s[i] - 1].Fdmy1;
- In_s[i].x_pc = tray[InT_s[i] - 1].xdmy1_pc;
- In_s[i].H = tray[InT_s[i] - 1].Hdmy1;
- In_s[i].S = tray[InT_s[i] - 1].Sdmy1;
- In_s[i].xvap = tray[InT_s[i] - 1].xvapdmy1;
- end if;
- end for;
- connect(condenser.Out, Dist);
- connect(reboiler.Out, Bot);
- connect(condenser.En, Cduty);
- connect(reboiler.En, Rduty);
- for i in 1:Nt - 3 loop
- connect(tray[i].Out_Liq, tray[i + 1].In_Liq);
- connect(tray[i].In_Vap, tray[i + 1].Out_Vap);
- end for;
- connect(tray[1].Out_Vap, condenser.In_Vap);
- connect(condenser.Out_Liq, tray[1].In_Liq);
- connect(tray[Nt - 2].Out_Liq, reboiler.In_Liq);
- connect(reboiler.Out_Vap, tray[Nt - 2].In_Vap);
-//tray pressures
- for i in 1:Nt - 2 loop
- tray[i].P = condenser.P + i * (reboiler.P - condenser.P) / (Nt - 1);
- end for;
-
- for i in 2:Nt - 1 loop
- tray[i - 1].OutType = "Null";
- tray[i - 1].Out.x_pc = zeros(3, Nc);
- tray[i - 1].Out.F = 0;
- tray[i - 1].Out.H = 0;
- tray[i - 1].Out.S = 0;
- tray[i - 1].Out.xvap = 0;
- tray[i - 1].Q = 0;
- end for;
- RR = condenser.Fliqout / condenser.Out.F;
- annotation(
- Icon(coordinateSystem(extent = {{-250, -600}, {250, 600}})),
- Diagram(coordinateSystem(extent = {{-250, -600}, {250, 600}})),
- __OpenModelica_commandLineOptions = "");
- end DistCol;
diff --git a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistTray.mo b/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistTray.mo
deleted file mode 100644
index f308a73..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/DistTray.mo
+++ /dev/null
@@ -1,137 +0,0 @@
-within Simulator.UnitOperations.DistillationColumn;
-
- model DistTray "Model of a tray used in distillation column"
- import Simulator.Files.*;
- parameter ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc = 2 "Number of components";
- parameter Boolean Bin = true;
- Real P(unit = "Pa", min = 0, start = Pg) "Pressure";
- Real T(unit = "K", min = 0, start = Tg) "Temperature";
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Feed molar flow";
- Real xin_c[Nc](each unit = "-", each min = 0, each max = 1,start=xg) "Feed components mole fraction";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Feed molar enthalpy";
-
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Sidedraw molar flow";
- Real Fvap_s[2](each unit = "mol/s", each min = 0,start={Fg,Fg}) "Vapor molar flow";
- Real Fliq_s[2](each unit = "mol/s", each min = 0,start={Fg,Fg}) "Liquid molar flow";
- Real xout_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Components mole fraction at sidedraw";
- Real xvap_sc[2, Nc](each unit = "-", each min = 0, each max = 1, start=yg) "Components vapor mole fraction";
- Real xliq_sc[2, Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Components liquid mole fraction";
-
- Real Hvap_s[2](unit = "kJ/kmol",start=Hvapg) "Vapor molar enthalpy";
- Real Hliq_s[2](unit = "kJ/kmol",start=Hliqg) "Liquid molar enthalpy";
- Real Q(unit = "W") "Heat load";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Side draw molar enthalpy";
- Real Hvapout_c[Nc](unit = "kJ/kmol",start=Hvapg) "Outlet components vapor molar enthalpy";
- Real Hliqout_c[Nc](unit = "kJ/kmol",start=Hliqg) "Outlet components liquid molar enthalpy";
- Real x_pc[3, Nc](each min =0, each max = 0,start={xguess,xguess,xguess});
-
- Real Pdew(unit = "Pa", min = 0, start = Pmax) "Dew pressure";
- Real Pbubl(unit = "Pa", min = 0, start = Pmin) "Bubble pressure";
- Real Pdmy1, Tdmy1, xdmy1_pc[3,Nc], Fdmy1,Hdmy1, Sdmy1, xvapdmy1;
- //this is adjustment done since OpenModelica 1.11 is not handling array modification properly
- String OutType(start = "Null");
- //L or V
- replaceable Simulator.Files.Interfaces.matConn In(Nc = Nc) if Bin annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- replaceable Simulator.Files.Interfaces.matConn In_Dmy(Nc = Nc, P = 0, T = 0, F = 0, x_pc = zeros(3, Nc), H = 0, S = 0, xvap = 0) if not Bin annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn In_Liq(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn Out_Liq(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn Out_Vap(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn In_Vap(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {50, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {100, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- extends GuessModels.InitialGuess;
-
- equation
-//connector equation
- if Bin then
- In.P = Pdmy1;
-//this is adjustment done since OpenModelica 1.11 is not handling array modification properly
- In.T = Tdmy1;
- In.x_pc = xdmy1_pc;
- In.F = Fdmy1;
- In.H = Hdmy1;
- In.S = Sdmy1;
- In.xvap = xvapdmy1;
- else
- In_Dmy.P = Pdmy1;
- In_Dmy.T = Tdmy1;
- In_Dmy.x_pc = xdmy1_pc;
- In_Dmy.F = Fdmy1;
- In_Dmy.H = Hdmy1;
- In_Dmy.S = Sdmy1;
- In_Dmy.xvap = xvapdmy1;
- end if;
-//this is adjustment done since OpenModelica 1.11 is not handling array modification properly
- xdmy1_pc[1, :] = xin_c[:];
- Hdmy1 = Hin;
- Fdmy1 = Fin;
-
- Out.P = P;
- Out.T = T;
- Out.F = Fout;
- Out.H = Hout;
- In_Liq.F = Fliq_s[1];
- In_Liq.H = Hliq_s[1];
- In_Liq.x_c[:] = xliq_sc[1, :];
- Out_Liq.F = Fliq_s[2];
- Out_Liq.H = Hliq_s[2];
- Out_Liq.x_c[:] = xliq_sc[2, :];
- In_Vap.F = Fvap_s[1];
- In_Vap.H = Hvap_s[1];
- In_Vap.x_c[:] = xvap_sc[1, :];
- Out_Vap.F = Fvap_s[2];
- Out_Vap.H = Hvap_s[2];
- Out_Vap.x_c[:] = xvap_sc[2, :];
- En.Q = Q;
-//Adjustment for thermodynamic packages
- x_pc[1, :] = (Fout .* xout_c[:] + Fvap_s[2] .* xvap_sc[2, :] + Fliq_s[2] .* xliq_sc[2, :]) / (Fliq_s[2] + Fvap_s[2] + Fout);
- x_pc[2, :] = xliq_sc[2,:];
- x_pc[3, :] = xvap_sc[2,:];
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* Pvap_c[:] ./ philiqbubl_c[:]);
-//Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* Pvap_c[:]) .* phivapdew_c[:]);
-//molar balance
-//Fin + Fvap_s[1] + Fliq_s[1] = Fout + Fvap_s[2] + Fliq_s[2];
- Fin .* xin_c[:] + Fvap_s[1] .* xvap_sc[1, :] + Fliq_s[1] .* xliq_sc[1, :] = Fout .* xout_c[:] + Fvap_s[2] .* xvap_sc[2, :] + Fliq_s[2] .* xliq_sc[2, :];
-//equillibrium
- xvap_sc[2, :] = K_c[:] .* xliq_sc[2, :];
-//raschford rice
-// xliq_sc[2,:] = ((Fin .* xin_c[:] + Fvap_s[1] .* xvap_sc[1, :] + Fliq_s[1] .* xliq_sc[1, :])./(Fin + Fvap_s[1] + Fliq_s[1])) ./(1 .+ (Fvap_s[2]/ (Fvap_s[2] + Fliq_s[2])) * (K[:] .- 1));
-// for i in 1:Nc loop
-// xvap_sc[2,i] = ((K[i]/(K[1])) * xliq_sc[2,i]) / (1 + (K[i] / (K[1])) * xliq_sc[2,i]);
-// end for;
-//summation equation
- sum(xliq_sc[2, :]) = 1;
- sum(xvap_sc[2, :]) = 1;
-// Enthalpy balance
- Fin * Hin + Fvap_s[1] * Hvap_s[1] + Fliq_s[1] * Hliq_s[1] = Fout * Hout + Fvap_s[2] * Hvap_s[2] + Fliq_s[2] * Hliq_s[2] + Q;
-//enthalpy calculation
- for i in 1:Nc loop
- Hliqout_c[i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- Hvapout_c[i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- end for;
- Hliq_s[2] = sum(xliq_sc[2, :] .* Hliqout_c[:]) + Hres_p[2];
- Hvap_s[2] = sum(xvap_sc[2, :] .* Hvapout_c[:]) + Hres_p[3];
-//sidedraw calculation
- if OutType == "L" then
- xout_c[:] = xliq_sc[2, :];
- elseif OutType == "V" then
- xout_c[:] = xvap_sc[2, :];
- else
- xout_c[:] = zeros(Nc);
- end if;
- annotation(
- Diagram(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- Icon(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- __OpenModelica_commandLineOptions = "");
- end DistTray;
diff --git a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Reb.mo b/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Reb.mo
deleted file mode 100644
index 21383aa..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/Reb.mo
+++ /dev/null
@@ -1,98 +0,0 @@
-within Simulator.UnitOperations.DistillationColumn;
-
- model Reb "Model of a reboiler used in distillation column"
- import Simulator.Files.*;
- parameter Integer Nc = 2 "Number of components";
- parameter ChemsepDatabase.GeneralProperties C[Nc];
- parameter Boolean Bin = false;
- Real P(unit = "Pa", min = 0, start = Pg) "Pressure";
- Real T(unit = "K", min = 0, start = Tg) "Temperature";
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Feed molar flow";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Feed molar enthalpy";
- Real Hliqin(unit = "kJ/kmol",start=Hliqg) "Inlet liquid molar enthalpy";
- Real xin_c[Nc](each unit = "-", each min = 0, each max = 1, start=xguess) "Feed components mole fraction";
- Real Fliqin(unit = "mol/s", min = 0, start =Fg) "Inlet liquid molar flow";
- Real xliqin_c[Nc](each unit = "-", each min = 0, each max = 1,start=xg) "Inlet liquid component mole fraction";
-
- Real Fout(unit = "mol/s", min = 0, start = Fg) "Side draw molar flow";
- Real Fvapout(unit = "mol/s", min = 0, start =Fvapg) "Outlet vapor molar flow";
- Real xout_c[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Side draw mole fraction";
- Real xvapout_c[Nc](each unit = "-", each min = 0, each max = 1, start=xvapg) "Outlet vapor component mole fraction";
- Real Hvapout(unit = "kJ/kmol",start=Hvapg) "Outlet vapor molar enthalpy";
- Real Hvapout_c[Nc](each unit = "kJ/kmol") "Outlet vapor component molar enthalpy";
- Real Q(unit = "W") "Heat load";
- Real Hout(unit = "kJ/kmol") "Side draw molar enthalpy";
- Real x_pc[3, Nc](each unit = "-", each min = 0, each max = 1, each start = 1/(Nc + 1)) "Component mole fraction";
- Real Pdew(unit = "Pa", min = 0, start = sum(C[:].Pc)/Nc) "Dew point pressure";
- Real Pbubl(unit = "Pa", min = 0, start = sum(C[:].Pc)/Nc) "Bubble point pressure";
-
- replaceable Simulator.Files.Interfaces.matConn In(Nc = Nc) if Bin annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- replaceable Simulator.Files.Interfaces.matConn In_Dmy(Nc = Nc, P = 0, T = 0, x_pc = zeros(3, Nc), F = 0, H = 0, S = 0, xvap = 0) if not Bin annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn In_Liq(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.trayConn Out_Vap(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {50, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {100, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
- equation
-//connector equation
- if Bin then
- In.x_pc[1, :] = xin_c[:];
- In.H = Hin;
- In.F = Fin;
- else
- In_Dmy.x_pc[1, :] = xin_c[:];
- In_Dmy.H = Hin;
- In_Dmy.F = Fin;
- end if;
- Out.P = P;
- Out.T = T;
- Out.x_pc[1, :] = xout_c;
- Out.F = Fout;
- Out.H = Hout;
- In_Liq.F = Fliqin;
- In_Liq.H = Hliqin;
- In_Liq.x_c[:] = xliqin_c[:];
- Out_Vap.F = Fvapout;
- Out_Vap.H = Hvapout;
- Out_Vap.x_c[:] = xvapout_c[:];
- En.Q = Q;
-//Adjustment for thermodynamic packages
- x_pc[1, :] = (Fout .* xout_c[:] + Fvapout .* xvapout_c[:]) ./ (Fout + Fvapout);
- x_pc[2, :] = xout_c[:];
-//This equation is temporarily valid since this is only "partial" reboiler. Rewrite equation when "total" reboiler functionality is added
- x_pc[3, :] = xvapout_c[:];
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* Pvap_c[:] ./ philiqbubl_c[:]);
-//Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* Pvap_c[:]) .* phivapdew_c[:]);
-//molar balance
-// Fin + Fliqin = Fout + Fvapout;
- for i in 1:Nc loop
- Fin .* xin_c[i] + Fliqin .* xliqin_c[i] = Fout .* xout_c[i] + Fvapout .* xvapout_c[i];
- end for;
-//equillibrium
- xvapout_c[:] = K_c[:] .* xout_c[:];
-//summation equation
-// sum(xvapout_c[:]) = 1;
- sum(xout_c[:]) = 1;
- for i in 1:Nc loop
- Hvapout_c[i] = Simulator.Files.ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- end for;
- Hvapout = sum(xvapout_c[:] .* Hvapout_c[:]) + Hres_p[3];
-// bubble point calculations
- P = sum(xout_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6]));
-// Fout = 10;
- Fin * Hin + Fliqin * Hliqin = Fout * Hout + Fvapout * Hvapout + Q;
- annotation(
- Diagram(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- Icon(coordinateSystem(extent = {{-100, -40}, {100, 40}})),
- __OpenModelica_commandLineOptions = "");
- end Reb;
diff --git a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.mo b/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.mo
deleted file mode 100644
index 66cc267..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.UnitOperations;
-
-package DistillationColumn
- extends Modelica.Icons.Package;
-end DistillationColumn;
diff --git a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.order b/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.order
deleted file mode 100644
index 5a8f2be..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/DistillationColumn/package.order
+++ /dev/null
@@ -1,4 +0,0 @@
-Cond
-DistTray
-Reb
-DistCol
diff --git a/src/main/Simulator/Simulator/UnitOperations/EquilibriumReactor.mo b/src/main/Simulator/Simulator/UnitOperations/EquilibriumReactor.mo
deleted file mode 100644
index 73672e5..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/EquilibriumReactor.mo
+++ /dev/null
@@ -1,176 +0,0 @@
-within Simulator.UnitOperations;
-
-model EquilibriumReactor
-
-extends Simulator.Files.Icons.EquilibriumReactor;
-
-//EquiibriumReactor Code works for all the valid phases and all modes available in DWSIM
- //The reaction basis included are PartialPressure, Activity and MoleFraction
- //The base component need not be specified and is directly calculated from an external function
- //==========================================================================================================
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] annotation(
- Dialog(tab = "General-Specifications", group = "Component-parameters"));
-
- parameter Integer Nc annotation(
- Dialog(tab = "General-Specifications", group = "Component-parameters"));
- //======================================================================================
-
-
- extends Simulator.GuessModels.InitialGuess;
- //Connector Variables
- Real Pin, Tin, Fin, Hin, Sin, xin_c[Nc], xvapin;
- Real Pout, Tout, Fout, Hout, Sout, xout_c[Nc], xvapout;
- Real Q;
-
-//Model Variables
- Real Psat[Nc]"Vapour Pressure";
- Real Kmod[Nr]"Modified Equiibrium Contant";
- Real Fin_c[Nc]"Component Molar Flow Rates";
- Real Hr"Reaction Heat";
- //Model Parameters
- parameter String Phase;
- parameter String Basis;
- parameter String Mode;
- parameter Real Pdel;
- parameter Real Tdef;
- //Reaction Variables
- Real SC_rc[Nr,Nc];
- Integer BC_r[Nr]"Base component of reaction";
- Real Ndel[Nr];
- Real Scabs[Nr,Nc]"Relative stoichiometry with respect to base component";
- Real Ext_r[Nr](each start=xvapg) "Reaction Extent";
- Real X_r[Nr,Nc]"Conversion of reactants";
- //============================================================================================================
-
- extends Simulator.Files.Models.ReactionManager.EquilibriumReaction( Nr = 1,Coef_cr = {{-1}, {-1}, {1},{1}},Rmode="ConstantK",Kg={0.5},T =Tout);
- Simulator.Files.Interfaces.matConn Out(Nc=Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn enConn annotation(
- Placement(visible = true, transformation(origin = {2, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -130}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn In(Nc=Nc) annotation(
- Placement(visible = true, transformation(origin = {-98, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //=========================================================================================
-equation
-//=========================================================================================
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.S = Sin;
- In.x_pc[1, :] = xin_c;
- In.xvap = xvapin;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc[1, :] = xout_c;
- Out.xvap = xvapout;
- enConn.Q = Q;
-
- Pout = Pin - Pdel;
-
-for i in 1:Nc loop
-Psat[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP,Tin);
-end for;
-//Automated calculation of base component
- for i in 1:Nc loop
- Fin_c[i] = Fin * xin_c[i];
- end for;
-
-for i in 1:Nr loop
-BC_r[i] = Simulator.Files.Models.ReactionManager.BaseCalc(Nc,Fin_c,SC_rc[i,:]);
-end for;
-
-
-for j in 1:Nr loop
-for i in 1:Nc loop
-SC_rc[j,i] = Coef_cr[i,j];
-end for;
-end for;
-//==========================================================================================================
- for i in 1:Nr loop
- Ndel[i] = sum(SC_rc[i, 1:Nc]);
- end for;
-
-if Mode == "Isothermal" then
- Tout = Tin;
- Hr = Hr_r[1] * 1E-3 * (Fin_c[BC_r[1]]*X_r[1,BC_r[1]])/(Coef_cr[BC_r[1],1]) * (Coef_cr[BC_r[1],1]);
- Q= (Hout*Fout*1E-3) - (Hin*Fin*1E-3) -Hr;
-
-else
- if Mode=="OutletTemperature" then
- Tout = Tdef;
- Hr = Hr_r[1] * 1E-3 * (Fin_c[BC_r[1]]*X_r[1,BC_r[1]])/(Coef_cr[BC_r[1],1]) * (Coef_cr[BC_r[1],1]);
- Q= (Hout*Fout*1E-3) - (Hin*Fin*1E-3) -Hr;
-
- else
- Q=0;
- Hr =Hr_r[1] * 1E-3 * (Fin_c[BC_r[1]]*X_r[1,BC_r[1]])/(Coef_cr[BC_r[1],1]) * (Coef_cr[BC_r[1],1]);
- Q = (Hout*Fout*1E-3) - (Hin*Fin*1E-3) -Hr;
- end if;
-end if;
-for i in 1:Nr loop
- for j in 1:Nc loop
- Scabs[i, j] = SC_rc[i, j] / abs(SC_rc[i, BC_r[i]]);
- end for;
-end for;
-if Phase == "Vapour" then
- if Basis == "MoleFraction" then
- for i in 1:Nr loop
- Kmod[i] = K[i];
- Kmod[i] = product((xin_c+ Ext_r * Scabs) .^ SC_rc[i, 1:Nc]) / (1 + sum(Ext_r * Scabs)) ^ sum(SC_rc[i, 1:Nc]);
- end for;
- else
- if Basis == "Activity" then
- for i in 1:Nr loop
- Kmod[i] = K[i] / (Pin / 101325) ^ Ndel[i];
- Kmod[i] = product((xin_c + Ext_r * Scabs) .^ SC_rc[i, 1:Nc]) / (1 + sum(Ext_r * Scabs)) ^ sum(SC_rc[i, 1:Nc]);
- end for;
- else
- for i in 1:Nr loop
- Kmod[i] = K[i] / (Pout) ^ Ndel[i];
- Kmod[i]=product((xin_c+Ext_r * Scabs).^ SC_rc[i, 1:Nc])/(1 + sum(Ext_r * Scabs))^sum(SC_rc[i, 1:Nc]);
- end for;
- end if;
- end if;
-else
- if Basis == "MoleFraction" then
- for i in 1:Nr loop
- Kmod[i] = K[i];
- Kmod[i]=product((xin_c + Ext_r *Scabs).^ SC_rc[i,1:Nc])/(1 + sum(Ext_r * Scabs))^sum(SC_rc[i, 1:Nc]);
- end for;
- else
- if Basis == "Activity" then
- for i in 1:Nr loop
- Kmod[i] = K[i] /( Pout ^ (-Ndel[i]));
- Kmod[i]=product((Psat.*(xin_c + Ext_r * Scabs)).^ SC_rc[i, 1:Nc])/(1 + sum(Ext_r * Scabs))^sum(SC_rc[i, 1:Nc]);
- end for;
- else
- for i in 1:Nr loop
- Kmod[i] = K[i];
- Kmod[i]=product((Psat.*(xin_c + Ext_r * Scabs)).^ SC_rc[i, 1:Nc])/(1 + sum(Ext_r * Scabs))^sum(SC_rc[i, 1:Nc]);
- end for;
- end if;
- end if;
-end if;
-
-Fout = (1 + sum(Ext_r * Scabs))*Fin;
-for i in 1:Nc loop
- xout_c[i] = (xin_c[i] + Ext_r * Scabs[1:Nr, i])*(Fin/Fout);
-end for;
-
-for j in 1:Nr loop
-for i in 1:Nc loop
-if(SC_rc[j,i]<0) then
-X_r[j,i] =((Fin *xin_c[i]) - (Fout * xout_c[i]))/(Fin * xin_c[i]);
-else
-X_r[j,i]=0;
-end if;
-end for;
-end for;
-//===========================================================================================================
-annotation(
- Diagram(coordinateSystem(extent = {{-100, -200}, {100, 200}})),
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}})));
-end EquilibriumReactor;
diff --git a/src/main/Simulator/Simulator/UnitOperations/Flash.mo b/src/main/Simulator/Simulator/UnitOperations/Flash.mo
deleted file mode 100644
index 6cd2b24..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/Flash.mo
+++ /dev/null
@@ -1,129 +0,0 @@
-within Simulator.UnitOperations;
-
-model Flash "Model of a flash column to separate vapor and liquid phases from a mixed phase material stream"
-//==============================================================================
-//Header Files and Parameters
- extends Simulator.Files.Icons.Flash;
- import Simulator.Files.*;
- parameter ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components";
- parameter Boolean BTdef = false "True if flash is operated at temperature other than feed temp else false";
- parameter Boolean BPdef = false "True if flash is operated at pressure other than feed pressure else false";
- parameter Real Tdef(unit = "K") = 298.15 "Separation temperature if BTdef is true";
- parameter Real Pdef(unit = "Pa") = 101325 "Separation pressure if BPdef is true";
-
-//==============================================================================
-//Model Variables
- Real T(unit = "K", start = Tg, min = 0) "Flash column temperature";
- Real P(unit = "Pa", start = Pg, min = 0) "Flash column pressure";
- Real Pbubl(unit = "Pa", min = 0, start = Pmin) "Bubble point pressure";
- Real Pdew(unit = "Pa", min = 0, start = Pmax) "Dew point pressure";
- Real F_p[3](each unit = "mol/s", each min = 0,start = {Fg,Fliqg,Fvapg})"Feed stream mole flow";
- Real x_pc[3, Nc](each unit = "-", each min = 0, each max = 1, start={xguess,xg,yg}) "Component mole fraction";
- Real Cp_pc[3, Nc](each unit = "kJ/[kmol.K]") "Component molar specific heat";
- Real H_pc[3, Nc](each unit = "kJ/kmol") "Comopent molar enthalpy";
- Real S_pc[3, Nc](each unit = "kJ/[kmol.K]") "Component molar entropy";
- Real Cp_p[3](each unit = "kJ/[kmol.K]") "Molar specific heat in phase";
- Real H_p[3](each unit = "kJ/kmol") "Molar enthalpy in phase";
- Real S_p[3](each unit = "kJ/[kmol.K]") "Molar entropy in phase";
- Real xliq(unit = "-", min = 0, max = 1, start = xliqg)"Liquid phase mole fraction";
- Real xvap(unit = "-", min = 0, max = 1, start = xvapg) "Vapor phase mole fraction";
-
-//===============================================================================
-//Instantiation of Connectors
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out1(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {102, 72}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 80}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out2(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, -72}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -80}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
-equation
-//================================================================================
-//Connector equation
- if BTdef then
- Tdef = T;
- else
- In.T = T;
- end if;
- if BPdef then
- Pdef = P;
- else
- In.P = P;
- end if;
- In.F = F_p[1];
- In.x_pc[1, :] = x_pc[1, :];
- Out2.T = T;
- Out2.P = P;
- Out2.F = F_p[2];
- Out2.x_pc[1, :] = x_pc[2, :];
- Out1.T = T;
- Out1.P = P;
- Out1.F = F_p[3];
- Out1.x_pc[1, :] = x_pc[3, :];
-
-//=================================================================================
-//Mole Balance
- F_p[1] = F_p[2] + F_p[3];
- x_pc[1, :] .* F_p[1] = x_pc[2, :] .* F_p[2] + x_pc[3, :] .* F_p[3];
-
-//==================================================================================
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* x_pc[1, :] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6]) ./ philiqbubl_c[:]);
-
-//==================================================================================
-//Dew point calculation
- Pdew = 1 / sum(x_pc[1, :] ./ (gmadew_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / T + C[:].VP[4] * log(T) + C[:].VP[5] .* T .^ C[:].VP[6])) .* phivapdew_c[:]);
- if P >= Pbubl then
- x_pc[3, :] = zeros(Nc);
- F_p[3] = 0;
- elseif P >= Pdew then
-//===================================================================================
-//VLE region
- for i in 1:Nc loop
- x_pc[2, i] = x_pc[1, i] ./ (1 + xvap * (K_c[i] - 1));
- end for;
- sum(x_pc[2, :]) = 1;
- else
-//==================================================================================
-//above dew point region
- x_pc[2, :] = zeros(Nc);
- F_p[2] = 0;
- end if;
-//===================================================================================
-//Energy Balance / Specific Heat and Enthalpy calculation from Thermodynamic Functions
- for i in 1:Nc loop
- Cp_pc[2, i] = ThermodynamicFunctions.LiqCpId(C[i].LiqCp, T);
- Cp_pc[3, i] = ThermodynamicFunctions.VapCpId(C[i].VapCp, T);
- H_pc[2, i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- H_pc[3, i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, T);
- (S_pc[2, i], S_pc[3, i]) = ThermodynamicFunctions.SId(C[i].VapCp, C[i].HOV, C[i].Tb, C[i].Tc, T, P, x_pc[2, i], x_pc[3, i]);
- end for;
-//=======================================================================================
-//Specific Heat and Enthalpy calculation for Liquid and Vapor Phase
- for i in 2:3 loop
- Cp_p[i] = sum(x_pc[i, :] .* Cp_pc[i, :]) + Cpres_p[i];
- H_p[i] = sum(x_pc[i, :] .* H_pc[i, :]) + Hres_p[i];
- S_p[i] = sum(x_pc[i, :] .* S_pc[i, :]) + Sres_p[i];
- end for;
-//========================================================================================
-//Specific Heat and Enthalpy calculation for Mixture Phase
- Cp_p[1] = xliq * Cp_p[2] + xvap * Cp_p[3];
- Cp_pc[1, :] = x_pc[1, :] .* Cp_p[1];
- H_p[1] = xliq * H_p[2] + xvap * H_p[3];
- H_pc[1, :] = x_pc[1, :] .* H_p[1];
- S_p[1] = xliq * S_p[2] + xvap * S_p[3];
- S_pc[1, :] = x_pc[1, :] * S_p[1];
-
-//=======================================================================================
-//phase molar fractions
- xliq = F_p[2] / F_p[1];
- xvap = F_p[3] / F_p[1];
-annotation(
- Icon(coordinateSystem(extent = {{-100, -200}, {100, 200}})),
- Diagram(coordinateSystem(extent = {{-100, -200}, {100, 200}})),
- __OpenModelica_commandLineOptions = "",
- Documentation(info = "The flash column is used to calculate the vapor and liquid phase distribution for a mixed phase material stream.
Following calculation parameters may be provided for the flash column:
- Separation Temperature
- Separation Pressure
For example on simulating a flash column, go to Examples >> Flash
"));
- end Flash;
diff --git a/src/main/Simulator/Simulator/UnitOperations/HeatExchanger.mo b/src/main/Simulator/Simulator/UnitOperations/HeatExchanger.mo
deleted file mode 100644
index f1d5847..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/HeatExchanger.mo
+++ /dev/null
@@ -1,751 +0,0 @@
-within Simulator.UnitOperations;
-
-model HeatExchanger
- extends Simulator.Files.Icons.HeatExchanger;
- //Heat-Exchanger Operates in various modes
- //Mode-I - Estimation of Hot Fluid Outlet Temperature
- // Inputs : Pdelh,deltap_cold,Heat_Loss,Tcout,Flow Direction,Name of the calculation type,Area
- //Mode-II - Estimation of Cold Fluid Outlet Temperature
- // Inputs : Pdelh,deltap_cold,Heat_Loss,Thout,Flow Direction,Name of the calculation type,Area
- //Mode-III - Estimation of Both the fluid outlet temperature
- // Inputs : Pdelh,deltap_cold,Heat_Loss,Qact,Flow Direction,Name of the calculation type,Area
- //Mode-IV - Estimation of both the fluid outlet temperature-NTU Method
- // Inputs : Pdelh,deltap_cold,Heat_Loss,U,Flow Direction,Name of the calculation type,Area
- //Mode-V-Estimation of Heat Transfer Area
- // Inputs : Pdelh,deltap_cold,Heat_Loss,U,Flow Direction,Name of the calculation type
- //Mode-VI-Estimation of all parameters given the heat transfer Eff
- // Inputs : Pdelh,deltap_cold,Heat_Loss,U,Eff,Flow Direction,Name of the calculation type
-
- import Simulator.Files.*;
- import Simulator.Files.Thermodynamic_Functions.*;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "number of compounds ";
- Simulator.Files.Interfaces.matConn In_Hot(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-74, 38}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out_Hot(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {80, 38}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn In_Cold(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-74, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, 100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out_Cold(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {76, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //Parameters
- //Mode-I -Outlet Temperature-Hot Stream Calculaions
- parameter Real Qloss = 0;
- parameter Real Pdelh = 0;
- parameter Real Pdelc = 0;
- parameter String Mode"''CoCurrent'',''CounterCurrent''";
- parameter String Cmode"''BothOutletTemp(UA)''";
- Real mu_c,mu_h,k_c,k_h,rho_c,rho_h,MW_h,MW_c;
- //Variables
- //Hot Stream Inlet
- Real Phin(start=Pg);
- Real Thin(start=Tg);
- Real Fhin(start=Fg);
- Real Hhin(start=Htotg);
- Real Shin;
- Real xhin_pc[2, Nc](start={xg,xg});
- Real xvaphin(start=xvapg);
- //Hot Stream Outlet
- Real Phout(start=Pg);
- Real Thout(start=Tg);
- Real Fhout(start=Fg);
- Real Hhout(start=Htotg);
- Real Shout;
- Real xhout_pc[2, Nc](start={xg,xg});
- Real xvaphout;
- //Cold Stream Inlet
- Real Pcin(start=Pg);
- Real Tcin(start=Tg);
- Real Fcin[1](start=Fg);
- Real Hcin(start=Htotg);
- Real Scin;
- Real xcin_pc[2, Nc];
- Real xvapcin(start=xvapg);
- //Cold Stream Outlet
- Real Pcout(start=Pg);
- Real Tcout(start=Tg);
- Real couttT(start=Tg);
- Real Fcout[1](start=Fg);
- Real Hcout(start=Htotg);
- Real Scout;
- Real xcout_pc[2, Nc](start={xg,xg});
- Real xvapcout(start=xvapg);
-
- Real Qact(start = 2000) "Actual Heat Load";
- Real Qmax, Qmaxh, Qmaxc;
- //Hot Stream Enthalpy at Cold Stream Inlet Temperature
- Real Hhin_pc[2, Nc];
- Real Hhin_p[3](start={Htotg,Hliqg,Hvapg});
- //Cold Stream Enthalpy at Hot Stream Inlet Temperature
- Real Hcin_pc[2, Nc];
- Real Hcin_p[3](start={Htotg,Hliqg,Hvapg});
- Real Hdel;
- //Heat Exchanger Effeciency
- Real Eff(start=xliqg);
- //LMTD
- Real Tdel1(start = Tg), Tdel2(start = Tg);
- Real LMTDf "Final Log Mean Temperature Difference";
- Real LMTD"LMTD estimated by other modes";
- //Global Heat Transfer Coefficient
- Real U(start=Fg),Uf(start=Fg);
- //Heat Transfer A
- Real Af"Final Heat Transfer Area",A;
-
- //==========================================================================================================
- //Mode-4-NTU Method-when both the outlet temperatures are unknown
- //Heat Capacity Rate for hot and cold fluid
- Real Cc, Ch;
- //Number of Transfer Units for Hot Side and Cold Side
- Real Ntuc, Ntuh;
- //Heat Capacity Ratio for hot and cold side
- Real Rc, Rh;
- //Effectiveness Factor
- Real Effc, Effh;
-//==============================================================================================================
-//==============================================================================================================
- parameter String Case = "Cold in Tube";
- //Case -Refers to the type of Fluid in the Tubes
- //Case-1 - Cold Fluid in Tubes
- //Case-2 - Hot Fluid in Tubes
-
- parameter String Layout = "Square";
- //Layout - Referes to the Tube Layout arrangment
- //Layout-1 - Triangle
- //Layout-2 - Rotated Triangle
- //Layout-3 - Square
- //Layout-4 - Rotated Square
-
-
- //Mass Parameters
- Real MWhin,MWcin,MWhout,MWcout;
- Real Cph_pc[3,Nc], Cpc_pc[3,Nc],Cph_p[3],Cpc_p[3],Cphin,Cpcin;
- Real Fmhin,Fmcin;
-
- //Design Rating Parameters and Variables
- Real f1,f2,f3,f4,f5;
-
- Real Fx,Fy,Fl;
-
- //Parameters used to compute LMTD correction factor
- Real R(start=6);
- Real P(start=5);
- Real S(start=6);
- Real W(start=5);
- Real LMTDr(start=20) "Log Mean Temperature Difference";
- Real Tdel3(start=20);
- Real Tdel4(start=30);
- Real LMTDc(start=30) "Corrected Log Mean Temperature Difference";
-
- //Heat Exchanger Geometry
- //Tube-Side Specifications
- parameter Real Do(unit = "mm") = 19.04999 "External diameter of the tube";
- parameter Real Di(unit = "mm") = 14.83004 "Internal diameter of the tube";
- parameter Real L(unit = "m") = 6.5 "Tube Length";
- parameter Real Pt(unit = "mm") = 25.39999 "Tube Spacing";
- parameter Real n = 2 "Number of Shell Passes";
- parameter Real Nts =500 "Tube Number per Shell";
- parameter Real Tube_F(unit = "K.m^2/W") = 0.00035222 "Tube side Fouling Fractor";
- parameter Real kt(unit = "W/m.K") = 70 "Thermal Conductivity of the tube material";
- parameter Real Epsilon(unit = "mm") = 0.045 "Roughness";
-
- //===========================================================================================
- //Shell Side Specifications
- parameter Real Shells = 1 "Number of Shells in Series";
- parameter Real nt = 2 "Number of Tube Passes per shell";
- parameter Real Dsi(unit = "mm") = 736.5996 "Shell Internal Diameter";
- parameter Real Baffle_Cut(unit = "%") = 25;
- parameter Real Baffle_Spacing(unit = "mm") = 406.40003 "Baffle Spacing";
- parameter Real Shell_F(unit = "K.m^2/W") = 0.0005283309 "Shell side Fouling Factor";
- //==========================================================================================
- //Thermo-Physical Properties evaluated at repsective temperatures
- //==============================================================================================
- //Density of individual components in units = mol/m^3
- Real rho1[Nc](each unit = "mol/m^3");
- Real rho2[Nc](each unit = "mol/m^3");
- Real rho3[Nc](each unit = "mol/m^3");
- Real rho4[Nc](each unit = "mol/m^3");
- //Density of Inlet and Outlet Streams in units = kg/m^3
- Real rho_cin(unit = "kg/m^3");
- Real rho_hin(unit = "kg/m^3");
- Real rho_cout(unit = "kg/m^3");
- Real rho_hout(unit = "kg/m^3");
- //Viscocity of individual components in units = Pas
- Real mu1[Nc](each unit = "Pas");
- Real mu2[Nc](each unit = "Pas");
- Real mu3[Nc](each unit = "Pas");
- Real mu4[Nc](each unit = "Pas");
- //Viscocity of Inlet and Outlet Streams in units = Pas
- Real mu_cin(unit = "Pas");
- Real mu_hin(unit = "Pas");
- Real mu_cout(unit = "Pas");
- Real mu_hout(unit = "Pas");
- //Thermal Conductivity of induvidual components in units = W/m.K
- Real k1[Nc](each unit = "W/m.K");
- Real k2[Nc](each unit = "W/m.K");
- Real k3[Nc](each unit = "W/m.K");
- Real k4[Nc](each unit = "W/m.K");
- //Thermal Conductivity of Inlet and Outlet streams in units = W/m.K
- Real k_cin(unit = "W/m.K");
- Real k_hin(unit = "W/m.K");
- Real k_cout(unit = "W/m.K");
- Real k_hout(unit = "W/m.K");
- //==============================================================================================
- Real Area(unit = "m^2") "Flow area in the inner section of the tubes";
- Real Atc;
-
- Real E_D "Roughness Factor";
- //Constants to evaluate Friction Factor
- Real a1;
- Real b1;
- Real f "Friction Factor-Tube Side";
- Real Nt;
- Real vt(unit = "m/s") "Average speed of the fluid flowing within the tubes";
- Real Ret "Reynolds Number for the flow in the tubes";
- Real Prt "Prandtl Number for tube side fluid";
- Real Pdelt(unit = "Pa",start=Pg) "Tube side Pressure Drop";
- Real hi(unit = "W/m^2.K") "Tube Side Heat Transfer Coefficient";
- //Parameters for Tube Layout Geometry
- Real xx, yy;
- Real Nh, Y, Np;
-
- Real Z;
- //Shell Side Parameters
- Real nsc;
- Real Hdi;
- Real Nb "Number of Baffles";
- Real Dsf;
- Real Fp;
- Real Cb;
- Real Ca;
- Real Ss;
- Real Ssf;
- Real Gsf;
- Real Res "Shell Side Reynolds Number";
- Real Prs "Shell side Prandtl Number";
- Real jh;
- Real fs "Shell Side Friction Factor";
- Real Cx;
- Real Pdels(unit = "Pa",start=Pg) "Shell side Pressure Drop";
- Real Fh;
- Real Ssh(unit = "m^2") "Effective area of flow section";
- Real Gsh;
- Real Rsh;
- Real lb;
- Real Ec;
- Real he(unit = "W/m^2.K") "Shell Side Heat Transfer Coefficient";
-
- protected
- parameter Real aa1 = 0.9078565328950;
- parameter Real bb1 = 0.6633110612656;
- parameter Real cc1 = -4.432976463965;
- parameter Real aa2 = 5.3718559074820;
- parameter Real bb2 = -0.334167651380;
- parameter Real cc2 = 0.7267144209289;
- parameter Real aa3 = 0.5380765047084;
- parameter Real bb3 = 0.3761125784041;
- parameter Real cc3 = -3.874122438618;
- parameter Real aa4 = 0.8413482436171;
- parameter Real bb4 = 0.6137452048509;
- parameter Real cc4 = -4.269631846617;
- parameter Real aa5 = 4.9901814007765;
- parameter Real bb5 = -0.324374425103;
- parameter Real cc5 = 1.0848504232691;
- parameter Real aa6 = 0.5502379008813;
- parameter Real bb6 = 0.3655956022543;
- parameter Real cc6 = -3.990413056254;
- parameter Real aa7 = 0.6673865440676;
- parameter Real bb7 = 0.6802600338862;
- parameter Real cc7 = -4.522291113086;
- parameter Real aa8 = 4.5749169651729;
- parameter Real bb8 = -0.322017594423;
- parameter Real cc8 = 1.1729518374369;
- parameter Real aa9 = 0.3686963113096;
- parameter Real bb9 = 0.3839785947581;
- parameter Real cc9 = -3.627346599678;
- parameter Real F =0.9828;
- parameter Real m = 0.96;
-//===========================================================================================================
- extends GuessModels.InitialGuess;
-equation
-//Hot Stream Inlet
- In_Hot.P = Phin;
- In_Hot.T = Thin;
- In_Hot.F = Fhin;
- In_Hot.H = Hhin;
- In_Hot.S = Shin;
- In_Hot.x_pc[1, :] = xhin_pc[1, :];
- In_Hot.x_pc[2, :] = xhin_pc[2, :];
- In_Hot.xvap = xvaphin;
-//Hot Stream Outlet
- Out_Hot.P = Phout;
- Out_Hot.T = Thout;
- Out_Hot.F = Fhout;
- Out_Hot.H = Hhout;
- Out_Hot.S = Shout;
- Out_Hot.x_pc[1, :] = xhout_pc[1, :];
- Out_Hot.x_pc[2, :] = xhout_pc[2, :];
- Out_Hot.xvap = xvaphout;
-//Cold Stream In
- In_Cold.P = Pcin;
- In_Cold.T = Tcin;
- In_Cold.F = Fcin[1];
- In_Cold.H = Hcin;
- In_Cold.S = Scin;
- In_Cold.x_pc[1, :] = xcin_pc[1, :];
- In_Cold.x_pc[2, :] = xcin_pc[2, :];
- In_Cold.xvap = xvapcin;
-//Cold Stream Out
- Out_Cold.P = Pcout;
- Out_Cold.T = couttT;
- Out_Cold.F = Fcout[1];
- Out_Cold.H = Hcout;
- Out_Cold.S = Scout;
- Out_Cold.x_pc[1, :] = xcout_pc[1, :];
- Out_Cold.x_pc[2, :] = xcout_pc[2, :];
- Out_Cold.xvap = xvapcout;
-equation
- Fhin = Fhout;
- Fcin[1] = Fcout[1];
- xhin_pc[1] = xhout_pc[1];
- xcin_pc[1] = xcout_pc[1];
- Phout = Phin - Pdelh;
- Pcout = Pcin - Pdelc;
- Qact = Fcin[1] * (Hcout - Hcin);
- Hdel = -(Qact + Qloss * 1000) / Fhin;
- if Cmode == "BothOutletTemp(UA)" then
- Hhout = Hhin - Qact / Fhin - Qloss * 1000 / Fhin;
- Tcout = Tcin + Effc * (Thin - Tcin);
- else
- Tcout = couttT;
- Hhout = Hhin + Hdel;
- end if;
-//==========================================================================================================
-//Calculation of Hot Stream Enthalpy at Cold Stream Inlet Temperature
- for i in 1:Nc loop
- Hhin_pc[1, i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Tcin);
- Hhin_pc[2, i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Tcin);
- end for;
- for i in 1:2 loop
- Hhin_p[i] = sum(xhin_pc[i, :] .* Hhin_pc[i, :]);
-/*+ inResMolEnth[2, i]*/
- end for;
- Hhin_p[3] = (1 - xvaphin) * Hhin_p[1] + xvaphin * Hhin_p[2];
-//Maximum Theoritical Heat Exchange-Hot Fluid
- Qmaxh = Fhin * (Hhin - Hhin_p[3]);
-//===========================================================================================================
-//Enthalpy of Cold Stream Enthalpy at Hot Fluid Inlet Temperature
- for i in 1:Nc loop
- Hcin_pc[1, i] = ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Thin);
- Hcin_pc[2, i] = ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Thin);
- end for;
- for i in 1:2 loop
- Hcin_p[i] = sum(xcin_pc[i, :] .* Hcin_pc[i, :]);
-/*+ inResMolEnth[1, i]*/
- end for;
- Hcin_p[3] = (1 - xvapcin) * Hcin_p[1] + xvapcin * Hcin_p[2];
-//Maximum Theoritical Heat Exchange- Cold Fluid
- Qmaxc = Fcin[1] * abs(Hcin - Hcin_p[3]);
-//Maximum Heat Exchange
- Qmax = min(Qmaxh, Qmaxc);
- Eff = (Qact - Qloss * 1000) / Qmax * 100;
-//Log Mean Temperature Difference
- if(Mode=="CoCurrent") then
- Tdel1 =Thin-Tcin;
- Tdel2 =Thout-Tcout;
- elseif Mode=="CounterCurrent" then
- Tdel1 =Thin-Tcout;
- Tdel2 =Thout-Tcin;
- end if;
-
- if Tdel1 <= 0 or Tdel2 <= 0 then
- LMTD = 1;
- else
- LMTD = (Tdel1 - Tdel2) / log(Tdel1 / Tdel2);
- end if;
-
-//NTU-Method
- Cc = Fcin[1] * ((Hcout - Hcin) / (Tcout - Tcin));
- Ch = Fhin * ((Hhout - Hhin) / (Thout - Thin));
-//Number of Transfer Units
- Ntuc = U * A / Cc;
- Ntuh = U * A / Ch;
-//Heat Capacity Ratio for Hot and Cold Side
- Rc = Cc / Ch;
- Rh = Ch / Cc;
-
-
- if Mode=="CoCurrent" then
- Effc = (1- exp(-Ntuc * (1+Rc)))/(1+Rc);
- Effh = (1- exp(-Ntuh * (1+Rh)))/(1+Rh);
- elseif Mode=="CounterCurrent" then
- Effc = (1-exp((Rc-1)*Ntuc))/(1 -Rc* exp((Rc-1)*Ntuc));
- Effh = (1-exp((Rh-1) *Ntuh ))/(1 -Rh * exp((Rh-1)*Ntuh));
- end if;
-
-//=========================================================================================================
- Uf = (Qact) / (Af * LMTDf);
-//===========================================================================================================
-f1 = Do * 1E-3 / (hi * (Di * 1E-3));
-f2 = Tube_F * (Do * 1E-3) / (Di * 1E-3);
-f3 = Do * 1E-3 / (2 * kt) * log(Do / Di);
-f4 = Shell_F;
-f5 = 1 / he;
-
-//Estimation of Shell side Heat Transfer Coefficient
- Fh = 1 / (1 + Nh * (Dsi / Pt) ^ 0.5);
- Ssh = Ss * m / Fh;
- lb = Baffle_Spacing * 1E-3 * (Nb - 1);
- if L == lb then
- Ec = 1;
- else
- Ec = (lb + (L - lb) * (2 * (Baffle_Spacing * 1E-3) / (L - lb)) ^ 0.6) / L;
- end if;
-//==============================================================================================================
- if Case == "Cold in Tube" then
- Gsh = Fmhin / Ssh;
- Rsh = Gsh * (Do * 1E-3) / mu_h;
- he = jh * k_h * (Prs ^ 0.34 / (Do * 1E-3)) * Ec;
- else
- Gsh = Fmcin / Ssh;
- Rsh = Gsh * (Do * 1E-3) / mu_c;
- he = jh * k_c * Prs ^ 0.34 / (Do * 1E-3) * Ec;
- end if;
-//==============================================================================================================
-//Shell-Side Pressure Drop
- if Case == "Cold in Tube" then
- Pdels = 4 * fs * Gsf ^ 2 / (2 * rho_h) * Cx * (1 - Hdi) * (Dsi / Pt) * Nb * (1 + Y * (Pt / Dsi)) * Shells;
- else
- Pdels = 4 * fs * Gsf ^ 2 / (2 * rho_c) * Cx * (1 - Hdi) * (Dsi / Pt) * Nb * (1 + Y * (Pt / Dsi)) * Shells;
- end if;
-//==============================================================================================================
-//============================================================================================================
-//Computation of Friction Factor for Shell Side Flow
- if Layout == "Triangle" and Layout == "Rotated Triangle" then
- if Res < 100 then
- jh = 0.497 * Rsh ^ 0.54;
- else
- jh = 0.378 * Rsh ^ 0.59;
- end if;
-//============================================================================================================
- if Z <= 1.2 then
- if Res < 100 then
- fs = 276.46 * Res ^ (-0.979);
- elseif Res < 1000 then
- fs = 30.26 * Res ^ (-0.523);
- else
- fs = 2.93 * Res ^ (-0.186);
- end if;
- elseif Z <= 1.3 then
- if Res < 100 then
- fs = 208.14 * Res ^ (-0.945);
- elseif Res < 1000 then
- fs = 27.6 * Res ^ (-0.525);
- else
- fs = 2.27 * Res ^ (-0.163);
- end if;
- elseif Z <= 1.4 then
- if Res < 100 then
- fs = 122.73 * Res ^ (-0.865);
- elseif Res < 1000 then
- fs = 17.82 * Res ^ (-0.474);
- else
- fs = 1.86 * Res ^ (-0.146);
- end if;
- else
- if Res < 100 then
- fs = 104.33 * Res ^ (-0.869);
- elseif Res < 1000 then
- fs = 12.69 * Res ^ (-0.434);
- else
- fs = 1.526 * Res ^ (-0.129);
- end if;
- end if;
-//==================================================================================================
- else
- if Res < 100 then
- jh = 0.385 * Rsh ^ 0.526;
- else
- jh = 0.2487 * Rsh ^ 0.625;
- end if;
-//===================================================================================================
- if Z <= 1.2 then
- if Res < 100 then
- fs = 230 * Res ^ (-1);
- elseif Res < 1000 then
- fs = 16.23 * Res ^ (-0.43);
- else
- fs = 2.67 * Res ^ (-0.173);
- end if;
- elseif Z <= 1.3 then
- if Res < 100 then
- fs = 142.22 * Res ^ (-0.949);
- elseif Res < 1000 then
- fs = 11.93 * Res ^ (-0.43);
- else
- fs = 1.77 * Res ^ (-0.144);
- end if;
- elseif Z <= 1.4 then
- if Res < 100 then
- fs = 110.77 * Res ^ (-0.965);
- elseif Res < 1000 then
- fs = 7.524 * Res ^ (-0.4);
- else
- fs = 1.01 * Res ^ (-0.104);
- end if;
- else
- if Res < 100 then
- fs = 58.18 * Res ^ (-0.862);
- elseif Res < 1000 then
- fs = 6.76 * Res ^ (-0.411);
- else
- fs = 0.718 * Res ^ (-0.008);
- end if;
- end if;
- end if;
-//==============================================================================================================
-//Cx values with respect to Tube_Layout
- if Layout == "Triangle" and Layout == "Rotated Triangle" then
- Cx = 1.154;
- elseif Layout == "Square" then
- Cx = 1;
- else
- Cx = 1.414;
- end if;
-//============================================================================================================
-//=============================================================================================================
-//Calculation of Reynolds Number for Shell Side
- if Case == "Cold in Tube" then
- Gsf = Fmhin / Ssf;
- Res = Gsf * (Do * 1E-3) / mu_h;
- Prs = mu_h * (Cphin / MW_h) / (k_h * 1E-3);
- else
- Gsf = Fmcin / Ssf;
- Res = Gsf * (Do * 1E-3) / mu_c;
- Prs = mu_c * (Cpcin / MW_c) / (k_c * 1E-3);
- end if;
- Z = Pt / Do;
-//=============================================================================================================
-//======================================================================================================
-//Shell-Side Calculations
- if Layout == "Triangle" and Layout == "Rotated Triangle" then
- nsc = 1.1 * Nts ^ 0.5;
- else
- nsc = 1.19 * Nts ^ 0.5;
- end if;
- Dsf = (nsc - 1) * (Pt * 1E-3) + Do * 1E-3;
- Hdi = Baffle_Cut / 100;
- Nb = L / (Baffle_Spacing * 1E-3) + 1;
-//Calculation of Shell Side Pressure Drop
- xx = Dsi / Baffle_Spacing;
- yy = Pt / Do;
- if Layout == "Triangle" and Layout == "Rotated Triangle" then
- Nh = aa1 * xx ^ bb1 * yy ^ cc1;
- Y = aa2 * xx ^ bb2 * yy ^ cc2;
- Np = aa3 * xx ^ bb3 * yy ^ cc3;
- Cb = 0.97;
- elseif Layout == "Square" then
- Nh = aa4 * xx ^ bb4 * yy ^ cc4;
- Y = aa5 * xx ^ bb5 * yy ^ cc5;
- Np = aa6 * xx ^ bb6 * yy ^ cc6;
- Cb = 0.97;
- else
- Nh = aa7 * xx ^ bb7 * yy ^ cc7;
- Y = aa8 * xx ^ bb8 * yy ^ cc8;
- Np = aa9 * xx ^ bb9 * yy ^ cc9;
- Cb = 1.37;
- end if;
- Fp = 1 / (0.8 + Np * (Dsi * 1E-3 / (Pt * 1E-3)) ^ 0.5);
- Ca = Cb * (Pt * 1E-3 - Do * 1E-3) / (Pt * 1E-3);
- Ss = Ca * (Baffle_Spacing * 1E-3) * Dsf;
- Ssf = Ss / Fp;
-//========================================================================================================
-
-//=============================================================================================================
-//Computation of Tube Side Pressure Dropf
- if Case == "Cold in Tube" then
- Pdelt = f * L * (nt / (Di * 1E-3)) * (vt ^ 2 / 2) * rho_c;
- hi * Di * 1E-3 / k_c = f / 8 * Ret * (Prt / (1.07 + 12.7 * (f / 8) ^ 0.5 * (Prt ^ (2 / 3) - 1)));
- else
- Pdelt = f * L * nt / (Di * 1E-3 * (vt ^ 2 / 2) * rho_h);
- hi * (Di * 1E-3) / k_h = f / 8 * Ret * Prt / (1.07 + 12.7 * (f / 8) ^ 0.5 * (Prt ^ (2 / 3) - 1));
- end if;
-//===========================================================================================================
-//===========================================================================================================
-//Calculation of Friction Factor
- E_D = Epsilon / Di;
- if Ret > 3250 then
- a1 = log10(E_D ^ 1.1096 / 2.8257 + (7.149 / Ret) ^ 0.8961);
- b1 = -2 * log10(E_D / 3.7065 - 5.0452 * a1 / Ret);
- f = (1 / b1) ^ 2 * 1.2;
- else
- a1 = 0;
- b1 = 0;
- f = 64 / Ret * 1.2;
- end if;
-//===========================================================================================================
- Area = 3.14 * (Di * 1E-3) ^ 2 / 4;
- if Case == "Cold in Tube" then
- vt = Fmcin / (rho_c * Nt * Area);
- Ret = rho_c * vt * (Di * 1E-3) / mu_c;
- Prt = mu_c * (Cpcin / MW_c) / (k_c * 1E-3);
- else
- vt = Fmhin / (rho_h * Nt * (3.14 / 4 * (Di * 1E-3) ^ 2));
- Ret = rho_h * vt * (Di * 1E-3) / mu_h;
- Prt = mu_h * (Cphin / MW_h) / (k_h * 1E-3);
- end if;
-//===========================================================================================================
- //Calculation of Thermo-Physical Properties
-//===========================================================================================================
- for i in 1:Nc loop
- rho1[i] = ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, (Tcin + Tcout) / 2, Pcin);
- rho2[i] = ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, (Thin + Thout) / 2, Phin);
- rho3[i] = ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, (Tcin + Tcout) / 2, Pcout);
- rho4[i] = ThermodynamicFunctions.Dens(C[i].LiqDen, C[i].Tc, (Thin + Thout) / 2, Phout);
- end for;
- rho_cin = sum(xcin_pc[1, :] .* rho1[:]) * 1E-3 * MWcin;
- rho_hin = sum(xhin_pc[1, :] .* rho2[:]) * 1E-3 * MWhin;
- rho_cout = sum(xcout_pc[1, :] .* rho3[:]) * 1E-3 * MWcout;
- rho_hout = sum(xhout_pc[1, :] .* rho4[:]) * 1E-3 * MWhout;
-//rho_cin = 1035.41732;
-//rho_hin = 669.43412;
-//rho_hout = 705.29712;
-//rho_cout = 1020.06001;
-rho_c = (rho_cin + rho_cout)/2;
-rho_h = (rho_hin + rho_hout)/2;
-//=======================================================================================================
- for i in 1:Nc loop
- mu1[i] = Simulator.Files.TransportProperties.LiqVis(C[i].LiqVis, (Tcin + Tcout) / 2);
- mu2[i] = Simulator.Files.TransportProperties.LiqVis(C[i].LiqVis, (Thin + Thout) / 2);
- mu3[i] = Simulator.Files.TransportProperties.LiqVis(C[i].LiqVis, (Tcin + Tcout) / 2);
- mu4[i] = Simulator.Files.TransportProperties.LiqVis(C[i].LiqVis, (Thin + Thout) / 2);
- end for;
- mu_cin = sum(xcin_pc[1, :] .* mu1[:]);
- mu_hin = sum(xhin_pc[1, :] .* mu2[:]);
- mu_cout =sum(xcout_pc[1, :] .* mu3[:]);
- mu_hout =sum(xhout_pc[1, :] .* mu4[:]);
-//mu_cin = 0.000801837023398036 ;
-//mu_cout = 0.000603245481110247 ;
-//mu_hin = 0.000350348400808961 ;
-//mu_hout = 0.000545155323029587;
-mu_c = (mu_cin + mu_cout)/2;
-mu_h = (mu_hin + mu_hout)/2;
-//==========================================================================================================
- for i in 1:Nc loop
- k1[i] = Simulator.Files.TransportProperties.LiqK(C[i].LiqK, (Tcin + Tcout) / 2);
- k2[i] = Simulator.Files.TransportProperties.LiqK(C[i].LiqK, (Thin + Thout) / 2);
- k3[i] = Simulator.Files.TransportProperties.LiqK(C[i].LiqK, (Tcin + Tcout) / 2);
- k4[i] = Simulator.Files.TransportProperties.LiqK(C[i].LiqK, (Thin + Thout) / 2);
- end for;
- k_cin = sum(xcin_pc[1, :] .* k1[:]);
- k_hin = sum(xhin_pc[1, :] .* k2[:]);
- k_cout = sum(xcout_pc[1, :] .* k3[:]);
- k_hout = sum(xhout_pc[1, :] .* k4[:]);
-//k_cin =0.304;
-//k_hin =0.11505;
-//k_cout = 0.29663;
-//k_hout = 0.12535;
-k_c = (k_cin + k_cout)/2;
-k_h = (k_hin + k_hout)/2;
-//=========================================================================================================
- Atc = Af / Shells;
-//=======================================================================================================
- Nt = Nts / nt;
-//=======================================================================================================
-//Calculation of Corrected LMTD
-if Case == "Cold in Tube" then
- R = (Thin - Thout) / (Tcout - Tcin);
- P = (Tcout - Tcin) / (Thin - Tcin);
- else
- Thout = P * (Tcin - Thin) + Thin;
- Tcout = Tcin - R * (Thout - Thin);
- end if;
-//===================================================================================================
- if Mode == "CounterCurrent" then
- Tdel3 = Thin -Tcout;
- Tdel4 = Thout - Tcin;
- else
- Tdel3 = Thin - Tcin;
- Tdel4 = Thout - Tcout;
- end if;
-//==================================================================================================
-if Tdel3 <= 0 or Tdel4 <= 0 then
- LMTDr = 1;
- else
- LMTDr = (Tdel3 - Tdel4) / log(Tdel3 / Tdel4);
- end if;
- S = (R ^ 2 + 1) ^ 0.5 / (R - 1);
-//Parameters to evaluate the LMTD correction Factor
- if R == 1 then
- W = (n -( n * P)) / (n - (n * P + P));
- Fx = (W / (1 - W) + 1 / 2 ^ 0.5);
- Fy = (W / (1 - W) - 1 / 2 ^ 0.5);
- Fl = 1.414 * ((1 - W) / W);
-// F = 2 ^ 0.5 * ((1 - W) / W) / log((W / (1 - W) + 1 / 2 ^ 0.5) / (W / (1 - W) - 1 / 2 ^ 0.5));
- else
- W = ((1 - P * R) / (1 - P)) ^ (1 / n);
- Fx = (1 + W - S + S * W);
- Fy = (1 + W + S - S * W);
- Fl = S * log(W);
-// F = Fl*Fz;
-// F = S * log(W) / log((1 + W - S + S * W) / (1 + W + S - S * W));
- end if;
-// W = 0.64;
-
-//Corrected LMTD
-LMTDc = LMTDr * F;
-
-//=================================================================================================
-if(Cmode == "Design") then
-Af = Nts * 3.14 * (Do * 1E-3) * (L - 2 * Do * 1E-3);
-Uf =1/(f1+f2+f3+f4+f5);
-LMTDf = LMTDc;
-U =0;
-A=0;
-else
-Uf = U;
-Af = A;
-LMTDf = LMTD;
-end if;
-//=====================================================================================================
-//Specific Heat Routine for Hot-Inlet
-for i in 1:Nc loop
-Cph_pc[2, i] = ThermodynamicFunctions.LiqCpId(C[i].LiqCp, Thin);
-Cph_pc[3, i] = ThermodynamicFunctions.VapCpId(C[i].VapCp, Thin);
-end for;
-//==================================================================================================
- for i in 2:3 loop
- Cph_p[i] = sum(xhin_pc[i, :] .* Cph_pc[i, :]);
- end for;
- Cph_p[1] = (1-xvaphin) * Cph_p[2] + xvaphin * Cph_p[3];
- Cph_pc[1, :] = xhin_pc[1, :] .* Cph_p[1];
- Cphin = Cph_p[1];
-
-//Specific Heat Routine for Cold-Inlet
-for i in 1:Nc loop
-Cpc_pc[2, i] = ThermodynamicFunctions.LiqCpId(C[i].LiqCp, Tcin);
-Cpc_pc[3, i] = ThermodynamicFunctions.VapCpId(C[i].VapCp, Tcin);
-end for;
-
- for i in 2:3 loop
- Cpc_p[i] = sum(xcin_pc[i, :] .* Cpc_pc[i, :]);
- end for;
- Cpc_p[1] = (1-xvapcin) * Cpc_p[2] + xvapcin * Cpc_p[3];
- Cpc_pc[1, :] = xcin_pc[1, :] .* Cpc_p[1];
- Cpcin = Cpc_p[1];
- //=====================================================================================================
-//========================================================================================================
- Fmhin = Fhin * MWhin*1E-3;
- Fmcin = Fcin[1] * MWcin*1E-3;
-//=========================================================================================================
-//==========================================================================================================
- MW_h = (MWhin+MWhout)/2;
- MW_c = (MWcin + MWcout)/2;
-algorithm
- for i in 1:Nc loop
- MWhin := MWhin + C[i].MW * xhin_pc[1,i];
- MWhout := MWhout + C[i].MW * xhout_pc[1,i];
- MWcin := MWcin + C[i].MW * xcin_pc[1,i];
- MWcout := MWcout + C[i].MW * xcout_pc[1,i];
- end for;
-
-end HeatExchanger;
diff --git a/src/main/Simulator/Simulator/UnitOperations/Heater.mo b/src/main/Simulator/Simulator/UnitOperations/Heater.mo
deleted file mode 100644
index 1f2d10a..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/Heater.mo
+++ /dev/null
@@ -1,62 +0,0 @@
-within Simulator.UnitOperations;
-
-model Heater "Model of a heater to heat a material stream"
- extends Simulator.Files.Icons.Heater;
-
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components";
- //========================================================================================
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow rate";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real Hin(unit = "kJ/kmol",start=Htotg) "inlet stream molar enthalpy";
- Real xvapin(unit = "-", min = 0, max = 1, start = xvapg) "Inlet stream vapor phase mole fraction";
-
- Real x_c[Nc](each unit = "-", each min = 0, each max = 1) "Component mole fraction";
- Real Q(unit = "W") "Heat added";
- Real Fout(unit = "mol/s", min = 0, start = Fg) "outlet stream molar flow rate";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real Tdel(unit = "K") "Temperature Increase";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor mole fraction";
- Real Hout(unit = "kJ/kmol",start=Htotg) "outlet mixture molar enthalpy";
- //========================================================================================
- parameter Real Pdel(unit = "Pa") "Pressure drop";
- parameter Real Eff(unit = "-") "Efficiency";
- //========================================================================================
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {0, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-98, -98}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //=========================================================================================
-
- extends GuessModels.InitialGuess;
-equation
-//connector equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.x_pc[1, :] = x_c[:];
- In.xvap = xvapin;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.x_pc[1, :] = x_c[:];
- Out.xvap = xvapout;
- En.Q = Q;
-//=============================================================================================
- Fin = Fout;
-//material balance
- Hin + Eff * Q / Fin = Hout;
-//energy balance
- Pin - Pdel = Pout;
-//pressure calculation
- Tin + Tdel = Tout;
-//temperature calculation
- annotation(
- Documentation(info = "The heater is used to simulate the heating process of a material stream.
Following calculation parameters must be provided to the heater:
- Pressure Drop
- Efficiency
In addition to the above parameters, any one additional variable from the below list must be provided for the model to simulate successfully:
- Outlet Temperature (Tout)
- Temperature Increase (Tdel)
- Heat Added (Q)
- Outlet Stream Vapor Phase Mole Fraction (xvapout)
For examples on simulating a heater, go to Examples >> Heater
"));
-end Heater;
diff --git a/src/main/Simulator/Simulator/UnitOperations/Mixer.mo b/src/main/Simulator/Simulator/UnitOperations/Mixer.mo
deleted file mode 100644
index ae0a1d9..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/Mixer.mo
+++ /dev/null
@@ -1,73 +0,0 @@
-within Simulator.UnitOperations;
-
-model Mixer "Model of a mixer to mix multiple material streams"
- extends Simulator.Files.Icons.Mixer;
- import Simulator.Files.*;
- parameter ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components";
- parameter Integer NI = 6 "Number of inlet streams";
-
- Real Pin[NI](unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real xin_sc[NI, Nc](each unit = "-", each min = 0, each max = 1) "Inlet stream component mol fraction";
- Real Fin_s[NI](each unit = "mol/s", each min = 0, each start = Fg) "Inlet stream Molar Flow";
- Real Hin_s[NI](each unit = "kJ/kmol") "Inlet stream molar enthalpy";
- Real Tin_s[NI](each unit = "K", each min = 0, each start = Tg) "Inlet stream temperature";
- Real Sin_s[NI](each unit = "kJ/[kmol.K]") "Inlet stream molar entropy";
- Real xvapin_s[NI](each unit = "-", each min = 0, each max = 1, each start = xvapg) "Inlet stream vapor phase mol fraction";
-
- parameter String outPress "Calculation mode for outet pressure: Inlet_Minimum, Inlet_Average, Inlet_Maximum";
-
- Real Fout(unit = "mol/s", each min = 0, each start = Fg) "Outlet stream molar flow";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Hout(unit = "kJ/kmol") "Outlet stream molar enthalpy";
- Real Tout(unit = "K", each min = 0, each start = Tg) "Outlet stream temperature";
- Real Sout(unit = "kJ/[kmol.K]") "Outlet stream molar entropy";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor phase mol fraction";
- Real xout_c[Nc](each unit = "-", each min = 0, each max = 1, start = xguess) "Outlet stream component mol fraction";
- //================================================================================
- // Files.Interfaces.matConn inlet[NI](each Nc = Nc);
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn In[NI](each Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
-equation
-//Connector equation
- for i in 1:NI loop
- In[i].P = Pin[i];
- In[i].T = Tin_s[i];
- In[i].F = Fin_s[i];
- In[i].H = Hin_s[i];
- In[i].S = Sin_s[i];
- In[i].x_pc[1, :] = xin_sc[i, :];
- In[i].xvap = xvapin_s[i];
- end for;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc[1, :] = xout_c[:];
- Out.xvap = xvapout;
-//===================================================================================
-//Output Pressure
- if outPress == "Inlet_Minimum" then
- Pout = min(Pin);
- elseif outPress == "Inlet_Average" then
- Pout = sum(Pin) / NI;
- elseif outPress == "Inlet_Maximum" then
- Pout = max(Pin);
- end if;
-//Molar Balance
- Fout = sum(Fin_s[:]);
- for i in 1:Nc loop
- xout_c[i] * Fout = sum(xin_sc[:, i] .* Fin_s[:]);
- end for;
-//Energy balance
- Hout = sum(Hin_s[:] .* Fin_s[:] / Fout);
-
-annotation(
- Documentation(info = "The Mixer is used to mix up to any number of material streams into one, while executing all the mass and energy balances.
The only calculation parameter for mixer is the outlet pressure calculation (Pout). It can be calculated in three different modes:
- Inlet_Minimum: Outlet pressure is taken as minimum of all inlet streams pressure
- Inlet_Average: Outlet pressure is calculated as average of all inlet streams pressure
- Inlet_Maximum: Outlet pressure is taken as maximum of all inlet streams pressure
For examples on simulating mixer, go to Examples >> Mixer
"));
- end Mixer;
diff --git a/src/main/Simulator/Simulator/UnitOperations/PFR/Integral.mo b/src/main/Simulator/Simulator/UnitOperations/PFR/Integral.mo
deleted file mode 100644
index bd03e89..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/PFR/Integral.mo
+++ /dev/null
@@ -1,31 +0,0 @@
-within Simulator.UnitOperations.PFR;
-
- function Integral
- extends Modelica.Math.Nonlinear.Interfaces.partialScalarFunction;
-
- input Integer Nc;
- input Integer Nr;
- input Integer Base_comp;
- input Real Co_dummy[Nc - 1];
- input Real DO_dummy[Nc - 1, Nr];
- input Real X_dummy[Nc - 1];
- input Real X;
- input Integer Order;
- input Real DO[Nc, Nr];
- input Real Co[Nc];
- input Real Sc[Nc, Nr];
- input Real Bc[Nr];
- input Real Fao;
- input Real k;
- Real Rate;
- algorithm
- Rate := 1;
- for i in 2:Nc loop
- if DO[Base_comp, 1] == 0 then
- Rate := Rate * product((Co[i] + Sc[i, 1] / Bc[1] * Co[Base_comp] * u) ^ DO[i, 1]);
- else
- Rate := Rate * product((Co_dummy[i - 1] * (1 - X_dummy[i - 1])) ^ DO_dummy[i - 1, 1]);
- end if;
- end for;
- y := Fao / (k * (Co[Base_comp] * (1 - u)) ^ DO[Base_comp, 1] * Rate);
- end Integral;
diff --git a/src/main/Simulator/Simulator/UnitOperations/PFR/PFR.mo b/src/main/Simulator/Simulator/UnitOperations/PFR/PFR.mo
deleted file mode 100644
index d8bcf59..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/PFR/PFR.mo
+++ /dev/null
@@ -1,432 +0,0 @@
-within Simulator.UnitOperations.PFR;
-
- model PFR
-
- //=========================================================================
- //Header Files and Parameters
- extends Simulator.Files.Icons.PFR;
- import Simulator.Files.*;
- import Simulator.Files.ThermodynamicFunctions.*;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components ";
- parameter Real Zv = 1 "Compressiblity factor";
-
- parameter Integer Nr "Number of reactions";
- parameter String Phase "Reaction phase: 1-Mixture, 2-Liquid, 3-Vapor";
- parameter String Mode "Mode of operation: 1-Isothermal, 2-Define Outlet Temperature, 3-Adiabatic";
- parameter String Basis "Reaction Basis : Molar Concentration,Mass Concentration,Molar Fractions,Mass Fraction";
- parameter Real Tdef(unit = "K") "Outlet temperature when Mode = Define Outlet Temp";
- parameter Real Pdel(unit = "Pa") "Pressure Drop";
- Integer Base_C "Base component";
- //=========================================================================
- //Model Variables
- Integer Phaseindex;
- //Inlet Stream Variables
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream temperature";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Fin_pc[3, Nc](each unit = "mol/s", each min = 0, start={Fg,Fliqg,Fvapg}) "Inlet stream components molar flow rate in phase";
- Real Fin_p[3](each unit = "mol/s", each min = 0,start={Fg,Fliqg,Fvapg}) "Inlet stream molar flow rate in phase";
- Real xin_pc[3, Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Inlet stream mole fraction";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Inlet stream enthalpy";
- Real Sin(unit = "kJ/[kmol.K]") "Inlet stream entropy";
- Real xvapin(unit = "-", min = 0, max = 1, start = xvapg) "Inlet stream vapor phase mole fraction";
- Real Cin_c[Nc] "Inlet Concentration";
- Real Fin_c[Nc](each min = 0, each start = Fg) "Inlet Mole Flow";
-
- //Outlet Stream variables
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Fout_p[3](each unit = "mol/s", each min = 0, start={Fg,Fliqg,Fvapg}) "Outlet stream molar flow rate";
- Real Fout_pc[3, Nc](each unit = "mol/s", each min = 0, start={Fg,Fliqg,Fvapg}) "Outlet stream components molar flow rate";
- Real xout_pc[3, Nc](each min = 0,start=xg) "Mole Fraction of Component in outlet stream";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Outlet stream molar enthalpy";
- Real Sout(unit = "kJ/[kmol.K]") "Outlet stream molar entropy";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor phase mole fraction";
-
- Real MWout_p[3](each unit = "kg/kmol") "Outlset stream molecular weight in phase";
- Real Fmin_p[3](each unit = "kg/s",start={Fg,Fliqg,Fvapg}) "Inlet stream mass flow rate";
- Real xm_pc[3, Nc](each unit = "-",start=xg) "Component mass fraction in phase";
- Real MW_p[3](each unit = "kg/kmol")"Molecular weight of phase";
- Real Fv_p[3](start={Fg,Fliqg,Fvapg});
-
- //Phase and Total Densities
- Real rholiq_c[Nc](each unit = "kg/m3") "Components density in liquid phase";
- Real rholiq(unit = "kg/m3") "Liquid phase density";
- Real rhovap_c[Nc](each unit = "kg/m3") "Components density in vapor phase";
- Real rhovap(unit = "kg/m3") "Vapor phase density";
- Real rho(unit = "kg/m3") "Mixture density";
-
- //Outlet
- Real Fout_c[Nc](each unit = "mol/s", each min = 0, each start = 100) "Outlet Mole Flow";
- Integer n "Order of the Reaction";
- Real k_r[Nr] "Rate constant";
- Real Hr(unit = "kJ/kmol") "Heat of Reaction";
- Real Fin_cr[Nc, Nr](each unit = "mol/s") "Number of moles at initial state";
- Real X_r[Nc](each unit = "-", each min = 0, each max = 1, start=xg) "Conversion of the components in reaction";
- Real V(unit = "m3", min = 0) "Volume of the reactor";
- Real tr(unit = "s")"Residence Time";
-
- Real Deln;
- Real Foutv_p[3];
- Real Ephsilon;
- Real Cout_c[Nc];
-
- //Vapour Pressure at the inlet and outlet temperatures
- Real Pvapin_c[Nc];
- Real Pvapout_c[Nc];
-
- extends Simulator.Files.Models.ReactionManager.KineticReaction( Nr = 1,BC_r = {1}, Coef_cr = {{-1}, {-1}, {1}}, DO_cr = {{1}, {0}, {0}}, Af_r = {0.005}, Ef_r = {0});
- //===========================================================================================================
- //Instantiation of Connectors
- Real Q "The total energy given out/taken in due to the reactions";
- Real X_dummy[Nc-1];
- Real Co_dummy[Nc-1];
- Real DO_dummy[Nc-1,Nr];
-
- Simulator.Files.Interfaces.enConn En annotation(
- Placement(visible = true, transformation(origin = {0, -98}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {0, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-348, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-348, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {350, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {350, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-//============================================================================================================
- extends GuessModels.InitialGuess;
-
- equation
-//connector-Equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin_p[1];
- In.H = Hin;
- In.S = Sin;
- In.x_pc = xin_pc;
- In.xvap = xvapin;
-
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout_p[1];
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc = xout_pc;
- Out.xvap = xvapout;
- En.Q = Q;
-
-//Phase Equilibria
-//==========================================================================================================
-Base_C = BC_r[1];
-for i in 1:Nc loop
- Pvapin_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, Tin);
- Pvapout_c[i] = Simulator.Files.ThermodynamicFunctions.Psat(C[i].VP, Tout);
- end for;
-
- if(Phase=="Mixture") then
- Phaseindex=1;
- elseif(Phase=="Liquid") then
- Phaseindex=2;
- else
- Phaseindex=3;
- end if;
-
-//===========================================================================================================
-//Calculation of Mass Fraction
-//Average Molecular Weights of respective phases
- if xvapin <= 0 then
- MW_p[1] = sum(xin_pc[1, :] .* C[:].MW);
- MW_p[2] = sum(xin_pc[2, :] .* C[:].MW);
- MW_p[3] = 0;
- Fmin_p[1] = Fin_p[1] * 1E-3 * MW_p[1];
- Fmin_p[2] = Fin_p[2] * 1E-3 * MW_p[2];
- Fmin_p[3] = 0;
- xm_pc[1, :] = xin_pc[1, :] .* C[:].MW / MW_p[1];
- xm_pc[2, :] = xin_pc[2, :] .* C[:].MW / MW_p[2];
- for i in 1:Nc loop
- xm_pc[3, i] = 0;
- end for;
-//Liquid Phase Density
- rholiq_c = ThermodynamicFunctions.DensityRacket(Nc,Tin,Pin,C[:].Pc,C[:].Tc,C[:].Racketparam,C[:].AF,C[:].MW,Pvapin_c[:]);
- rholiq = 1 / sum(xm_pc[2, :] ./ rholiq_c[:]) / MW_p[2];
-//Vapour Phase Density
- for i in 1:Nc loop
- rhovap_c[i] = 0;
- end for;
- rhovap = 0;
-//Density of Inlet-Mixture
- rho = 1 / ((1 - xvapin) / rholiq) * sum(xin_pc[1, :] .* C[:].MW);
-//====================================================================================================
- elseif xvapin == 1 then
- MW_p[1] = sum(xin_pc[1, :] .* C[:].MW);
- MW_p[2] = 0;
- MW_p[3] = sum(xin_pc[3, :] .* C[:].MW);
- Fmin_p[1] = Fin_p[1] * 1E-3 * MW_p[1];
- Fmin_p[2] = 0;
- Fmin_p[3] = Fin_p[3] * 1E-3 * MW_p[3];
- xm_pc[1, :] = xin_pc[1, :] .* C[:].MW / MW_p[1];
- for i in 1:Nc loop
- xm_pc[2, i] = 0;
- end for;
- xm_pc[3, :] = xin_pc[3, :] .* C[:].MW / MW_p[3];
-
-//=========================================================================
-//Calculation of Phase Densities
-//Liquid Phase Density-Inlet Conditions
- for i in 1:Nc loop
- rholiq_c[i] = 0;
- end for;
- rholiq = 0;
-//Vapour Phase Density
- for i in 1:Nc loop
- rhovap_c[i] = Pin / (Zv * 8.314 * Tin) * C[i].MW * 1E-3;
- end for;
- rhovap = 1 / sum(xm_pc[3, :] ./ rhovap_c[:]) / MW_p[3];
-//Density of Inlet-Mixture
- rho = 1 / (xvapin / rhovap) * sum(xin_pc[1, :] .* C[:].MW);
- else
- MW_p[1] = sum(xin_pc[1, :] .* C[:].MW);
- MW_p[2] = sum(xin_pc[2, :] .* C[:].MW);
- MW_p[3] = sum(xin_pc[3, :] .* C[:].MW);
- Fmin_p[1] = Fin_p[1] * 1E-3 * MW_p[1];
- Fmin_p[2] = Fin_p[2] * 1E-3 * MW_p[2];
- Fmin_p[3] = Fin_p[3] * 1E-3 * MW_p[3];
- xm_pc[1, :] = xin_pc[1, :] .* C[:].MW / MW_p[1];
- xm_pc[2, :] = xin_pc[2, :] .* C[:].MW / MW_p[2];
- xm_pc[3, :] = xin_pc[3, :] .* C[:].MW / MW_p[3];
-
- //=========================================================================
-//Calculation of Phase Densities
-//Liquid Phase Density-Inlet Conditions
- rholiq_c = ThermodynamicFunctions.DensityRacket(Nc, Tin, Pin, C[:].Pc, C[:].Tc, C[:].Racketparam, C[:].AF, C[:].MW, Pvapin_c[:]);
- rholiq = 1 / sum(xm_pc[2, :] ./ rholiq_c[:]) / MW_p[2];
-//Vapour Phase Density
- for i in 1:Nc loop
- rhovap_c[i] = Pin / (Zv * 8.314 * Tin) * C[i].MW * 1E-3;
- end for;
- rhovap = 1 / sum(xm_pc[3, :] ./ rhovap_c[:]) / MW_p[3];
-//Density of Inlet-Mixture
- rho = 1 / (xvapin / rhovap + (1 - xvapin) / rholiq) * sum(xin_pc[1, :] .* C[:].MW);
- end if;
-//=====================================================================================================
-//Phase Flow Rates
-//Phase Molar Flow Rates
- Fin_p[3] = Fin_p[1] * xvapin;
- Fin_p[2] = Fin_p[1] * (1 - xvapin);
-//Cin_cnent Molar Flow Rates in Phases
- Fin_pc[1, :] = Fin_p[1] .* xin_pc[1, :];
- Fin_pc[2, :] = Fin_p[2] .* xin_pc[2, :];
- Fin_pc[3, :] = Fin_p[3] .* xin_pc[3, :];
-//======================================================================================================
-//Phase Volumetric flow rates
- if Phase == "Mixture" then
- Fv_p[1] = Fmin_p[1] / rho;
- Fv_p[2] = Fmin_p[2] / (rholiq * MW_p[2]);
- Fv_p[3] = Fmin_p[3] / (rhovap * MW_p[3]);
- elseif Phase == "Liquid" then
- Fv_p[1] = Fmin_p[1] / rho;
- Fv_p[2] = Fmin_p[2] / (rholiq * MW_p[2]);
- Fv_p[3] = 0;
- else
- Fv_p[1] = Fmin_p[1] / rho;
- Fv_p[2] = 0;
- Fv_p[3] = Fmin_p[3] / (rhovap * MW_p[3]);
- end if;
-
-//=================================================================================
-//Inlet concentration
- if Phase == "Mixture" then
- if(Basis =="Molar Concentration") then
- Cin_c[:] = Fin_pc[Phaseindex, :] / Fv_p[Phaseindex];
- else
- Cin_c[:] = Fin_pc[1, :] / Fv_p[1] * MW_p[2] / rholiq;
- end if;
- for i in 1:Nc loop
- if i == Base_C then
- Fin_c[i] = Fin_pc[1, i];
- Fout_c[i] = Fin_cr[i, 1] * Fin_c[i] + Coef_cr[i, 1] / BC_r[1] * X_r[Base_C] * Fin_c[Base_C];
- else
- Fin_c[i] = Fin_pc[1, i];
- Fout_c[i] = Fin_cr[i, 1] * Fin_c[i] + Coef_cr[i, 1] / BC_r[1] * X_r[Base_C] * Fin_pc[1, Base_C];
- end if;
- end for;
-//Conversion of Reactants
- for j in 2:Nc loop
- if Coef_cr[j, 1] < 0 then
- X_r[j] = (Fin_pc[Phaseindex, j] - Fout_c[j]) / Fin_pc[Phaseindex, j];
- else
- X_r[j] = 0;
- end if;
- end for;
-//=========================================================================================
-//Liquid-Phase
- elseif Phase == "Liquid" then
- //Molar Concentration
- if(Basis =="Molar Concentration") then
- Cin_c[:] = Fin_pc[2, :] / Fv_p[2];
- //Molar Fractions
- elseif(Basis =="Molar Fractions") then
- Cin_c[:] = Fin_pc[2, :] / Fv_p[2] * MW_p[2]/rholiq;
- //Mass Concentration
- elseif(Basis=="Mass Concentration") then
- Cin_c[:] = Fin_pc[2, :] / Fv_p[2] * 1000 / MW_p[2];
- //Mass Fractions
- else
- Cin_c[:] = Fin_pc[2, :] / Fv_p[2] * rholiq * 1000 / MW_p[2];
- end if;
-
- for i in 1:Nc loop
- if i == Base_C then
- Fin_c[i] = Fin_pc[2, i];
- Fout_c[i] = Fin_c[i] + Coef_cr[i, 1] / BC_r[1] * X_r[Base_C] * Fin_c[Base_C];
- else
- Fin_c[i] = Fin_pc[1, i];
- Fout_c[i] = Fin_c[i] + Coef_cr[i, 1] / BC_r[1] * X_r[Base_C] * Fin_c[Base_C];
- end if;
- end for;
-//Cin_cnversion of Reactants
- for j in 2:Nc loop
- if Coef_cr[j, 1] < 0 then
- X_r[j] = (Fin_pc[Phaseindex, j] - Fout_pc[Phaseindex, j]) / Fin_pc[Phaseindex, j];
- else
- X_r[j] = 0;
- end if;
- end for;
- else
-//Vapour Phase
-//======================================================================================================
- if(Basis=="Molar Concentration") then
- //Molar Concentration
- Cin_c[:] = Fin_pc[Phaseindex, :] / Fv_p[Phaseindex];
- //Molar Fractions
- elseif(Basis=="Molar Fractions") then
- Cin_c[:] = Fin_pc[Phaseindex, :] / Fv_p[Phaseindex] * Zv * 8.314 * Tin / Pin;
- //Mass Concentration
- elseif(Basis=="Mass Concentration") then
- Cin_c[:] = Fin_pc[Phaseindex, :] / Fv_p[Phaseindex] * 1000 / MW_p[3];
- else
- //Mass Fractions
- Cin_c[:] = Fin_pc[Phaseindex, :] / Fv_p[Phaseindex] * Zv * 8.314 * Tin / Pin * 1000 / MW_p[3];
- end if;
-//=======================================================================================================
- for i in 1:Nc loop
- if i == Base_C then
- Fin_c[i] = Fin_pc[3, i];
- Fout_c[i] = Fin_c[i] + Coef_cr[i, 1] / BC_r[1] * X_r[Base_C] * Fin_c[Base_C];
- else
- Fin_c[i] = Fin_pc[1, i];
- Fout_c[i] = Fin_c[i] + Coef_cr[i, 1] / BC_r[1] * X_r[Base_C] * Fin_c[Base_C];
- end if;
- end for;
-//Cin_cnversion of Reactants
- for j in 2:Nc loop
- if Coef_cr[j, 1] < 0 then
- X_r[j] = (Fin_pc[Phaseindex, j] - Fout_pc[Phaseindex, j]) / Fin_pc[Phaseindex, j];
- else
- X_r[j] = 0;
- end if;
- end for;
- end if;
-//================================================================================================
-//Reaction Manager
- n = sum(DO_cr[:]);
-//Calculation of Rate Cin_cnstants
- for i in 1:Nr loop
- k_r[i] = Simulator.Files.Models.ReactionManager.Arhenious(Nr, Af_r[i], Ef_r[i], Tin);
- end for;
-//Material Balance
-//Initial Number of Moles
- for i in 1:Nr loop
- for j in 1:Nc loop
- if Coef_cr[j, i] > 0 then
- Coef_cr[j, i] = Fin_cr[j, i];
- else
- Coef_cr[j, i] = -Fin_cr[j, i];
- end if;
- end for;
- end for;
-//Calculation of V with respect to Cin_cnversion of limiting reeactant
-// V = PerformancePFR(n, Cin_c[Base_C], Fin_c[Base_C], k_r[1], X_r[Base_C]);
- V = PFR.PerformancePFR(Nc, Nr, n, Base_C, Co_dummy, DO_dummy, X_dummy, DO_cr, Cin_c, Coef_cr, BC_r, Fin_c[Base_C], k_r[1], X_r[Base_C]);
-
- tr = V / Fv_p[1];
-//============================================================================================================
-//Calculation of Heat of Reaction at the reaction temperature
-//Outlet temperature and energy stream
-//Isothermal Mode
- if Mode == "Isothermal" then
- Hr = Hr_r[1] * 1E-3 * Fin_c[Base_C] * X_r[Base_C];
- Tout = Tin;
- Q = Hr - Hin / MW_p[1] * Fmin_p[1] + Hout / MWout_p[1] * Fmin_p[1];
-//Outlet temperature defined
- elseif Mode == "Define Outlet Temperature" then
- Hr = Hr_r[1] * 1E-3 * Fin_c[Base_C] * X_r[Base_C];
- Tout = Tdef;
- Q = Hr - Hin / MW_p[1] * Fmin_p[1] + Hout / MWout_p[1] * Fmin_p[1];
-//Adiabatic Mode
- else
- Hr = Hr_r[1] * 1E-3 * Fin_c[Base_C] * X_r[Base_C];
- Q = 0;
- Q = Hr - Hin / MW_p[1] * Fmin_p[1] + Hout / MWout_p[1] * Fmin_p[1];
- end if;
-//===========================================================================================================
-//Calculation of Outlet Pressure
- Pout = Pin - Pdel;
-//Calculation of Mole Fraction of outlet stream
- xout_pc[1, :] = Fout_c[:] / Fout_p[1];
- sum(Fout_c[:]) = Fout_p[1];
-//===========================================================================================================
- Fout_p[3] = Fout_p[1] * xvapout;
- Fout_p[2] = Fout_p[1] * (1 - xvapout);
-//===========================================================================================================
-//Calculation of Mass Fraction
-//Average Molecular Weights of respective phases
- if xvapout <= 0 then
- MWout_p[1] = sum(xout_pc[1, :] .* C[:].MW);
- MWout_p[2] = sum(xout_pc[2, :] .* C[:].MW);
- MWout_p[3] = 0;
-//====================================================================================================
- elseif xvapout == 1 then
- MWout_p[1] = sum(xout_pc[1, :] .* C[:].MW);
- MWout_p[2] = 0;
- MWout_p[3] = sum(xout_pc[3, :] .* C[:].MW);
- else
- MWout_p[1] = sum(xout_pc[1, :] .* C[:].MW);
- MWout_p[2] = sum(xout_pc[2, :] .* C[:].MW);
- MWout_p[3] = sum(xout_pc[3, :] .* C[:].MW);
- end if;
-//=====================================================================================================
-//Component Molar Flow Rates in Phases
- Fout_pc[1, :] = Fout_p[1] .* xout_pc[1, :];
- Fout_pc[2, :] = Fout_p[2] .* xout_pc[2, :];
- Fout_pc[3, :] = Fout_p[3] .* xout_pc[3, :];
-//==================================================================================================
-
- for i in 2:Nc loop
- X_dummy[i-1] = X_r[i];
- Co_dummy[i-1] = Cin_c[i];
- DO_dummy[i-1,1] = DO_cr[i,1];
- end for;
-
-//Change in conversion with change in temperature of the reactor
- Deln = sum(Coef_cr[:, :]);
- for i in 1:Nr loop
- Ephsilon = Deln / Fin_cr[Base_C, i] * xin_pc[1, Base_C];
- end for;
- if Phase == "Vapour" then
- Foutv_p[2] = Fv_p[2];
- Foutv_p[1] = Foutv_p[3];
- Foutv_p[3] = Fv_p[3] * (1 + Ephsilon * X_r[Base_C]) * (Pin / Pout) * (Tout / Tin);
- Cout_c[:] = Fout_pc[3, :] /Foutv_p[3];
- elseif Phase == "Liquid" then
- Foutv_p[2] = Fv_p[2];
- Foutv_p[1] = Foutv_p[3];
- Foutv_p[3] = Fv_p[3] * (1 + Ephsilon * X_r[Base_C]) * (Pin / Pout) * (Tout / Tin);
- Cout_c[:] = Fout_pc[2, :] / Foutv_p[2];
- else
- Foutv_p[2] = Fv_p[2];
- Foutv_p[1] = Foutv_p[3];
- Foutv_p[3] = Fv_p[3] * (1 + Ephsilon * X_r[Base_C]) * (Pin / Pout) * (Tout / Tin);
- Cout_c[:] = Fout_pc[1, :] / Foutv_p[1];
- end if;
-
- annotation(Icon(coordinateSystem(extent = {{-350, -100}, {350, 100}})),
- Diagram(coordinateSystem(extent = {{-350, -100}, {350, 100}})),
- __OpenModelica_Cin_cmmandLineOptions = "");
- end PFR;
diff --git a/src/main/Simulator/Simulator/UnitOperations/PFR/PerformancePFR.mo b/src/main/Simulator/Simulator/UnitOperations/PFR/PerformancePFR.mo
deleted file mode 100644
index b1deb43..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/PFR/PerformancePFR.mo
+++ /dev/null
@@ -1,22 +0,0 @@
-within Simulator.UnitOperations.PFR;
-
- function PerformancePFR
- extends Modelica.Icons.Function;
- input Integer Nc;
- input Integer Nr;
- input Integer Order;
- input Integer Base_comp;
- input Real Co_dummy[Nc - 1];
- input Real DO_dummy[Nc - 1, Nr];
- input Real X_dummy[Nc - 1];
- input Real DO[Nc, Nr];
- input Real C[Nc];
- input Real Sc[Nc, Nr];
- input Real Bc[Nr];
- input Real F;
- input Real k;
- input Real X;
- output Real V;
- algorithm
- V := Modelica.Math.Nonlinear.quadratureLobatto(function Integral(Nc = Nc, Nr = Nr, Order = Order, Base_comp = Base_comp, Co_dummy = Co_dummy, DO_dummy = DO_dummy, X_dummy = X_dummy, DO = DO, Co = C, Sc = Sc, Bc = Bc, Fao = F, k = k, X = X), 0, X);
- end PerformancePFR;
diff --git a/src/main/Simulator/Simulator/UnitOperations/PFR/package.mo b/src/main/Simulator/Simulator/UnitOperations/PFR/package.mo
deleted file mode 100644
index d057566..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/PFR/package.mo
+++ /dev/null
@@ -1,5 +0,0 @@
-within Simulator.UnitOperations;
-
-package PFR
- extends Modelica.Icons.Package;
-end PFR;
diff --git a/src/main/Simulator/Simulator/UnitOperations/PFR/package.order b/src/main/Simulator/Simulator/UnitOperations/PFR/package.order
deleted file mode 100644
index e6992a1..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/PFR/package.order
+++ /dev/null
@@ -1,3 +0,0 @@
-PFR
-Integral
-PerformancePFR
diff --git a/src/main/Simulator/Simulator/UnitOperations/RecycleBlock.mo b/src/main/Simulator/Simulator/UnitOperations/RecycleBlock.mo
deleted file mode 100644
index 6957b2d..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/RecycleBlock.mo
+++ /dev/null
@@ -1,43 +0,0 @@
-within Simulator.UnitOperations;
-model RecycleBlock
- extends Simulator.Files.Icons.Mixer;
-//========================================================================================
- Real Fin(start = Fg) "inlet mixture molar flow rate";
- Real Fout(start = Fg) "outlet mixture molar flow rate";
- Real Pin(start = Pg) "Inlet pressure";
- Real Pout(start = Pg) "Outlet pressure";
- Real Tin(start = Tg) "Inlet Temperature";
- Real Tout(start = Tg) "Outlet Temperature";
- //========================================================================================
- Real xin_c[Nc](each min = 0, each max = 1, start = xguess) "mixture mole fraction";
- Real xout_c[Nc](each min = 0, each max = 1, start = xguess);
- parameter Integer Nc "number of components";
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- //========================================================================================
- Simulator.Files.Interfaces.matConn inlet(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn outlet(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //=========================================================================================
- extends Simulator.GuessModels.InitialGuess;
- equation
-//connector equations
- inlet.P = Pin;
- inlet.T = Tin;
- inlet.Fmol = Fin;
- inlet.xfrac[1, :] = xin_c[:];
- outlet.P = Pout;
- outlet.T = Tout;
- outlet.Fmol = Fout;
- outlet.xfrac[1, :] = xout_c[:];
-//=============================================================================================
- Fin = Fout;
-//material balance
- xin_c = xout_c;
-//energy balance
- Pin = Pout;
-//pressure calculation
- Tin = Tout;
-//temperature calculation
-
- end RecycleBlock;
diff --git a/src/main/Simulator/Simulator/UnitOperations/ShortcutColumn.mo b/src/main/Simulator/Simulator/UnitOperations/ShortcutColumn.mo
deleted file mode 100644
index 3bdfd36..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/ShortcutColumn.mo
+++ /dev/null
@@ -1,222 +0,0 @@
-within Simulator.UnitOperations;
-
-model ShortcutColumn "Model of a shortcut column to calculate minimum reflux in a distillation column"
-
-//==============================================================================
- //Header Files and Parameters
- extends Simulator.Files.Icons.DistillationColumn;
- import data = Simulator.Files.ChemsepDatabase;
- parameter data.GeneralProperties C[Nc];
- parameter Integer Nc "Number of components";
- parameter Integer HKey "Heavy Key component";
- parameter Integer LKey "Light Key component";
- parameter String Ctype = "Total" "Condenser type: Total or Partial";
- //==============================================================================
- //Model Variables
- Real F_p[3](each unit = "mol/s", each min = 0, each start = Fg) "Inlet stream molar flow";
- Real x_pc[3, Nc](each unit = "-", start = {xguess,xg,yg}, each min = 0, each max = 1) "Inlet stream mole fraction";
- Real H_p[3](each unit = "kJ/kmol",start={Htotg,Hliqg,Hvapg}) "Inlet stream molar enthalpy ";
- Real S_p[3](each unit = "kJ/[kmol.K]") "Inlet stream molar entropy";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg)"Inlet stream temperature";
- Real xin_pc[3, Nc](each unit = "-", each min = 0, each max = 1, start={xguess,xg,yg}) "Inlet stream components mole fraction";
-
- Real Ntmin(unit = "-", min = 0, start = 10) "Minimum Number of trays";
- Real RRmin(unit = "-", start = 1) "Minimum Reflux Ratio";
- Real alpha_c[Nc](unit = "-") "Relative Volatility";
- Real theta(unit = "-", start = 1) "Fraction";
- Real T(start=Tg) "Thermodynamic Adjustment", P(start=Pg) "Thermodynamic Adjustment";
- Real Tcond(unit = "K", start = max(C[:].Tb), min = 0)"Condenser temperature";
- Real Pcond(unit = "Pa", min = 0, start = 101325) "Condenser pressure";
- Real Preb(unit = "Pa", min = 0, start = 101325)"Reboiler pressure";
- Real Treb(unit = "K", start = min(C[:].Tb), min = 0) "Reboiler temperature";
- Real xvap_p[3](each unit = "-", each min = 0, each max = 1, each start = xvapg) "Vapor Phase Mole Fraction";
- Real Hliqcond(unit = "kJ/kmol",start=Hliqg) "Enthalpy of liquid in condenser";
- Real Hvapcond(unit = "kJ/kmol",start=Hvapg) "Enthalpy of vapor in condenser";
- Real Hvapcond_c[Nc](each unit = "kJ/kmol") "Component enthalpy of vapor in condenser";
- Real Hliqcond_c[Nc](each unit = "kJ/kmol") "Component enthalpy of vapor in condenser";
- Real xliqcond_c[Nc](each unit = "-", each min = 0, each max = 1, start = xg)"Component mole fraction in liquid phase in condenser";
- Real xvapcond_c[Nc](each unit = "-", each min = 0, each max = 1, start = yg)"Component mole fraction in vapor phase in condenser";
-
- Real Pdew(unit = "Pa", min = 0, start = Pmax)"Dew point pressure";
- Real Pbubl(unit = "Pa", min = 0, start = Pmin)"Bubble point pressure";
- Real RR "Actual Reflux Ratio";
- Real Nt "Actual Number of Trays";
- Real x "Intermediate variable";
- Real y "Intermediate variable";
- Real Intray "Feed Tray";
- Real Fliqrec(unit = "mol/s", min = 0, start = Fg) "Liquid molar flow in rectification section";
- Real Fvaprec(unit = "mol/s", min = 0, start = Fg)"Vapor molar flow in rectification section";
- Real Fliqstrip(unit = "mol/s", min = 0, start = Fg) "Liquid molar flow in stripping section";
- Real Fvapstrip(unit = "mol/s", min = 0, start = Fg)"Vapor molar flow in stripping section";
- Real Qr(unit = "W") "Reboiler Duty";
- Real Qc(unit = "W") "Condenser Duty";
-
-//==============================================================================
- //Instantiation of Connections
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-250, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-250, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out1(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {250, 336}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, 300}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out2(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {250, -266}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, -300}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En1 annotation(
- Placement(visible = true, transformation(origin = {248, 594}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, 600}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.enConn En2 annotation(
- Placement(visible = true, transformation(origin = {254, -592}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {250, -600}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-equation
-//==============================================================================
-// Connector equations
- In.P = Pin;
- In.T = Tin;
- In.F = F_p[1];
- In.x_pc[1, :] = x_pc[1, :];
- In.H = H_p[1];
- In.S = S_p[1];
- In.xvap = xvap_p[1];
- Out2.P = Preb;
- Out2.T = Treb;
- Out2.F = F_p[2];
- Out2.x_pc[1, :] = x_pc[2, :];
- Out2.H = H_p[2];
- Out2.S = S_p[2];
- Out2.xvap = xvap_p[2];
- Out1.P = Pcond;
- Out1.T = Tcond;
- Out1.F = F_p[3];
- Out1.x_pc[1, :] = x_pc[3, :];
- Out1.H = H_p[3];
- Out1.S = S_p[3];
- Out1.xvap = xvap_p[3];
- En2.Q = Qr;
- En1.Q = Qc;
-//==============================================================================
-//Adjustment for thermodynamic packages
- xin_pc[1, :] = x_pc[1, :];
- xin_pc[2, :] = xin_pc[1, :] ./ (1 .+ xvap_p[1] .* (K_c[:] .- 1));
- for i in 1:Nc loop
- xin_pc[3, i] = K_c[i] * xin_pc[2, i];
- end for;
- T = Tin;
- P = Pin;
-//==============================================================================
-//Bubble point calculation
- Pbubl = sum(gmabubl_c[:] .* xin_pc[1, :] .* exp(C[:].VP[2] + C[:].VP[3] / Tin + C[:].VP[4] * log(Tin) + C[:].VP[5] .* Tin .^ C[:].VP[6]) ./ philiqbubl_c[:]);
-//==============================================================================
-//Dew point calculation
- Pdew = 1 / sum(xin_pc[1, :] ./ (gmadew_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / Tin + C[:].VP[4] * log(Tin) + C[:].VP[5] .* Tin .^ C[:].VP[6])) .* phivapdew_c[:]);
- for i in 1:Nc loop
- if x_pc[1, i] == 0 then
- x_pc[3, i] = 0;
- else
- F_p[1] .* x_pc[1, i] = F_p[2] .* x_pc[2, i] + F_p[3] .* x_pc[3, i];
- end if;
- end for;
- sum(x_pc[3, :]) = 1;
- sum(x_pc[2, :]) = 1;
-//==============================================================================
-//Distillate and Bottom composition
- for i in 1:Nc loop
- if i <> HKey then
- if Ctype == "Total" then
- x_pc[3, i] / x_pc[3, HKey] = alpha_c[i] ^ Ntmin * (x_pc[2, i] / x_pc[2, HKey]);
- elseif Ctype == "Partial" then
- x_pc[3, i] / x_pc[3, HKey] = alpha_c[i] ^ (Ntmin + 1) * (x_pc[2, i] / x_pc[2, HKey]);
- end if;
- end if;
- end for;
-//==============================================================================
-//Relative Volatility
- alpha_c[:] = K_c[:] / K_c[HKey];
-//==============================================================================
-//Calculation of temperature at Distillate and Bottoms
- if Tcond <= 0 and Treb <= 0 then
- if Ctype == "Partial" then
- 1 / Pcond = sum(x_pc[3, :] ./ (gma_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Tcond .^ C[:].VP[6])));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- elseif Ctype == "Total" then
- Pcond = sum(gma_c[:] .* x_pc[3, :] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Tcond .^ C[:].VP[6]));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- end if;
-//==============================================================================
- elseif Tcond <= 0 then
- if Ctype == "Partial" then
- 1 / Pcond = sum(x_pc[3, :] ./ (gma_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Tcond .^ C[:].VP[6])));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / Treb + C[:].VP[4] * log(Treb) + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- elseif Ctype == "Total" then
- Pcond = sum(gma_c[:] .* x_pc[3, :] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Tcond .^ C[:].VP[6]));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / Treb + C[:].VP[4] * log(Treb) + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- end if;
-//==============================================================================
- elseif Treb <= 0 then
- if Ctype == "Partial" then
- 1 / Pcond = sum(x_pc[3, :] ./ (gma_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / Tcond + C[:].VP[4] * log(Tcond) + C[:].VP[5] .* Tcond .^ C[:].VP[6])));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- elseif Ctype == "Total" then
- Pcond = sum(gma_c[:] .* x_pc[3, :] .* exp(C[:].VP[2] + C[:].VP[3] / Tcond + C[:].VP[4] * log(Tcond) + C[:].VP[5] .* Tcond .^ C[:].VP[6]));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / 1 + C[:].VP[4] * 1 + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- end if;
-//==============================================================================
- else
- if Ctype == "Partial" then
- 1 / Pcond = sum(x_pc[3, :] ./ (gma_c[:] .* exp(C[:].VP[2] + C[:].VP[3] / Tcond + C[:].VP[4] * log(Tcond) + C[:].VP[5] .* Tcond .^ C[:].VP[6])));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / Treb + C[:].VP[4] * log(Treb) + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- elseif Ctype == "Total" then
- Pcond = sum(gma_c[:] .* x_pc[3, :] .* exp(C[:].VP[2] + C[:].VP[3] / Tcond + C[:].VP[4] * log(Tcond) + C[:].VP[5] .* Tcond .^ C[:].VP[6]));
- Preb = sum(gma_c[:] .* x_pc[2, :] .* exp(C[:].VP[2] + C[:].VP[3] / Treb + C[:].VP[4] * log(Treb) + C[:].VP[5] .* Treb .^ C[:].VP[6]));
- end if;
- end if;
-//==============================================================================
-//Minimum Reflux, Underwoods method
- if theta > alpha_c[LKey] or theta < alpha_c[HKey] then
- 0 = sum(alpha_c[:] .* x_pc[1, :] ./ (alpha_c[:] .- theta));
- else
- xvap_p[1] = sum(alpha_c[:] .* x_pc[1, :] ./ (alpha_c[:] .- theta));
- end if;
- RRmin + 1 = sum(alpha_c[:] .* x_pc[3, :] ./ (alpha_c[:] .- theta));
-//==============================================================================
-//Actual number of trays,Gillilands method
- x = (RR - RRmin) / (RR + 1);
- y = (Nt - Ntmin) / (Nt + 1);
- if x >= 0 then
- y = 0.75 * (1 - x ^ 0.5668);
- else
- y = -1;
- end if;
-//==============================================================================
-// Feed location, Fenske equation
- Intray = Nt / Ntmin * log(x_pc[1, LKey] / x_pc[1, HKey] * (x_pc[2, HKey] / x_pc[2, LKey])) / log(K_c[LKey] / K_c[HKey]);
-//==============================================================================
-//Rectifying and Stripping flows Calculation
- Fliqrec = RR * F_p[3];
- Fliqstrip = (1 - xvap_p[1]) * F_p[1] + Fliqrec;
- Fvapstrip = Fliqstrip - F_p[2];
- Fvaprec = xvap_p[1] * F_p[1] + Fvapstrip;
- for i in 1:Nc loop
- Hvapcond_c[i] = Simulator.Files.ThermodynamicFunctions.HVapId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Tcond);
- Hliqcond_c[i] = Simulator.Files.ThermodynamicFunctions.HLiqId(C[i].SH, C[i].VapCp, C[i].HOV, C[i].Tc, Tcond);
- end for;
- if Ctype == "Total" then
- Hliqcond = H_p[3];
- elseif Ctype == "Partial" then
- Hliqcond = sum(xliqcond_c[:] .* Hliqcond_c[:]);
- end if;
- Hvapcond = sum(xvapcond_c[:] .* Hvapcond_c[:]);
- Fvaprec .* xvapcond_c[:] = Fliqrec .* xliqcond_c[:] + F_p[3] .* x_pc[3, :];
- if Ctype == "Partial" then
- x_pc[3, :] = K[:] .* xliqcond_c[:];
- elseif Ctype == "Total" then
- x_pc[3, :] = xliqcond_c[:];
- end if;
-//==============================================================================
-//Energy Balance
- F_p[1] * H_p[1] + Qr - Qc = F_p[2] * H_p[2] + F_p[3] * H_p[3];
- Fvaprec * Hvapcond = Qc + F_p[3] * H_p[3] + Fliqrec * Hliqcond;
-annotation(
- Icon(coordinateSystem(extent = {{-250, -600}, {250, 600}})),
- Diagram(coordinateSystem(extent = {{-250, -600}, {250, 600}})),
- __OpenModelica_commandLineOptions = "",
- Documentation(info = "The shortcut column is used to calculate the minimum reflux in a distillation column by Fenske-Underwood-Gilliland (FUG) method.
The column should have following inputs:
- a single feed stage
- two products (top and bottom)
- condenser (total or partial)
- reboiler
The results are:
- Minumum Reflux Ratio
- Actual Reflux Ratio
- Total Number of Stages
- Feed Stage
- Condenser and Reboiler Duty
- Liquid and Vapor flows in Rectification and Stripping section
- Pressure and Temperature of Condenser and Reboiler
To simulate a shortcut column, following calculation parameters must be provided:
- Condenser Type
- High Key Component
- Low Key Component
Additionally, following input for following variables must be provided:
- Reflux Ratio
- Heavy Key Component Mole Fraction in Distillate
- Light Key Component Mole Fraction in Bottoms
- Condenser and Reboiler Pressure
For example on simulating a Shortcut Column, go to Examples >> ShortcutColumn
"));
- end ShortcutColumn;
diff --git a/src/main/Simulator/Simulator/UnitOperations/Splitter.mo b/src/main/Simulator/Simulator/UnitOperations/Splitter.mo
deleted file mode 100644
index 9871ea7..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/Splitter.mo
+++ /dev/null
@@ -1,76 +0,0 @@
-within Simulator.UnitOperations;
-
-model Splitter
-//============================================================================
-//Header Files and Parameters
- extends Simulator.Files.Icons.Splitter;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc = 3 "Number of Components", No = 2 "Number of outlet streams";
- parameter String CalcType "Split_Ratio, Mass_Flow or Molar_Flow";
-
-//=============================================================================
-//Model Variables
- Real Pin(min = 0, start = Pg) "Inlet pressure";
- Real Tin(min = 0, start = Tg) "Inlet Temperature";
- Real xin_c[Nc](each min = 0, each max = 1, start =xg) "Inlet Mixture Mole Fraction";
- Real Fin(min = 0, start = Fg) "Inlet Mixture Molar Flow";
-
- Real SplRat_s[No](each min = 0, each max = 1) "Split ratio";
- Real MW(each min = 0) "Average molecular weight";
- Real SpecVal_s[No] "Specification value";
-
- Real Pout_s[No](each min = 0, each start = Pg) "Outlet Pressure";
- Real Tout_s[No](each min = 0, each start = Tg) "Outlet Temperature";
- Real xout_sc[No, Nc](each min = 0, each max = 1) "Outlet Mixture Molar Fraction";
- Real Fout_c[No](each min = 0, start = Fg) "Outlet Mixture Molar Flow";
- Real Fmout_c[No](each min = 0, start = Fg) "Outlet Mixture Mass Flow";
-
-
-//==============================================================================
-//Instantiation of Connectors
- Simulator.Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out[No](each Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- extends GuessModels.InitialGuess;
-
- equation
-//==============================================================================
-//Connector equations
- In.P = Pin;
- In.T = Tin;
- In.x_pc[1, :] = xin_c[:];
- In.F = Fin;
- for i in 1:No loop
- Out[i].P = Pout_s[i];
- Out[i].T = Tout_s[i];
- Out[i].x_pc[1, :] = xout_sc[i, :];
- Out[i].F = Fout_c[i];
- end for;
-//================================================================================
-//Specification value assigning equation
- if CalcType == "Split_Ratio" then
- SplRat_s[:] = SpecVal_s[:];
- elseif CalcType == "Molar_Flow" then
- Fout_c[:] = SpecVal_s[:];
- elseif CalcType == "Mass_Flow" then
- Fmout_c[:] = SpecVal_s[:];
- end if;
-//=================================================================================
-//Balance equation
- for i in 1:No loop
- Pin = Pout_s[i];
- Tin = Tout_s[i];
- xin_c[:] = xout_sc[i, :];
- SplRat_s[i] = Fout_c[i] / Fin;
- MW * Fout_c[i] = Fmout_c[i];
- end for;
-//==================================================================================
-//Average Molecular Weight Calculation
-algorithm
- MW := 0;
- for i in 1:Nc loop
- MW := MW + C[i].MW * xin_c[i];
- end for;
-end Splitter;
diff --git a/src/main/Simulator/Simulator/UnitOperations/Valve.mo b/src/main/Simulator/Simulator/UnitOperations/Valve.mo
deleted file mode 100644
index 658d52a..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/Valve.mo
+++ /dev/null
@@ -1,63 +0,0 @@
-within Simulator.UnitOperations;
-
-model Valve "Model of a valve to regulate the pressure of a material stream"
- extends Simulator.Files.Icons.Valve;
- parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc = 3 "Number of components";
- //====================================================================================
- Real Fin(unit = "mol/s", min = 0, start = Fg) "Inlet stream molar flow rate";
- Real Pin(unit = "Pa", min = 0, start = Pg) "Inlet stream pressure";
- Real Tin(unit = "K", min = 0, start = Tg) "Inlet stream emperature";
- Real Hin(unit = "kJ/kmol",start=Htotg) "Inlet stream molar enthalpy";
- Real Sin(unit = "kJ/[kmol.K]") "Inlet stream molar entropy";
- Real xvapin(unit = "-", min = 0, max = 1, start = xvapg) "Inlet stream vapor phase mole fraction";
-
- Real Tdel(unit = "K") "Temperature increase";
- Real Pdel(unit = "Pa") "Pressure drop";
-
- Real Fout(unit = "mol/s", min = 0, start = Fg) "outlet stream molar flow rate";
- Real Pout(unit = "Pa", min = 0, start = Pg) "Outlet stream pressure";
- Real Tout(unit = "K", min = 0, start = Tg) "Outlet stream temperature";
- Real Hout(unit = "kJ/kmol",start=Htotg) "Outlet stream molar enthalpy";
- Real Sout(unit = "kJ/[kmol.K]") "Outlet stream molar entropy";
- Real x_c[Nc](each unit = "-", each min = 0, each max = 1, start = xg) "Component mole fraction";
- Real xvapout(unit = "-", min = 0, max = 1, start = xvapg) "Outlet stream vapor phase mole fraction";
- //========================================================================================
-
- //========================================================================================
- Files.Interfaces.matConn In(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {-100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- Simulator.Files.Interfaces.matConn Out(Nc = Nc) annotation(
- Placement(visible = true, transformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {100, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- //========================================================================================
-
- extends GuessModels.InitialGuess;
-equation
-//connector equations
- In.P = Pin;
- In.T = Tin;
- In.F = Fin;
- In.H = Hin;
- In.S = Sin;
- In.x_pc[1, :] = x_c[:];
- In.xvap = xvapin;
- Out.P = Pout;
- Out.T = Tout;
- Out.F = Fout;
- Out.H = Hout;
- Out.S = Sout;
- Out.x_pc[1, :] = x_c[:];
- Out.xvap = xvapout;
-//=============================================================================================
- Fin = Fout;
-//material balance
- Hin = Hout;
-//energy balance
- Pin - Pdel = Pout;
-//pressure calculation
- Tin + Tdel = Tout;
-//temperature calculation
-annotation(
- Documentation(info = "The valve is used to simulate the pressure manipulation process of a material stream.
To simulate a valve, one of the following calculation parameter must be provided:
- Outlet Pressure (Pout)
- Pressure Drop (Pdel)
For example on simulating a valve, go to Examples >> Valve
"));
-
- end Valve;
diff --git a/src/main/Simulator/Simulator/UnitOperations/package.mo b/src/main/Simulator/Simulator/UnitOperations/package.mo
deleted file mode 100644
index 0b39662..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/package.mo
+++ /dev/null
@@ -1,4 +0,0 @@
-within Simulator;
-package UnitOperations
- extends Modelica.Icons.VariantsPackage;
-end UnitOperations;
diff --git a/src/main/Simulator/Simulator/UnitOperations/package.order b/src/main/Simulator/Simulator/UnitOperations/package.order
deleted file mode 100644
index 95fe9a1..0000000
--- a/src/main/Simulator/Simulator/UnitOperations/package.order
+++ /dev/null
@@ -1,18 +0,0 @@
-Mixer
-Heater
-HeatExchanger
-Cooler
-Valve
-ShortcutColumn
-CompoundSeparator
-Flash
-Splitter
-CentrifugalPump
-AdiabaticCompressor
-AdiabaticExpander
-ConversionReactor
-EquilibriumReactor
-PFR
-DistillationColumn
-AbsorptionColumn
-RecycleBlock
diff --git a/src/main/Simulator/Simulator/package.mo b/src/main/Simulator/Simulator/package.mo
deleted file mode 100644
index 8e6e1da..0000000
--- a/src/main/Simulator/Simulator/package.mo
+++ /dev/null
@@ -1,19 +0,0 @@
-package Simulator
- /* This aims to be steady state chemical engineering process simulator. Currently this contains Chemsep Database(contains more than 400 compounds), thermodynamic packages, Various themodynamic functions , Material stream(generic flash unit) and some generic unit operations and some Tests of these models*/
- /* Chemsep Database is created by "Rahul Jain" and modified by "Pravin Dalve"*/
- extends Modelica.Icons.Package;
- import SI = Modelica.SIunits;
- import Cv = Modelica.SIunits.Conversions;
-
-
-
-
-
-
-
-
-
-
- annotation(
- uses(Modelica(version = "3.2.3")));
-end Simulator;
diff --git a/src/main/Simulator/Simulator/package.order b/src/main/Simulator/Simulator/package.order
deleted file mode 100644
index b0723ec..0000000
--- a/src/main/Simulator/Simulator/package.order
+++ /dev/null
@@ -1,6 +0,0 @@
-Files
-Streams
-UnitOperations
-Examples
-BinaryPhaseEnvelope
-GuessModels
diff --git a/src/main/python/DockWidgets/DistillationColumnStagewiseResults.py b/src/main/python/DockWidgets/DistillationColumnStagewiseResults.py
deleted file mode 100644
index 65527dc..0000000
--- a/src/main/python/DockWidgets/DistillationColumnStagewiseResults.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import os, sys
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.uic import loadUiType
-from PyQt5.QtWidgets import QWidget
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DistillationColumnStagewiseResults.ui')
-
-
-class DistillationColumnStagewiseResults(QWidget,ui_dialog):
-
- def __init__(self, parent=None):
- QWidget.__init__(self, parent)
- self.setupUi(self)
- # self.setWindowTitle(self.parent.obj.name)
diff --git a/src/main/python/DockWidgets/DockWidget.py b/src/main/python/DockWidgets/DockWidget.py
deleted file mode 100644
index 764d8fb..0000000
--- a/src/main/python/DockWidgets/DockWidget.py
+++ /dev/null
@@ -1,168 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidget.ui')
-
-class DockWidget(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container, parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = {}
- self.modes()
- self.comboBox.currentIndexChanged.connect(self.mode_selection)
-
- #print("constructor ", self.input_dict)
- self.pushButton_2.clicked.connect(self.param)
-
- self.dict = {} # a dictionary
- self.container = container
-
- # input data tab
- def modes(self):
- modes_list = self.obj.modes_list
- if(modes_list):
- for j in modes_list:
- self.comboBox.addItem(str(self.obj.variables[j]['name']))
- self.comboBox.setCurrentText(self.obj.variables[self.obj.mode]['name'])
- self.mode_selection()
- else:
- self.comboBox.setDisabled(True)
- self.input_dict= {}
- self.input_dict = self.obj.param_getter()
- self.input_params_list()
-
- def mode_selection(self):
- self.input_dict= {}
- for i in reversed(range(self.formLayout.count())):
- self.formLayout.removeRow(i)
- #print(self.comboBox.currentText())
- for i in self.obj.variables:
- if self.obj.variables[i]['name'] == self.comboBox.currentText():
- currentText = i
- break
- self.input_dict = self.obj.param_getter(currentText)
- #print('mode selection ', self.input_dict)
- self.input_params_list()
-
- def input_params_list(self):
- try:
- #print("input_params_list ", self.input_dict)
- for c,i in enumerate(self.input_dict):
- #print(i)
- if i == None:
- continue
- l = QLineEdit(str(self.obj.variables[i]['value']))
- l.setFixedWidth(80)
- lay = QGridLayout()
- lay.addWidget(QLabel(self.obj.variables[i]['name']+":"),0,0, alignment=Qt.AlignLeft)
- lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
- lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignLeft)
- self.formLayout.addRow(lay)
- self.input_dict[i] = l
- except Exception as e:
- print(e)
-
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict = {}
- #print("param.input_dict ", self.input_dict)
- for i in self.input_dict:
- if (self.input_dict[i] == None):
- continue
- else:
- #print(self.input_dict[i], i, self.obj.type)
- if (self.input_dict[i].text()):
- self.dict[i] = self.input_dict[i].text()
- else:
- #print(self.input_dict[i].text())
- self.show_error()
- break
-
- #print("param ", self.dict)
- self.obj.param_setter(self.dict)
- for i in self.container.graphics.graphicsView.items():
- try:
- if(i.name == self.name):
- i.update_tooltip()
- except:
- pass
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
-
- @staticmethod
- def show_result(lst):
- for i in lst:
- try:
- i.results_category(i.name)
- except AttributeError:
- pass
-
- def clear_results(self):
- self.tableWidget.setRowCount(0)
-
- # result data tab
- def results_category(self,name):
- flag = True
- try:
- #print("Under result category name ", name)
- result=self.container.result
- obj = self.container.fetch_object(name)
- self.tableWidget.setRowCount(0)
- variKeys = list(obj.variables.keys())
- #print(variKeys)
- for i, val in enumerate(variKeys):
- propertyname = name + '.' + val
- #print(i,val, propertyname)
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- resultval = str(result[-1][ind])
- #print("######Resultsfetch####",val,resultval)
- rowPosition = self.tableWidget.rowCount()
- self.tableWidget.insertRow(rowPosition)
- self.tableWidget.setItem(rowPosition , 0, QTableWidgetItem(obj.variables[val]['name']))
- self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
- self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
- self.tableWidget.resizeColumnsToContents()
-
- # Updating result in class
- obj.variables[val]['value'] = resultval
- # try:
- # if obj.type == "Heater":
- # print(obj.variables[val]['name'] + str(obj.variables[val]['value']))
- # except Exception as e:
- # print(e)
-
-
-
- except Exception as e:
- print(e)
-
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetCompoundSeparator.py b/src/main/python/DockWidgets/DockWidgetCompoundSeparator.py
deleted file mode 100644
index 26f8fd4..0000000
--- a/src/main/python/DockWidgets/DockWidgetCompoundSeparator.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
-from python.utils.ComponentSelector import *
-from collections import defaultdict
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetCompoundSeparator.ui')
-
-class DockWidgetCompoundSeparator(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = []
- self.lst = []
- self.input_params_list()
- self.dict = []
-
- def input_params_list(self):
- try:
- if self.type == 'CompoundSeparator':
- self.lst.clear()
- self.calculationGroupBox = QGroupBox('Calculation Parameters')
- self.calculationLayout = QGridLayout()
-
- r1 = QRadioButton('Stream 1')
- r1.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
- r2 = QRadioButton('Stream 2')
- r2.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
- if self.obj.variables['SepStrm']['value'] == 1:
- r1.setChecked(True)
- r2.setChecked(False)
- else:
- r1.setChecked(False)
- r2.setChecked(True)
-
-
- self.lst = [r1, r2]
- self.calculationLayout.addWidget(r1, 0, 1)
- self.calculationLayout.addWidget(r2, 0, 2)
-
- for k,val in enumerate(self.obj.compounds):
- combo = QComboBox()
- #print("CompoundSeparator combo")
- for j in self.obj.SepFact_modes:
- combo.addItem(str(j))
- #print(self.obj.variables['SepFact_c']['value'][k])
- combo.setCurrentText(self.obj.variables['SepFact_c']['value'][k])
- combo.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
- l = QLineEdit(str(self.obj.variables['SepVal_c']['value'][k]))
- l.setFixedWidth(80)
- l.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
- self.calculationLayout.addWidget(QLabel(val+" :"), k+1,0, alignment=Qt.AlignLeft)
- self.calculationLayout.addWidget(combo, k+1, 1, alignment=Qt.AlignCenter)
- self.calculationLayout.addWidget(l,k+1,2, alignment=Qt.AlignCenter)
- self.lst.append(combo)
- self.lst.append(l)
-
- self.calculationLayout.setColumnStretch(3, len(self.obj.compounds)+1)
- self.calculationGroupBox.setLayout(self.calculationLayout)
-
- btn = QPushButton('Submit')
- btn.clicked.connect(self.param)
-
- self.gridLayout.setVerticalSpacing(5)
- self.gridLayout.addWidget(self.calculationGroupBox,0,0)
- self.gridLayout.addWidget(btn,1,0)
-
- self.input_dict = self.lst
-
- except Exception as e:
- print(e)
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def update_compounds(self):
- try:
- self.obj.init_variables()
- t_item = self.calculationGroupBox.layout().itemAt(0)
- self.calculationGroupBox.layout().removeItem(t_item)
- while(t_item):
- t_widget = t_item.widget()
- if(t_widget):
- t_widget.setHidden(True)
- self.calculationGroupBox.layout().removeWidget(t_widget)
- t_item = self.calculationGroupBox.layout().itemAt(0)
- self.input_params_list()
- except Exception as e:
- print(e)
-
-
- def param(self):
- try:
- self.dict=[]
-
- self.dict = [self.input_dict[0].isChecked(), self.input_dict[1].isChecked()]
- j = 2
- for i in range(len(self.obj.compounds)):
- self.dict.append(self.input_dict[j+i].currentText())
- if(self.input_dict[j+i+1].text()):
- self.dict.append(self.input_dict[j+i+1].text())
- j += 1
- else:
- self.show_error()
-
-
- self.obj.param_setter(self.dict)
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetCompressorExpander.py b/src/main/python/DockWidgets/DockWidgetCompressorExpander.py
deleted file mode 100644
index 9a8cb07..0000000
--- a/src/main/python/DockWidgets/DockWidgetCompressorExpander.py
+++ /dev/null
@@ -1,167 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetCompressorExpander.ui')
-
-class DockWidgetCompressorExpander(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container, parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = {}
- self.x_pclist = []
- self.modes()
- self.comboBox.currentIndexChanged.connect(self.mode_selection)
-
- self.pushButton_2.clicked.connect(self.param)
- self.dict = {}
-
- self.name_type = None
- self.container = container
-
- # input data tab
- def modes(self):
- modes_list = self.obj.modes_list
- if(modes_list):
- for j in modes_list:
- self.comboBox.addItem(str(self.obj.variables[j]['name']))
- self.mode_selection()
- else:
- self.comboBox.setDisabled(True)
- self.input_dict= {}
- self.input_dict = self.obj.param_getter()
- self.input_params_list()
-
- def mode_selection(self):
- self.input_dict= {}
- for i in reversed(range(self.formLayout.count())):
- self.formLayout.removeRow(i)
- #print(self.comboBox.currentText())
- for i in self.obj.variables:
- if self.obj.variables[i]['name'] == self.comboBox.currentText():
- currentText = i
- break
- self.input_dict = self.obj.param_getter(currentText)
- #print('mode selection ', self.input_dict)
- self.input_params_list()
-
- def input_params_list(self):
- try:
- #print("input_params_list ", self.input_dict)
- for c,i in enumerate(self.input_dict):
- if i == None:
- continue
-
- l = QLineEdit()
- if self.input_dict[i] != None:
- l.setText(str(self.input_dict[i]))
- l.setFixedWidth(80)
- lay = QGridLayout()
- lay.addWidget(QLabel(self.obj.variables[i]['name']+":"),0,0, alignment=Qt.AlignLeft)
- lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
- lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignLeft)
-
- self.formLayout.addRow(lay)
- self.input_dict[i] = l
-
- self.lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')]
- for j in self.lines:
- self.cbTP.addItem(str(j))
- self.input_dict['Thermo Package'] = self.cbTP
-
- except Exception as e:
- print(e)
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict={}
- for i in self.input_dict:
- if (self.input_dict[i] == None):
- continue
- elif (i == "Thermo Package"):
- self.dict[i] = self.input_dict[i].currentText()
- else:
- #print(self.input_dict[i], i, self.obj.type)
- if (self.input_dict[i].text()):
- self.dict[i] = self.input_dict[i].text()
- else:
- #print(self.input_dict[i].text())
- self.show_error()
- break
-
- self.obj.param_setter(self.dict)
-
- for i in self.container.graphics.graphicsView.items():
- try:
- if(i.name == self.name):
- i.update_tooltip()
- except:
- pass
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
-
- @staticmethod
- def show_result(lst):
- for i in lst:
- try:
- i.results_category(i.name)
- except AttributeError:
- pass
-
- def clear_results(self):
- self.tableWidget.setRowCount(0)
-
- # result data tab
- def results_category(self,name):
- flag = True
- try:
- #print("Under result category name ", name)
- result=self.container.result
- obj = self.container.fetch_object(name)
- self.tableWidget.setRowCount(0)
- variKeys = list(obj.variables.keys())
- #print(variKeys)
- for i, val in enumerate(variKeys):
- propertyname = name + '.' + val
- #print(i,val, propertyname)
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- resultval = str(result[-1][ind])
- #print("######Resultsfetch####",val,resultval)
- rowPosition = self.tableWidget.rowCount()
- self.tableWidget.insertRow(rowPosition)
- self.tableWidget.setItem(rowPosition , 0, QTableWidgetItem(obj.variables[val]['name']))
- self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
- self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
- self.tableWidget.resizeColumnsToContents()
-
- except Exception as e:
- print(e)
-
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetDistillationColumn.py b/src/main/python/DockWidgets/DockWidgetDistillationColumn.py
deleted file mode 100644
index 7895b32..0000000
--- a/src/main/python/DockWidgets/DockWidgetDistillationColumn.py
+++ /dev/null
@@ -1,390 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
-from collections import defaultdict
-
-from python.utils.ComponentSelector import *
-from python.DockWidgets.DistillationColumnStagewiseResults import DistillationColumnStagewiseResults
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetDistillationColumn.ui')
-
-
-class DockWidgetDistillationColumn(QDockWidget, ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = []
- self.pushButton_2.clicked.connect(self.param)
- self.dict = []
- self.input_params_list()
- self.name_type = None
- self.container = container
- self.stage_res_table = DistillationColumnStagewiseResults()
- self.stageResultsButton.clicked.connect(self.showStagewiseResults)
-
- # input data tab
-
- def input_params_list(self):
- try:
- print("input_params_list ", self.input_dict)
-
- # tab 1
-
- l1 = QLineEdit()
- l1.setFixedWidth(80)
- l1.setText(str(self.obj.variables['Nt']['value']))
- self.lay1.addWidget(QLabel(self.obj.variables['Nt']['name'] + " :"), 0 ,0, alignment=Qt.AlignLeft)
- self.lay1.addWidget(l1,0,1, alignment=Qt.AlignLeft)
- self.input_dict.append(l1)
-
- for i in range(self.obj.variables['Ni']['value']):
- print(i)
- l = QLineEdit()
- l.setFixedWidth(80)
- if len(self.obj.variables['InT_s']['value']) is not 0:
- l.setText(str(self.obj.variables['InT_s']['value'][i]))
- self.lay1.addWidget(QLabel(self.obj.variables['InT_s']['name'] +" " + str(i+1) + " location :"),2*(i+1),0, alignment=Qt.AlignLeft)
- self.lay1.addWidget(l,2*(i+1),1, alignment=Qt.AlignLeft)
- self.input_dict.append(l)
-
- # tab 2
- self.l4.setText(self.obj.variables['Ctype']['name']+":")
-
- self.u1.setText(self.obj.variables['Ctype']['unit'])
- self.l5.setText(self.obj.variables['Pcond']['name']+":")
- self.le5.setText(str(self.obj.variables['Pcond']['value']))
- self.u2.setText(self.obj.variables['Pcond']['unit'])
- self.l6.setText(self.obj.variables['C_Spec']['name']+":")
- self.le6.setText(str(self.obj.variables['C_Spec']['value']))
- self.l7.setText("Compounds :")
-
- self.cb5.addItem("Total")
- self.cb5.addItem("Partial")
- self.cb5.setCurrentText(self.obj.variables['Ctype']['value'])
-
- for j in self.obj.Cspec_list:
- self.cb1.addItem(str(j))
- self.cb1.setCurrentText(self.obj.variables['C_Spec']['type'])
- for j in self.obj.compounds:
- self.cb2.addItem(str(j))
- self.cb2.setCurrentText(self.obj.variables['C_Spec']['comp'])
-
- self.cb2.setDisabled(True)
- self.cb1.currentIndexChanged.connect(self.fun2)
-
- self.le5.setFixedWidth(80)
- self.le6.setFixedWidth(80)
- self.le7.setFixedWidth(80)
- self.le8.setFixedWidth(80)
- self.cb1.setFixedWidth(180)
- self.cb2.setFixedWidth(80)
- self.cb3.setFixedWidth(180)
- self.cb4.setFixedWidth(80)
- self.cb5.setFixedWidth(80)
- self.u2.setAlignment(Qt.AlignLeft)
- self.u3.setAlignment(Qt.AlignLeft)
-
- self.input_dict.append(self.cb5)
- self.input_dict.append(self.le5)
- self.input_dict.append(self.cb1)
- self.input_dict.append(self.cb2)
- self.input_dict.append(self.le6)
-
- # tab3
- self.l8.setText(self.obj.variables['Preb']['name']+":")
- self.le7.setText(str(self.obj.variables['Preb']['value']))
- self.u3.setText(self.obj.variables['Preb']['unit'])
- self.l9.setText(self.obj.variables['R_Spec']['name']+":")
- self.le8.setText(str(self.obj.variables['R_Spec']['value']))
- self.l10.setText('Compounds')
-
- for j in self.obj.Rspec_list:
- self.cb3.addItem(str(j))
- self.cb3.setCurrentText(self.obj.variables['R_Spec']['type'])
- for j in self.obj.compounds:
- self.cb4.addItem(str(j))
- self.cb4.setCurrentText(self.obj.variables['R_Spec']['comp'])
- self.cb4.setDisabled(True)
- self.cb3.currentIndexChanged.connect(self.fun3)
-
- self.input_dict.append(self.le7)
- self.input_dict.append(self.cb3)
- self.input_dict.append(self.cb4)
- self.input_dict.append(self.le8)
-
- self.lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')]
- for j in self.lines:
- self.cbTP.addItem(str(j))
- self.cbTP.setCurrentText(self.obj.variables['thermo_package']['value'])
-
- self.input_dict.append(self.cbTP)
-
- # self.input_dict = [self.le1, self.le2, self.le3, self.cb5, self.le5, self.cb1, self.cb2, self.le6, self.le7, self.cb3, self.cb4, self.le8]
-
- except Exception as e:
- print(e)
-
- def update_compounds(self):
- self.cb2.clear()
- self.cb4.clear()
- for j in self.obj.compounds:
- self.cb2.addItem(str(j))
- self.cb2.setCurrentText(self.obj.variables['C_Spec']['comp'])
- for j in self.obj.compounds:
- self.cb4.addItem(str(j))
- self.cb4.setCurrentText(self.obj.variables['R_Spec']['comp'])
-
- def fun2(self):
- if self.cb1.currentText() == 'Compound Molar Fraction' or self.cb1.currentText() == 'Compound Molar Flow (mol/s)':
- self.cb2.setDisabled(False)
- else:
- self.cb2.setDisabled(True)
-
- def fun3(self):
- if self.cb3.currentText() == 'Compound Molar Fraction' or self.cb3.currentText() == 'Compound Molar Flow (mol/s)':
- self.cb4.setDisabled(False)
- else:
- self.cb4.setDisabled(True)
-
- def Show_Error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict= []
- temp = 0
- print("param.input_dict ", self.input_dict)
- self.dict.append(int(self.input_dict[0].text()))
-
- for i in range(self.obj.variables['Ni']['value']):
- self.dict.append(int(self.input_dict[i+1].text()))
- temp = i + 1
- print(temp)
-
- # print(temp)
- # print(self.input_dict[temp+1])
- self.dict.append(self.input_dict[temp+1].currentText())
- # print(temp+1)
- self.dict.append(int(self.input_dict[temp+2].text()))
- #print(temp+2)
- self.dict.append(self.input_dict[temp+3].currentText())
- #print(temp+3)
- self.dict.append(self.input_dict[temp+4].currentText())
- #print(temp+4)
- self.dict.append(int(self.input_dict[temp+5].text()))
- #print(temp+5)
- self.dict.append(int(self.input_dict[temp+6].text()))
- #print(temp+6)
- self.dict.append(self.input_dict[temp+7].currentText())
- #print(temp+7)
- self.dict.append(self.input_dict[temp+8].currentText())
- #print(temp+8)
- self.dict.append(int(self.input_dict[temp+9].text()))
- #print(temp+9)
- self.dict.append(self.input_dict[temp+10].currentText())
- #print(temp + 10)
-
- #print("param ", self.dict)
- self.obj.param_setter(self.dict)
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
-
- def showStagewiseResults(self):
- self.stage_res_table.show()
-
- @staticmethod
- def showResult(lst):
- # DockWidget1.flag = True
- for i in lst:
- try:
- i.results_category(i.name)
- except AttributeError:
- pass
-
- def clear_results(self):
- self.tableWidget.setRowCount(0)
- self.stage_res_table.T_table.setRowCount(0)
- self.stage_res_table.T_table.setColumnCount(0)
- self.stage_res_table.x_pc_table.setRowCount(0)
- self.stage_res_table.x_pc_table.setColumnCount(0)
-
- # result data tab
- def results_category(self,name):
- flag = True
- try:
- #print("Under result category name ", name)
- result = self.container.result
- obj = self.container.fetch_object(name)
- self.tableWidget.setRowCount(0)
- variKeys = obj.result_parameters
- #print(variKeys)
- for i, val in enumerate(variKeys):
- propertyname = name + '.' + val
- #print(i, val, propertyname)
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- resultval = str(result[-1][ind])
- obj.variables[val]['value'] = result[-1][ind]
- #print("######Resultsfetch####", val, resultval)
- rowPosition = self.tableWidget.rowCount()
- self.tableWidget.insertRow(rowPosition)
- self.tableWidget.setItem(rowPosition, 0, QTableWidgetItem(obj.variables[val]['name']))
- self.tableWidget.setItem(rowPosition, 1, QTableWidgetItem(resultval))
- self.tableWidget.setItem(rowPosition, 2, QTableWidgetItem(obj.variables[val]['unit']))
- self.tableWidget.resizeColumnsToContents()
-
- # Stagewise Results
- Nt = self.obj.variables['Nt']['value']
- Nc = len(self.obj.compounds)
- # initializing temporary arrays
- Stages_T = [None for i in range(Nt)]
- # Can be uncommented when F_p and F_pc implemented in modelica table
- # Stages_F_p = [[None for i in range(3)] for j in range(Nt)]
- # Stages_F_pc = [[[None for i in range(3)] for j in range(Nc)] for k in range(Nt)]
- Stages_x_pc = [[[None for i in range(3)] for j in range(Nc)] for k in range(Nt)]
-
- Stages_res_varikeys = ['T']
- for i in range(Nc):
- for j in range(3):
- Stages_res_varikeys.append('x_pc[' + str(j + 1) + ',' + str(i + 1) + ']')
-
- for v in Stages_res_varikeys:
- propertyname = name + '.condenser.' + v
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- if v == 'T':
- Stages_T[0] = result[-1][ind]
- # Can be uncommented when F_p is implemented in modelica model
- # elif v == 'F_p':
- # if result[0][ind][result[0][ind].index('[') + 1] == '1':
- # Stages_F_p[0][0] = result[-1][ind]
- # elif result[0][ind][result[0][ind].index('[') + 1] == '2':
- # Stages_F_p[0][1] = result[-1][ind]
- # else:
- # Stages_F_p[0][2] = result[-1][ind]
- else:
- #print(ind)
- phase_no = int(result[0][ind][result[0][ind].index('[') + 1])
- comp_no = int(result[0][ind][result[0][ind].index(']') - 1])
- Stages_x_pc[0][comp_no - 1][phase_no - 1] = result[-1][ind]
- # Can be uncommented and improved when F_pc implemented in modelica model
- # if v == 'F_pc':
- # Stages_F_pc[0][comp_no - 1][phase_no - 1] = result[-1][ind]
- # else:
- # Stages_x_pc[0][comp_no - 1][phase_no - 1] = result[-1][ind]
-
- for i in range(1, Nt - 1):
- propertyname = name + '.tray[' + str(i) + '].' + v
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- if v == 'T':
- Stages_T[i] = result[-1][ind]
- # Can be uncommented when F_p implemented in modelica model
- # elif v == 'F_p':
- # if result[0][ind][result[0][ind].index('[') + 1] == '1':
- # Stages_F_p[i][0] = result[-1][ind]
- # elif result[0][ind][result[0][ind].index('[') + 1] == '2':
- # Stages_F_p[i][1] = result[-1][ind]
- # else:
- # Stages_F_p[i][2] = result[-1][ind]
- else:
- # print(ind)
- # print(result[0][ind])
- phase_no = int(result[0][ind].split('.')[-1][result[0][ind].split('.')[-1].index('[') + 1])
- comp_no = int(result[0][ind].split('.')[-1][result[0][ind].split('.')[-1].index(']') - 1])
- Stages_x_pc[i][comp_no - 1][phase_no - 1] = result[-1][ind]
- # Can be uncommented when F_pc implemented in modelica model
- # if v == 'F_pc':
- # Stages_F_pc[i][comp_no - 1][phase_no - 1] = result[-1][ind]
- # else:
- # Stages_x_pc[i][comp_no - 1][phase_no - 1] = result[-1][ind]
-
- propertyname = name + '.reboiler.' + v
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- if v == 'T':
- Stages_T[-1] = result[-1][ind]
- # Can be uncommented when F_p implemented in modelica model
- # elif v == 'F_p':
- # if result[0][ind][result[0][ind].index('[') + 1] == '1':
- # Stages_F_p[-1][0] = result[-1][ind]
- # elif result[0][ind][result[0][ind].index('[') + 1] == '2':
- # Stages_F_p[-1][1] = result[-1][ind]
- # else:
- # Stages_F_p[-1][2] = result[-1][ind]
- else:
- print(ind)
- phase_no = int(result[0][ind][result[0][ind].index('[') + 1])
- comp_no = int(result[0][ind][result[0][ind].index(']') - 1])
- Stages_x_pc[-1][comp_no - 1][phase_no - 1] = result[-1][ind]
- # Can be uncommented when F_pc implemented in modelica model
- # if v == 'F_pc':
- # Stages_F_pc[-1][comp_no - 1][phase_no - 1] = result[-1][ind]
- # else:
- # Stages_x_pc[-1][comp_no - 1][phase_no - 1] = result[-1][ind]
-
- # Assigning temp variables to obj variabes
- self.obj.variables['Stages.T']['value'] = Stages_T
- # Can be uncommented when F_p and F_pc implemented in modelica model
- # self.obj.variables['Stages.F_p']['value'] = Stages_F_p
- # self.obj.variables['Stages.F_pc']['value'] = Stages_F_pc
- self.obj.variables['Stages.x_pc']['value'] = Stages_x_pc
-
- # filling stagewise result table
- tables = [self.stage_res_table.T_table, self.stage_res_table.x_pc_table]
- # Can be uncommented when F_p and F_pc implemented in modelica model
- # tables = [self.stage_res_table.T_table, self.stage_res_table.F_p_table, self.stage_res_table.F_pc_table, self.stage_res_table.x_pc_table]
-
- for t in tables:
- t.setRowCount(Nt)
- t.setVerticalHeaderItem(0, QTableWidgetItem('Condenser'))
- t.setVerticalHeaderItem(Nt -1, QTableWidgetItem('Reboiler'))
- for i in range(1, Nt - 1):
- t.setVerticalHeaderItem(i, QTableWidgetItem('Stage ' + str(i)))
-
- T_table = self.stage_res_table.T_table
- T_table.setColumnCount(1)
- for i in range(Nt):
- T_table.setItem(i, 0, QTableWidgetItem(Stages_T[i]))
-
- x_pc_table = self.stage_res_table.x_pc_table
- x_pc_table.setColumnCount(2*Nc)
- for i in range(Nc):
- x_pc_table.setHorizontalHeaderItem(2*i, QTableWidgetItem(self.obj.compounds[i] + '(Vapor)'))
- x_pc_table.setHorizontalHeaderItem(2*i + 1, QTableWidgetItem(self.obj.compounds[i] + '(Liquid)'))
-
- for i in range(Nt):
- for j in range(Nc):
- x_pc_table.setItem(i, 2*j, QTableWidgetItem(Stages_x_pc[i][j][1]))
- x_pc_table.setItem(i, 2 * j + 1, QTableWidgetItem(Stages_x_pc[i][j][2]))
-
- for t in tables:
- t.resizeColumnsToContents()
- except Exception as e:
- print(e)
-
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetFlash.py b/src/main/python/DockWidgets/DockWidgetFlash.py
deleted file mode 100644
index c001fe2..0000000
--- a/src/main/python/DockWidgets/DockWidgetFlash.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetFlash.ui')
-
-class DockWidgetFlash(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = []
- self.input_params_list()
- self.btn.clicked.connect(self.param)
- self.dict = [] # a list
-
- def input_params_list(self):
- try:
- self.l1.setText(self.obj.variables['thermo_package']['name']+":")
- self.lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')]
- for j in self.lines:
- self.cb1.addItem(str(j))
- self.cb1.setCurrentText(self.obj.variables['thermo_package']['value'])
-
- self.check1.setText(self.obj.variables['Tdef']['name']+":")
- self.le2.setText(str(self.obj.variables['Tdef']['value']))
- self.u2.setText(self.obj.variables['Tdef']['unit'])
- self.check1.toggled.connect(self.fun)
- self.check1.setChecked(self.obj.variables['BTdef']['value'])
- self.check2.setText(self.obj.variables['Pdef']['name']+":")
- self.le3.setText(str(self.obj.variables['Pdef']['value']))
- self.u3.setText(self.obj.variables['Pdef']['unit'])
- self.check2.toggled.connect(self.fun)
- self.check2.setChecked(self.obj.variables['BPdef']['value'])
-
- self.le2.setFixedWidth(80)
- self.le3.setFixedWidth(80)
- self.cb1.setFixedWidth(80)
-
- self.input_dict = [self.cb1, self.check1, self.le2, self.check2, self.le3]
-
- except Exception as e:
- print(e)
-
- def fun(self):
- if self.check1.isChecked():
- self.le2.setDisabled(False)
- else:
- self.le2.setDisabled(True)
- if self.check2.isChecked():
- self.le3.setDisabled(False)
- else:
- self.le3.setDisabled(True)
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict = []
- #print("param.input_dict ", self.input_dict)
- self.dict = [self.input_dict[0].currentText(),self.input_dict[1].isChecked(), float(self.input_dict[2].text()), self.input_dict[3].isChecked(), float(self.input_dict[4].text())]
- #print("param ", self.dict)
- self.obj.param_setter(self.dict)
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
-
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetMaterialStream.py b/src/main/python/DockWidgets/DockWidgetMaterialStream.py
deleted file mode 100644
index d2aefb6..0000000
--- a/src/main/python/DockWidgets/DockWidgetMaterialStream.py
+++ /dev/null
@@ -1,368 +0,0 @@
-import os, sys
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetMaterialStream.ui')
-
-class DockWidgetMaterialStream(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = {}
- self.x_pclist = []
-
- self.comboBox.currentIndexChanged.connect(self.mode_selection)
-
- self.pushButton_2.clicked.connect(self.param)
- self.dict = {} # a dictionary
-
- self.name_type = None
- self.container = container
-
- header = QTreeWidgetItem(['Compound','Value','Unit'])
- self.mTreeWidget.setHeaderItem(header)
- self.lTreeWidget.setHeaderItem(header)
- self.vTreeWidget.setHeaderItem(header)
- lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')]
- for j in lines:
- self.cbTP.addItem(str(j))
- self.modes()
-
- # input data tab
- def modes(self):
- modes_list = self.obj.modes_list
- if(modes_list):
- for j in modes_list:
- self.comboBox.addItem(str(j))
- self.comboBox.setCurrentText(self.obj.mode)
- self.mode_selection()
- else:
- self.input_dict= {}
- self.input_dict = self.obj.param_getter()
- self.input_params_list()
-
- def mode_selection(self):
- self.input_dict= {}
- try: # removing existing rows while changing modes
- for i in reversed(range(self.formLayout.count())):
- self.formLayout.removeRow(i)
- except Exception as e:
- print(e)
- self.input_dict = self.obj.param_getter(self.comboBox.currentText())
- self.obj.mode = self.comboBox.currentText()
- self.input_params_list()
-
- def input_params_list(self):
- try:
- for c,i in enumerate(self.input_dict):
- if(i=="x_pc"):
- noc = len(compound_selected)
- #print(noc)
- self.x_pclist.clear()
-
- self.comp_gb = QGroupBox("Mole Fractions")
- lay = QGridLayout()
- for j in range(noc):
- try:
- l = QLineEdit(str(self.obj.variables['x_pc']['value'][j]))
- except:
- l = QLineEdit()
- l.setFixedWidth(100)
- self.input_dict[i] = "x_pc"
- lay.addWidget(QLabel(str(compound_selected[j])+":"),j,0, alignment= Qt.AlignLeft)
- lay.addWidget(l,j,1, alignment=Qt.AlignCenter)
- self.x_pclist.append(l)
- lay.setSizeConstraint(QLayout.SetFixedSize)
- self.comp_gb.setLayout(lay)
- self.formLayout.addRow(self.comp_gb)
- elif i == "Thermo Package":
- self.cbTP.setCurrentText(self.input_dict[i])
- else:
- #print("elseloop")
- l = QLineEdit()
- if self.input_dict[i] != None:
- l.setText(str(self.input_dict[i]))
- l.setFixedWidth(80)
- lay = QGridLayout()
- if i !='MolFlow':
- lay.addWidget(QLabel(self.obj.variables[i]['name']+":"),0,0, alignment=Qt.AlignLeft)
- else:
- lay.addWidget(QLabel(i+":"),0,0, alignment=Qt.AlignLeft)
- lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
- if(i != 'MolFlow'):
- lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignLeft)
- else:
- lay.addWidget(QLabel("mol/s"),0,2, alignment=Qt.AlignLeft)
- self.formLayout.addRow(lay)
- self.input_dict[i] = l
-
-
- except Exception as e:
- print(e)
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def update_compounds(self):
- try:
- noc = len(compound_selected)
- #print(noc)
- self.x_pclist.clear()
-
- lay = QGridLayout()
- for j in range(noc):
- l = QLineEdit()
- lay.addWidget(QLabel(str(compound_selected[j]) + ":"), j, 0, alignment=Qt.AlignLeft)
- lay.addWidget(l, j, 1, alignment=Qt.AlignCenter)
- self.x_pclist.append(l)
- lay.setSizeConstraint(QLayout.SetFixedSize)
- self.comp_gb.setLayout(lay)
- indexx = self.comboBox.currentIndex()
- self.comboBox.setCurrentIndex(1)
- self.comboBox.setCurrentIndex(indexx)
- self.obj.init_variables()
- except Exception as e:
- print(e)
-
- def param(self):
- try:
- self.dict={}
- #print("param.input_dict ", self.input_dict)
- for i in self.input_dict:
- #print(i)
- if(i =="x_pc"):
- l=[]
- mf = []
- total_moles = 0
- for mol_frac in self.x_pclist:
- if (mol_frac.text()):
- l.append(mol_frac.text())
- total_moles += float(l[-1])
- else:
- self.show_error()
- break
- for c in range(len(compound_selected)):
- mf.append(str(float(l[c])/total_moles))
- self.obj.variables[compound_selected[c]]['value'] = str(float(l[c])/total_moles)
- self.x_pclist[c].setText(mf[-1])
- self.dict[i] = ",".join(mf)
- elif (i == "Thermo Package"):
- self.dict[i] = self.cbTP.currentText()
- else:
- if (self.input_dict[i].text()):
- self.dict[i] = self.input_dict[i].text()
- else:
- #print(self.input_dict[i])
- self.show_error()
- break
-
- #print("param ", self.dict)
-
- self.obj.param_setter(self.dict)
-
- for i in self.container.graphics.graphicsView.items():
- try:
- if(i.name == self.name):
- i.update_tooltip()
- except:
- pass
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
-
- def update_input_values(self):
- self.init()
-
- @staticmethod
- def show_result(ms_lst):
- for i in ms_lst:
- i.results_category(i.name)
-
- def clear_results(self):
- self.mTreeWidget.clear()
- self.mTableWidget.setRowCount(0)
- self.lTreeWidget.clear()
- self.lTableWidget.setRowCount(0)
- self.vTreeWidget.clear()
- self.vTableWidget.setRowCount(0)
-
- # result data tab
- def results_category(self,name):
- try:
- #print("Under result category name ", name)
- result=self.container.result
- obj = self.container.fetch_object(name)
-
-
- d = {"Mole Fraction":"x_pc", "Mass Fraction":"xm_pc", "Mole Flow":"F_pc", "Mass Flow":"Fm_pc"}
- ms_lst = list(d.keys())
- klst = list(d.values())
-
- p = {"Pressure":"P", "Temperature":"T","Vapour Phase Mole Fraction":"xvap", "Phase Molar Enthalpy":"H_p",
- "Phase Molar Entropy":"S_p", "Molar Flow Rate":"F_p","Mass Flow Rate":"Fm_p"}
-
- # Amounts Tab
- if obj.type == 'MaterialStream':
- ll = [] # list for basis names
- for basis in d:
- propertyname = name + '.' + d[basis]
- #print("basis ", basis, propertyname)
- for i in result[0]:
- if (propertyname in i):
- ll.append(i)
- #print(ll)
-
- j = 0
- namee = 'none'
- #print("namee ", namee)
- #initialization for treewidgets
- lroot = 1
- mroot = 1
- vroot = 1
-
-
- for i,k in enumerate(ll):
- ind = result[0].index(k)
- #print("index ", ind)
- #print("str ", k)
- resultval = str(result[-1][ind])
- #print("######Resultsfetch####",resultval)
- #print(k[k.find(".")+1:k.find("[")])
- obj.variables[k.split('.')[1]]['value'] = resultval
-
- if namee not in k:
- mroot = QTreeWidgetItem(self.mTreeWidget, [ms_lst[j]])
- lroot = QTreeWidgetItem(self.lTreeWidget, [ms_lst[j]])
- vroot = QTreeWidgetItem(self.vTreeWidget, [ms_lst[j]])
- namee = klst[j]
-
- phase_no = int(k[k.index(',') - 1]) # phase no is from modelica list
- compound_no = int(k[k.index(',') + 1]) - 1 # compound is from python list
-
- if phase_no == 1:
- child = QTreeWidgetItem(mroot, [compound_selected[compound_no], str(round(float(resultval),4)),
- obj.variables[k.split('.')[1]]['unit']])
- elif phase_no == 2:
- child = QTreeWidgetItem(lroot, [compound_selected[compound_no], str(round(float(resultval),4)),
- obj.variables[k.split('.')[1]]['unit']])
- elif phase_no == 3:
- child = QTreeWidgetItem(vroot, [compound_selected[compound_no], str(round(float(resultval),4)),
- obj.variables[k.split('.')[1]]['unit']])
- if (compound_no + 1) == len(compound_selected):
- j += 1
-
-
-
- # Phase Properties Tab
- phaseResLst = []
- for phase in p:
- propertyname = name + '.' + p[phase]
- #print("phase ", phase, propertyname)
- for i in result[0]:
- if i.find('['):
- if (propertyname == i[0:i.find('[')]):
- phaseResLst.append(i)
- if propertyname == i:
- phaseResLst.append(i)
- #print(phaseResLst)
-
- self.mTableWidget.setRowCount(0)
- self.lTableWidget.setRowCount(0)
- self.vTableWidget.setRowCount(0)
-
- for i,val in enumerate(phaseResLst):
- ind = result[0].index(val)
- resultval = str(result[-1][ind])
- #print(resultval, i, val)
- obj.variables[val.split('.')[1]]['value'] = resultval
- if '[' in val:
- #print(val)
- temp = val[val.find('.')+1:val.find('[')]
- #print(temp)
- if '1' in val.split('.')[1]:
- #print(obj.variables[val.split('.')[1]]['name'])
- mrowPosition = self.mTableWidget.rowCount()
- self.mTableWidget.insertRow(mrowPosition)
- self.mTableWidget.setItem(mrowPosition , 0, QTableWidgetItem(obj.variables[val.split('.')[1]]['name']))
- self.mTableWidget.setItem(mrowPosition , 1, QTableWidgetItem(str(round(float(resultval),4))))
- self.mTableWidget.setItem(mrowPosition , 2, QTableWidgetItem(obj.variables[val.split('.')[1]]['unit']))
- self.mTableWidget.resizeColumnsToContents()
-
- if '2' in val.split('.')[1]:
- lrowPosition = self.lTableWidget.rowCount()
- self.lTableWidget.insertRow(lrowPosition)
- self.lTableWidget.setItem(lrowPosition , 0, QTableWidgetItem(obj.variables[val.split('.')[1]]['name']))
- self.lTableWidget.setItem(lrowPosition , 1, QTableWidgetItem(str(round(float(resultval),4))))
- self.lTableWidget.setItem(lrowPosition , 2, QTableWidgetItem(obj.variables[val.split('.')[1]]['unit']))
- self.lTableWidget.resizeColumnsToContents()
- if '3' in val.split('.')[1]:
- vrowPosition = self.vTableWidget.rowCount()
- self.vTableWidget.insertRow(vrowPosition)
- self.vTableWidget.setItem(vrowPosition , 0, QTableWidgetItem(obj.variables[val.split('.')[1]]['name']))
- self.vTableWidget.setItem(vrowPosition , 1, QTableWidgetItem(str(round(float(resultval),4))))
- self.vTableWidget.setItem(vrowPosition , 2, QTableWidgetItem(obj.variables[val.split('.')[1]]['unit']))
- self.vTableWidget.resizeColumnsToContents()
- if not '[' in val:
- #print(obj.variables[val.split('.')[1]]['name'])
- mrowPosition = self.mTableWidget.rowCount()
- self.mTableWidget.insertRow(mrowPosition)
- self.mTableWidget.setItem(mrowPosition , 0, QTableWidgetItem(obj.variables[val.split('.')[1]]['name']))
- self.mTableWidget.setItem(mrowPosition , 1, QTableWidgetItem(str(round(float(resultval),4))))
- self.mTableWidget.setItem(mrowPosition , 2, QTableWidgetItem(obj.variables[val.split('.')[1]]['unit']))
- self.mTableWidget.resizeColumnsToContents()
-
-
- # updating the input data from fetched results from simulation
- #print(self.comboBox.currentText())
-
- self.input_dict = {}
- self.input_dict = self.obj.param_getter(self.comboBox.currentText())
- # print("before", self.input_dict)
- for i in range(len(compound_selected)):
- #print(i)
- self.input_dict['x_pc[1,' + str(i+1) + ']'] = self.obj.variables['x_pc[1,' + str(i+1) +']']['value']
- # self.input_dict['thermo_package'] = temp
- # print("after", self.input_dict)
-
- # changing index for updating the input data
- indexx = self.comboBox.currentIndex()
- self.comboBox.setCurrentIndex(1)
- self.comboBox.setCurrentIndex(indexx)
-
- try:
-
- for i in self.parent().container.graphics.graphicsView.items():
- try:
- if i.obj == self.obj:
- i.update_tooltip()
- except Exception as e:
- pass
- except Exception as e:
- print(e)
-
-
- except Exception as e:
- print(e)
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
-
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetMixer.py b/src/main/python/DockWidgets/DockWidgetMixer.py
deleted file mode 100644
index 5d89589..0000000
--- a/src/main/python/DockWidgets/DockWidgetMixer.py
+++ /dev/null
@@ -1,66 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetMixer.ui')
-
-class DockWidgetMixer(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = []
- self.x_pclist = []
- self.input_params_list()
- self.btn.clicked.connect(self.param)
- self.dict = {}
-
- # input data tab
- def input_params_list(self):
- try:
- self.l1.setText(self.obj.variables['NI']['name']+":")
- self.le1.setText(str(self.obj.variables['NI']['value']))
- self.u1.setText(self.obj.variables['NI']['unit'])
- for i in self.obj.Pout_modes:
- self.cb2.addItem(str(i))
- self.cb2.setCurrentText(self.obj.variables['outPress']['value'])
-
- self.l2.setText(self.obj.variables['outPress']['name']+":")
- self.input_dict = [self.le1, self.cb2]
-
- except Exception as e:
- print(e)
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict={}
- self.dict = [int(self.input_dict[0].text()), self.input_dict[1].currentText()]
- self.obj.param_setter(self.dict)
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetShortcutColumn.py b/src/main/python/DockWidgets/DockWidgetShortcutColumn.py
deleted file mode 100644
index b627e9d..0000000
--- a/src/main/python/DockWidgets/DockWidgetShortcutColumn.py
+++ /dev/null
@@ -1,148 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetShortcutColumn.ui')
-
-class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = []
- self.input_params_list()
- self.btn.clicked.connect(self.param)
- self.dict = []
-
- self.name_type = None
- self.container = container
-
- # input data tab
- def input_params_list(self):
- try:
- self.l1.setText(self.obj.variables['HKey']['name']+":")
- self.l2.setText(self.obj.variables['LKey']['name']+":")
-
- print(self.obj.compounds)
- for i in self.obj.compounds:
- self.cb1.addItem(str(i))
- self.cb2.addItem(str(i))
- self.cb1.setCurrentText(self.obj.compounds[int(self.obj.variables['HKey']['value'])-1])
- self.cb2.setCurrentText(self.obj.compounds[int(self.obj.variables['LKey']['value'])-1])
-
- self.l3.setText(self.obj.variables['HKey_x_pc']['name']+":")
- self.le3.setText(str(self.obj.variables['HKey_x_pc']['value']))
- self.u3.setText(self.obj.variables['HKey_x_pc']['unit'])
- self.l4.setText(self.obj.variables['LKey_x_pc']['name']+":")
- self.u4.setText(self.obj.variables['LKey_x_pc']['unit'])
- self.le4.setText(str(self.obj.variables['LKey_x_pc']['value']))
-
- self.l5.setText(self.obj.variables['Ctype']['name']+":")
- self.cb5.addItem('Total')
- self.cb5.addItem('Partial')
- self.cb5.setCurrentText(self.obj.variables['Ctype']['value'])
-
- self.l6.setText(self.obj.variables['Pcond']['name']+":")
- self.le6.setText(str(self.obj.variables['Pcond']['value']))
- self.u6.setText(self.obj.variables['Pcond']['unit'])
- self.l7.setText(self.obj.variables['Preb']['name']+":")
- self.u7.setText(self.obj.variables['Preb']['unit'])
- self.le7.setText(str(self.obj.variables['Preb']['value']))
-
- self.l8.setText(self.obj.variables['RR']['name']+":")
- self.le8.setText(str(self.obj.variables['RR']['value']))
-
- self.l9.setText("Thermo Package :")
-
- self.lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')]
- for j in self.lines:
- self.cb6.addItem(str(j))
- self.cb6.setCurrentText(self.obj.variables['thermo_package']['value'])
-
- self.input_dict = [self.cb1, self.cb2, self.le3, self.le4, self.cb5, self.le6, self.le7, self.le8, self.cb6]
-
- except Exception as e:
- print(e)
-
- def update_compounds(self):
- self.cb1.clear()
- self.cb2.clear()
- for i in self.obj.compounds:
- self.cb1.addItem(str(i))
- self.cb2.addItem(str(i))
- self.cb1.setCurrentText(self.obj.compounds[int(self.obj.variables['HKey']['value']) - 1])
- self.cb2.setCurrentText(self.obj.compounds[int(self.obj.variables['LKey']['value']) - 1])
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict=[]
- self.dict = [self.input_dict[0].currentText(),self.input_dict[1].currentText(),float(self.input_dict[2].text()), float(self.input_dict[3].text()),
- self.input_dict[4].currentText(), float(self.input_dict[5].text()), float(self.input_dict[6].text()), float(self.input_dict[7].text()),
- self.input_dict[8].currentText()]
- self.obj.param_setter(self.dict)
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
-
- except Exception as e:
- print(e)
-
- @staticmethod
- def show_result(lst):
- for i in lst:
- try:
- i.results_category(i.name)
- except AttributeError:
- pass
-
- def clear_results(self):
- self.tableWidget.setRowCount(0)
-
- # result data tab
- def results_category(self,name):
- flag = True
- try:
- #print("Under result category name ", name)
- result=self.container.result
- obj = self.container.fetch_object(name)
- self.tableWidget.setRowCount(0)
- variKeys = obj.result_parameters
- #print(variKeys)
- for i, val in enumerate(variKeys):
- propertyname = name + '.' + val
- #print(i,val, propertyname)
- if propertyname in result[0]:
- ind = result[0].index(propertyname)
- resultval = str(result[-1][ind])
- obj.variables[val]['value']= result[-1][ind]
- #print("######Resultsfetch####",val,resultval)
- rowPosition = self.tableWidget.rowCount()
- self.tableWidget.insertRow(rowPosition)
- self.tableWidget.setItem(rowPosition , 0, QTableWidgetItem(obj.variables[val]['name']))
- self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
- self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
- self.tableWidget.resizeColumnsToContents()
- except Exception as e:
- print(e)
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/DockWidgetSplitter.py b/src/main/python/DockWidgets/DockWidgetSplitter.py
deleted file mode 100644
index 296e111..0000000
--- a/src/main/python/DockWidgets/DockWidgetSplitter.py
+++ /dev/null
@@ -1,85 +0,0 @@
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import *
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/DockWidgets/DockWidgetSplitter.ui')
-
-class DockWidgetSplitter(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,container,parent=None):
- QDockWidget.__init__(self,parent)
- self.setupUi(self)
- self.setWindowTitle(obj.name)
- self.name=name
- self.obj=obj
- self.type = comptype
- self.input_dict = []
- self.input_params_list()
- self.btn.clicked.connect(self.param)
- self.dict = {}
-
- # input data tab
- def input_params_list(self):
- try:
- self.l1.setText(self.obj.variables['No']['name']+":")
- self.le1.setText(str(self.obj.variables['No']['value']))
- self.u1.setText(self.obj.variables['No']['unit'])
-
- self.l2.setText(self.obj.variables['CalcType']['name'] + ":")
- for i in self.obj.CalcType_modes:
- self.cb2.addItem(str(i))
- self.cb2.setCurrentText(self.obj.variables['CalcType']['value'])
-
- self.l3.setText("Stream 1 :")
- self.le3.setText(str(self.obj.variables['SpecVal_s']['value'][0]))
- self.u3.setText(self.obj.variables['SpecVal_s']['unit'])
- self.l4.setText("Stream 2 :")
- self.le4.setText(str(self.obj.variables['SpecVal_s']['value'][1]))
- self.u4.setText(str(self.obj.variables['SpecVal_s']['unit']))
- self.cb2.currentIndexChanged.connect(self.fun)
-
- self.input_dict = [self.le1, self.cb2, self.le3, self.le4]
-
- except Exception as e:
- print(e)
-
- def fun(self):
- if self.cb2.currentText() == 'Molar_Flow':
- self.u3.setText('mol/s')
- self.u4.setText('mol/s')
- elif self.cb2.currentText() == 'Mass_Flow':
- self.u3.setText('g/s')
- self.u4.setText('g/s')
- else:
- self.u3.setText('')
- self.u4.setText('')
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Please fill all fields with data")
-
- def param(self):
- try:
- self.dict={}
- self.dict = [int(self.input_dict[0].text()),self.input_dict[1].currentText(), float(self.input_dict[2].text()), float(self.input_dict[3].text())]
- self.obj.param_setter(self.dict)
- if(self.isVisible()):
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
- self.hide()
- except Exception as e:
- print(e)
-
- def closeEvent(self,event):
- scrollHVal = self.parent().container.graphics.graphicsView.horizontalScrollBarVal
- currentVal = self.parent().container.graphics.graphicsView.horizontalScrollBar().value()
- self.parent().container.graphics.graphicsView.horizontalScrollBar().setValue(currentVal-189)
\ No newline at end of file
diff --git a/src/main/python/DockWidgets/__init__.py b/src/main/python/DockWidgets/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-36.pyc
deleted file mode 100644
index b740ae4..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-37.pyc
deleted file mode 100644
index d8c43f1..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DistillationColumnStagewiseResults.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidget.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidget.cpython-36.pyc
deleted file mode 100644
index 0910bb4..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidget.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
deleted file mode 100644
index 90c3ef9..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-36.pyc
deleted file mode 100644
index 0bb8ec2..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
deleted file mode 100644
index eed70e1..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-36.pyc
deleted file mode 100644
index 75c33c9..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-37.pyc
deleted file mode 100644
index 05d0157..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetCompressorExpander.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-36.pyc
deleted file mode 100644
index 18ebc2a..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
deleted file mode 100644
index a3cba32..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-36.pyc
deleted file mode 100644
index 665e2e1..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
deleted file mode 100644
index 08f6dae..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-36.pyc
deleted file mode 100644
index 7be87c9..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
deleted file mode 100644
index abc5f50..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-36.pyc
deleted file mode 100644
index 5f13a9d..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
deleted file mode 100644
index 2974d48..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-36.pyc
deleted file mode 100644
index 34ef4fe..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
deleted file mode 100644
index 46cd536..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-36.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-36.pyc
deleted file mode 100644
index eaac842..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
deleted file mode 100644
index d23e668..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/DockWidgets/__pycache__/__init__.cpython-37.pyc b/src/main/python/DockWidgets/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 9a9342e..0000000
Binary files a/src/main/python/DockWidgets/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/OMChem/CompSep.py b/src/main/python/OMChem/CompSep.py
deleted file mode 100644
index d538acb..0000000
--- a/src/main/python/OMChem/CompSep.py
+++ /dev/null
@@ -1,71 +0,0 @@
-from OMChem.EngStm import EngStm
-import json
-class CompSep():
- counter = 1
- def __init__(self,CompNames = [],name='CompSep',SepFact=['Molar_Flow','Mass_Flow'],SepStrm=1,SepFactValue=[]):
- self.SepFact = json.dumps(SepFact).replace('[','{').replace(']','}')
- self.SepStrm = str(SepStrm)
- self.SepFactValue = json.dumps(SepFactValue).replace('[','{').replace(']','}')
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = []
- self.OutputStms = []
- self.type = 'CompSep'
- self.EngStms = EngStm(name='EngStm')
-
- # new
- self.name = name + str(CompSep.counter)
- self.no_of_input = 1
- self.no_of_output = 2
- CompSep.counter += 1
-
- def getname(self):
- return self.name
-
- def modesList(self):
- return []
-
- def paramgetter(self,mode=None):
- dict = {"SepStrm":None,"SepFactValue":None,"SepFact":None}
- return dict
-
- def paramsetter(self,dict):
- self.SepStrm = dict['SepStrm']
- self.SepFactValue = dict['SepFactValue']
- self.SepFact = dict['SepFact']
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Compound_Separator " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + ("sepFact = "+self.SepFact+",sepStrm = " + self.SepStrm + ", sepFactVal = " + self.SepFactValue + ");\n")
-
- return self.OM_data_init
-
- def connect(self,InputStms = None,OutputStms = []):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- comp_count = len(addedcomp)
- strcount = 1
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
-
- for strm in self.OutputStms:
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + strm.name + '.inlet,' + self.name + '.outlet'+str(strcount)+');\n')
- strcount += 1
-
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.outlet,' + self.name + '.energy);\n')
- sepFac = str(self.SepFactValue).strip('[').strip(']')
-
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.sepFactVal= {'+ sepFac + '};\n')
-
- return self.OM_data_eqn
-
diff --git a/src/main/python/OMChem/ConvReactor.py b/src/main/python/OMChem/ConvReactor.py
deleted file mode 100644
index 5c83106..0000000
--- a/src/main/python/OMChem/ConvReactor.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import json
-from OMChem.EngStm import EngStm
-class ConvReactor():
- def __init__(self,name='',Nr=None,b=None,X=None,Z=None,a=[],operation=None,Tdef=None):
- self.Nr = str(Nr)
- self.b = str(b)
- self.X = str(X)
- self.Z = str(Z)
- self.a = json.dumps(a).replace('[','{').replace(']','}')
- self.operation = str(operation)
- self.name = name
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = []
- self.OutputStms = []
- self.Tdef = str(Tdef)
-
- self.type = 'ConvReactor'
- self.EngStms = EngStm(name="EngStm")
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + ( "Simulator.Unit_Operations.ConversionReactor " + self.name + "(Nr = " + self.Nr + ',b = ' + self.b + ',X = ' + self.X + ',Z = ' + self.Z + ',a = ' + self.a + ',operation = ' + self.operation + ',Tdef = ' + self.Tdef + ');\n')
- return self.OM_data_init
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- comp_count = len(addedcomp)
- strcount = 1
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
-
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.OutputStms[0].name + '.inlet,' + self.name + '.outlet);\n')
-
-
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.inlet,' + self.name + '.EnergyStream);\n')
-
- return self.OM_data_eqn
diff --git a/src/main/python/OMChem/Cooler.py b/src/main/python/OMChem/Cooler.py
deleted file mode 100644
index 9a44033..0000000
--- a/src/main/python/OMChem/Cooler.py
+++ /dev/null
@@ -1,76 +0,0 @@
-from OMChem.EngStm import EngStm
-class Cooler():
- counter = 1
- def __init__(self,name='Cooler',PressureDrop = None, eff = None):
- self.PressureDrop = PressureDrop
- self.eff = eff
- # self.name = name
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- #self.heatRem = heatRem
- self.EngStms = EngStm(name='EngStm')
- self.type = 'Cooler'
- self.mode = None
- self.modeVal = None
-
- self.Prop = {
- 'pressDrop':None,
- 'eff':None,
- 'outT':None,
- 'tempDrop':None,
- 'heatRem':None,
- }
- # new
- self.name = name + str(Cooler.counter)
- self.no_of_input = 1
- self.no_of_output = 1
- Cooler.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return ["heatRem","outT","outVapPhasMolFrac","tempDrop","enFlo"]
-
- def paramgetter(self,mode="heatRem"):
- self.mode = mode
- dict = {"PressureDrop":None,"eff":None,self.mode:None}
- return dict
-
- def paramsetter(self,dict):
-
- self.PressureDrop = dict['PressureDrop']
- self.eff = dict['eff']
- self.modeVal = dict[self.mode]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Cooler " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + 'pressDrop = ' + str(self.PressureDrop) + ','
- self.OM_data_init = self.OM_data_init + 'eff = ' + str(self.eff) + ');\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- # self.OM_data_eqn = self.name + '.pressDrop = ' + str(self.PressDrop) + ';\n'
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.outlet,'+ self.name + '.energy);\n')
- if(self.mode =="enFlo"):
- self.OM_data_eqn = self.OM_data_eqn + (self.EngStms.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- else:
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- return self.OM_data_eqn
\ No newline at end of file
diff --git a/src/main/python/OMChem/DistCol.py b/src/main/python/OMChem/DistCol.py
deleted file mode 100644
index c4a88c3..0000000
--- a/src/main/python/OMChem/DistCol.py
+++ /dev/null
@@ -1,103 +0,0 @@
-from OMChem.EngStm import EngStm
-class DistCol():
- counter = 1
- def __init__(self,name='DistCol', numStage = None,numFeeds = None,feedStages = None):
- self.numStage = numStage
- self.numFeeds=numFeeds
- self.feedStages=feedStages
- self.name = name + str(DistCol.counter)
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.EngStm1 = EngStm(name='EngStm1'+self.name)
- self.EngStm2 = EngStm(name='EngStm2'+self.name)
- self.count = DistCol.counter
- self.thermoPackage='Raoults_Law'
- self.type = 'DistCol'
- self.mode = None
- self.condType=''
- self.modeVal = None
- self.condP=None
- self.rebP=None
-
- # new
- self.no_of_input = 2
- self.no_of_output = 2
- DistCol.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return ["refluxRatio","sideDrawMolFlo","T"]
-
- def paramgetter(self,mode="refluxRatio"):
- self.mode=mode
- dict = { "numStage" : None,"numFeeds" :None,"feedStages" :None,"thermoPackage":None,"condType":None,self.mode:None,"condensor.P":None,"reboiler.P":None}
- return dict
-
- def paramsetter(self,dict):
- self.numStage = dict["numStage"]
- self.numFeeds = dict["numFeeds"]
- self.feedStages = dict["feedStages"].split(",")
- self.modeVal=dict[self.mode]
- self.condP=dict["condensor.P"]
- self.rebP=dict["reboiler.P"]
- self.condType=dict["condType"]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + 'model Condensor\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Unit_Operations.Distillation_Column.Cond;\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Files.Thermodynamic_Packages.'+self.thermoPackage+';\n'
- self.OM_data_init = self.OM_data_init + 'end Condensor;\n'
- self.OM_data_init = self.OM_data_init + 'model Tray\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Unit_Operations.Distillation_Column.DistTray;\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Files.Thermodynamic_Packages.'+self.thermoPackage+';\n'
- self.OM_data_init = self.OM_data_init + 'end Tray;\n'
- self.OM_data_init = self.OM_data_init + 'model Reboiler\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Unit_Operations.Distillation_Column.Reb;\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Files.Thermodynamic_Packages.'+self.thermoPackage+';\n'
- self.OM_data_init = self.OM_data_init + 'end Reboiler;\n'
- self.OM_data_init = self.OM_data_init + ("model distCol"+str(self.count)+"\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Unit_Operations.Distillation_Column.DistCol;\n" )
- self.OM_data_init = self.OM_data_init + ("Condensor condensor(Nc = Nc, comp = comp, condType =condType, boolFeed = boolFeed[1], T(start = 300));\n" )
- self.OM_data_init = self.OM_data_init + ("Reboiler reboiler(Nc = Nc, comp = comp, boolFeed = boolFeed[noOfStages]);\n" )
- self.OM_data_init = self.OM_data_init + ("Tray tray[noOfStages - 2](each Nc = Nc, each comp = comp, boolFeed = boolFeed[2:noOfStages -1]);\n" )
- self.OM_data_init = self.OM_data_init + ("end distCol"+str(self.count)+";\n")
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + (
- "distCol"+str(self.count)+" "+ self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.feedStages=str(self.feedStages).strip('[').strip(']')
- self.feedStages = self.feedStages.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")+("noOfStages="+self.numStage+","+"noOfFeeds="+self.numFeeds+",feedStages="+"{"+self.feedStages+"}"+",condensor.condType="+"\""+self.condType+"\""+");\n")
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStm1.name+';\n'
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStm2.name+';\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- self.OM_data_eqn = self.OM_data_eqn + ('connect('+self.name+'.'+'condensor_duty'+','+ self.EngStm1.name+'.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect('+self.name+'.reboiler_duty'+', '+self.EngStm2.name+'.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect('+self.name+'.distillate'+", "+self.OutputStms[0].name+'.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect('+self.name+'.bottoms'+", "+self.OutputStms[1].name+'.inlet);\n')
- for i in range(len(self.InputStms)):
- self.OM_data_eqn = self.OM_data_eqn + ('connect('+self.InputStms[i].name+'.outlet'+", "+self.name+'.feed['+str(i+1)+']);\n')
- self.OM_data_eqn = self.OM_data_eqn + (self.OutputStms[1].name+'.'+'totMolFlow[1] = '+str(self.OutputStms[1].Prop['totMolFlo[1]'])+';\n')
- if self.mode=="refluxRatio":
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+str(self.mode)+'='+ str(self.modeVal) + ';\n')
- else:
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.condensor.'+self.mode+'='+ str(self.modeVal) + ';\n')
-
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.reboiler.P='+self.rebP+';\n'
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.condensor.P='+self.condP+';\n'
- return self.OM_data_eqn
-
diff --git a/src/main/python/OMChem/EngStm.py b/src/main/python/OMChem/EngStm.py
deleted file mode 100644
index c02a5d5..0000000
--- a/src/main/python/OMChem/EngStm.py
+++ /dev/null
@@ -1,18 +0,0 @@
-
-class EngStm():
-
- def __init__(self,name = 'Engstm'):
- self.name = name
- self.type = 'EngStm'
- self.OM_data_init = ''
- self.OM_data_eqn = ''
-
-
- def OM_Flowsheet_Init(self,addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.name+';\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self,addedcomp):
- self.OM_data_eqn=''
- return self.OM_data_eqn
diff --git a/src/main/python/OMChem/Flash.py b/src/main/python/OMChem/Flash.py
deleted file mode 100644
index 165849a..0000000
--- a/src/main/python/OMChem/Flash.py
+++ /dev/null
@@ -1,55 +0,0 @@
-class Flash():
- counter = 1
- def __init__(self,name='Flash'):
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.type = 'flash'
- self.count = Flash.counter
- self.thermoPackage =None
-
- # new
- self.name = name + str(Flash.counter)
- self.no_of_input = 1
- self.no_of_output = 2
- Flash.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return []
-
- def paramgetter(self,mode=None):
- dict = {"thermoPackage":None}
- return dict
- def paramsetter(self,dict):
- self.thermoPackage = dict['thermoPackage']
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + ("model fls"+str(self.count)+"\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Unit_Operations.Flash;\n" )
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Files.Thermodynamic_Packages."+self.thermoPackage+";\n")
- self.OM_data_init = self.OM_data_init + ("end fls"+str(self.count)+";\n")
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + (
- "fls"+str(self.count)+" "+ self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("});\n")
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- comp_count = len(addedcomp)
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.feed' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.vapor,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.liquid,' + self.OutputStms[1].name + '.inlet);\n')
- return self.OM_data_eqn
\ No newline at end of file
diff --git a/src/main/python/OMChem/Flowsheet.py b/src/main/python/OMChem/Flowsheet.py
deleted file mode 100644
index c862299..0000000
--- a/src/main/python/OMChem/Flowsheet.py
+++ /dev/null
@@ -1,306 +0,0 @@
-import os
-import csv
-from subprocess import Popen, PIPE
-import pandas as pd
-
-class Flowsheet():
- def __init__(self):
- self.sim_name = '../Simulator'
- self.sim_method = ''
- self.unit_operations = []
- self.data = []
- self.compounds = []
- self.interface = ''
- self.omc_path = None
- self.root_dir = os.getcwd() # Chemical-Simulator-GUI
- self.sim_dir_path = os.path.join(self.root_dir, self.sim_name) # Chemical-Simulator-GUI/Simulator
- self.Flomo_path = os.path.join(self.sim_dir_path,'Flowsheet.mo')
- self.eqn_mos_path = os.path.join(self.sim_dir_path,'simulateEQN.mos')
- self.sm_mos_path = os.path.join(self.sim_dir_path,'simulateSM.mos')
- self.result_data = []
- self.stdout=None
- self.stderr=None
-
- def get_omc_path(self,msg):
- try:
- self.omhome = os.environ.get('OPENMODELICAHOME')
- if self.omhome is None:
- self.omhome = os.path.split(os.path.split(os.path.realpath(spawn.find_executable("omc")))[0])[0]
- elif os.path.exists('/opt/local/bin/omc'):
- self.omhome = '/opt/local'
- elif os.path.exists('/usr/bin/omc'):
- self.omhome = '/usr'
- return os.path.join(self.omhome, 'bin', 'omc')
- except BaseException:
- msg.parent().parent().parent().container.disableInterfaceforSimulation(False)
- msg.append("Installation Error : The OpenModelica compiler is missing in the System path please install it.")
- print("The OpenModelica compiler is missing in the System path please install it" )
- raise
-
- def add_unit_operations(self,unitop):
- self.unit_operations.append(unitop)
-
- def remove_unit_operations(self,unitop):
- self.unit_operations.remove(unitop)
-
- def add_compound_list(self,C):
- self.compounds = C
-
- def send_for_simulation_Eqn(self,msg):
- self.result_data = []
- self.omc_path = self.get_omc_path(msg)
- #print(self.omc_path)
-
- if self.sim_method == 'Eqn':
- simpath = self.eqn_mos_path
- os.chdir(self.sim_dir_path)
-
- self.process = Popen([self.omc_path, '-s',simpath], stdout=PIPE, stderr=PIPE)
- self.stdout, self.stderr = self.process.communicate()
-
- os.chdir(self.root_dir)
- if ('timeSimulation = 0.0,\n' in self.stdout.decode("utf-8")):
- self.result_data = []
- else:
- csvpath = os.path.join(self.sim_dir_path,'Flowsheet_res.csv')
- with open (csvpath,'r') as resultFile:
- self.result_data = []
- csvreader = csv.reader(resultFile,delimiter=',')
- for row in csvreader:
- self.result_data.append(row)
-
- def send_for_simulation_SM(self,unitop):
- self.result_data = []
- self.omc_path = self.get_omc_path()
- os.chdir(self.sim_dir_path)
- self.process = Popen([self.omc_path, '-s',unitop.name,'.mos'], stdout=PIPE, stderr=PIPE)
- stdout, stderr = self.process.communicate()
- # print("############### StdOut ################")
- # print(stdout)
- self.result_data = []
- #print('Simulating '+unitop.name+'...')
- csvpath = os.path.join(self.sim_dir_path,unitop.name+'_res.csv')
- with open(csvpath,'r') as resultFile:
- csvreader = csv.reader(resultFile,delimiter=',')
- for row in csvreader:
- self.result_data.append(row)
- self.ext_data()
-
- def ext_data(self):
- for unit in self.unit_operations:
- if unit[0].type == 'MaterialStream':
- for key, value in unit[0].Prop.items():
- property_name = unit[0].name + '.' + key
- if property_name in self.result_data[0]:
- ind = self.result_data[0].index(property_name)
- resultval = str(self.result_data[-1][ind])
- unit[0].Prop[key] = resultval
-
- def simulate_EQN(self,msg):
- self.data = []
- self.sim_method = 'Eqn'
- self.data.append("model Flowsheet\n")
-
- tempCompounds = self.compounds
- for c in tempCompounds:
- CompName = c
- CompName = CompName.replace(" ", "")
- CompName = CompName.replace("-", "")
- CompName = CompName.replace(",", "")
- CompName = CompName.replace("1", "One")
- CompName = CompName.replace("2", "Two")
- CompName = CompName.replace("3", "Three")
- CompName = CompName.replace("4", "Four")
- CompName = CompName.replace("5", "Five")
- self.data.append("parameter database." + CompName +' '+ CompName + "; \n")
- tempCompounds[tempCompounds.index(c)] = CompName
-
- self.data.append("parameter Integer Nc = " + str(len(tempCompounds)) + ";\n")
- self.data.append("parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc] = {" +
- str(tempCompounds).strip('[').strip(']').replace("'", "") + "};\n")
-
- for unitop in self.unit_operations:
- if unitop.type != 'MaterialStream':
- self.data.append(unitop.OM_Flowsheet_Initialize())
- else:
- self.data.append(unitop.OM_Flowsheet_Initialize(self.compounds))
-
- self.data.append("equation\n")
-
- self.outlist = []
- self.stm = ['MaterialStream','EngStm']
- for unitop in self.unit_operations:
- if unitop.type not in self.stm:
- for j in unitop.output_stms.values():
- self.outlist.append(j)
-
- for unitop in self.unit_operations:
- if unitop not in self.outlist:
- if unitop.type == 'MaterialStream':
- self.data.append(unitop.OM_Flowsheet_Equation(self.compounds,'Eqn'))
- else:
- self.data.append(unitop.OM_Flowsheet_Equation())
- else:
- pass
- with open(self.Flomo_path, 'w') as txtfile:
- for d in self.data:
- txtfile.write(str(d))
- txtfile.write('end Flowsheet;\n')
- #print(self.eqn_mos_path)
- with open(self.eqn_mos_path, 'w') as mosFile:
- mosFile.write('loadModel(Modelica);\n')
- mosFile.write('loadFile(\"Simulator/package.mo\");\n')
- mosFile.write('loadFile(\"database.mo\");\n')
- mosFile.write('loadFile(\"Flowsheet.mo\");\n')
- mosFile.write('simulate(Flowsheet, outputFormat=\"csv\", stopTime=1.0, numberOfIntervals=1);\n')
-
- #print('Initiating Simulation in Equation Oriented Mode')
-
- self.send_for_simulation_Eqn(msg)
-
- def simulate_SM(self,ip,op):
- self.sim_method = 'SM'
- self.data = []
- self.result_data = []
- self.unit = []
- self.csvlist = []
-
- for i in ip:
- common = ip[i]
-
- for k,v in op.items():
- if(set(v) & set(common)):
- if((i in self.unit) and (k in self.unit)):
- pass
- elif(i in self.unit):
- self.unit.insert(self.unit.index(i),k)
- elif(k in self.unit):
- self.unit.append(i)
- else:
- self.unit.append(k)
- self.unit.append(i)
-
- for unitop in self.unit:
- os.chdir(self.root_dir)
- self.data = []
- if unitop.type not in ['MaterialStream','EngStm']:
- inpstms = unitop.input_stms
- outstms = unitop.output_stms
-
- try:
- engstms = unitop.EngStms
- except:
- engstms = None
-
- self.data.append("model "+unitop.name.lower()+'\n')
-
- for c in self.compounds:
- c = c.title()
- lcase = c.lower()
- self.data.append("parameter Simulator.Files.Chemsep_Database." + c +' '+ c + "; \n")
-
- self.data.append(unitop.OM_Flowsheet_Initialize())
-
- if type(outstms) is list:
- for stm in outstms:
- self.data.append(stm.OM_Flowsheet_Initialize())
- else:
- self.data.append(outstms.OM_Flowsheet_Initialize())
-
- if engstms:
- self.data.append(engstms.OM_Flowsheet_Initialize())
-
- if type(inpstms) is list:
- for stm in inpstms:
- self.data.append(stm.OM_Flowsheet_Initialize())
- else:
- self.data.append(inpstms.OM_Flowsheet_Initialize())
-
- self.data.append('equation\n')
- self.data.append(unitop.OM_Flowsheet_Equation())
-
- if type(inpstms) is list:
- for stm in inpstms:
- self.data.append(stm.OM_Flowsheet_Equation())
- else:
- self.data.append(inpstms.OM_Flowsheet_Equation())
-
- unitmofile = os.path.join(self.sim_dir_path,unitop.name.lower()+'.mo')
-
- with open(unitmofile,'w') as unitFile:
- for d in self.data:
- unitFile.write(d)
- unitFile.write('end '+unitop.name.lower()+';\n')
-
- unitmosfile = os.path.join(self.sim_dir_path,unitop.name.lower()+'.mos')
- with open(unitmosfile, 'w') as mosFile:
- mosFile.write('loadModel(Modelica);\n')
- mosFile.write("loadFile(\"Simulator\package.mo\");\n")
-
- mosFile.write("loadFile(\""+unitop.name.lower()+".mo\");\n")
- mosFile.write("simulate("+unitop.name.lower()+", outputFormat=\"csv\", stopTime=1.0, numberOfIntervals=1);\n")
-
- #print("Initiating simulation in Sequential Modular Mode")
- self.omc_path = self.get_omc_path()
- os.chdir(self.sim_dir_path)
- sim = os.path.join(self.sim_dir_path,unitop.name.lower()+'.mos')
- self.process = Popen([self.omc_path, '-s',sim], stdout=PIPE, stderr=PIPE)
- self.stdout, self.stderr = self.process.communicate()
- os.chdir(self.root_dir)
-
- # print("############### StdOut ################")
- # print(self.stdout)
- # print("############### StdErr ################")
- # print(self.stderr)
- # print('Simulating '+unitop.name.lower()+'...')
- csvpath = os.path.join(self.sim_dir_path,unitop.name.lower()+'_res.csv')
-
- self.csvlist.append(csvpath)
-
- with open(csvpath,'r') as resultFile:
- csvreader = csv.reader(resultFile,delimiter=',')
- for row in csvreader:
- self.result_data.append(row)
-
- os.chdir(self.root_dir)
- if type(inpstms) is list:
- for stm in inpstms:
- for key,value in stm.Prop.items():
- property_name = stm.name + '.' + key
- if property_name in self.result_data[0]:
- ind = self.result_data[0].index(property_name)
- resultval = str(self.result_data[-1][ind])
- stm.Prop[key] = resultval
- else:
- for key, value in inpstms.Prop.items():
- property_name = inpstms.name + '.' + key
- if property_name in self.result_data[0]:
- ind = self.result_data[0].index(property_name)
- resultval = str(self.result_data[-1][ind])
- inpstms.Prop[key] = resultval
-
- if type(outstms) is list:
- for stm in outstms:
- for key, value in stm.Prop.items():
- property_name = stm.name + '.' + key
- if property_name in self.result_data[0]:
- ind = self.result_data[0].index(property_name)
- resultval = str(self.result_data[-1][ind])
- stm.Prop[key] = resultval
- else:
- for key, value in outstms.Prop.items():
- property_name = outstms.name + '.' + key
- if property_name in self.result_data[0]:
- ind = self.result_data[0].index(property_name)
- resultval = str(self.result_data[-1][ind])
- outstms.Prop[key] = resultval
-
- self.dataframes = [pd.read_csv(i) for i in self.csvlist]
- os.chdir(self.sim_dir_path)
- dffinal = pd.concat(self.dataframes,axis=1)
- dffinal.to_csv('FlowsheetSEQ.csv',index=False)
- self.result_data.clear()
- with open(os.path.join(self.sim_dir_path+'/FlowsheetSEQ.csv'),'r') as resultFile:
- csvreader = csv.reader(resultFile,delimiter=',')
- for row in csvreader:
- self.result_data.append(row)
diff --git a/src/main/python/OMChem/Heater.py b/src/main/python/OMChem/Heater.py
deleted file mode 100644
index a24253d..0000000
--- a/src/main/python/OMChem/Heater.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from OMChem.EngStm import EngStm
-class Heater():
- counter = 1
- def __init__(self,name='Heater',PressureDrop = None, eff = None):
- self.PressureDrop = PressureDrop
- self.eff = eff
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.EngStms = EngStm(name='EngStm'+name)
- self.type = 'Heater'
- self.mode = None
- self.modeVal = None
-
- self.Prop = {
- 'pressDrop':None,
- 'eff':None,
- 'outT':None,
- 'tempInc':None,
- 'heatAdd':None,
- }
-
- # new
- self.name = name + str(Heater.counter)
- self.no_of_input = 1
- self.no_of_output = 1
- Heater.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return ["heatAdd","outT","outVapPhasMolFrac","tempInc","enFlo"]
-
- def paramgetter(self,mode="heatAdd"):
- self.mode = mode
- dict = {"PressureDrop":None,"eff":None,self.mode:None}
- return dict
-
- def paramsetter(self,dict):
-
- self.PressureDrop = dict['PressureDrop']
- self.eff = dict['eff']
- self.modeVal = dict[self.mode]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Heater " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + 'pressDrop = ' + str(self.PressureDrop) +','
- self.OM_data_init = self.OM_data_init + 'eff = ' + str(self.eff) + ');\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.outlet,' + self.name + '.energy);\n')
-
- if(self.mode =="enFlo"):
- self.OM_data_eqn = self.OM_data_eqn + (self.EngStms.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- else:
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- return self.OM_data_eqn
diff --git a/src/main/python/OMChem/Mixer.py b/src/main/python/OMChem/Mixer.py
deleted file mode 100644
index c726cdc..0000000
--- a/src/main/python/OMChem/Mixer.py
+++ /dev/null
@@ -1,58 +0,0 @@
-class Mixer():
- counter = 1 #
- def __init__(self,name='Mixer',NOI=5,Pcal = 'Inlet_Average'):
- self.NOI = NOI
- self.Pcal = Pcal
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = []
- self.OutputStms = None
- self.type = 'Mixer'
-
- # new
- self.name = name + str(Mixer.counter)
- self.no_of_input = 4
- self.no_of_output = 1
- Mixer.counter += 1
-
- def getname(self):
- return self.name
-
- def modesList(self):
- return []
-
- def paramgetter(self,mode=None):
- dict = {}
- return dict
-
- def paramsetter(self,dict):
- self.NOI = dict["NOI"]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
-
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Mixer " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + ("outPress = \""+self.Pcal+"\",NI=" + str(self.NOI) + ");\n")
- return self.OM_data_init
-
- def connect(self,InputStms = [],OutputStms = None):
- self.NOI=len(InputStms)
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- comp_count = len(addedcomp)
- strcount = 1
- for strm in self.InputStms:
- self.OM_data_eqn = self.OM_data_eqn + (
- 'connect(' + strm.name + '.outlet,' + self.name + '.inlet[' + str(strcount) + ']);\n')
- strcount += 1
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- return self.OM_data_eqn
diff --git a/src/main/python/OMChem/Pump.py b/src/main/python/OMChem/Pump.py
deleted file mode 100644
index e9b9149..0000000
--- a/src/main/python/OMChem/Pump.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from OMChem.EngStm import EngStm
-class Pump():
- counter = 1
- def __init__(self,name='Pump',eff = None):
- self.eff = eff
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.EngStms = EngStm(name='EngStm'+name)
- self.type = 'Pump'
- self.mode = None
- self.modeVal = None
- # new
- self.name = name + str(Pump.counter)
- self.no_of_input = 1
- self.no_of_output = 1
- Pump.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return ["pressInc","outP","reqPow","enFlo"]
-
- def paramgetter(self,mode="pressInc"):
- self.mode = mode
- dict = {"eff":None,self.mode:None}
- return dict
-
- def paramsetter(self,dict):
- self.eff = dict['eff']
- self.modeVal = dict[self.mode]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Centrifugal_Pump " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + 'eff = ' + str(self.eff) + ');\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.outlet,' + self.name + '.energy);\n')
-
- if(self.mode =="enFlo"):
- self.OM_data_eqn = self.OM_data_eqn + (self.EngStms.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- else:
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- return self.OM_data_eqn
diff --git a/src/main/python/OMChem/ShortcutColumn.py b/src/main/python/OMChem/ShortcutColumn.py
deleted file mode 100644
index 60d9d1b..0000000
--- a/src/main/python/OMChem/ShortcutColumn.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from OMChem.EngStm import EngStm
-class ShortcutColumn():
- counter = 1
- def __init__(self,name='ShortCol',condP = None, rebP = None, LKey = None, HKey = None):
- self.condP = condP
- self.rebP = rebP
- self.LKey = LKey
- self.HKey = HKey
- self.LKeyMolFrac = None
- self.HKeyMolFrac = None
- self.name = name + str(ShortcutColumn.counter)
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
-
- self.EngStm1 = EngStm(name='EngStm1'+self.name)
- self.EngStm2 = EngStm(name='EngStm2'+self.name)
- self.count = ShortcutColumn.counter
- self.condType=''
- self.actR = None
- self.thermoPackage='Raoults_Law'
- self.type = 'ShortCol'
-
- # new
- self.no_of_input = 1
- self.no_of_output = 2
- ShortcutColumn.counter += 1
-
- def getname(self):
- return self.name
-
- def modesList(self):
- return []
-
- def paramgetter(self,mode=None):
- dict = { "HKey" : None,"LKey" :None,"HKeyMolFrac":None,"LKeyMolFrac":None,"condType":None,"thermoPackage":None,"condP":None,"rebP":None,"actR":None}
- return dict
-
- def paramsetter(self,dict):
- self.HKey = dict["HKey"]
- self.LKey = dict["LKey"]
- self.HKeyMolFrac = dict["HKeyMolFrac"]
- self.LKeyMolFrac=dict["LKeyMolFrac"]
- self.condP=dict["condP"]
- self.rebP=dict["rebP"]
- self.actR=dict["actR"]
- self.condType=dict["condType"]
- self.thermoPackage=dict["thermoPackage"]
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + ("model sc"+str(self.count)+"\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Unit_Operations.Shortcut_Column;\n" )
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Files.Thermodynamic_Packages."+self.thermoPackage+";\n")
- self.OM_data_init = self.OM_data_init + ("end sc"+str(self.count)+";\n")
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + "sc"+str(self.count)+ " " + self.name + "(Nc = " + str(comp_count)
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + 'condType = ' + "\""+self.condType+"\""+','
- self.OM_data_init = self.OM_data_init + 'HKey = ' + str(self.HKey) +','
- self.OM_data_init = self.OM_data_init + 'LKey = ' + str(self.LKey) + ');\n'
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStm1.name+';\n'
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStm2.name+';\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
-
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.reboiler_duty,' +self.EngStm1.name +'.outlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStm2.name+'.inlet,' + self.name + '.condenser_duty);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.distillate,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.bottoms,' + self.OutputStms[1].name + '.inlet);\n')
-
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.feed);\n')
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.rebP = ' + self.rebP + ';\n'
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.condP = ' + self.condP + ';\n'
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.mixMolFrac[2,'+self.name+'.LKey]='+self.LKeyMolFrac+ ';\n'
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.mixMolFrac[3,'+self.name+'.HKey]='+self.HKeyMolFrac+ ';\n'
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.actR=' + self.actR + ';\n'
- return self.OM_data_eqn
\ No newline at end of file
diff --git a/src/main/python/OMChem/Splitter.py b/src/main/python/OMChem/Splitter.py
deleted file mode 100644
index 98d41ab..0000000
--- a/src/main/python/OMChem/Splitter.py
+++ /dev/null
@@ -1,61 +0,0 @@
-
-import json
-class Splitter():
- counter = 1
- def __init__(self,name='Splitter',NOO=5,calcType = 'Molar_Flow',specval = [50,50]):
- self.NOO = NOO
- self.calcType = calcType
- self.name = name
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = []
- self.type = 'Splitter'
- self.specval = json.dumps(specval).replace('[','{').replace(']','}')
- # new
- self.name = name + str(Splitter.counter)
- self.no_of_input = 1
- self.no_of_output = 4
- Splitter.counter += 1
-
- def getname(self):
- return self.name
-
- def modesList(self):
- return []
- def paramgetter(self,mode=None):
- dict = {"NOO":None}
- return dict
- def paramsetter(self,dict):
- self.NOI = dict["NOO"]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Splitter " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + ("calcType = \""+self.calcType+"\",NO=" + str(self.NOO) + ");\n")
- return self.OM_data_init
-
- def connect(self,InputStms = None,OutputStms = []):
- self.NOO=len(OutputStms)
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- comp_count = len(addedcomp)
- strcount = 1
- #print("Output#########",self.OutputStms)
- for strm in self.OutputStms:
- self.OM_data_eqn = self.OM_data_eqn + (
- 'connect(' + strm.name + '.inlet,' + self.name + '.outlet[' + str(strcount) + ']);\n')
- strcount += 1
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.inlet,' + self.InputStms[0].name + '.outlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + self.name +'.' +'specVal =' + self.specval +';\n'
- return self.OM_data_eqn
diff --git a/src/main/python/OMChem/Valve.py b/src/main/python/OMChem/Valve.py
deleted file mode 100644
index 05fa55f..0000000
--- a/src/main/python/OMChem/Valve.py
+++ /dev/null
@@ -1,58 +0,0 @@
-class Valve():
- counter = 1
- def __init__(self,name='Valve'):
- self.mode = None
- self.modeVal = None
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.type = 'Valve'
-
- self.Prop = {
- 'pressDrop':None,
- 'outP':None
- }
- # new
- self.name = name + str(Valve.counter)
- self.no_of_input = 1
- self.no_of_output = 1
- Valve.counter += 1
-
- def getname(self):
- return self.name
-
- def modesList(self):
- return ["pressDrop","outP"]
-
- def paramgetter(self,mode="pressDrop"):
- self.mode = mode
- dict = {self.mode:None}
- return dict
-
- def paramsetter(self,dict):
-
- self.modeVal = dict[self.mode]
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + (
- "Simulator.Unit_Operations.Valve " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("});\n")
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
-
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+self.mode+'='+ self.modeVal + ';\n')
- return self.OM_data_eqn
\ No newline at end of file
diff --git a/src/main/python/OMChem/__init__.py b/src/main/python/OMChem/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/python/OMChem/__pycache__/EngStm.cpython-36.pyc b/src/main/python/OMChem/__pycache__/EngStm.cpython-36.pyc
deleted file mode 100644
index ff76fe9..0000000
Binary files a/src/main/python/OMChem/__pycache__/EngStm.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/OMChem/__pycache__/EngStm.cpython-37.pyc b/src/main/python/OMChem/__pycache__/EngStm.cpython-37.pyc
deleted file mode 100644
index d065cdb..0000000
Binary files a/src/main/python/OMChem/__pycache__/EngStm.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/OMChem/__pycache__/Flowsheet.cpython-36.pyc b/src/main/python/OMChem/__pycache__/Flowsheet.cpython-36.pyc
deleted file mode 100644
index b2b2518..0000000
Binary files a/src/main/python/OMChem/__pycache__/Flowsheet.cpython-36.pyc and /dev/null differ
diff --git a/src/main/python/OMChem/__pycache__/Flowsheet.cpython-37.pyc b/src/main/python/OMChem/__pycache__/Flowsheet.cpython-37.pyc
deleted file mode 100644
index 1a76d03..0000000
Binary files a/src/main/python/OMChem/__pycache__/Flowsheet.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/OMChem/__pycache__/__init__.cpython-37.pyc b/src/main/python/OMChem/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index ee871fe..0000000
Binary files a/src/main/python/OMChem/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/OMChem/adiabatic_comp.py b/src/main/python/OMChem/adiabatic_comp.py
deleted file mode 100644
index bda0476..0000000
--- a/src/main/python/OMChem/adiabatic_comp.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from OMChem.EngStm import EngStm
-class AdiabaticCompressor():
- counter = 1
- def __init__(self,name='AdiabaticCompressor', eff = None):
- self.eff = eff
- self.name = name + str(AdiabaticCompressor.counter)
-
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.EngStms = EngStm(name='EngStm'+self.name)
- self.count = AdiabaticCompressor.counter
- self.type = 'AdiabaticCompressor'
- self.thermoPackage ="RaoultsLaw"
- self.mode = None
- self.modeVal = None
- # new
- self.no_of_input = 1
- self.no_of_output = 1
- AdiabaticCompressor.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return ["pressInc","outP","reqPow"]
-
- def paramgetter(self,mode="pressInc"):
- self.mode = mode
- dict = {"eff":None,self.mode:None,"thermoPackage":None}
- return dict
-
- def paramsetter(self,dict):
- self.eff = dict['eff']
- self.modeVal = dict[self.mode]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + ("model adiaComp"+str(self.count)+"\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Unit_Operations.Adiabatic_Compressor;\n" )
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Files.Thermodynamic_Packages."+self.thermoPackage+";\n")
- self.OM_data_init = self.OM_data_init + ("end adiaComp"+str(self.count)+";\n")
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + (
- "adiaComp"+str(self.count)+" "+ self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")+("eff="+self.eff+");\n")
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.outlet,' + self.name + '.energy);\n')
-
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+self.mode+'='+ self.modeVal + ';\n')
-
- return self.OM_data_eqn
-
diff --git a/src/main/python/OMChem/adiabatic_exp.py b/src/main/python/OMChem/adiabatic_exp.py
deleted file mode 100644
index 48381fa..0000000
--- a/src/main/python/OMChem/adiabatic_exp.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from OMChem.EngStm import EngStm
-class AdiabaticExpander():
- counter = 1
- def __init__(self,name='AdiabaticExpander', eff = None):
- self.eff = eff
- self.name = name + str(AdiabaticExpander.counter)
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.InputStms = None
- self.OutputStms = None
- self.EngStms = EngStm(name='EngStm'+self.name)
- self.count = AdiabaticExpander.counter
- self.type = 'AdiabaticExpander'
- self.thermoPackage ="RaoultsLaw"
- self.mode = None
- self.modeVal = None
-
- # new
- self.no_of_input = 1
- self.no_of_output = 1
- AdiabaticExpander.counter += 1
-
- def getname(self):
- return self.name
-
- def connect(self,InputStms = None,OutputStms = None):
- self.InputStms = InputStms
- self.OutputStms = OutputStms
-
- def modesList(self):
- return ["pressDrop","outP","genPow"]
-
- def paramgetter(self,mode="pressDrop"):
- self.mode = mode
- dict = {"eff":None,self.mode:None,"thermoPackage":None}
- return dict
-
- def paramsetter(self,dict):
- self.eff = dict['eff']
- self.modeVal = dict[self.mode]
-
- def OM_Flowsheet_Init(self, addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + 'Simulator.Streams.Energy_Stream '+self.EngStms.name+';\n'
- self.OM_data_init = self.OM_data_init + ("model adiaComp"+str(self.count)+"\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Unit_Operations.Adiabatic_Expander;\n" )
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Files.Thermodynamic_Packages."+self.thermoPackage+";\n")
- self.OM_data_init = self.OM_data_init + ("end adiaComp"+str(self.count)+";\n")
- comp_count = len(addedcomp)
- self.OM_data_init = self.OM_data_init + (
- "adiaComp"+str(self.count)+" "+ self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (",comp = {")
- comp = str(addedcomp).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")+("eff="+self.eff+");\n")
- return self.OM_data_init
-
- def OM_Flowsheet_Eqn(self, addedcomp):
- self.OM_data_eqn = ''
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.InputStms[0].name + '.outlet,' + self.name + '.inlet' + ');\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.name + '.outlet,' + self.OutputStms[0].name + '.inlet);\n')
- self.OM_data_eqn = self.OM_data_eqn + ('connect(' + self.EngStms.name + '.outlet,' + self.name + '.energy);\n')
-
- self.OM_data_eqn = self.OM_data_eqn + (self.name+'.'+self.mode+'='+ self.modeVal + ';\n')
-
- return self.OM_data_eqn
-
diff --git a/src/main/python/OMChem/setup.py b/src/main/python/OMChem/setup.py
deleted file mode 100644
index 037da1c..0000000
--- a/src/main/python/OMChem/setup.py
+++ /dev/null
@@ -1,54 +0,0 @@
-try:
- from setuptools import setup
-except ImportError:
- from distutils.core import setup
-
-from subprocess import call
-import sys
-import os
-# Python 3.3 offers shutil.which()
-from distutils import spawn
-
-def warningOrError(errorOnFailure, msg):
- if errorOnFailure:
- raise Exception(msg)
- else:
- print(msg)
-
-def generateIDL():
- errorOnFailure = not os.path.exists(os.path.join(os.path.dirname(__file__), 'OMPythonIDL', '__init__.py'))
- try:
- omhome = os.path.split(os.path.split(os.path.realpath(spawn.find_executable("omc")))[0])[0]
- except:
- omhome = None
- omhome = omhome or os.environ.get('OPENMODELICAHOME')
-
- if omhome is None:
- warningOrError(errorOnFailure, "Failed to find OPENMODELICAHOME (searched for environment variable as well as the omc executable)")
- return
- idl = os.path.join(omhome,"share","omc","omc_communication.idl")
- if not os.path.exists(idl):
- warningOrError(errorOnFailure, "Path not found: %s" % idl)
- return
-
- if 0 is not call(["omniidl","-bpython","-Wbglobal=_OMCIDL","-Wbpackage=OMPythonIDL",idl]):
- warningOrError(errorOnFailure, "omniidl command failed")
- return
- print("Generated OMPythonIDL files")
-generateIDL()
-
-setup(name='OMPython',
- version='2.0.7',
- description='OpenModelica-Python API Interface',
- author='Anand Kalaiarasi Ganeson',
- author_email='ganan642@student.liu.se',
- maintainer='Adeel Asghar',
- maintainer_email='adeel.asghar@liu.se',
- license="BSD, OSMC-PL 1.2, GPL (user's choice)",
- url='http://openmodelica.org/',
- packages=['OMPython', 'OMPython.OMParser', 'OMPythonIDL', 'OMPythonIDL._OMCIDL', 'OMPythonIDL._OMCIDL__POA'],
- install_requires=[
- # 'omniORB', # Required, but not part of pypi
- 'pyparsing'
- ]
-)
diff --git a/src/main/python/mainApp.py b/src/main/python/mainApp.py
deleted file mode 100644
index 3f6f4be..0000000
--- a/src/main/python/mainApp.py
+++ /dev/null
@@ -1,413 +0,0 @@
-import pickle
-import threading
-import os
-import ctypes
-import sys
-import datetime
-from functools import partial
-
-current = os.path.dirname(os.path.realpath(__file__))
-parentPath = os.path.dirname(current)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-import PyQt5.QtGui as QtGui
-import PyQt5.QtCore as QtCore
-import PyQt5.QtWidgets as QtWidgets
-
-from python.OMChem.Flowsheet import Flowsheet
-from python.utils.ComponentSelector import *
-from python.utils.Bin_Phase_env import *
-from python.utils.UnitOperations import *
-from python.utils.Streams import *
-from python.utils.Container import *
-from python.utils.Graphics import *
-
-ui,_ = loadUiType(parentPath+'/ui/utils/main.ui')
-
-'''
- MainApp class is responsible for all the main App Ui operations
-'''
-class MainApp(QMainWindow,ui):
- '''
- Initializing the application
- '''
- def __init__(self):
- QMainWindow.__init__(self)
-
- # Loading and setting up style sheet
- self.setupUi(self)
-
- # Initializing attributes
- self.zoom_count = 0
- self.thrd = None
-
- # Creating instances of classes for the main app
- self.container = Container(self.textBrowser, self.graphicsView)
- self.comp = ComponentSelector(self)
- self.comp.accepted.connect(self.update_compounds)
-
- # Setting up interactive canvas
- self.scene = self.container.graphics.get_scene()
- self.graphicsView.setScene(self.scene)
- self.graphicsView.setMouseTracking(True)
- self.graphicsView.keyPressEvent=self.delete_call
-
- self.setDockNestingEnabled(True)
- self.setCorner(Qt.BottomRightCorner, Qt.RightDockWidgetArea)
- self.setCorner(Qt.BottomLeftCorner, Qt.LeftDockWidgetArea)
- self.addDockWidget(Qt.BottomDockWidgetArea,self.dockWidget_2)
-
- # Calling initialisation
- self.menu_bar()
- self.button_handler()
- self.comp.show()
-
- '''
- MenuBar function handels all the all the operations of
- menu bar like new,zoom,comounds selector, simulation options.
- '''
- def menu_bar(self):
- self.actionSelectCompounds.triggered.connect(self.select_compounds)
- self.actionSelectCompounds.setShortcut('Ctrl+C')
- self.actionZoomIn.triggered.connect(self.zoom_in)
- self.actionZoomIn.setShortcut('Ctrl++')
- self.actionNew.triggered.connect(self.new)
- self.actionNew.setShortcut('Ctrl+N')
- self.actionZoomOut.triggered.connect(self.zoom_out)
- self.actionZoomOut.setShortcut('Ctrl+-')
- self.actionResetZoom.triggered.connect(self.zoom_reset)
- self.actionResetZoom.setShortcut('Ctrl+R')
- self.actionHelp.triggered.connect(self.help)
- self.actionHelp.setShortcut('Ctrl+H')
- self.actionSequentialMode.triggered.connect(partial(self.simulate,'SM'))
- self.actionSequentialMode.setShortcut('Ctrl+M')
- self.actionEquationOriented.triggered.connect(partial(self.simulate,'EQN'))
- self.actionEquationOriented.setShortcut('Ctrl+E')
- self.actionUndo.triggered.connect(self.undo)
- self.actionUndo.setShortcut('Ctrl+Z')
- self.actionRedo.triggered.connect(self.redo)
- self.actionRedo.setShortcut('Ctrl+Y')
- self.actionSave.triggered.connect(self.save)
- self.actionSave.setShortcut('Ctrl+S')
- self.actionOpen.triggered.connect(self.open)
- self.actionOpen.setShortcut('Ctrl+O')
- self.actionTerminate.triggered.connect(self.terminate)
- self.actionTerminate.setShortcut('Ctrl+T')
- self.actionBinaryPhaseEnvelope.triggered.connect(self.bin_phase_env)
- self.actionViewMessageBrowser.triggered.connect(self.toggle_message_browser_view)
- self.actionViewComponentSelector.triggered.connect(self.toggle_component_selector_view)
-
- '''
- Handles all the buttons of different components.
- '''
- def button_handler(self):
- self.pushButton.clicked.connect(partial(self.component,'MaterialStream'))
- self.pushButton_7.clicked.connect(partial(self.component,'Mixer'))
- self.pushButton_14.clicked.connect(partial(self.component,'CentrifugalPump'))
- self.pushButton_26.clicked.connect(partial(self.component,'DistillationColumn'))
- self.pushButton_18.clicked.connect(partial(self.component,'ShortcutColumn'))
- self.pushButton_11.clicked.connect(partial(self.component,'Heater'))
- self.pushButton_10.clicked.connect(partial(self.component,'Splitter'))
- self.pushButton_9.clicked.connect(partial(self.component,'Flash'))
- self.pushButton_25.clicked.connect(partial(self.component,'Valve'))
- self.pushButton_12.clicked.connect(partial(self.component,'Cooler'))
- self.pushButton_13.clicked.connect(partial(self.component,'CompoundSeparator'))
- self.pushButton_15.clicked.connect(partial(self.component,'AdiabaticCompressor'))
- self.pushButton_16.clicked.connect(partial(self.component,'AdiabaticExpander'))
-
- '''
- Displays help box
- '''
- def help(self):
- msgBox = QMessageBox()
- msgBox.setIcon(QMessageBox.Question)
- msgBox.setTextFormat(Qt.RichText);
- msgBox.setText("For any Help or Suggestion you can contact us at\n contact-om@fossee.in or at Visit fossee.in!")
- msgBox.setStandardButtons(QMessageBox.Ok)
- msgBox.exec_()
-
- '''
- Creates Binary Phase envelope
- '''
- def bin_phase_env(self):
- if len(self.comp.get_compounds())<2:
- QMessageBox.about(self, 'Important', "Please select at least 2 Compounds first")
- self.comp.show()
- else:
- self.bin_phase = BinPhaseEnv(self.comp)
- self.bin_phase.show()
-
- '''
- Shows Compounds Selector Dialog
- '''
- def select_compounds(self):
- self.comp.show()
-
- '''
- Updates compounds after compound selected modified during simulation creation
- '''
- def update_compounds(self):
- self.container.update_compounds()
-
-
- '''
- Returns current time in a required particular format
- '''
- def current_time(self):
- now = datetime.datetime.now()
- time = str(now.hour) + ":" + str(now.minute) + ":" +str(now.second)
- return time
-
- '''
- Simulate function is responsible for the simulation
- of the designed flowsheet in a particular mode
- selected by the user.
- '''
- def simulate(self,mode):
- self.thrd = threading.Thread(target=self.container.simulate, args=(mode,))
- self.thrd.start()
-
- '''
- Terminate the current running simulation
- '''
- def terminate(self):
- os.chdir(self.container.flowsheet.root_dir)
- if self.thrd:
- thread_id = self.thrd.ident
- # print('____________________Going to terminate simulation thread with Thread ID:',thread_id,'____________________')
- # print('____________________Going to terminate the new process created for omc____________________')
- self.container.flowsheet.process.terminate()
- print('____________________New process created for omc is terminated.____________________')
- res = ctypes.pythonapi.PyThreadState_SetAsyncExc(thread_id, ctypes.py_object(SystemExit))
- self.textBrowser.append("["+str(self.current_time())+"]Simulation Terminated.")
- self.container.disableInterfaceforSimulation(False)
- # print('____________________Simulation thread terminated____________________')
- if res > 1:
- ctypes.pythonapi.PyThreadState_SetAsyncExc(thread_id, 0)
- # print('Exception raise (Thread termination) failure')
-
- '''
- Resets the zoom level to default scaling
- '''
- def zoom_reset(self):
- if(self.zoom_count>0):
- for i in range(self.zoom_count):
- self.zoomout()
- elif(self.zoom_count<0):
- for i in range(abs(self.zoom_count)):
- self.zoomin()
-
- '''
- ZoomOut the canvas
- '''
- def zoom_out(self):
- self.graphicsView.scale(1.0/1.15,1.0/1.15)
- self.zoom_count -=1
-
- '''
- ZoomIn the canvas
- '''
- def zoom_in(self):
- self.graphicsView.scale(1.15,1.15)
- self.zoom_count +=1
-
- '''
- Instantiate a NodeItem object for selected type of
- component and added that on canvas/flowsheeting area.
- '''
- def component(self,unit_operation_type):
- if(self.comp.is_compound_selected()):
- self.type = unit_operation_type
- if(self.type=="MaterialStream"):
- self.obj = MaterialStream(compound_names = compound_selected)
- else:
- self.obj = eval(self.type)()
- self.container.add_unit_operation(self.obj)
-
- else:
- QMessageBox.about(self, 'Important', "Please Select Compounds first")
- self.comp.show()
-
- '''
- New is used to delete all the existing work.
- '''
- def new(self):
- self.setWindowTitle('Untitled - Chemical Simulator GUI')
- self.undo_redo_helper()
- self.comp = ComponentSelector(self)
- self.textBrowser.append("[" + str(self.current_time()) + "] New flowsheet is created ... ")
- dock_widget_lst.clear()
-
- '''
- Handels all the operations which will happen when delete button is pressed.
- '''
- def delete_call(self,event):
- try:
- if event.key() == QtCore.Qt.Key_Delete:
- l=self.scene.selectedItems()
- self.container.delete(l)
- except Exception as e:
- print(e)
-
- '''
- It helps by clearing screen and loading the objects by undo redo methods
- '''
- def undo_redo_helper(self):
- for i in self.container.unit_operations:
- type(i).counter = 1
- self.container = None
- for i in dock_widget_lst:
- i.hide()
- del i
- lst.clear()
- self.container = Container(self.textBrowser, self.graphicsView)
-
- compound_selected.clear()
- self.scene = self.container.graphics.get_scene()
- self.graphicsView.setScene(self.scene)
- self.graphicsView.setMouseTracking(True)
- self.graphicsView.keyPressEvent=self.delete_call
-
- '''
- Function for undo
- '''
- def undo(self):
- redo_data = pop('Undo')
- if redo_data is not None:
- push('Redo', redo_data)
- undo_data = get_last_list('Undo')
- messages = self.textBrowser.toPlainText()
- try:
- self.undo_redo_helper()
- self.container.graphics.load_canvas(undo_data, self.container)
- self.textBrowser.setText(messages)
- except Exception as e:
- print(e)
- self.textBrowser.append(messages)
- else:
- messages = self.textBrowser.toPlainText()
- self.textBrowser.setText(messages)
- self.textBrowser.append("[" + str(self.current_time()) + "] No more undo can be done!... ")
-
- '''
- Function for redo
- '''
- def redo(self):
- redo_data = pop('Redo')
- if redo_data is not None:
- push('Undo', redo_data)
- messages = self.textBrowser.toPlainText()
- self.undo_redo_helper()
- self.container.graphics.load_canvas(redo_data, self.container)
- self.textBrowser.setText(messages)
- else:
- messages = self.textBrowser.toPlainText()
- self.textBrowser.setText(messages)
- self.textBrowser.append("[" + str(self.current_time()) + "] No more redo can be done!... ")
-
- '''
- Function for saving the current canvas items and compound_selected
- '''
- def save(self):
- data = []
- for i in self.container.unit_operations:
- data.append(i)
- i.saved = True
- data.append(compound_selected)
- data.append(self.container.result)
-
- file_format = 'sim'
- initial_path = QDir.currentPath() + ' untitled.' + file_format
- file_name, _ = QFileDialog.getSaveFileName(self, "Save As",
- initial_path, "%s Files (*.%s);; All Files (*)" %
- (file_format.upper(), file_format))
- try:
- with open(file_name, 'wb') as f:
- pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)
- fileName = file_name.split('/')[-1].split('.')[0]
- self.setWindowTitle(fileName+' - Chemical Simulator GUI')
- except Exception as e:
- pass
-
- '''
- Function for loading previous saved canvas and simulation
- '''
- def open(self):
- try:
- file_format = 'sim'
- initial_path = QDir.currentPath() + 'untitled.' + file_format
-
- file_name, _ = QFileDialog.getOpenFileName(self, "Open As",
- initial_path, "%s Files (*.%s);; All Files (*)" %
- (file_format.upper(), file_format))
- if file_name:
- fileName = file_name.split('/')[-1].split('.')[0]
- self.setWindowTitle(fileName+' - Chemical Simulator GUI')
-
- self.undo_redo_helper()
-
- with open(file_name, 'rb') as f:
- obj = pickle.load(f)
- temp_result = obj[-1]
- obj.pop()
- compound_selected = obj[-1]
- obj.pop()
- self.comp.set_compounds(compound_selected)
- for i in compound_selected:
- self.comp.compound_selection(self.comp, i)
- self.comp.hide()
- self.container.graphics.load_canvas(obj, self.container)
- self.container.result = temp_result
- DockWidget.show_result(dock_widget_lst)
-
- for i in dock_widget_lst:
- #Submitting values
- i.param()
-
- #Disbaling input data tab for output stream
- for i in self.container.graphics.scene.items():
- if (isinstance(i, NodeItem) and i.type == 'MaterialStream'):
- i.update_tooltip_selectedVar()
- no_input_lines = len(i.input[0].in_lines)
- no_output_lines = len(i.output[0].out_lines)
- if(no_input_lines>0): #Checks if material stream is input or output stream if it is output stream it continues
- i.obj.disableInputDataTab(i.dock_widget)
-
- except Exception as e:
- print(e)
-
- '''
- Function for toggling the display of Component Selector
- '''
- def toggle_component_selector_view(self):
- if(self.actionViewComponentSelector.isChecked()):
- self.dockWidget.show()
- else:
- self.dockWidget.hide()
-
- '''
- Function for toggling the display of Message Browser
- '''
- def toggle_message_browser_view(self):
- if(self.actionViewMessageBrowser.isChecked()):
- self.dockWidget_2.show()
- else:
- self.dockWidget_2.hide()
-
-
-def main():
-
- clean_file('Undo')
- clean_file('Redo')
-
- app = QApplication(sys.argv)
- window = MainApp()
- window.showMaximized()
- app.exec()
-
-
-if __name__ == '__main__':
- main()
diff --git a/src/main/python/utils/Bin_Phase_env.py b/src/main/python/utils/Bin_Phase_env.py
deleted file mode 100644
index dd6f938..0000000
--- a/src/main/python/utils/Bin_Phase_env.py
+++ /dev/null
@@ -1,241 +0,0 @@
-import sys
-import pandas as pd
-import numpy as np
-import os
-import csv
-from subprocess import Popen, PIPE
-
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-import PyQt5.QtGui as QtGui
-import PyQt5.QtCore as QtCore
-import PyQt5.QtWidgets as QtWidgets
-from PyQt5.uic import loadUiType
-
-
-import pyqtgraph as pg
-import pyqtgraph.exporters
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-ui_dialog,_ = loadUiType(parentPath+'/ui/utils/Binary_Phase_Env.ui')
-pg.CONFIG_OPTIONS['crashWarning'] = False
-
-class BinPhaseEnv(QWidget,ui_dialog):
- def __init__(self,comp):
- QWidget.__init__(self)
- self.setupUi(self)
-
- self.comp = comp
- self.compunds = self.comp.get_compounds()
-
- for i in self.compunds:
- self.comboBox.addItem(str(i))
-
- for i in range(len(self.compunds)):
- if i!=0:
- self.comboBox_2.addItem(str(self.compunds[i]))
-
- self.comboBox_2.addItem(str(self.compunds[0]))
-
- self.lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')]
- for j in self.lines:
- self.comboBox_3.addItem(str(j))
-
- self.radioButton.setChecked(False)
- self.radioButton_2.setChecked(False)
-
- self.button_handler()
- self.counter = 1
-
- def button_handler(self):
- self.radioButton.clicked.connect(lambda:self.T_xy())
- self.radioButton_2.clicked.connect(lambda:self.P_xy())
- self.pushButton_2.clicked.connect(lambda:self.plot())
-
- def T_xy(self):
- self.radioButton.setChecked(True)
- self.radioButton_2.setChecked(False)
- for i in reversed(range(self.formLayout.count())):
- self.formLayout.itemAt(i).widget().setParent(None)
-
- self.first = QLineEdit()
- self.type = "P"
- self.other = "T"
- self.otherunit = "(K)"
- self.formLayout.addRow(QLabel("P(Pa)"),self.first)
- self.points = QLineEdit()
- self.points.setText("40")
- self.formLayout.addRow(QLabel("Number of data points"),self.points)
-
- def P_xy(self):
- self.radioButton_2.setChecked(True)
- self.radioButton.setChecked(False)
- for i in reversed(range(self.formLayout.count())):
- self.formLayout.itemAt(i).widget().setParent(None)
-
- self.first = QLineEdit()
- self.type = "T"
- self.other = "P"
- self.otherunit = "(Pa)"
- self.points = QLineEdit()
- self.points.setText("40")
- self.formLayout.addRow(QLabel("T(K)"),self.first)
- self.formLayout.addRow(QLabel("Number of data points"),self.points)
-
- def get_omc_path(self):
- try:
- self.omhome = os.environ.get('OPENMODELICAHOME')
- if self.omhome is None:
- self.omhome = os.path.split(os.path.split(os.path.realpath(spawn.find_executable("omc")))[0])[0]
- elif os.path.exists('/opt/local/bin/omc'):
- self.omhome = '/opt/local'
- elif os.path.exists('/usr/bin/omc'):
- self.omhome = '/usr'
- return os.path.join(self.omhome, 'bin', 'omc')
- except BaseException:
- #print("The OpenModelica compiler is missing in the System path please install it" )
- raise
-
- def plot(self):
- try:
- val = int(self.first.text(),10)
- except:
- val = 0
- try:
- data_points = int(self.points.text(),10)
- except:
- data_points = 0
-
- self.curr_path = os.getcwd()
- self.sim_dir_path = os.path.join(self.curr_path,'./../Simulator')
- self.Graphmo_path = os.path.join(self.sim_dir_path,'Graph.mo')
- self.plot_mos_path = os.path.join(self.sim_dir_path,'PlotGraph.mos')
-
- self.data = []
-
- self.comp1 = self.comboBox.currentText()
- self.comp2 = self.comboBox_2.currentText()
- self.comp_1 = self.comboBox.currentText().split('(')[0]
- self.comp_2 = self.comboBox_2.currentText().split('(')[0]
-
- self.thermoPack = self.comboBox_3.currentText()
-
- self.data.append("model Graph\n")
- self.data.append("import data = Simulator.Files.ChemsepDatabase;\n")
- self.data.append("parameter data."+self.comp_1+" comp1;\n")
- self.data.append("parameter data."+self.comp_2+" comp2;\n")
- self.data.append("extends BinaryEnvelopes."+self.thermoPack+"(Nc = 2, data_points = "+str(data_points)+ ", comp = { comp1, comp2 }, "+self.type+" = fill( "+str(val)+", "+str(data_points)+"));\n")
- self.data.append("end Graph;")
-
- with open(self.Graphmo_path, 'w') as txtfile:
- for d in self.data:
- txtfile.write(str(d))
-
- with open(self.plot_mos_path, 'w') as mosFile:
- mosFile.write("loadModel(Modelica);\n")
- mosFile.write("loadFile(\"Simulator/package.mo\");\n")
- mosFile.write("loadFile(\"BinaryEnvelopes.mo\");\n")
- mosFile.write("loadFile(\"Graph.mo\");\n")
- mosFile.write("simulate(Graph, outputFormat=\"csv\", stopTime=1.0, numberOfIntervals=1);\n")
-
- self.resdata = []
- self.omc_path = self.get_omc_path()
- simpath = self.plot_mos_path
- os.chdir(self.sim_dir_path)
-
- process = Popen([self.omc_path, '-s',simpath], stdout=PIPE, stderr=PIPE)
- self.stdout, self.stderr = process.communicate()
-
- os.chdir(self.curr_path)
-
- csvpath = os.path.join(self.sim_dir_path,'Graph_res.csv')
-
- self.datay = []
- self.datax1 = []
- self.datax2 = []
- self.rows = []
-
- with open (csvpath,'r') as resultFile:
- self.resdata = []
- csvreader = csv.reader(resultFile,delimiter=',')
- for row in csvreader:
- self.resdata.append(row)
- self.rows.append(row)
-
- if self.type=='T':
- for k in range(len(self.rows[0])):
- if self.rows[0][k][0]=='P':
- self.datay.append(float(self.rows[1][k]))
- length = len(self.rows[0][k])
- if self.rows[0][k][0]=='x' and self.rows[0][k][length-2]=='1':
- self.datax1.append(float(self.rows[1][k]))
- if self.rows[0][k][0]=='y' and self.rows[0][k][length-2]=='1':
- self.datax2.append(float(self.rows[1][k]))
- else:
- for k in range(len(self.rows[0])):
- if self.rows[0][k][0]=='T':
- self.datay.append(float(self.rows[1][k]))
- length = len(self.rows[0][k])
- if self.rows[0][k][0]=='x' and self.rows[0][k][length-2]=='1':
- self.datax1.append(float(self.rows[1][k]))
-
- if self.rows[0][k][0]=='y' and self.rows[0][k][length-2]=='1':
- self.datax2.append(float(self.rows[1][k]))
-
- plt = pg.PlotWidget()
- plt.showGrid(x=True,y=True)
- plt.addLegend()
- plt.setXRange(0,1)
-
- c1 = plt.plot(self.datax1, self.datay,pen=pg.mkPen('b',width = 1), name='dew points')
- c2 = plt.plot(self.datax2, self.datay,pen=pg.mkPen('r',width = 1), name='bubble points')
- view_box = plt.plotItem.vb
- self.tool_tip = ""
-
- def press_event(evt):
- a = 10
- pos = evt
- mousepoint = view_box.mapSceneToView(pos)
- roi = pg.ROI(pos)
- find_color = plt.mapToGlobal(pos.toPoint())
-
- screen = QGuiApplication.primaryScreen()
- image = screen.grabWindow(QApplication.desktop().winId()).toImage()
- colour = QtGui.QColor(image.pixel(find_color.x(),find_color.y()))
-
- if colour.red()==255 or colour.blue()==255:
- self.lineEdit_x.setText(str(round(mousepoint.x(),3)))
- self.lineEdit_y.setText(str(round(mousepoint.y(),3)))
- self.tool_tip = str(round(mousepoint.x(),3)) + ", " + str(round(mousepoint.y(),3))
- QApplication.setOverrideCursor(QCursor(QtCore.Qt.CrossCursor))
- else:
- self.lineEdit_x.setText("")
- self.lineEdit_y.setText("")
- self.tool_tip = ""
- QApplication.setOverrideCursor(QCursor(QtCore.Qt.ArrowCursor))
-
- def entered(items):
- for i in items:
- if i.__class__.__name__ =="LegendItem":
- self.lineEdit_x.setText("")
- self.lineEdit_y.setText("")
- QApplication.setOverrideCursor(QCursor(QtCore.Qt.ArrowCursor))
- else:
- i.setToolTip(self.tool_tip)
-
- plt.scene().sigMouseMoved.connect(press_event)
- plt.scene().sigMouseHover.connect(entered)
-
- plt.setLabel('left',self.other+self.otherunit,units = '')
- plt.setLabel('bottom',self.comp1+'(mol. frac.)',units = '')
-
- self.new_tab = plt
- self.new_tab.setObjectName("Plot "+str(self.counter))
-
- self.tabWidget.addTab(self.new_tab,"Plot "+str(self.counter))
- self.counter+=1
diff --git a/src/main/python/utils/ComponentSelector.py b/src/main/python/utils/ComponentSelector.py
deleted file mode 100644
index 44a2696..0000000
--- a/src/main/python/utils/ComponentSelector.py
+++ /dev/null
@@ -1,177 +0,0 @@
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-import os, sys
-import pandas as pd
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parent)
-
-from Simulator.Databases.Databases import ChemsepDatabase
-ui_dialog,_ = loadUiType(parentPath+'/ui/utils/ComponentSelector.ui')
-
-
-#df = pd.read_csv("compoundsDatabase.csv")
-
-compound_selected = [] #list storing components that are selected inintialised as empty
-
-class ComponentSelector(QDialog,ui_dialog):
- def __init__(self,parent=None):
- QDialog.__init__(self,parent)
-
- self.setupUi(self)
-
- self.dict1=dict()#empty dictionary which will store the obj and its compound
- self.instance=[ChemsepDatabase()] #list of all the instances
- self.lines=[]
-
- for i in self.instance:
- x=i.get_comp_name_list()
- self.dict1[i]=x
- self.lines+=x
- #print(self.lines)
-
- self.model = QStringListModel()
- self.model.setStringList(self.lines)
-
- self.completer = QCompleter()
- self.completer.setCaseSensitivity(Qt.CaseInsensitive)
- self.completer.setModel(self.model)
-
- # QCompleter completes the text written in lineedit
- self.lineEdit.setCompleter(self.completer)
- self.compoundSelectButton.clicked.connect(self.compound_selection)
- self.compoundSelectButton.setAutoDefault(False)
- self.pushButton.clicked.connect(self.accept)
- self.pushButton_2.clicked.connect(self.cancel)
- self.pushButton_3.clicked.connect(self.remove_items)
-
- def final_list(self,*list_name):
- self.list_final=[]
- #add multiple lists
- for i in list_name:
- self.list_final+=i
- return (self.list_final)
-
- def is_compound_selected(self):
- if not compound_selected:
- return False
- else:
- return True
-
- #attrib:
- #CAS fro CAS Number
- #CompoundID for Name
- #Smiles for Molecular Formula
- #MolecularWeight for Molecular Weight
-
-#the below function will match the entered compound and get the database obj
- #of the corresponding database
-
- def get_object(self,component):
- for ele in self.dict1:
- values=self.dict1[ele]
- for ind in values:
- if ind ==component:
- return(ele)
-
-
-#the below finction removes the before added extra string from the cmpounds
- def get_original_name(self,component,removing_attrib):
- self.temp_comp= component.replace(removing_attrib,'')
- return(self.temp_comp)
-
- def compound_selection(self, *args):
- if len(args) == 2:
- self.comp = args[1] #helpful when loading saved data
- else:
- self.comp = self.lineEdit.text() #gets entered text
- if self.comp in self.lines: #matches with the db
- if self.comp not in compound_selected:
- compound_selected.append(self.comp) # appending compound in the list
- self.obj=self.get_object(self.comp) #obj will store the key of the dictionary
- #and thus store the instance of the class to which the component belongs
- self.removing_attrib='(' + self.obj.name + ')' #getting the attribute that is to be removed
- self.comp=self.get_original_name(self.comp,self.removing_attrib)
- #getting only air, water etc from air chemsep etc
-
-
- self.prop_list=self.obj.get_comp_prop(self.comp) #getting prop of the comp
- #obj is the required class object
- # self.creating_mo_file()
- self.final_mo()
-
- self.lineEdit.clear()
- #print(compound_selected)
-
- self.CAS=self.obj.get_value(self.comp,'CAS')
- self.name=self.comp
- self.molecular_formula=self.obj.get_value(self.comp, 'StructureFormula')
- self.molecular_weight=self.obj.get_value(self.comp, 'MolecularWeight')
-
- dict={'CAS':self.CAS,'Name':self.name,'Molecular Formula':self.molecular_formula,'Molecular Weight':self.molecular_weight}
- #converted everything to a dictionary which will be passes to addtable
- #function as a parameter.
- #print(dict)
- self.add_to_table(dict)
- else:
- self.show_error()
-
- @staticmethod
- def set_compounds(compounds):
- # compound_selected = compounds
- for i in compounds:
- compound_selected.append(i)
-
- def add_to_table(self,a):
- try:
- row_position = self.tableWidget.rowCount()
- self.tableWidget.insertRow(row_position)
- self.tableWidget.setItem(row_position , 0, QTableWidgetItem(str(a['CAS'])))
- self.tableWidget.setItem(row_position , 1, QTableWidgetItem(str(a['Name'])))
- self.tableWidget.setItem(row_position , 2, QTableWidgetItem(str(a['Molecular Formula'])))
- self.tableWidget.setItem(row_position , 3, QTableWidgetItem(str(a['Molecular Weight'])))
- except Exception as e:
- exc_type, exc_obj, exc_tb = sys.exc_info()
- fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
- #print(exc_type, fname, exc_tb.tb_lineno)
-
- def add_compounds_to_list(self,comp): # which list?
- self.item = QListWidgetItem()
- self.item.setText(comp)
- self.listWidget.addItem(self.item)
-
- def remove_items(self):
- try:
- item = self.tableWidget.item(self.tableWidget.currentRow(),1).text() + '(chemsep)'
- self.tableWidget.removeRow(self.tableWidget.currentRow())
- compound_selected.remove(item)
- except Exception as e:
- print(e)
-
- def show_error(self):
- QMessageBox.about(self, 'Important', "Selected Compound is not Available")
-
- def cancel(self):
- compound_selected.clear()
- self.tableWidget.setRowCount(0)
- self.reject()
-
- def get_compounds(self):
- return compound_selected
-
- def final_mo(self):
- self.f_mo=open(parentPath+'/Simulator/database.mo','w+')
- self.f_mo.write('package database\n')
- for line in self.prop_list:
- self.f_mo.write(line)
- self.f_mo.write('\n')
- self.f_mo.write('\nend database;')
- self.f_mo.close()
-
- def accept(self):
- #self.parent().container.update_compounds()
- return super().accept()
-
\ No newline at end of file
diff --git a/src/main/python/utils/Container.py b/src/main/python/utils/Container.py
deleted file mode 100644
index 486169f..0000000
--- a/src/main/python/utils/Container.py
+++ /dev/null
@@ -1,250 +0,0 @@
-from collections import defaultdict
-import datetime
-import pickle
-import os,sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from python.OMChem.Flowsheet import Flowsheet
-from python.utils.ComponentSelector import *
-from python.utils.Graphics import NodeItem, Graphics, dock_widget_lst
-from python.DockWidgets.DockWidget import DockWidget
-
-class Container():
- def __init__(self,msgbrowser, graphicsView):
- self.unit_operations = []
- self.thermo_package = None
- self.compounds = None
- self.flowsheet = None
- self.conn = defaultdict(list)
- self.op=defaultdict(list)
- self.ip=defaultdict(list)
- self.msg = msgbrowser
- self.graphicsView = graphicsView
- self.msg.setText("")
- self.opl=[]
- self.result=[]
- self.graphics = Graphics(self.unit_operations, self.graphicsView)
- self.scene = self.graphics.get_scene()
-
- def current_time(self):
- now = datetime.datetime.now()
- time = str(now.hour) + ":" + str(now.minute) + ":" +str(now.second)
- return time
-
- def add_unit_operation(self, obj):
- box = None
- self.obj = obj
- self.scene = self.graphics.get_scene()
- box = self.graphics.create_node_item(self.obj, self)
- if box is not None:
- self.scene.addItem(box)
- box.setPos(2500-30, 2500-30)
-
- if(obj in self.unit_operations):
- pass
- else:
- self.unit_operations.append(obj)
- data = self.unit_operations[:]
- data.append(compound_selected)
- push('Undo', data)
- self.msg.append("["+str(self.current_time())+"] "+obj.name+" is instantiated .""")
-
- '''
- Deletes the selected item from the canvas and also the objects created for that type.
- '''
- def delete(self,l):
- for item in l:
- self.scene.removeItem(item)
- for i in dock_widget_lst:
- if i.name == item.name:
- i.hide()
- del i
- break
-
- if hasattr(item,'input'):
- for x in item.input:
- if x.new_line:
- self.scene.removeItem(x.new_line)
- del x.new_line
- if x.other_line:
- self.scene.removeItem(x.other_line)
- del x.other_line
- if hasattr(item,'output'):
- for x in item.output:
- if x.new_line:
- self.scene.removeItem(x.new_line)
- del x.new_line
- if x.other_line:
- self.scene.removeItem(x.other_line)
- del x.other_line
- if hasattr(item,'obj'):
- self.unit_operations.remove(item.obj)
- for k in list(self.conn):
- if item.obj==k:
- del self.conn[k]
- elif item.obj in self.conn[k]:
- self.conn[k].remove(item.obj)
- self.msg.append("["+str(self.current_time())+"] "+item.obj.name+" is deleted .""")
- del item.obj
- del item
-
- clean_file('Redo')
- data = self.unit_operations[:]
- data.append(compound_selected)
- push('Undo', data)
-
- def fetch_object(self,name):
- for i in self.unit_operations:
- if(i.name==name):
- return i
-
- def add_compounds(self,comp):
- self.compounds = comp
-
- def update_compounds(self):
- self.graphics.update_compounds()
-
- def add_thermo_package(self,thermo):
- self.thermo_package = thermo
-
- def msg_browser(self):
- std = self.flowsheet.stdout.decode("utf-8")
- if(std):
- stdout = str(std)
- stdout = stdout.replace("\n","
")
- self.msg.append(""+stdout+"")
-
- stde = self.flowsheet.stderr.decode("utf-8")
- if(stde):
- stdout = str(stde)
- stdout = stdout.replace("\n","
")
- self.msg.append(""+stdout+"")
-
- def simulate(self,mode):
-
- self.disableInterfaceforSimulation(True)
-
- for i in self.graphics.scene.items():
- if (isinstance(i, NodeItem)):
- try:
- i.dock_widget.clear_results()
- except AttributeError:
- pass
-
- #print("SIMULATE")
- #print(mode)
- self.compounds = compound_selected
- self.flowsheet = Flowsheet()
- self.flowsheet.add_compound_list([c[:c.index('(')] for c in self.compounds])
- #print("######## connection master#########\n",self.conn)
- for i in self.unit_operations :
- self.flowsheet.add_unit_operations(i)
-
-
- if mode=='SM':
- self.msg.append("["+str(self.current_time())+"] Simulating in Sequential mode ... ")
- self.flowsheet.simulate_SM(self.ip,self.op)
- self.msg_browser()
- self.result=self.flowsheet.result_data
-
- elif mode=='EQN':
- self.msg.append("["+str(self.current_time())+"] Simulating in equation mode ... ")
- self.flowsheet.simulate_EQN(self.msg)
- self.result=self.flowsheet.result_data
-
- if(len(self.result)== 4):
- #self.msg_browser()
- self.msg.append("["+str(self.current_time())+"] Simulation Successful.")
- else:
- self.msg.append("["+str(self.current_time())+"] Simulation Failed.")
- #print("under Eqn mode simulation")
-
- if(len(self.result)== 4):
- DockWidget.show_result(NodeItem.get_dock_widget())
-
- for i in self.graphics.scene.items():
- if (isinstance(i, NodeItem) and i.type == 'MaterialStream'):
- i.update_tooltip_selectedVar()
- no_input_lines = len(i.input[0].in_lines)
- no_output_lines = len(i.output[0].out_lines)
- if(no_input_lines>0): #Checks if material stream is input or output stream if it is output stream it continues
- i.obj.disableInputDataTab(i.dock_widget)
-
- self.disableInterfaceforSimulation(False)
-
- def enableToolbar(self,status):
- self.graphicsView.parent().parent().actionNew.setProperty('enabled',status)
- self.graphicsView.parent().parent().actionZoomIn.setProperty('enabled',status)
- self.graphicsView.parent().parent().actionZoomOut.setProperty('enabled',status)
- self.graphicsView.parent().parent().actionResetZoom.setProperty('enabled',status)
- self.graphicsView.parent().parent().actionEquationOriented.setProperty('enabled',status)
- self.graphicsView.parent().parent().actionTerminate.setProperty('enabled',not status)
- self.graphicsView.parent().parent().actionSelectCompounds.setProperty('enabled',status)
-
- def disableInterfaceforSimulation(self,status):
- self.graphicsView.parent().parent().menubar.setProperty('enabled',not status)
- self.enableToolbar(not status)
- self.graphicsView.parent().parent().dockWidget.setProperty('enabled',not status)
- self.graphicsView.setInteractive(not status)
- if status:
- QApplication.instance().setOverrideCursor(QCursor(Qt.WaitCursor))
- else:
- QApplication.instance().restoreOverrideCursor()
- QApplication.instance().setOverrideCursor(QCursor(Qt.ArrowCursor))
-
-def flat_list(lst):
- flat_lst=[]
- for sublist in lst:
- for item in sublist:
- flat_lst.append(item)
- return flat_lst
-
-def push(file_name, data):
- with open(f"{file_name}.dat", "ab") as obj:
- pickle.dump(data, obj)
-
-def clean_file(file_name):
- with open(f"{file_name}.dat", "wb") as clean:
- pass
-
-def pop(file_name):
- last_command = None
- if os.stat(f"{file_name}.dat").st_size != 0:
- commands = []
- with open(f"{file_name}.dat", "rb") as objs:
- while True:
- try:
- command = pickle.load(objs)
- commands.append(command)
- except EOFError:
- break
-
- last_command = commands[-1]
- commands.remove(commands[-1])
- if len(commands) != 0:
- with open(f"{file_name}.dat", "wb") as updated_data:
- for i in range(len(commands)):
- pickle.dump(commands[i], updated_data)
- else:
- clean_file(file_name)
-
- return last_command
-
-def get_last_list(file_name):
- commands = []
- if os.stat(f"{file_name}.dat").st_size != 0:
- with open(f"{file_name}.dat", "rb") as objs:
- while True:
- try:
- command = pickle.load(objs)
- commands.append(command)
- except EOFError:
- break
- if len(commands) is not 0:
- return commands[-1]
- else:
- return None
diff --git a/src/main/python/utils/Graphics.py b/src/main/python/utils/Graphics.py
deleted file mode 100644
index e3eab7a..0000000
--- a/src/main/python/utils/Graphics.py
+++ /dev/null
@@ -1,702 +0,0 @@
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-import PyQt5.QtGui as QtGui
-import PyQt5.QtCore as QtCore
-import PyQt5.QtWidgets as QtWidgets
-from PyQt5.QtWidgets import QLineEdit
-import os, sys
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from python.DockWidgets.DockWidget import *
-from python.DockWidgets.DockWidgetMaterialStream import *
-from python.DockWidgets.DockWidgetDistillationColumn import *
-from python.DockWidgets.DockWidgetShortcutColumn import *
-from python.DockWidgets.DockWidgetMixer import *
-from python.DockWidgets.DockWidgetSplitter import *
-from python.DockWidgets.DockWidgetFlash import *
-from python.DockWidgets.DockWidgetCompoundSeparator import *
-from python.DockWidgets.DockWidgetCompressorExpander import *
-from python.utils.Container import *
-from python.utils.Streams import *
-from python.utils.UnitOperations import *
-from python.utils.ComponentSelector import *
-
-class Graphics(QDialog, QtWidgets.QGraphicsItem):
-
- def __init__(self, unit_operations, graphicsView):
- QDialog.__init__(self)
- QtWidgets.QGraphicsItem.__init__(self)
- self.scene = QGraphicsScene()
- self.scene.setItemIndexMethod(QGraphicsScene.BspTreeIndex)
- self.graphicsView = graphicsView
- self.pos = None
- self.unit_operations = unit_operations
- self.graphicsView.horizontalScrollBarVal = self.graphicsView.horizontalScrollBar().value()
-
- def get_scene(self):
- return self.scene
-
- def create_node_item(self,unit_operation, container):
- tempItem = NodeItem(unit_operation, container, self.graphicsView)
- if tempItem.ok:
- return tempItem
- else:
- return None
-
- def update_compounds(self):
- for i in self.graphicsView.items():
- if isinstance(i, NodeItem):
- i.update_compounds()
-
- def load_canvas(self, obj, container):
- stm = ['MaterialStream','EngStm']
- for i in obj:
- if i in self.unit_operations:
- pass
- else:
- self.unit_operations.append(i)
- type(i).counter += 1
- #print(self.unit_operations)
- new_box = self.create_node_item(i, container)
- new_box.setPos(i.pos.toPoint().x(), i.pos.toPoint().y())
- self.scene.addItem(new_box)
-
- for i in obj:
- if i.type == "MaterialStream":
- pass
- #print(eval(i.type))
- elif i.type not in stm:
- ip = i.input_stms
- op = i.output_stms
- for k, v in ip.items():
- pointA = NodeItem.get_instances(v.name)
- pointB = NodeItem.get_instances(i.name)
- rect = pointA.output[0].boundingRect()
- pointAA = QtCore.QPointF(rect.x() + rect.width()/(2), rect.y() + rect.height()/(2))
- pointAA = pointA.output[0].mapToScene(pointAA)
- socketB = next((s for s in pointB.input if k == s.id))
- rectB = socketB.boundingRect()
- pointBB = QtCore.QPointF(rectB.x() + rectB.width()/(2), rectB.y() + rectB.height()/(2))
- pointBB = socketB.mapToScene(pointBB)
- self.new_line = NodeLine(pointAA, pointBB, 'in')
- self.new_line.source = pointA.output[0]
- self.new_line.target = socketB
- pointA.output[0].out_lines.append(self.new_line)
- socketB.in_lines.append(self.new_line)
- pointA.output[0].other_line = self.new_line
- socketB.other_line = self.new_line
- self.scene.addItem(self.new_line)
- self.new_line.updatePath()
- for k, v in op.items():
- pointA = NodeItem.get_instances(i.name)
- pointB = NodeItem.get_instances(v.name)
- socketA = next(s for s in pointA.output if k == s.id)
- rect = socketA.boundingRect()
- pointAA = QtCore.QPointF(rect.x() + rect.width()/(2), rect.y() + rect.height()/(2))
- pointAA = socketA.mapToScene(pointAA)
- rectB = pointB.input[0].boundingRect()
- pointBB = QtCore.QPointF(rectB.x() + rectB.width()/(2), rectB.y() + rectB.height()/(2))
- pointBB = pointB.input[0].mapToScene(pointBB)
- self.new_line = NodeLine(pointAA, pointBB, 'out')
- self.new_line.source = socketA
- self.new_line.target = pointB.input[0]
- socketA.out_lines.append(self.new_line)
- pointB.input[0].in_lines.append(self.new_line)
- socketA.other_line = self.new_line
- pointB.input[0].other_line = self.new_line
- self.scene.addItem(self.new_line)
- self.new_line.updatePath()
-
-
-class NodeLine(QtWidgets.QGraphicsPathItem):
- def __init__(self, pointA, pointB , socket):
- super(NodeLine, self).__init__()
- self._pointA = pointA
- self._pointB = pointB
- self.socket = socket
- self._source = None
- self._target = None
- self.setZValue(-1)
- self.setBrush(QtGui.QColor(0,70,70,120))
- self.pen = QtGui.QPen()
- self.pen.setStyle(QtCore.Qt.SolidLine)
- self.pen.setWidth(2)
- self.pen.setColor(QtGui.QColor(0,70,70,220))
- self.setPen(self.pen)
-
- def updatePath(self):
-
- if (self._pointB.x() - self._pointA.x()) < 30:
- path = QtGui.QPainterPath()
- midptx = (self.pointA.x() + 13)
-
- ctrl1_1 = QtCore.QPointF(self.pointA.x(), self.pointA.y())
- ctrl2_1 = QtCore.QPointF(self.pointA.x(), self.pointA.y())
- pt1 = QtCore.QPointF(midptx , self.pointA.y())
- path.moveTo(pt1)
- path.cubicTo(ctrl1_1, ctrl2_1, pt1)
-
- if abs(self.pointB.x()-midptx) > 150:
- ctrl1_2 = QtCore.QPointF(midptx, self.pointA.y())
- ctrl2_2 = QtCore.QPointF(midptx, self.pointA.y())
- pt2 = QtCore.QPointF(midptx , self.pointA.y()+100)
- path.cubicTo(ctrl1_2, ctrl2_2, pt2)
- path.moveTo(pt2)
-
- ctrl1_3 = QtCore.QPointF(midptx, self.pointA.y()+100)
- ctrl2_3 = QtCore.QPointF(midptx, self.pointA.y()+100)
- pt3 = QtCore.QPointF(self.pointB.x()-13, self.pointA.y()+100)
- path.cubicTo(ctrl1_3, ctrl2_3, pt3)
- path.moveTo(pt3)
-
- ctrl1_4 = QtCore.QPointF(self.pointB.x()-13, self.pointA.y()+100)
- ctrl2_4 = QtCore.QPointF(self.pointB.x()-13, self.pointA.y()+100)
- pt4 = QtCore.QPointF(self.pointB.x()-13, self.pointB.y())
- path.cubicTo(ctrl1_4, ctrl2_4, pt4)
- path.moveTo(pt4)
-
- ctrl1_5 = QtCore.QPointF(self.pointB.x()-13, self.pointB.y())
- ctrl2_5 = QtCore.QPointF(self.pointB.x()-13, self.pointB.y())
- pt5 = QtCore.QPointF(self.pointB.x(), self.pointB.y())
- path.cubicTo(ctrl1_5, ctrl2_5, pt5)
- path.moveTo(pt5)
-
- self.setPath(path)
- return
- else:
- ctrl1_2 = QtCore.QPointF(midptx, self.pointA.y())
- ctrl2_2 = QtCore.QPointF(midptx, self.pointA.y())
- pt2 = QtCore.QPointF(midptx , max(self.pointB.y(), self.pointA.y())-(abs(self.pointA.y()-self.pointB.y())/2))
- path.cubicTo(ctrl1_2, ctrl2_2, pt2)
- path.moveTo(pt2)
-
- ctrl1_3 = QtCore.QPointF(midptx, max(self.pointB.y(), self.pointA.y())-(abs(self.pointA.y()-self.pointB.y())/2))
- ctrl2_3 = QtCore.QPointF(midptx, max(self.pointB.y(), self.pointA.y())-(abs(self.pointA.y()-self.pointB.y())/2))
- pt3 = QtCore.QPointF(self.pointB.x()-13, max(self.pointB.y(), self.pointA.y())-(abs(self.pointA.y()-self.pointB.y())/2))
- path.cubicTo(ctrl1_3, ctrl2_3, pt3)
- path.moveTo(pt3)
-
- ctrl1_4 = QtCore.QPointF(self.pointB.x()-13, max(self.pointB.y(), self.pointA.y())-(abs(self.pointA.y()-self.pointB.y())/2))
- ctrl2_4 = QtCore.QPointF(self.pointB.x()-13, max(self.pointB.y(), self.pointA.y())-(abs(self.pointA.y()-self.pointB.y())/2))
- pt4 = QtCore.QPointF(self.pointB.x()-13, self.pointB.y())
- path.cubicTo(ctrl1_4, ctrl2_4, pt4)
- path.moveTo(pt4)
-
- ctrl1_5 = QtCore.QPointF(self.pointB.x()-13, self.pointB.y())
- ctrl2_5 = QtCore.QPointF(self.pointB.x()-13, self.pointB.y())
- pt5 = QtCore.QPointF(self.pointB.x(), self.pointB.y())
- path.cubicTo(ctrl1_5, ctrl2_5, pt5)
- path.moveTo(pt5)
-
- self.setPath(path)
- return
-
- path = QtGui.QPainterPath()
- path.moveTo(self.pointA)
- midptx = 0.5*(self.pointA.x() + self.pointB.x())
-
- ctrl1_1 = QtCore.QPointF(self.pointA.x(), self.pointA.y())
- ctrl2_1 = QtCore.QPointF(self.pointA.x(), self.pointA.y())
- pt1 = QtCore.QPointF(midptx , self.pointA.y())
- path.cubicTo(ctrl1_1, ctrl2_1, pt1)
- path.moveTo(pt1)
-
- ctrl1_2 = QtCore.QPointF(midptx, self.pointA.y())
- ctrl2_2 = QtCore.QPointF(midptx, self.pointA.y())
- pt2 = QtCore.QPointF(midptx , self.pointB.y())
- path.cubicTo(ctrl1_2, ctrl2_2, pt2)
- path.moveTo(pt2)
-
- ctrl1_3 = QtCore.QPointF(midptx, self.pointB.y())
- ctrl2_3 = QtCore.QPointF(midptx, self.pointB.y())
- path.cubicTo(ctrl1_3, ctrl2_3, self.pointB)
- path.moveTo(self.pointB)
- self.setPath(path)
-
- def paint(self, painter, option, widget):
- painter.setPen(self.pen)
- painter.drawPath(self.path())
-
- @property
- def pointA(self):
- return self._pointA
-
- @pointA.setter
- def pointA(self, point):
- self._pointA = point
- self.updatePath()
-
- @property
- def pointB(self):
- return self._pointB
-
- @pointB.setter
- def pointB(self, point):
- self._pointB = point
- self.updatePath()
-
- @property
- def source(self):
- return self._source
-
- @source.setter
- def source(self, widget):
- self._source = widget
-
- @property
- def target(self):
- return self._target
-
- @target.setter
- def target(self, widget):
- self._target = widget
-
- def __delete__(self,instance):
- del self._source
- del self._target
- del self._pointA
- del self._pointB
-
-class NodeSocket(QtWidgets.QGraphicsItem):
- def __init__(self, rect, parent, socketType, id):
- super(NodeSocket, self).__init__(parent)
- self.rect = rect
- self.type = socketType
- self.parent=parent
- self.id = id
- self.setAcceptHoverEvents(True)
- self.new_line=None
- self.other_line=None
-
- # Brush
- self.brush = QtGui.QBrush(Qt.transparent)
- # Pen
- self.pen = QtGui.QPen(Qt.NoPen)
-
- # Lines
- self.out_lines = []
- self.in_lines = []
-
- def shape(self):
- path = QtGui.QPainterPath()
- path.addEllipse(self.boundingRect())
- return path
-
- def boundingRect(self):
- return QtCore.QRectF(self.rect)
-
- def paint(self, painter, option, widget):
-
- painter.setPen(self.pen)
- painter.drawEllipse(self.rect.x(),self.rect.y(),self.rect.height(),self.rect.width())
- painter.setBrush(self.brush)
- painter.drawEllipse(self.rect.x()+2,self.rect.y()+2,(self.rect.height()/3)*2,(self.rect.width()/3)*2)
-
- def mousePressEvent(self, event):
- cursor = QCursor( Qt.ArrowCursor )
- QApplication.instance().setOverrideCursor(cursor)
-
- if self.type == 'op'and len(self.out_lines) == 0:
- rect = self.boundingRect()
- pointA = QtCore.QPointF(rect.x() + rect.width()/(2), rect.y() + rect.height()/(2))
- pointA = self.mapToScene(pointA)
- pointB = self.mapToScene(event.pos())
- self.new_line = NodeLine(pointA, pointB ,'op')
- self.out_lines.append(self.new_line)
- self.scene().addItem(self.new_line)
- elif self.type == 'in' and len(self.in_lines) == 0:
- rect = self.boundingRect()
- pointA = self.mapToScene(event.pos())
- pointB = QtCore.QPointF(rect.x() + rect.width()/(2), rect.y() + rect.height()/(2))
- pointB = self.mapToScene(pointB)
- self.new_line = NodeLine(pointA, pointB, 'in')
- self.in_lines.append(self.new_line)
- self.scene().addItem(self.new_line)
- else:
- super(NodeSocket, self).mousePressEvent(event)
-
- def mouseMoveEvent(self, event):
-
- if self.type == 'op':
- item = self.scene().itemAt(event.scenePos().toPoint(),QtGui.QTransform())
- if(isinstance(item,NodeSocket)):
- QApplication.instance().setOverrideCursor(QCursor( Qt.PointingHandCursor))
- else:
- QApplication.instance().restoreOverrideCursor()
- QApplication.instance().setOverrideCursor(QCursor( Qt.ArrowCursor))
- pointB = self.mapToScene(event.pos())
- self.new_line.pointB = pointB
- if self.other_line:
- self.other_line.pointB=pointB
- elif self.type == 'in':
- pointA = self.mapToScene(event.pos())
- self.new_line.pointA = pointA
- if self.other_line:
- self.other_line.pointA=pointA
- else:
- super(NodeSocket, self).mouseMoveEvent(event)
-
- def mouseReleaseEvent(self, event):
- cursor = QCursor( Qt.ArrowCursor )
- QApplication.instance().setOverrideCursor(cursor)
-
- item = self.scene().itemAt(event.scenePos().toPoint(),QtGui.QTransform())
- stm = ['MaterialStream','EngStm']
- item.other_line=self.new_line
- if self.type == 'op' and item.type == 'in' and len(item.in_lines) == 0:
- self.new_line.source = self
- self.new_line.target = item
- item.in_lines.append(self.new_line)
- self.new_line.pointB = item.get_center()
- #print(type(self.new_line.source))
- if self.new_line.source.parent.obj.type not in stm:
- self.new_line.source.parent.obj.add_connection(0, self.new_line.source.id, self.new_line.target.parent.obj)
- if self.new_line.target.parent.obj.type not in stm:
- self.new_line.target.parent.obj.add_connection(1, self.new_line.target.id, self.new_line.source.parent.obj) # Input stream if flag is 1
-
- sc = self.new_line.source.parent
- tg = self.new_line.target.parent
- if(sc.obj.type == 'MaterialStream'):
- sc_no_input_lines = len(sc.input[0].in_lines)
- if(sc_no_input_lines > 0):
- sc.obj.disableInputDataTab(sc.dock_widget)
- if(tg.obj.type == 'MaterialStream'):
- tg_no_input_lines = len(tg.input[0].in_lines)
- if(tg_no_input_lines > 0):
- tg.obj.disableInputDataTab(tg.dock_widget)
-
- elif self.type =='in' and item.type == 'op' and len(item.out_lines) == 0:
- self.new_line.source = item
- self.new_line.target = self
- item.out_lines.append(self.new_line)
- self.new_line.pointA = item.get_center()
- #print(type(self.new_line.source))
- if self.new_line.source.parent.obj.type not in stm:
- self.new_line.source.parent.obj.add_connection(0, self.new_line.source.id, self.new_line.target.parent.obj)
- if self.new_line.target.parent.obj.type not in stm:
- self.new_line.target.parent.obj.add_connection(1, self.new_line.target.id, self.new_line.source.parent.obj)
-
- sc = self.new_line.source.parent
- tg = self.new_line.target.parent
- if(sc.obj.type == 'MaterialStream'):
- sc_no_input_lines = len(sc.input[0].in_lines)
- if(sc_no_input_lines > 0):
- sc.obj.disableInputDataTab(sc.dock_widget)
- if(tg.obj.type == 'MaterialStream'):
- tg_no_input_lines = len(tg.input[0].in_lines)
- if(tg_no_input_lines > 0):
- tg.obj.disableInputDataTab(tg.dock_widget)
-
- else:
- self.scene().removeItem(self.new_line)
- if(self.new_line in self.in_lines):
- self.in_lines.remove(self.new_line)
- if(self.new_line in self.out_lines):
- self.out_lines.remove(self.new_line)
- del self.new_line
- super(NodeSocket, self).mouseReleaseEvent(event)
-
- try:
- data = get_last_list('Undo')
- comp_selected = data[-1]
- data.remove(comp_selected)
- for i in range(len(data)):
- if data[i].name == self.new_line.source.parent.obj.name:
- data[i] = self.new_line.source.parent.obj
- elif data[i].name == self.new_line.target.parent.obj.name:
- data[i] = self.new_line.target.parent.obj
- data.append(comp_selected)
- push('Undo', data)
- except Exception as e:
- print(e)
-
- def get_center(self):
- rect = self.boundingRect()
- center = QtCore.QPointF(rect.x() + rect.width()/(2), rect.y() + rect.height()/(2))
- center = self.mapToScene(center)
- return center
-
- def hoverEnterEvent(self, event):
- cursor = QCursor( Qt.PointingHandCursor)
- QApplication.instance().setOverrideCursor(cursor)
-
- def hoverLeaveEvent(self, event):
- cursor = QCursor( Qt.ArrowCursor )
- QApplication.instance().setOverrideCursor(cursor)
-
- def show(self):
- # set pen to show
- self.pen = QPen(QtGui.QColor(0,70,70,220), 1, Qt.SolidLine)
- self.brush = QBrush(QtGui.QColor(140,199,198,255))
-
- def hide(self):
- # set pen to transparent
- self.pen = QPen(Qt.NoPen)
- self.brush = QBrush(Qt.transparent)
-
-# all created node items will be put inside this list
-# it is used for recreating the node lines by returning the node item object based on unit operation object's name
-lst = []
-dock_widget_lst = []
-stack = []
-
-class NodeItem(QtWidgets.QGraphicsItem):
-
- @staticmethod
- def get_instances(namee):
- for i in lst:
- if i.name == namee:
- return i
-
- @staticmethod
- def get_dock_widget():
- return dock_widget_lst
-
- def __init__(self,unit_operation, container, graphicsView):
- l = ['Splitter','Mixer', 'DistillationColumn', 'Flash', 'CompoundSeparator', 'ShortcutColumn']
- stm = ['MaterialStream', 'EnergyStream']
- super(NodeItem, self).__init__()
- self.obj = unit_operation
- self.container = container
- self.graphicsView = graphicsView
- self.setAcceptHoverEvents(True)
- self.name = self.obj.name
- self.type = self.obj.type
- self.ok = True
- if (self.obj.modes_list):
- default_tooltip = f"{self.name}\n\n"
- default_tooltip_dict = self.obj.param_getter_tooltip(self.obj.mode)
- for i, j in default_tooltip_dict.items():
- if j is not None:
- default_tooltip = default_tooltip + f" {i} : {j}\n"
- self.setToolTip(default_tooltip)
-
- dlg = QMessageBox()
- dlg.setWindowTitle("Error")
- dlg.setIcon(QMessageBox.Critical)
- dlg.setText('Enter valid input value!')
-
- if self.obj.type == 'Mixer' and not self.obj.saved:
- text, self.ok = QInputDialog.getText(self.container.graphicsView, 'Mixer', 'Enter number of input(2-4):',
- echo=QLineEdit.Normal, text=str(self.obj.no_of_inputs))
- while self.ok and (int(text)< 2 or int(text) > 4):
- dlg.exec_()
- text, self.ok = QInputDialog.getText(self.container.graphicsView, 'Mixer', 'Enter number of input(2-4):',
- echo=QLineEdit.Normal, text=str(self.obj.no_of_inputs))
- if self.ok:
- self.nin = int(text)
- self.obj.no_of_inputs = self.nin
- self.obj.variables['NI']['value'] = self.nin
- elif self.obj.type == 'DistillationColumn'and not self.obj.saved:
- text, self.ok = QInputDialog.getText(self.container.graphicsView, 'DistillationColumn', 'Enter number of input(1-8):',
- echo=QLineEdit.Normal, text=str(self.obj.no_of_inputs))
- while self.ok and (int(text)< 1 or int(text) > 8):
- dlg.exec_()
- text, self.ok = QInputDialog.getText(self.container.graphicsView, 'DistillationColumn', 'Enter number of input(1-8):',
- echo=QLineEdit.Normal, text=str(self.obj.no_of_inputs))
- if self.ok:
- self.nin = int(text)
- self.obj.no_of_inputs = self.nin
- self.obj.variables['Ni']['value'] = self.nin
-
- self.nin = self.obj.no_of_inputs
- self.nop = self.obj.no_of_outputs
-
- self.dock_widget = None
- lst.append(self)
- if self.obj.type in l:
- self.dock_widget = eval("DockWidget"+self.obj.type)(self.obj.name,self.obj.type,self.obj,self.container)
- elif self.obj.type in stm:
- self.dock_widget = eval("DockWidget"+self.obj.type)(self.obj.name,self.obj.type,self.obj,self.container)
- elif self.obj.type == "AdiabaticCompressor" or self.obj.type == "AdiabaticExpander":
- self.dock_widget = eval("DockWidgetCompressorExpander")(self.obj.name,self.obj.type,self.obj,self.container)
- else:
- self.dock_widget = DockWidget(self.obj.name,self.obj.type,self.obj,self.container)
- dock_widget_lst.append(self.dock_widget)
- self.main_window= findMainWindow(self)
- self.dock_widget.setFixedWidth(360)
- self.dock_widget.setFixedHeight(640)
- self.dock_widget.DockWidgetFeature(QDockWidget.AllDockWidgetFeatures)
- self.main_window.addDockWidget(Qt.LeftDockWidgetArea, self.dock_widget)
-
- # updating input values
- if self.dock_widget.obj.type != 'MaterialStream':
- pass
- try:
- self.dock_widget.obj.param_setter(self.dock_widget.obj.param_getter(self.dock_widget.obj.mode))
- except Exception as e:
- print(e)
- # self.dock_widget.param()
-
- self.dock_widget.hide()
-
- self.pic=QtGui.QPixmap(parentPath+"/resources/base/Icons/"+self.type+".png")
- self.rect = QtCore.QRect(0,0,self.pic.width(),self.pic.height())
- self.text = QGraphicsTextItem(self)
- f = QFont()
- f.setPointSize(8)
- self.text.setFont(f)
- self.text.setDefaultTextColor(QtGui.QColor(0,70,70,220))
- self.text.setParentItem(self)
- self.text.setPos(self.rect.width()-(self.rect.width()*0.9), self.rect.height())
- self.text.setPlainText(self.name)
-
- self.setFlag(QtWidgets.QGraphicsPixmapItem.ItemIsMovable)
- self.setFlag(QtWidgets.QGraphicsPixmapItem.ItemIsSelectable)
- self.setFlag(QGraphicsItem.ItemSendsGeometryChanges)
-
- # Brush
- self.brush = QtGui.QBrush()
- self.brush.setStyle(QtCore.Qt.SolidPattern)
- self.brush.setColor(QtGui.QColor(80,0,90,255))
- # Pen
- self.pen = QtGui.QPen()
- self.pen.setStyle(QtCore.Qt.SolidLine)
- self.pen.setWidth(1)
- self.pen.setColor(QtGui.QColor(20,20,20,255))
-
- self.sel_pen = QtGui.QPen()
- self.sel_pen.setStyle(QtCore.Qt.SolidLine)
- self.sel_pen.setWidth(1)
- self.sel_pen.setColor(QtGui.QColor(220,220,220,255))
-
- # initializing the node sockets
- self.input , self.output = self.initialize_sockets(self.type)
-
- def shape(self):
- path = QtGui.QPainterPath()
- path.addRect(self.boundingRect())
- return path
-
- def boundingRect(self):
- return QtCore.QRectF(self.rect)
-
- def paint(self, painter, option, widget):
- if self.isSelected():
- painter.setPen(self.sel_pen)
- painter.drawRect(QtCore.QRectF(self.rect))
- else:
- painter.setPen(self.pen)
- painter.drawPixmap(self.rect,self.pic)
-
- def initialize_sockets(self,type):
- if(self.type=="Flash" or self.type=="CompoundSeparator"):
- input = [NodeSocket(QtCore.QRect(1,(self.rect.height()*x/(self.nin+1)-6),4*3,4*3), self, 'in', x) for x in range(1,self.nin+1) ]
- output = [NodeSocket(QtCore.QRect(self.rect.width()-13,(self.rect.height()*x*1/(self.nop+1))-4,4*3,4*3), self, 'op', x) for x in range(1,self.nop+1)]
- return input,output
- elif(self.type=="AdiabaticCompressor" or self.type=="AdiabaticExpander" or self.type =="Mixer" or self.type =="Splitter" or self.type =="Valve" ):
- input = [NodeSocket(QtCore.QRect(-6.5, (self.rect.height()*x/(self.nin+1))-6,4*3,4*3), self, 'in', x) for x in range(1,self.nin+1) ]
- output = [NodeSocket(QtCore.QRect(self.rect.width()-6.5,(self.rect.height()*x/(self.nop+1))-6,4*3,4*3), self, 'op', x) for x in range(1,self.nop+1)]
- return input,output
- elif(self.type=="Cooler" or self.type=="Heater"):
- input = [NodeSocket(QtCore.QRect(-0.5, (self.rect.height()*x/(self.nin+1))-6,4*3,4*3), self, 'in', x) for x in range(1,self.nin+1) ]
- output = [NodeSocket(QtCore.QRect(self.rect.width()-12.0,(self.rect.height()*x/(self.nop+1))-6,4*3,4*3), self, 'op', x) for x in range(1,self.nop+1)]
- return input,output
- elif(self.type=="CentrifugalPump"):
- input = [NodeSocket(QtCore.QRect(-6.5,(self.rect.height()*x/(self.nin+1))-11, 4*3,4*3), self, 'in', x) for x in range(1,self.nin+1) ]
- output = [NodeSocket(QtCore.QRect(self.rect.width()-6.5,-5.5,4*3,4*3), self, 'op', x) for x in range(1,self.nop+1)]
- return input,output
- elif(self.type=="DistillationColumn" or self.type=="ShortcutColumn"):
- input = [NodeSocket(QtCore.QRect(-6.5,(self.rect.height()*x/(self.nin+1)-4),4*3,4*3), self, 'in', x) for x in range(1,self.nin+1) ]
- output = [NodeSocket(QtCore.QRect(self.rect.width()-9.5,(self.rect.height()*1.44*x/(self.nop+1))-59,4*3,4*3), self, 'op', x) for x in range(1,self.nop+1)]
- return input,output
- elif(self.type=="MaterialStream"):
- input = [NodeSocket(QtCore.QRect(-6.5,(self.rect.height()*x/(self.nin+1)-6),4*3,4*3), self, 'in', x) for x in range(1,self.nin+1) ]
- output = [NodeSocket(QtCore.QRect(self.rect.width()-6.5,(self.rect.height()*x/(self.nin+1)-6),4*3,4*3), self, 'op', x) for x in range(1,self.nop+1)]
- return input,output
-
- def mouseMoveEvent(self, event):
- super(NodeItem, self).mouseMoveEvent(event)
- items = self.graphicsView.items()
- for i in items:
- if(type(i) == NodeItem):
- for op in i.output:
- for line in op.out_lines:
- line.pointA = line.source.get_center()
- line.pointB = line.target.get_center()
- for ip in i.input:
- for line in ip.in_lines:
- line.pointA = line.source.get_center()
- line.pointB = line.target.get_center()
- self.pos = event.scenePos()
- self.obj.set_pos(self.pos)
-
- def mouseDoubleClickEvent(self, event):
-
- self.graphicsView.horizontalScrollBarVal = self.graphicsView.horizontalScrollBar().value()
- self.graphicsView.setInteractive(False)
- if len(stack):
- stack[-1].hide()
- self.dock_widget.show()
- stack.append(self.dock_widget)
- self.graphicsView.setInteractive(True)
-
- def update_tooltip(self):
- default_tooltip = f"{self.name}\n\n"
- default_tooltip_dict = self.obj.param_getter_tooltip(self.obj.mode)
- for i, j in default_tooltip_dict.items():
- if j is not None:
- default_tooltip = default_tooltip + f" {i} : {j}\n"
- self.setToolTip(default_tooltip)
-
- def update_tooltip_selectedVar(self):
- default_tooltip = f"{self.name}\n\n"
- default_tooltip_dict = self.obj.param_getter_tooltip_selectedVar()
- for i, j in default_tooltip_dict.items():
- if j is not None:
- default_tooltip = default_tooltip + f" {i} : {j}\n"
- self.setToolTip(default_tooltip)
-
- def update_compounds(self):
- try:
- self.obj.update_compounds()
- self.dock_widget.update_compounds()
- except AttributeError:
- pass
-
- def hoverEnterEvent(self, event):
- super(NodeItem,self).hoverEnterEvent(event)
- for i in self.graphicsView.items():
- if(isinstance(i,NodeItem)):
- for ip in i.input:
- ip.show()
- for op in i.output:
- op.show()
-
- def hoverLeaveEvent(self, event):
- super(NodeItem,self).hoverLeaveEvent(event)
- for i in self.graphicsView.items():
- if(isinstance(i,NodeItem)):
- for ip in i.input:
- ip.hide()
- for op in i.output:
- op.hide()
-
- def itemChange(self, change, value):
- newPos = value
- if change == self.ItemPositionChange and self.scene():
- rect = self.container.graphicsView.sceneRect()
- width = self.boundingRect().width()
- height = self.boundingRect().height()
- eWH1 = QPointF(newPos.x()+width,newPos.y()+height)
- eWH2 = QPointF(newPos.x()-width,newPos.y()-height)
- if not rect.__contains__(eWH1) or not rect.__contains__(eWH2) :
- newPos.setX(min(rect.right()-width-40, max(newPos.x(), rect.left())))
- newPos.setY(min(rect.bottom()-height-35, max(newPos.y(), rect.top())))
- self.obj.set_pos(newPos)
- return super(NodeItem,self).itemChange(change, newPos)
-
-def findMainWindow(self):
- '''
- Global function to find the (open) QMainWindow in application
- '''
- app = QApplication.instance()
- for widget in app.topLevelWidgets():
- if isinstance(widget, QMainWindow):
- return widget
- return None
diff --git a/src/main/python/utils/Streams.py b/src/main/python/utils/Streams.py
deleted file mode 100644
index 05ec014..0000000
--- a/src/main/python/utils/Streams.py
+++ /dev/null
@@ -1,470 +0,0 @@
-import json
-import sys,os
-
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from PyQt5.QtCore import *
-from python.utils.ComponentSelector import compound_selected
-
-class MaterialStream():
- counter = 1
- def __init__(self, compound_names = []):
-
- self.name = 'MaterialStream' + str(MaterialStream.counter)
- self.type = 'MaterialStream'
-
- self.compound_names = compound_names
- self.count = MaterialStream.counter
- self.thermo_package ="RaoultsLaw"
- self.mode1 = "P"
- self.mode2 = "T"
-
- self.mode1_val = ""
- self.mode2_val = ""
- self.OM_data_init = ''
- self.OM_data_eqn = ''
- self.no_of_inputs = 1
- self.no_of_outputs = 1
- self.x = 2500-30
- self.y = 2500-30
- self.pos = QPointF(self.x, self.y)
- MaterialStream.counter+=1
- self.start_dict = {}
- self.eqn_dict = {}
- self.modes_list = ["PT", "PH", "PVF", "TVF", "PS"]
- self.saved = False
- self.mode = self.modes_list[0]
-
- self.variables = {
- 'P' : {'name':'Pressure', 'value':101325, 'unit':'Pa'},
- 'T' : {'name':'Temperature', 'value':300, 'unit':'K'},
-
- 'xvap' : {'name':'Vapour Mole Fraction', 'value':None, 'unit':''},
- 'H_p[1]' : {'name':'Mixture Molar Enthalpy', 'value':None, 'unit':'J/mol'},
- 'S_p[1]' : {'name':'Mixture Molar Entropy', 'value':None, 'unit':'J/mol.K'},
- 'F_p[1]' : {'name':'Mixture Molar Flow', 'value':100, 'unit':'mol/s'},
- 'Fm_p[1]' : {'name':'Mixture Mass Flow', 'value':None, 'unit':'g/s'},
-
- 'H_p[2]' : {'name':'Liquid Molar Enthalpy', 'value':None, 'unit':'J/mol'},
- 'S_p[2]' : {'name':'Liquid Molar Entropy', 'value':None, 'unit':'J/mol.K'},
- 'F_p[2]' : {'name':'Liquid Molar Flow', 'value':None, 'unit':'mol/s'},
-
- 'H_p[3]' : {'name':'Vapour Molar Enthalpy', 'value':None, 'unit':'J/mol'},
- 'S_p[3]' : {'name':'Vapour Molar Entropy', 'value':None, 'unit':'J/mol.K'},
- 'F_p[3]' : {'name':'Vapour Molar Flow', 'value':None, 'unit':'mol/s'},
-
- 'x_pc' : {'name':'Mole Fraction', 'value':[], 'unit':''},
- 'xm_pc' : {'name':'Mass Fraction', 'value':None, 'unit':''},
-
- 'F_pc' : {'name':'Mole Flow', 'value':100, 'unit':'mol/s'},
- 'Fm_pc' : {'name':'Mass Flow', 'value':None, 'unit':'g/s'},
- }
- self.init_variables()
-
- def update_compounds(self):
- self.compound_names = compound_selected
-
- def init_variables(self):
- Nc = len(self.compound_names)
- for i, val in enumerate(self.compound_names):
- self.variables['x_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mole Fraction', 'value':round(1/Nc,4), 'unit':''}
- self.variables['xm_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mass Fraction', 'value':None, 'unit':''}
- self.variables['F_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mole Flow', 'value':None, 'unit':'mol/s'}
- self.variables['Fm_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mass Flow', 'value':None, 'unit':'g/s'}
-
- self.variables['x_pc[2,'+ str(i+1)+']'] = {'name':[val + ' Liquid Mole Fraction'], 'value':None, 'unit':''}
- self.variables['xm_pc[2,'+ str(i+1)+']'] = {'name':[val + ' Liquid Mass Fraction'], 'value':None, 'unit':''}
- self.variables['F_pc[2,'+ str(i+1)+']'] = {'name':[val + ' Liquid Mole Flow'], 'value':None, 'unit':'mol/s'}
- self.variables['Fm_pc[2,'+ str(i+1)+']'] = {'name':[val + ' Liquid Mass Flow'], 'value':None, 'unit':'g/s'}
-
- self.variables['x_pc[3,'+ str(i+1)+']'] = {'name':[val + ' Vapour Mole Fraction'], 'value':None, 'unit':''}
- self.variables['xm_pc[3,'+ str(i+1)+']'] = {'name':[val + ' Vapour Mass Fraction'], 'value':None, 'unit':''}
- self.variables['F_pc[3,'+ str(i+1)+']'] = {'name':[val + ' Vapour Mole Flow'], 'value':None, 'unit':'mol/s'}
- self.variables['Fm_pc[3,'+ str(i+1)+']'] = {'name':[val + ' Vapour Mass Flow'], 'value':None, 'unit':'g/s'}
-
- for i in self.compound_names:
- self.variables[i] = {'value':''}
-
- def param_getter_tooltip(self,mode):
- dict = {}
-
- temp = []
- for i, val in enumerate(self.compound_names):
- try:
- temp.append(self.variables['x_pc[1,' + str(i+1) + ']']['value'])
- except:
- pass
- self.variables['x_pc']['value'] = temp
-
- if(mode=="PT"):
- self.mode1 = 'P'
- self.mode2 = 'T'
- mode1_n = self.variables['P']['name']
- mode2_n = self.variables['T']['name']
- dict = {mode1_n:str(self.variables['P']['value'])+' '+self.variables['P']['unit'],
- mode2_n:str(self.variables['T']['value'])+' '+self.variables['T']['unit']}
- elif(mode=="PH"):
- self.mode1 = 'P'
- self.mode2 = 'H_p[1]'
- mode1_n = self.variables['P']['name']
- mode2_n = self.variables['H_p[1]']['name']
-
- dict = {mode1_n:str(self.variables['P']['value'])+' '+self.variables['P']['unit'],
- mode2_n:str(self.variables['H_p[1]']['value'])+' '+self.variables['H_p[1]']['unit']}
- elif(mode=="PVF"):
- self.mode1 = 'P'
- self.mode2 = 'xvap'
- mode1_n = self.variables['P']['name']
- mode2_n = self.variables['xvap']['name']
-
- dict = {mode1_n:str(self.variables['P']['value'])+' '+self.variables['P']['unit'],
- mode2_n:str(self.variables['xvap']['value'])+' '+self.variables['xvap']['unit']}
- elif(mode=="TVF"):
- self.mode1 = 'T'
- self.mode2 = 'xvap'
- mode1_n = self.variables['T']['name']
- mode2_n = self.variables['xvap']['name']
- dict = {mode1_n:str(self.variables['T']['value'])+' '+self.variables['T']['unit'],
- mode2_n:str(self.variables['xvap']['value'])+' '+self.variables['xvap']['unit']}
-
- elif(mode=="PS"):
- self.mode1 = 'P'
- self.mode2 = 'S_p[1]'
- mode1_n = self.variables['P']['name']
- mode2_n = self.variables['S_p[1]']['name']
-
- dict = {mode1_n:str(self.variables['P']['value'])+' '+self.variables['P']['unit'],
- mode2_n:str(self.variables['S_p[1]']['value'])+' '+self.variables['S_p[1]']['unit']}
-
- dict['Mole Flow'] = str(self.variables['F_p[1]']['value'])+' '+self.variables['F_p[1]']['unit']
- dict[self.variables['x_pc']['name']] = str(self.variables['x_pc']['value'])+' '+self.variables['x_pc']['unit']
- dict['Thermo Package'] = self.thermo_package
- return dict
-
- def param_getter_tooltip_selectedVar(self):
- dict = {}
-
- pressure_name = self.variables['P']['name']
- pressure_val = self.variables['P']['value']
- pressure_unit = self.variables['P']['unit']
- temp_name = self.variables['T']['name']
- temp_val = self.variables['T']['value']
- temp_unit = self.variables['T']['unit']
- mixMolEntal_name = self.variables['H_p[1]']['name']
- mixMolEntal_val = round(float(self.variables['H_p[1]']['value']),4)
- mixMolEntal_unit = self.variables['H_p[1]']['unit']
- mixMolEntro_name = self.variables['S_p[1]']['name']
- mixMolEntro_val = round(float(self.variables['S_p[1]']['value']),4)
- mixMolEntro_unit = self.variables['S_p[1]']['unit']
- vapMolFrac_name = self.variables['xvap']['name']
- vapMolFrac_val = self.variables['xvap']['value']
- vapMolFrac_unit = self.variables['xvap']['unit']
- mixMolFlo_name = self.variables['F_p[1]']['name']
- mixMolFlo_val = self.variables['F_p[1]']['value']
- mixMolFlo_unit = self.variables['F_p[1]']['unit']
- mixMassFlo_name = self.variables['Fm_p[1]']['name']
- mixMassFlo_val = round(float(self.variables['Fm_p[1]']['value']),4)
- mixMassFlo_unit = self.variables['Fm_p[1]']['unit']
-
- dict = {pressure_name:str(pressure_val)+' '+pressure_unit,
- temp_name:str(temp_val)+' '+temp_unit,
- vapMolFrac_name:str(vapMolFrac_val)+' '+vapMolFrac_unit,
- mixMolEntal_name:str(mixMolEntal_val)+' '+mixMolEntal_unit,
- mixMolEntro_name:str(mixMolEntro_val)+' '+mixMolEntro_unit,
- mixMolFlo_name:str(mixMolFlo_val)+' '+mixMolFlo_unit,
- mixMassFlo_name:str(mixMassFlo_val)+' '+mixMassFlo_unit}
- return dict
-
- def param_getter(self,mode):
- dict = {}
-
- temp = []
- for i, val in enumerate(self.compound_names):
- try:
- temp.append(self.variables['x_pc[1,' + str(i+1) + ']']['value'])
- except:
- pass
- self.variables['x_pc']['value'] = temp
-
- pressure_val = self.variables['P']['value']
- temp_val = self.variables['T']['value']
- mixMolFlo_val = self.variables['F_p[1]']['value']
- mixMolEntal_val = self.variables['H_p[1]']['value']
- vapMolFrac_val = self.variables['xvap']['value']
- mixMolEntro_val = self.variables['S_p[1]']['value']
-
- if pressure_val != None:
- pressure_val = round(float(self.variables['P']['value']),4)
- if temp_val != None:
- temp_val = round(float(self.variables['T']['value']),4)
- if mixMolFlo_val != None:
- mixMolFlo_val = round(float(self.variables['F_p[1]']['value']),4)
- if mixMolEntal_val != None:
- mixMolEntal_val = round(float(self.variables['H_p[1]']['value']),4)
- if vapMolFrac_val != None:
- vapMolFrac_val = round(float(self.variables['xvap']['value']),4)
- if mixMolEntro_val != None:
- mixMolEntro_val = round(float(self.variables['S_p[1]']['value']),4)
- if(mode=="PT"):
- self.mode1 = 'P'
- self.mode2 = 'T'
-
- dict = {self.mode1:pressure_val, self.mode2:temp_val,
- "MolFlow":mixMolFlo_val,"x_pc":self.variables['x_pc']['value'],
- "Thermo Package": self.thermo_package}
- #print('dictionary is :' + str(dict))
-
- elif(mode=="PH"):
- self.mode1 = 'P'
- self.mode2 = 'H_p[1]'
- dict = {self.mode1:pressure_val, self.mode2:mixMolEntal_val,
- "MolFlow":mixMolFlo_val, "x_pc":self.variables['x_pc']['value'],
- "Thermo Package": self.thermo_package}
- elif(mode=="PVF"):
- self.mode1 = 'P'
- self.mode2 = 'xvap'
- dict = {self.mode1:pressure_val, self.mode2:vapMolFrac_val,
- "MolFlow":mixMolFlo_val, "x_pc":self.variables['x_pc']['value'],
- "Thermo Package": self.thermo_package}
- elif(mode=="TVF"):
- self.mode1 = 'T'
- self.mode2 = 'xvap'
- dict = {self.mode1:temp_val, self.mode2:vapMolFrac_val,
- "MolFlow":mixMolFlo_val, "x_pc":self.variables['x_pc']['value'],
- "Thermo Package": self.thermo_package}
- elif(mode=="PS"):
- self.mode1 = 'P'
- self.mode2 = 'S_p[1]'
- dict = {self.mode1:pressure_val, self.mode2: mixMolEntro_val,
- "MolFlow":mixMolFlo_val, "x_pc":self.variables['x_pc']['value'],
- "Thermo Package": self.thermo_package}
-
- return dict
-
- def param_setter(self,dict):
- self.variables['x_pc']['value'] = dict['x_pc'].split(",")
- #print('xpc is :' + str(self.variables['x_pc']['value']))
- self.thermo_package = dict['Thermo Package']
- self.variables['F_p[1]']['value'] = dict['MolFlow']
- self.variables[self.mode1]['value'] = dict[self.mode1]
- self.variables[self.mode2]['value'] = dict[self.mode2]
-
- for i in range(len(self.compound_names)):
- if self.variables['x_pc']['value'][i]:
- self.variables['x_pc[1,'+str(i+1)+']']['value'] = self.variables['x_pc']['value'][i]
- else:
- self.variables['x_pc[1,'+str(i+1)+']']['value'] = None
- self.variables['xm_pc[1,'+str(i+1)+']']['value'] = self.variables['xm_pc']['value']
-
- self.variables['F_pc[1,'+str(i+1)+']']['value'] = None
- self.variables['Fm_pc[1,'+str(i+1)+']']['value'] = None
- for i in range(0,len(self.compound_names)):
- self.variables['x_pc[2,'+str(i+1)+']']['value'] = None
- self.variables['xm_pc[2,'+str(i+1)+']']['value'] = None
- self.variables['F_pc[2,'+str(i+1)+']']['value'] = None
- self.variables['Fm_pc[2,'+str(i+1)+']']['value'] = None
-
- self.variables['x_pc[3,'+str(i+1)+']']['value'] = None
- self.variables['xm_pc[3,'+str(i+1)+']']['value'] = None
- self.variables['F_pc[3,'+str(i+1)+']']['value'] = None
- self.variables['Fm_pc[3,'+str(i+1)+']']['value'] = None
-
- def set_pos(self,pos):
- self.pos = pos
-
- def get_min_eqn_values(self):
- x_pclist = []
- for i in range(0,len(self.compound_names)):
- x_pclist.append(self.variables['x_pc[1,'+str(i+1)+']']['value'])
- x_pc = json.dumps(x_pclist)
- x_pc = x_pc.replace('[','{')
- x_pc = x_pc.replace(']','}')
- x_pc = x_pc.replace('"','')
-
- if self.variables[self.mode1]['value']:
- self.eqn_dict[self.mode1] = self.variables[self.mode1]['value']
- if self.variables[self.mode2]['value']:
- self.eqn_dict[self.mode2] = self.variables[self.mode2]['value']
- if self.variables['x_pc']['value']:
- self.eqn_dict['x_pc[1,:]'] = x_pc
- if self.variables['F_pc']['value']:
- self.eqn_dict['F_p[1]'] = self.variables['F_p[1]']['value']
-
- def get_start_values(self):
- try:
- if self.variables[self.mode1]['value']:
- self.start_dict[self.mode1] = self.variables[self.mode1]['value']
-
- if self.variables[self.mode2]['value']:
- self.start_dict[self.mode2] = self.variables[self.mode2]['value']
-
-
- if self.variables['x_pc[2,1]']['value'] != None:
- x_pcarr = []
- for i in range(1,4):
- cmf = []
- for j in range(1,len(self.compound_names)+1):
- cmf.append(str(self.variables['x_pc['+str(i)+','+str(j)+']']['value']))
- x_pcarr.append(cmf)
- x_pcstr = json.dumps(x_pcarr)
- x_pcstr = x_pcstr.replace('[','{')
- x_pcstr = x_pcstr.replace(']','}')
- x_pcstr = x_pcstr.replace('"','')
- self.start_dict['x_pc'] = x_pcstr
-
- if self.variables['xm_pc[2,1]']['value'] != None:
- xm_pcarr = []
- for i in range(1,4):
- cmf = []
- for j in range(1,len(self.compound_names)+1):
- cmf.append(str(self.variables['xm_pc['+str(i)+','+str(j)+']']['value']))
- xm_pcarr.append(cmf)
- xm_pcstr = json.dumps(x_pcarr)
- xm_pcstr = xm_pcstr.replace('[','{')
- xm_pcstr = xm_pcstr.replace(']','}')
- xm_pcstr = xm_pcstr.replace('"','')
- self.start_dict['xm_pc'] = xm_pcstr
-
- if self.variables['Fm_pc[2,1]']['value'] != None:
- Fm_pcarr = []
- for i in range(1,4):
- cmf = []
- for j in range(1,len(self.compound_names)+1):
- cmf.append(str(self.variables['Fm_pc['+str(i)+','+str(j)+']']['value']))
- Fm_pcarr.append(cmf)
- Fm_pcstr = json.dumps(x_pcarr)
- Fm_pcstr = Fm_pcstr.replace('[','{')
- Fm_pcstr = Fm_pcstr.replace(']','}')
- Fm_pcstr = Fm_pcstr.replace('"','')
- self.start_dict['Fm_pc'] = Fm_pcstr
-
- if self.variables['F_pc[2,1]']['value'] != None:
- F_pcarr = []
- for i in range(1,4):
- cmf = []
- for j in range(1,len(self.compound_names)+1):
- cmf.append(str(self.variables['F_pc['+str(i)+','+str(j)+']']['value']))
- F_pcarr.append(cmf)
- F_pcstr = json.dumps(F_pcarr)
- F_pcstr = F_pcstr.replace('[','{')
- F_pcstr = F_pcstr.replace(']','}')
- F_pcstr = F_pcstr.replace('"','')
- self.start_dict['F_pc'] = F_pcstr
-
- if self.variables['MW_p[2]']['value'] != None:
- MW_pArr = []
- for i in range(1,4):
- MW_pArr.append(self.variables['MW_p['+str(i)+']']['value'])
- MW_pStr = json.dumps(MW_pArr)
- MW_pStr = MW_pStr.replace('[','{')
- MW_pStr = MW_pStr.replace(']','}')
- MW_pStr = MW_pStr.replace('"','')
- self.start_dict['MW_p'] = MW_pStr
-
- if self.variables['F_p[2]']['value'] != None:
- F_pArr = []
- for i in range(1,4):
- F_pArr.append(self.variables['F_p['+str(i)+']']['value'])
- F_pStr = json.dumps(F_pArr)
- F_pStr = F_pStr.replace('[','{')
- F_pStr = F_pStr.replace(']','}')
- F_pStr = F_pStr.replace('"','')
- self.start_dict['F_p'] = F_pStr
-
- if self.variables['Cp_p[2]']['value'] != None:
- Cp_pArr = []
- for i in range(1,4):
- Cp_pArr.append(self.variables['Cp_p['+str(i)+']']['value'])
- Cp_pStr = json.dumps(Cp_pArr)
- Cp_pStr = Cp_pStr.replace('[','{')
- Cp_pStr = Cp_pStr.replace(']','}')
- Cp_pStr = Cp_pStr.replace('"','')
- self.start_dict['Cp_p'] = Cp_pStr
-
- if self.variables['H_p[2]']['value'] != None:
- H_pArr = []
- for i in range(1,4):
- H_pArr.append(self.variables['H_p['+str(i)+']']['value'])
- H_pStr = json.dumps(H_pArr)
- H_pStr = H_pStr.replace('[','{')
- H_pStr = H_pStr.replace(']','}')
- H_pStr = H_pStr.replace('"','')
- self.start_dict['H_p'] = H_pStr
-
-
- if self.variables['S_p[2]']['value'] != None:
- S_pArr = []
- for i in range(1,4):
- S_pArr.append(self.variables['S_p['+str(i)+']']['value'])
- S_pStr = json.dumps(S_pArr)
- S_pStr = S_pStr.replace('[','{')
- S_pStr = S_pStr.replace(']','}')
- S_pStr = S_pStr.replace('"','')
- self.start_dict['S_p'] = S_pStr
-
- if self.variables['Fm_p[2]']['value'] != None:
- Fm_pArr = []
- for i in range(1,4):
- Fm_pArr.append(self.variables['Fm_p['+str(i)+']']['value'])
- Fm_pStr = json.dumps(Fm_pArr)
- Fm_pStr = Fm_pStr.replace('[','{')
- Fm_pStr = Fm_pStr.replace(']','}')
- Fm_pStr = Fm_pStr.replace('"','')
- self.start_dict['Fm_p'] = Fm_pStr
-
- except Exception as e:
- exc_type, exc_obj, exc_tb = sys.exc_info()
- # print(exc_type,exc_tb.tb_lineno)
- # print(e)
- # print('error')
-
- def OM_Flowsheet_Initialize(self,addedcomp):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + ("model ms"+str(self.count)+"\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Streams.MaterialStream;\n" )
- self.OM_data_init = self.OM_data_init + ("extends Simulator.Files.ThermodynamicPackages."+self.thermo_package+";\n")
- self.OM_data_init = self.OM_data_init + ("end ms"+str(self.count)+";\n")
- comp_count = len(addedcomp)
-
- self.OM_data_init = self.OM_data_init + "ms"+str(self.count) +" " + self.name +"(Nc = " + str(comp_count)
- self.OM_data_init = self.OM_data_init + ",C = {"
- C = str(addedcomp).strip('[').strip(']')
- C = C.replace("'","")
- self.OM_data_init = self.OM_data_init + C + "},"
-
- self.OM_data_init = self.OM_data_init[:-1]
- self.OM_data_init = self.OM_data_init + ');\n'
- return self.OM_data_init
-
- def OM_Flowsheet_Equation(self,addedcomp,method):
- self.OM_data_eqn = ''
- self.comp_count = len(addedcomp)
- if method == 'Eqn':
- self.eqn_dict = {}
- self.get_min_eqn_values()
- if method == 'SM':
- self.eqn_dict = {}
- self.get_min_eqn_values()
-
- for key,value in self.eqn_dict.items():
- self.OM_data_eqn = self.OM_data_eqn + self.name + '.'+ key + ' = ' + str(value) + ';\n'
- return self.OM_data_eqn
-
- def disableInputDataTab(self,dockwidget):
- #setting the value of input data tab in dock widget and disabling them
- dockwidget.comboBox.setDisabled(True)
- dockwidget.input_dict['P'].setText(str(round(float(self.variables['P']['value']),4)))
- dockwidget.input_dict['P'].setDisabled(True)
- dockwidget.input_dict['T'].setText(str(round(float(self.variables['T']['value']),4)))
- dockwidget.input_dict['T'].setDisabled(True)
- dockwidget.input_dict['MolFlow'].setText(str(round(float(self.variables['F_p[1]']['value']),4)))
- dockwidget.input_dict['MolFlow'].setDisabled(True)
- dockwidget.cbTP.setCurrentText(str(self.thermo_package))
- dockwidget.cbTP.setDisabled(True)
- dockwidget.pushButton_2.setDisabled(True)
- for index,k in enumerate(dockwidget.x_pclist):
- k.setText(str(round(float(self.variables['x_pc[1,'+ str(index+1)+']']['value']),4)))
- k.setDisabled(True)
diff --git a/src/main/python/utils/UnitOperations.py b/src/main/python/utils/UnitOperations.py
deleted file mode 100644
index 2b16c7d..0000000
--- a/src/main/python/utils/UnitOperations.py
+++ /dev/null
@@ -1,737 +0,0 @@
-import os,sys
-import json
-current = os.path.dirname(os.path.realpath(__file__))
-parent = os.path.dirname(current)
-parentPath = os.path.dirname(parent)
-sys.path.append(parentPath)
-
-from python.OMChem.Flowsheet import Flowsheet
-from python.OMChem.EngStm import EngStm
-from python.utils.ComponentSelector import *
-from python.utils.Container import *
-from PyQt5.QtCore import *
-
-class UnitOperation():
- counter = 1
- def __init__(self):
- self.OM_data_eqn = ''
- self.OM_data_init = ''
- self.input_stms = {}
- self.output_stms = {}
- self.compounds = [c[:c.index('(')] for c in compound_selected]
- self.name = ''
- self.mode = None
- self.mode_val = None
- self.type = ''
- self.no_of_inputs = 1
- self.no_of_outputs = 1
- self.x = 2500-30
- self.y = 2500-30
- self.pos = QPointF(self.x, self.y)
- self.count = UnitOperation.counter
- self.variables = {}
- self.modes_list = []
- self.parameters = []
- self.extra = []
- self.for_naming = []
- self.multidict = []
- self.thermo_pack_req = False
- self.thermo_package = 'RaoultsLaw'
- self.saved = False
-
- def param_getter(self,mode=None):
- params = {}
- if mode == None and self.modes_list:
- self.mode = self.modes_list[0]
- else:
- self.mode = mode
- params[self.mode] = None
- for i in self.parameters:
- params[i] = self.variables[i]['value']
-
- return params
-
- def param_getter_tooltip(self,mode=None):
- params = {}
- if mode == None and self.modes_list:
- self.mode = self.modes_list[0]
- else:
- self.mode = mode
- params[self.mode] = None
- for i in self.parameters:
- params[self.variables[i]['name']] = str(self.variables[i]['value'])+' '+self.variables[i]['unit']
-
- return params
-
- def param_setter(self,params):
- #print("param_setter ", params)
- try:
- self.mode = list(params.keys())[0]
- except Exception as e:
- print(e)
- for k,v in params.items():
- if k == 'Thermo Package':
- self.thermo_package = v
- elif k != self.mode:
- self.k = v
- self.variables[k]['value'] = v
- else:
- self.variables[k]['value'] = v
- self.mode_val = params[self.mode]
-
-
- def add_connection(self,flag,sourceId, UnitOpr):
- if flag==1: # Input stream if flag is 1
- self.input_stms[sourceId] = UnitOpr
- else :
- self.output_stms[sourceId] = UnitOpr
-
- def set_pos(self,pos):
- self.pos = pos
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def OM_Flowsheet_Initialize(self):
- self.OM_data_init = ''
-
- if(self.thermo_pack_req):
- if len(self.extra)>1:
- for i in range(len(self.extra)):
- latest = ''
- for j in range(self.extra[i]):
- if self.extra[i][j]!='.':
- latest += self.extra[i][j]
- self.for_naming[i] = latest
-
- if(self.thermo_pack_req):
- if len(self.extra)==1:
- for i in self.extra:
- self.OM_data_init += ('model '+i+str(self.counter)+'\n')
- self.OM_data_init += ('extends Simulator.UnitOperations.'+i+';\n')
- self.OM_data_init += ('extends Simulator.Files.ThermodynamicPackages.'+self.thermo_package+';\n')
- self.OM_data_init += ('end '+i+str(self.counter)+';\n')
-
- self.OM_data_init += i+str(self.counter) + ' ' + self.name + '(Nc = ' + str(len(self.compounds))
- else:
- for i in range(len(self.extra)):
- if i!=(len(self.extra)-1):
- self.OM_data_init += ('model '+self.for_naming[i]+str(self.counter)+'\n')
- self.OM_data_init += ('extends Simulator.UnitOperations.'+self.extra[i]+';\n')
- self.OM_data_init += ('extends Simulator.Files.ThermodynamicPackages.'+self.thermo_package+';\n')
- self.OM_data_init += ('end '+self.for_naming[i]+str(self.counter)+';\n')
- else:
- self.OM_data_init += ('model '+self.for_naming[i]+str(self.counter)+'\n')
- self.OM_data_init += ('extends Simulator.UnitOperations.'+self.extra[i]+';\n')
- for j in range(len(self.extra)-1):
- self.OM_data_init += (self.for_naming[j] + str(self.counter) +' ' + self.for_naming[j] + '#' + self.multidict[j] + ';\n')
-
- self.OM_data_init += ('end '+self.for_naming[i]+str(self.counter)+';\n')
-
- self.OM_data_init += self.for_naming[i] + str(self.counter) + ' ' + self.for_naming + '(Nc = ' + str(len(self.compounds))
-
- C = str(self.compounds).strip('[').strip(']')
- C = C.replace("'", "")
- self.OM_data_init += ',C = {' + C + '}'
-
- for k in self.parameters:
- if(k == 'HKey_x_pc' or k == 'LKey_x_pc'):
- continue
- self.OM_data_init += ', '
- self.OM_data_init += k + ' = ' + (json.dumps(self.variables[k]['value']) if json.dumps(self.variables[k]['value']).replace('"', '').replace('_', '').isalpha()
- else json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}').replace('"', ''))
-
- self.OM_data_init += ');\n'
-
- else:
- self.OM_data_init += 'Simulator.UnitOperations.' + self.type + ' ' + self.name + '(Nc = ' + str(len(self.compounds))
- C = str(self.compounds).strip('[').strip(']')
- C = C.replace("'", "")
- self.OM_data_init += ',C = {' + C + '}'
-
- for k in self.parameters:
- self.OM_data_init += ', '
- self.OM_data_init += k + ' = ' + (json.dumps(self.variables[k]['value']) if json.dumps(self.variables[k]['value']).replace('"', '').replace('_', '').isalpha()
- else json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}').replace('"', ''))
-
- self.OM_data_init += ');\n'
- return self.OM_data_init
-
-
- def OM_Flowsheet_Equation(self):
- self.OM_data_eqn = ''
-
- if len(self.input_stms)>1 or self.type == 'Mixer':
- strcount = 1
- for strm in self.input_stms.values():
- self.OM_data_eqn += ('connect(' + strm.name + '.Out,' + self.name + '.In[' + str(strcount) + ']);\n')
- strcount += 1
- else:
- #print(self.input_stms)
- self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[1].name + '.Out);\n')
-
- if len(self.output_stms)>1:
- strcount = 1
- for strm in self.output_stms.values():
- self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out[' + str(strcount) + ']);\n')
- strcount += 1
- else:
- #print("self.output_stms ", self.output_stms)
- self.OM_data_eqn += ('connect(' + self.name + '.Out,' + self.output_stms[1].name + '.In);\n')
-
- if self.mode:
- self.OM_data_eqn += (self.name + '.' + self.mode + '=' + str(self.mode_val) + ';\n')
-
- return self.OM_data_eqn
-
-class ShortcutColumn(UnitOperation):
- def __init__(self, CompNames = [], name='ShortcutColumn'):
- UnitOperation.__init__(self)
- self.name = name + str(ShortcutColumn.counter)
- self.type = 'ShortcutColumn'
- self.no_of_inputs = 1
- self.no_of_outputs = 2
- self.EngStm1 = EngStm(name='EngStm1'+self.name)
- self.EngStm2 = EngStm(name='EngStm2'+self.name)
- self.count = ShortcutColumn.counter
-
- self.extra = ['ShortcutColumn']
- self.for_naming = ['ShortcutColumn']
- self.thermo_pack_req = True
-
- self.parameters = ['HKey', 'LKey', 'HKey_x_pc', 'LKey_x_pc', 'Ctype', 'Pcond', 'Preb', 'RR']
- self.result_parameters = ['RRmin', 'Ntmin', 'Nt', 'Intray', 'Fliqstrip', 'Fliqrec', 'Fvapstrip', 'Fvaprec', 'Qc', 'Qr']
- type(self).counter += 1
-
- self.variables = {
- 'HKey' : {'name':'Heavy Key', 'value': 0, 'unit':''},
- 'LKey' : {'name':'Light Key', 'value': 0, 'unit':''},
- 'HKey_x_pc' : {'name':'Heavy Key Mole Fraction', 'value':0.01, 'unit':''},
- 'LKey_x_pc' : {'name':'Light Key Mole Fraction', 'value':0.01, 'unit':''},
- 'Ctype' : {'name':'Condenser Type', 'value':'Total', 'unit':''},
- 'thermo_package' : {'name':'Thermo Package', 'value':'Raoults_Law', 'unit':''},
- 'Pcond' : {'name':'Condenser Pressure', 'value':101325, 'unit':'Pa'},
- 'Preb' : {'name':'Reboiler Pressure', 'value':101325, 'unit':'Pa'},
- 'RR' : {'name':'Reflux Ratio', 'value':1.5, 'unit':''},
-
- 'RRmin' : {'name':'Minimum Reflux Ratio', 'value': None , 'unit':''},
- 'Ntmin' : {'name':'Minimum Number of Stages', 'value': None, 'unit':''},
- 'Nt' : {'name':'Actual Number of Stages', 'value': None, 'unit':''},
- 'Intray' : {'name':'Optimal Feed Stage', 'value': None, 'unit':''},
- 'Fliqstrip' : {'name':'Stripping Liquid', 'value': None, 'unit':'mol/s'},
- 'Fliqrec' : {'name':'Rectification Liquid', 'value': None, 'unit':'mol/s'},
- 'Fvapstrip' : {'name':'Stripping Vapor', 'value': None, 'unit':'mol/s'},
- 'Fvaprec' : {'name':'Recification Vapour', 'value': None, 'unit':'mol/s'},
- 'Qc' : {'name':'Conderser Duty', 'value': None, 'unit':'W'},
- 'Qr' : {'name':'Reboiler Duty', 'value': None, 'unit':'W'},
-
- }
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def param_setter(self,params):
- #print("param_setter ", params)
- self.variables['HKey']['value'] = self.compounds.index(params[0]) + 1
- self.variables['LKey']['value'] = self.compounds.index(params[1]) + 1
- self.variables['HKey_x_pc']['value'] = params[2]
- self.variables['LKey_x_pc']['value'] = params[3]
- self.variables['Ctype']['value'] = params[4]
- self.variables['Pcond']['value'] = params[5]
- self.variables['Preb']['value'] = params[6]
- self.variables['RR']['value'] = params[7]
- self.variables['thermo_package']['value'] = params[8]
-
- def OM_Flowsheet_Equation(self):
- self.OM_data_eqn = ''
-
- self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[1].name + '.Out);\n')
-
- strcount = 1
- for strm in self.output_stms.values():
- self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out' + str(strcount) + ');\n')
- strcount += 1
-
- self.OM_data_eqn += (self.name + '.x_pc[2, ' + self.name + '.HKey] = ' + str(self.variables['HKey_x_pc']['value']) + ';\n')
- self.OM_data_eqn += (self.name + '.x_pc[3, ' + self.name + '.LKey] = ' + str(self.variables['LKey_x_pc']['value']) + ';\n')
-
- return self.OM_data_eqn
-
-class DistillationColumn(UnitOperation):
- def __init__(self,name='DistillationColumn'):
- UnitOperation.__init__(self)
- self.name = name + str(DistillationColumn.counter)
- self.type = 'DistillationColumn'
- self.no_of_inputs = 1
- self.no_of_outputs = 2
- self.EngStm1 = EngStm(name='EngStm1'+self.name)
- self.EngStm2 = EngStm(name='EngStm2'+self.name)
- self.count = DistillationColumn.counter
- self.thermo_pack_req = True
- self.modes_list = []
- self.parameters = ['Nt', 'Ni', 'Ctype', 'Pcond', 'condmode', 'C_comp', 'C_Spec', 'Preb', 'rebmode', 'rebcomp', 'R_Spec']
- self.result_parameters = ['Cduty.Q', 'Rduty.Q']
- self.Cspec_list = ['Reflux Ratio','Product Molar Flow (mol/s)', 'Temperature (K)', 'Compound Molar Fraction', 'Compound Molar Flow (mol/s)']
- self.Rspec_list = ['Product Molar Flow (mol/s)', 'Temperature (K)', 'Compound Molar Fraction', 'Compound Molar Flow (mol/s)']
-
- type(self).counter += 1
- self.variables = {
- 'Ni' : {'name':'Number of Input', 'value':1, 'unit':''},
- 'RR' : {'name':'Reflux Ratio', 'value':None, 'unit':''},
- 'T' : {'name':'Temperature', 'value':300, 'unit':'K'},
- 'Nout' : {'name':'No of Sidedraws', 'value':None, 'unit':''},
- 'Nt' : {'name':'No of Stages', 'value':12, 'unit':''},
- 'InT_s' : {'name':'Feed Stage', 'value':[], 'unit':''},
- 'thermo_package' : {'name':'Thermo Package', 'value':'Raoults_Law', 'unit':''},
- 'Ctype' : {'name':'Condenser Type', 'value':'Total', 'unit':''},
- 'Pcond' : {'name':'Condenser Pressure', 'value':101325, 'unit':'Pa'},
- 'Preb' : {'name':'Reboiler Pressure', 'value':101325, 'unit':'Pa'},
- 'C_Spec': {'name':'Condenser Specification', 'type':self.Cspec_list[0], 'value':'', 'comp':compound_selected[0], 'unit':''},
- 'R_Spec': {'name':'Reboiler Specification', 'type':self.Rspec_list[0], 'value':'', 'comp':compound_selected[0], 'unit':''},
- 'Cduty.Q': {'name':'Condenser Duty', 'value': '', 'unit':'W'},
- 'Rduty.Q': {'name':'Reboiler Duty', 'value': '', 'unit': 'W'},
- 'Stages.T': {'name':'Stagewise Temperature', 'value':[], 'unit':'K'},
- 'Stages.x_pc': {'name': 'Stagewise Component Mole Fraction', 'value':[],'unit':''}
- }
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def param_setter(self,params):
- #print("param_setter ", params)
- temp = 0
- self.variables['Nt']['value'] = params[0]
- for i in range(self.variables['Ni']['value']):
- self.variables['InT_s']['value'].append(params[i+1])
- temp = i + 1
-
- self.variables['Ctype']['value'] = params[temp+1]
- self.variables['Pcond']['value'] = params[temp+2]
- self.variables['C_Spec']['type'] = params[temp+3]
- if 'Compound' in self.variables['C_Spec']['type']:
- self.variables['C_Spec']['comp'] = params[temp+4]
- # C_Spec variable value won't be updated to class here. It will be updated in result
- self.variables['C_Spec']['value'] = params[temp+5]
- for var in self.variables:
- if self.variables[var]['name'] == self.variables['C_Spec']['type']:
- self.variables[var]['value'] = params[temp+5]
-
- self.variables['Preb']['value'] = params[temp+6]
- # R_Spec variable value won't be updated to class here. It will be updated in result
- self.variables['R_Spec']['type'] = params[temp+7]
- if 'Compound' in self.variables['R_Spec']['type']:
- self.variables['R_Spec']['comp'] = params[temp+8]
- self.variables['R_Spec']['value'] = params[temp+9]
- self.variables['thermo_package']['value'] = params[temp+10]
- #print(self.variables)
-
- def OM_Flowsheet_Initialize(self):
- self.OM_data_init = ''
- self.OM_data_init = self.OM_data_init + 'model Condenser\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.UnitOperations.DistillationColumn.Cond;\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Files.ThermodynamicPackages.' + self.thermo_package + ';\n'
- self.OM_data_init = self.OM_data_init + 'end Condenser;\n'
- self.OM_data_init = self.OM_data_init + 'model Tray\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.UnitOperations.DistillationColumn.DistTray;\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Files.ThermodynamicPackages.' + self.thermo_package + ';\n'
- self.OM_data_init = self.OM_data_init + 'end Tray;\n'
- self.OM_data_init = self.OM_data_init + 'model Reboiler\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.UnitOperations.DistillationColumn.Reb;\n'
- self.OM_data_init = self.OM_data_init + 'extends Simulator.Files.ThermodynamicPackages.' + self.thermo_package + ';\n'
- self.OM_data_init = self.OM_data_init + 'end Reboiler;\n'
- self.OM_data_init = self.OM_data_init + ("model distCol" + str(self.count) + "\n")
- self.OM_data_init = self.OM_data_init + ("extends Simulator.UnitOperations.DistillationColumn.DistCol;\n")
- self.OM_data_init = self.OM_data_init + (
- "Condenser condenser(Nc = Nc, C = C, Ctype =Ctype, Bin = Bin_t[1], T(start = 300));\n")
- self.OM_data_init = self.OM_data_init + (
- "Reboiler reboiler(Nc = Nc, C = C, Bin = Bin_t[Nt]);\n")
- self.OM_data_init = self.OM_data_init + (
- "Tray tray[Nt - 2](each Nc = Nc, each C = C, Bin = Bin_t[2:Nt - 1]);\n")
- self.OM_data_init = self.OM_data_init + ("end distCol" + str(self.count) + ";\n")
- comp_count = len(self.compounds)
- self.OM_data_init = self.OM_data_init + (
- "distCol" + str(self.count) + " " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (", C= C")
-
- self.OM_data_init = self.OM_data_init + "," + (
- "Nt=" + str(self.variables['Nt']['value']) + "," + "Ni="
- + str(self.variables['Ni']['value']) + ",InT_s=" + "{" +
- str(self.variables['InT_s']['value']).strip('[').strip(']') + "}" + ',Ctype ="' +
- self.variables['Ctype']['value'] + '");\n')
- return self.OM_data_init
-
- def OM_Flowsheet_Equation(self):
- self.OM_data_eqn = ''
- self.OM_data_eqn = self.OM_data_eqn + (
- 'connect(' + self.name + '.Dist' + ", " + self.output_stms[1].name + '.In);\n')
- self.OM_data_eqn = self.OM_data_eqn + (
- 'connect(' + self.name + '.Bot' + ", " + self.output_stms[2].name + '.In);\n')
- for i in range(len(self.input_stms)):
- self.OM_data_eqn = self.OM_data_eqn + (
- 'connect(' + self.input_stms[i +1].name + '.Out' + ", " + self.name + '.In_s[' + str(
- i + 1) + ']);\n')
- # ['Product Molar Flow (mol/s)', 'Temperature (K)', 'Compound Molar Fraction',
- # 'Compound Molar Flow (mol/s)']
- if self.variables['C_Spec']['type'] == "Reflux Ratio":
- self.OM_data_eqn = self.OM_data_eqn + (
- self.name + '.' + 'RR' + '=' + str(self.variables['RR']['value']) + ';\n')
- elif self.variables['C_Spec']['type'] == "Product Molar Flow (mol/s)":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[1].name + '.' + 'F_p[1] = ' + str(
- self.variables['C_Spec']['value']) + ';\n')
- elif self.variables['C_Spec']['type'] == "Temperature (K)":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[1].name + '.' + 'T = ' + str(
- self.variables['C_Spec']['value']) + ';\n')
- elif self.variables['C_Spec']['type'] == "Compound Molar Fraction":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[1].name + '.x_pc[1,:' +
- str(self.compounds.index(self.variables['C_Spec']['comp']) + 1) + '] = ' + str(
- self.variables['C_Spec']['value']) + ';\n')
- elif self.variables['C_Spec']['type'] == "Compound Molar Flow (mol/s)":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[1].name + '.F_pc[1,:' +
- str(self.compounds.index(self.variables['C_Spec']['comp']) + 1) + '] = ' + str(
- self.variables['C_Spec']['value']) + ';\n')
- else:
- self.OM_data_eqn = self.OM_data_eqn + (
- self.name + '.Condenser.' + self.mode + '=' + str(self.modeVal) + ';\n')
-
- if self.variables['R_Spec']['type'] == "Product Molar Flow (mol/s)":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[2].name + '.' + 'F_p[1] = ' + str(
- self.variables['R_Spec']['value']) + ';\n')
- elif self.variables['R_Spec']['type'] == "Temperature (K)":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[2].name + '.' + 'T = ' + str(
- self.variables['R_Spec']['value']) + ';\n')
- elif self.variables['R_Spec']['type'] == "Compound Molar Fraction":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[2].name + '.x_pc[1,:' +
- str(self.compounds.index(self.variables['R_Spec']['comp']) + 1) + '] = ' + str(
- self.variables['R_Spec']['value']) + ';\n')
- elif self.variables['R_Spec']['type'] == "Compound Molar Flow (mol/s)":
- self.OM_data_eqn = self.OM_data_eqn + (self.output_stms[2].name + '.F_pc[1,:' +
- str(self.compounds.index(self.variables['R_Spec']['comp']) + 1) + '] = ' + str(
- self.variables['R_Spec']['value']) + ';\n')
-
-
- self.OM_data_eqn = self.OM_data_eqn + self.name + '.reboiler.P=' + str(
- self.variables['Preb']['value']) + ';\n'
- self.OM_data_eqn = self.OM_data_eqn + self.name + '.condenser.P=' + str(
- self.variables['Pcond']['value']) + ';\n'
- return self.OM_data_eqn
-
-class ConvertionReactor(UnitOperation):
- def __init__(self,name='',Nr=None,b=None,X=None,Z=None,a=[],operation=None,Tdef=None):
- UnitOperation.__init__(self)
- self.name = name
- self.type = 'ConvertionReactor'
-
- self.Nr = str(Nr)
- self.b = str(b)
- self.X = str(X)
- self.Z = str(Z)
- self.a = json.dumps(a).replace('[','{').replace(']','}')
- self.operation = str(operation)
- self.Tdef = str(Tdef)
-
-class CompoundSeparator(UnitOperation):
- def __init__(self, name='CompoundSeparator'):
- UnitOperation.__init__(self)
- self.name = name + str(CompoundSeparator.counter)
- self.type = 'CompoundSeparator'
- self.no_of_inputs = 1
- self.no_of_outputs = 2
-
- self.SepFact_modes = ['Molar_Flow (mol/s)', 'Mass_Flow (g/s)', 'Inlet_Molar_Flow_Percent', 'Outlet_Molar_Flow_Percent']
-
- type(self).counter += 1
- self.variables = {
- 'SepStrm' : {'name':'Separation Stream', 'value':1, 'unit':''},
- 'SepVal_c' : {'name':'Separation Value', 'value':['']*len(self.compounds), 'unit':''},
- 'SepFact_c' : {'name':'Separaction Factor', 'value':['']*len(self.compounds), 'unit':''},
- }
-
- def init_variables(self):
- self.variables = {
- 'SepStrm' : {'name':'Separation Stream', 'value':1, 'unit':''},
- 'SepVal_c' : {'name':'Separation Value', 'value':['']*len(self.compounds), 'unit':''},
- 'SepFact_c' : {'name':'Separaction Factor', 'value':['']*len(self.compounds), 'unit':''},
- }
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def param_setter(self,params):
- #print("param_setter CompSep ", params)
-
- if (params[0]):
- self.variables['SepStrm']['value'] = 1
- else:
- self.variables['SepStrm']['value'] = 2
- for index, i in enumerate(range(2, len(params))):
- if (i %2 != 0):
- self.variables['SepVal_c']['value'][index//2] = float(params[i])
- else:
- self.variables['SepFact_c']['value'][index//2] = params[i]
-
- def OM_Flowsheet_Initialize(self):
- SepStrm = str(self.variables['SepStrm']['value'])
- SepFact = []
- for i in range(len(self.compounds)):
- SepFact.append(self.variables['SepFact_c']['value'][i].split(' ')[0])
- SepFact = json.dumps(SepFact).replace('[', '{').replace(']', '}')
- self.OM_data_init = ''
- comp_count = len(self.compounds)
- self.OM_data_init = self.OM_data_init + (
- "Simulator.UnitOperations.CompoundSeparator " + self.name + "(Nc = " + str(comp_count))
- self.OM_data_init = self.OM_data_init + (", C = {")
- comp = str(self.compounds).strip('[').strip(']')
- comp = comp.replace("'", "")
- self.OM_data_init = self.OM_data_init + comp + ("},")
- self.OM_data_init = self.OM_data_init + ("SepFact_c = " + SepFact + ",SepStrm = " + SepStrm + ");\n")
-
- return self.OM_data_init
-
-
- def OM_Flowsheet_Equation(self):
- SepVal = json.dumps(self.variables['SepVal_c']['value']).replace('[','{').replace(']','}')
- self.OM_data_eqn = ''
-
- self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[1].name + '.Out);\n')
-
- strcount = 1
- for strm in self.output_stms.values():
- self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out' + str(strcount) + ');\n')
- strcount += 1
-
- self.OM_data_eqn += (self.name + '.SepVal_c ' + '=' + SepVal + ';\n')
-
- return self.OM_data_eqn
-
-class Flash(UnitOperation):
- def __init__(self,name='Flash'):
- UnitOperation.__init__(self)
- self.name = name + str(Flash.counter)
- self.type = 'Flash'
- self.extra = ['Flash']
- self.for_naming = ['Flash']
- self.no_of_inputs = 1
- self.no_of_outputs = 2
- self.count = Flash.counter
- self.thermo_pack_req = True
- self.parameters = ['BTdef', 'Tdef', 'BPdef', 'Pdef']
-
- type(self).counter += 1
- self.variables = {
- 'thermo_package' : {'name':'Thermo Package', 'value':None, 'unit':''},
- 'BTdef' : {'name':'Separation Temperature Boolean', 'value':False, 'unit':''},
- 'BPdef' : {'name':'Separation Pressure Boolean', 'value':False, 'unit':''},
- 'Tdef' : {'name':'Separation Temperature', 'value':298.15, 'unit':'K'},
- 'Pdef' : {'name':'Separation Pressure', 'value':101325, 'unit':'Pa'}
- }
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def param_setter(self,params):
- #print("param_setter ", params)
- self.variables['thermo_package']['value'] = params[0]
- self.variables['BTdef']['value'] = params[1]
- self.variables['Tdef']['value'] = params[2]
- self.variables['BPdef']['value'] = params[3]
- self.variables['Pdef']['value'] = params[4]
-
- def OM_Flowsheet_Equation(self):
- self.OM_data_eqn = ''
-
- self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[1].name + '.Out);\n')
-
- strcount = 1
- for strm in self.output_stms.values():
- self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out' + str(strcount) + ');\n')
- strcount += 1
-
- return self.OM_data_eqn
-
-class CentrifugalPump(UnitOperation):
- def __init__(self,name='CentrifugalPump'):
- UnitOperation.__init__(self)
- self.name = name + str(CentrifugalPump.counter)
- self.type = 'CentrifugalPump'
- self.modes_list = ['Pdel', 'Pout', 'Q'] #"enFlo"
- self.parameters = ['Eff']
-
- type(self).counter += 1
- self.variables = {
- 'Eff' : {'name':'Efficiency', 'value':1, 'unit':''},
- 'Pdel' : {'name':'Pressure Increase', 'value':None, 'unit':'Pa'},
- 'Pout' : {'name':'Outlet Pressure', 'value':None, 'unit':'Pa'},
- 'Q' : {'name':'Power Required', 'value':None, 'unit':'W'},
- }
-
-class Valve(UnitOperation):
- def __init__(self,name='Valve'):
- UnitOperation.__init__(self)
- self.name = name + str(Valve.counter)
- self.type = 'Valve'
- self.modes_list = ['Pdel', 'Pout']
-
- type(self).counter += 1
- self.variables = {
- 'Pdel' : {'name':'Pressure Drop', 'value':None, 'unit':'Pa'},
- 'Pout' : {'name':'Outlet Pressure', 'value':None, 'unit':'Pa'}
- }
-
-class Splitter(UnitOperation):
- def __init__(self,name='Splitter'):
- UnitOperation.__init__(self)
- self.name = name + str(Splitter.counter)
- self.type = 'Splitter'
- self.no_of_outputs = 2
-
- self.CalcType_modes = ['Split_Ratio', 'Molar_Flow', 'Mass_Flow']
-
- self.parameters = ['No', 'CalcType', 'SpecVal_s']
- type(self).counter += 1
-
- self.variables = {
- 'No' : {'name':'No. of Output', 'value':2, 'unit':''},
- 'CalcType' : {'name':'Calculation Type', 'value':self.CalcType_modes[0], 'unit':''},
- 'SpecVal_s' : {'name':'Specification Value', 'value':[0.5,0.5], 'unit':''}
- }
-
- specval = self.variables['SpecVal_s']['value']
- self.specval = json.dumps(specval).replace('[','{').replace(']','}')
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def param_setter(self,params):
- #print("param_setter ", params)
- self.variables['No']['value'] = int(params[0])
- self.variables['CalcType']['value'] = params[1]
- self.variables['SpecVal_s']['value'] = [float(params[2]), float(params[3])]
- if self.variables['CalcType']['value'] == 'Molar_Flow':
- self.variables['SpecVal_s']['unit'] = 'mol/s'
- elif self.variables['CalcType']['value'] == 'Mass_Flow':
- self.variables['SpecVal_s']['unit'] = 'g/s'
- else:
- self.variables['SpecVal_s']['unit'] = ''
-
-class Mixer(UnitOperation):
-
- def __init__(self,name='Mixer'):
- UnitOperation.__init__(self)
- self.name = name + str(Mixer.counter)
- self.type = 'Mixer'
- self.no_of_inputs = 2
-
- self.Pout_modes = ['Inlet_Minimum', 'Inlet_Average', 'Inlet_Maximum']
- self.parameters = ['NI', 'outPress']
- type(self).counter += 1
-
- self.variables = {
- 'NI' : {'name':'Number of Input', 'value':6, 'unit':''},
- 'outPress' : {'name':'Outlet Pressure', 'value':'Inlet_Average', 'unit':''},
- }
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
- def param_setter(self, params):
- self.variables['NI']['value'] = int(params[0])
- self.variables['outPress']['value'] = params[1]
-
-class Heater(UnitOperation):
-
- def __init__(self, name='Heater'):
- UnitOperation.__init__(self)
- self.name = name + str(type(self).counter)
- self.type = 'Heater'
- self.no_of_inputs = 1
- self.no_of_outputs = 1
- self.modes_list = ['Q','Tout','xvapout','Tdel']
- self.parameters = ['Pdel', 'Eff']
- self.extra = None
- self.for_naming = None
- type(self).counter += 1
-
- self.variables = {
- 'Pdel' : {'name':'Pressure Drop', 'value':0, 'unit':'Pa'},
- 'Eff' : {'name':'Efficiency', 'value':1, 'unit':''},
- 'Tout' : {'name':'Outlet Temperature', 'value':298.15, 'unit':'K'},
- 'Tdel' : {'name':'Temperature Increase', 'value':0, 'unit':'K'},
- 'Q' : {'name':'Heat Added', 'value':0, 'unit':'W'},
- 'xvapout': {'name':'Outlet Vapour', 'value':None, 'unit':''}
- }
-
-class Cooler(UnitOperation):
-
- def __init__(self, name='Cooler'):
- UnitOperation.__init__(self)
- self.name = name + str(type(self).counter)
- self.type = 'Cooler'
- self.no_of_inputs = 1
- self.no_of_outputs = 1
- self.modes_list = ['Q','Tout','Tdel','xvap']
- self.extra = None
- self.for_naming = None
- self.parameters = ['Pdel', 'Eff']
- type(self).counter += 1
-
- self.variables = {
- 'Pdel' : {'name':'Pressure Drop', 'value':0, 'unit':'Pa'},
- 'Eff' : {'name':'Efficiency', 'value':1, 'unit':''},
- 'Tout' : {'name':'Outlet Temperature', 'value':298.15, 'unit':'K'},
- 'Tdel' : {'name':'Temperature Increase', 'value':0, 'unit':'K'},
- 'Q' : {'name':'Heat Added', 'value':0, 'unit':'W'},
- 'xvap' : {'name':'Vapour Phase Mole Fraction', 'value':None, 'unit':'g/s'},
- }
-
-class AdiabaticCompressor(UnitOperation):
-
- def __init__(self, name='AdiabaticCompressor'):
- UnitOperation.__init__(self)
- self.name = name + str(type(self).counter)
- self.type = 'AdiabaticCompressor'
- self.no_of_inputs = 1
- self.no_of_outputs = 1
- self.modes_list = ["Pdel","Pout","Q"]
- self.extra = ['AdiabaticCompressor']
- self.for_naming = ['AdiabaticCompressor']
- self.thermo_pack_req = True
- self.thermo_package ="RaoultsLaw"
- self.parameters = ['Eff']
- type(self).counter += 1
- self.variables = {
- 'Pdel' : {'name':'Pressure Increase', 'value':0, 'unit':'Pa'},
- 'Tdel' : {'name':'Temperature Increase', 'value':0, 'unit':'K'},
- 'Pout' : {'name':'Outlet Pressure', 'value':101325, 'unit':'Pa'},
- 'Tout' : {'name':'Outlet Temperature', 'value':298.15, 'unit':'K'},
- 'Q' : {'name':'Heat Added', 'value':0, 'unit':'W'},
- 'Eff' : {'name':'Efficiency', 'value':1, 'unit':''}
- }
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
-
-class AdiabaticExpander(UnitOperation):
-
- def __init__(self, name='AdiabaticExpander'):
- UnitOperation.__init__(self)
- self.name = name + str(type(self).counter)
- self.type = 'AdiabaticExpander'
- self.no_of_inputs = 1
- self.no_of_outputs = 1
- self.modes_list = ["Pdel","Pout","Q"]
- self.extra = ['AdiabaticExpander']
- self.for_naming = ['AdiabaticExpander']
- self.thermo_pack_req = True
- self.thermo_package ="RaoultsLaw"
- self.parameters = ['Eff']
- type(self).counter += 1
- self.variables = {
- 'Pdel' : {'name':'Pressure Drop', 'value':0, 'unit':'Pa'},
- 'Tdel' : {'name':'Temperature Increase', 'value':0, 'unit':'K'},
- 'Pout' : {'name':'Outlet Pressure', 'value':101325, 'unit':'Pa'},
- 'Tout' : {'name':'Outlet Temperature', 'value':298.15, 'unit':'K'},
- 'Q' : {'name':'Heat Added', 'value':0, 'unit':'W'},
- 'Eff' : {'name':'Efficiency', 'value':1, 'unit':''}
- }
-
- def update_compounds(self):
- self.compounds = [c[:c.index('(')] for c in compound_selected]
\ No newline at end of file
diff --git a/src/main/python/utils/__init__.py b/src/main/python/utils/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/python/utils/__pycache__/Bin_Phase_env.cpython-37.pyc b/src/main/python/utils/__pycache__/Bin_Phase_env.cpython-37.pyc
deleted file mode 100644
index 35c4753..0000000
Binary files a/src/main/python/utils/__pycache__/Bin_Phase_env.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/__pycache__/ComponentSelector.cpython-37.pyc b/src/main/python/utils/__pycache__/ComponentSelector.cpython-37.pyc
deleted file mode 100644
index b6bceec..0000000
Binary files a/src/main/python/utils/__pycache__/ComponentSelector.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/__pycache__/Container.cpython-37.pyc b/src/main/python/utils/__pycache__/Container.cpython-37.pyc
deleted file mode 100644
index 98797d2..0000000
Binary files a/src/main/python/utils/__pycache__/Container.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/__pycache__/Graphics.cpython-37.pyc b/src/main/python/utils/__pycache__/Graphics.cpython-37.pyc
deleted file mode 100644
index 7426c2f..0000000
Binary files a/src/main/python/utils/__pycache__/Graphics.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/__pycache__/Streams.cpython-37.pyc b/src/main/python/utils/__pycache__/Streams.cpython-37.pyc
deleted file mode 100644
index 18287f2..0000000
Binary files a/src/main/python/utils/__pycache__/Streams.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/__pycache__/UnitOperations.cpython-37.pyc b/src/main/python/utils/__pycache__/UnitOperations.cpython-37.pyc
deleted file mode 100644
index ac4d056..0000000
Binary files a/src/main/python/utils/__pycache__/UnitOperations.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/__pycache__/__init__.cpython-37.pyc b/src/main/python/utils/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index a687f51..0000000
Binary files a/src/main/python/utils/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/utils/thermopackage.txt b/src/main/python/utils/thermopackage.txt
deleted file mode 100644
index f9155f5..0000000
--- a/src/main/python/utils/thermopackage.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-RaoultsLaw
-NRTL
-UNIQUAC
-UNIFAC
-PengRobinson
-GraysonStreed
\ No newline at end of file
diff --git a/src/main/python/venv/Lib/site-packages/__pycache__/mccabe.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/__pycache__/mccabe.cpython-37.pyc
deleted file mode 100644
index 44dca75..0000000
Binary files a/src/main/python/venv/Lib/site-packages/__pycache__/mccabe.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/__pycache__/six.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/__pycache__/six.cpython-37.pyc
deleted file mode 100644
index 07b383b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/__pycache__/six.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING
deleted file mode 100644
index d511905..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING.LESSER b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING.LESSER
deleted file mode 100644
index 2d2d780..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/COPYING.LESSER
+++ /dev/null
@@ -1,510 +0,0 @@
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard. To achieve this, non-free programs must
-be allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at least
- three years, to give the same user the materials specified in
- Subsection 6a, above, for a charge no more than the cost of
- performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
- To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James
- Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/INSTALLER b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/INSTALLER
deleted file mode 100644
index a1b589e..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/INSTALLER
+++ /dev/null
@@ -1 +0,0 @@
-pip
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/METADATA b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/METADATA
deleted file mode 100644
index 2805693..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/METADATA
+++ /dev/null
@@ -1,117 +0,0 @@
-Metadata-Version: 2.1
-Name: astroid
-Version: 2.3.3
-Summary: An abstract syntax tree for Python with inference support.
-Home-page: https://github.com/PyCQA/astroid
-Author: Python Code Quality Authority
-Author-email: code-quality@python.org
-License: LGPL
-Platform: UNKNOWN
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Software Development :: Quality Assurance
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Requires-Python: >=3.5.*
-Requires-Dist: lazy-object-proxy (==1.4.*)
-Requires-Dist: six (~=1.12)
-Requires-Dist: wrapt (==1.11.*)
-Requires-Dist: typed-ast (<1.5,>=1.4.0) ; implementation_name == "cpython" and python_version < "3.8"
-
-Astroid
-=======
-
-.. image:: https://travis-ci.org/PyCQA/astroid.svg?branch=master
- :target: https://travis-ci.org/PyCQA/astroid
-
-.. image:: https://ci.appveyor.com/api/projects/status/co3u42kunguhbh6l/branch/master?svg=true
- :alt: AppVeyor Build Status
- :target: https://ci.appveyor.com/project/PCManticore/astroid
-
-.. image:: https://coveralls.io/repos/github/PyCQA/astroid/badge.svg?branch=master
- :target: https://coveralls.io/github/PyCQA/astroid?branch=master
-
-.. image:: https://readthedocs.org/projects/astroid/badge/?version=latest
- :target: http://astroid.readthedocs.io/en/latest/?badge=latest
- :alt: Documentation Status
-
-.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
- :target: https://github.com/ambv/black
-
-.. |tideliftlogo| image:: doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png
- :width: 75
- :height: 60
- :alt: Tidelift
-
-.. list-table::
- :widths: 10 100
-
- * - |tideliftlogo|
- - Professional support for astroid is available as part of the `Tidelift
- Subscription`_. Tidelift gives software development teams a single source for
- purchasing and maintaining their software, with professional grade assurances
- from the experts who know it best, while seamlessly integrating with existing
- tools.
-
-.. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-astroid?utm_source=pypi-astroid&utm_medium=referral&utm_campaign=readme
-
-
-
-What's this?
-------------
-
-The aim of this module is to provide a common base representation of
-python source code. It is currently the library powering pylint's capabilities.
-
-It provides a compatible representation which comes from the `_ast`
-module. It rebuilds the tree generated by the builtin _ast module by
-recursively walking down the AST and building an extended ast. The new
-node classes have additional methods and attributes for different
-usages. They include some support for static inference and local name
-scopes. Furthermore, astroid can also build partial trees by inspecting living
-objects.
-
-
-Installation
-------------
-
-Extract the tarball, jump into the created directory and run::
-
- pip install .
-
-
-If you want to do an editable installation, you can run::
-
- pip install -e .
-
-
-If you have any questions, please mail the code-quality@python.org
-mailing list for support. See
-http://mail.python.org/mailman/listinfo/code-quality for subscription
-information and archives.
-
-Documentation
--------------
-http://astroid.readthedocs.io/en/latest/
-
-
-Python Versions
----------------
-
-astroid 2.0 is currently available for Python 3 only. If you want Python 2
-support, older versions of astroid will still supported until 2020.
-
-Test
-----
-
-Tests are in the 'test' subdirectory. To launch the whole tests suite, you can use
-either `tox` or `pytest`::
-
- tox
- pytest astroid
-
-
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/RECORD b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/RECORD
deleted file mode 100644
index f5d983e..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/RECORD
+++ /dev/null
@@ -1,145 +0,0 @@
-astroid-2.3.3.dist-info/COPYING,sha256=qxX9UmvY3Rip5368E5ZWv00z6X_HI4zRG_YOK5uGZsY,17987
-astroid-2.3.3.dist-info/COPYING.LESSER,sha256=qb3eVhbs3R6YC0TzYGAO6Hg7H5m4zIOivrFjoKOQ6GE,26527
-astroid-2.3.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-astroid-2.3.3.dist-info/METADATA,sha256=i0Ut5kY28jjA7pIT7o-_UbHKI5HbTXA0xQubIxcHO8w,3869
-astroid-2.3.3.dist-info/RECORD,,
-astroid-2.3.3.dist-info/WHEEL,sha256=p46_5Uhzqz6AzeSosiOnxK-zmFja1i22CrQCjmYe8ec,92
-astroid-2.3.3.dist-info/top_level.txt,sha256=HsdW4O2x7ZXRj6k-agi3RaQybGLobI3VSE-jt4vQUXM,8
-astroid/__init__.py,sha256=tJJMsKzMv8hUgw3y0VQAAMx9BO-nrNUcNy_wI0XBFXo,5538
-astroid/__pkginfo__.py,sha256=vS7X-qu0abKFCIxjA0h9994nl1zj7Ziu3lEz9jniONU,2053
-astroid/__pycache__/__init__.cpython-37.pyc,,
-astroid/__pycache__/__pkginfo__.cpython-37.pyc,,
-astroid/__pycache__/_ast.cpython-37.pyc,,
-astroid/__pycache__/arguments.cpython-37.pyc,,
-astroid/__pycache__/as_string.cpython-37.pyc,,
-astroid/__pycache__/bases.cpython-37.pyc,,
-astroid/__pycache__/builder.cpython-37.pyc,,
-astroid/__pycache__/context.cpython-37.pyc,,
-astroid/__pycache__/decorators.cpython-37.pyc,,
-astroid/__pycache__/exceptions.cpython-37.pyc,,
-astroid/__pycache__/helpers.cpython-37.pyc,,
-astroid/__pycache__/inference.cpython-37.pyc,,
-astroid/__pycache__/manager.cpython-37.pyc,,
-astroid/__pycache__/mixins.cpython-37.pyc,,
-astroid/__pycache__/modutils.cpython-37.pyc,,
-astroid/__pycache__/node_classes.cpython-37.pyc,,
-astroid/__pycache__/nodes.cpython-37.pyc,,
-astroid/__pycache__/objects.cpython-37.pyc,,
-astroid/__pycache__/protocols.cpython-37.pyc,,
-astroid/__pycache__/raw_building.cpython-37.pyc,,
-astroid/__pycache__/rebuilder.cpython-37.pyc,,
-astroid/__pycache__/scoped_nodes.cpython-37.pyc,,
-astroid/__pycache__/test_utils.cpython-37.pyc,,
-astroid/__pycache__/transforms.cpython-37.pyc,,
-astroid/__pycache__/util.cpython-37.pyc,,
-astroid/_ast.py,sha256=6OGeHGRbK6oLmrsw6-UOpLFlIV1rStrA7BNpKGsu5Lw,1406
-astroid/arguments.py,sha256=cui-UmbEeywSk0eitSrOhi9F0Ci2clS4qYXTi8uXRs4,11783
-astroid/as_string.py,sha256=8SoRjh8UlDRWkbFMTvse9th8flPt6iu9xOcBip1s1f8,22411
-astroid/bases.py,sha256=G2Zs5OEHoshjLJT8e-ApDH9Q3EZtC27cKJ5yKf84_7w,18698
-astroid/brain/__pycache__/brain_argparse.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_attrs.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_builtin_inference.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_collections.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_crypt.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_curses.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_dataclasses.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_dateutil.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_fstrings.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_functools.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_gi.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_hashlib.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_http.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_io.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_mechanize.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_multiprocessing.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_namedtuple_enum.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_nose.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_core_fromnumeric.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_core_function_base.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_core_multiarray.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_core_numeric.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_core_numerictypes.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_core_umath.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_ndarray.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_random_mtrand.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_numpy_utils.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_pkg_resources.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_pytest.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_qt.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_random.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_re.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_six.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_ssl.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_subprocess.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_threading.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_typing.cpython-37.pyc,,
-astroid/brain/__pycache__/brain_uuid.cpython-37.pyc,,
-astroid/brain/brain_argparse.py,sha256=VEeMCr3OIjHmCy35uc-kX6nJ5_NUOAimpGJMr6CChoA,1024
-astroid/brain/brain_attrs.py,sha256=k8zJqIXsIbQrncthrzyB5NtdPTktgVi9wG7nyl8xMzs,2208
-astroid/brain/brain_builtin_inference.py,sha256=Ttwr1Ekt1_czEF50uEjY0dA5S89WFqyyBl0sWPUaYnE,27206
-astroid/brain/brain_collections.py,sha256=8Vmsb9I19er3MycZtT6qWDrIMV_SEHtl87gTPC5qQHc,2651
-astroid/brain/brain_crypt.py,sha256=gA7Q4GVuAM4viuTGWM6SNTPQXv5Gr_mFapyKMTRcsJ0,875
-astroid/brain/brain_curses.py,sha256=tDnlCP1bEvleqCMz856yua9mM5um1p_JendFhT4rBFk,3303
-astroid/brain/brain_dataclasses.py,sha256=5WndOYSY0oi2v-Od6KdPte-FKt00LoNRH2riSB4S1os,1647
-astroid/brain/brain_dateutil.py,sha256=q2dyV2907Bw4n7m2W4EEdok3Ndv8NzeIQxAZwXBiS14,795
-astroid/brain/brain_fstrings.py,sha256=VKVMijgLE2pg2dtXM6GGFgONOxOg8qA9D5V6dYzWTbQ,2121
-astroid/brain/brain_functools.py,sha256=gGMs0cEMVXR9pRPeu3LqkMARE6yzymvC7pzmRbJCWIY,5400
-astroid/brain/brain_gi.py,sha256=-EpcKf9z3wT_7v0k0WXIZtgk3-213lkfUX9bxeKOM3Y,6810
-astroid/brain/brain_hashlib.py,sha256=cp30hX5HhWqbWG3zqcNu8N3aHGeQK4DPi4ac8owBonU,2163
-astroid/brain/brain_http.py,sha256=-cQohgE5uQ5eBBjjFg7P5c2OlganAK6yZOKA6EkKd6o,10317
-astroid/brain/brain_io.py,sha256=DJcTFMTexrsHaGg2-kHoXwonddu13ImT7NEjiF1xPiU,1470
-astroid/brain/brain_mechanize.py,sha256=xTBc-u2DMmMPeci7DVFs4L2T98DwwLF_Ob5YZviLPp8,889
-astroid/brain/brain_multiprocessing.py,sha256=4iLBXpB7Bgy_hGVx-xhV7spYKg5tc4OybIiBcuwNL7U,3017
-astroid/brain/brain_namedtuple_enum.py,sha256=JBRVBhPSicUAixPdeEerhnxeEJtVnS7T1FkVhvJcDZU,15722
-astroid/brain/brain_nose.py,sha256=kECw2jHmX0IUPX4Gx3XVGrflKGnlgPB79QHt6WU2cwQ,2211
-astroid/brain/brain_numpy_core_fromnumeric.py,sha256=_mtg-7jySDnDoxhtrNtimVZ_lbsm63jb7U0iqcBjgLY,626
-astroid/brain/brain_numpy_core_function_base.py,sha256=2jtHOa_RCMlig7UZVUWSmICFvotvu7bZKCdLZhbTc0Q,1173
-astroid/brain/brain_numpy_core_multiarray.py,sha256=e-igYgbLP8UhCq3VSlRhykhXyoMcO2M7UOcrbzfuWpQ,1890
-astroid/brain/brain_numpy_core_numeric.py,sha256=RP9L1GfhPBGK3KQeeDoo-OyFUvkVNksw0sc9a6t3NJ8,1389
-astroid/brain/brain_numpy_core_numerictypes.py,sha256=RBRdil8D5qtTj6yquQ6_JwYACKRM7vfh4p7nwy3MYLk,7706
-astroid/brain/brain_numpy_core_umath.py,sha256=GGTCDVNDKEAppXjjToNzawa8lpCFr9GEh0OY3eQulec,5279
-astroid/brain/brain_numpy_ndarray.py,sha256=GMDomYcpCfCoKa1amdtQPsdy_VMPot3QUaG9mxlApBk,8417
-astroid/brain/brain_numpy_random_mtrand.py,sha256=It76Xh4atuxwGtsHiXe4llvEKyKh0R5Wa7MgG5y5vVU,3284
-astroid/brain/brain_numpy_utils.py,sha256=NxY99MzQ-m2Md_nofdAU30DFmse2CjpgqfWvYoMDDOc,1622
-astroid/brain/brain_pkg_resources.py,sha256=S_5UED1Zg8ObEJumRdpYGnjxZzemh_G_NFj3p5NGPfc,2262
-astroid/brain/brain_pytest.py,sha256=RXaNUVqy2R0et0Upn4GJkVgq5SG8Pl7zLlhqQg8Xx3Q,2384
-astroid/brain/brain_qt.py,sha256=FXdziZGGzFRzukhZguFoMY4q6PSsp6ZhNJovpzDG_Kc,2464
-astroid/brain/brain_random.py,sha256=2RZY-QEXMNWp7E6h0l0-ke-DtjKTOFlTdjiQZi3XdQc,2432
-astroid/brain/brain_re.py,sha256=le7VJHUAf80HyE_aQCh7_8FyDVK6JwNWA--c9RaMVQ8,1128
-astroid/brain/brain_six.py,sha256=6QHcKXoYf8yMMXWkx3g3lK0kqB5OFeYcXwjUTdgWTMw,6146
-astroid/brain/brain_ssl.py,sha256=2quiZVA_BW8PWmkAsOuYanq9Hvb93LT7c9YVslw3r14,3634
-astroid/brain/brain_subprocess.py,sha256=iXuKDWsUJhJDdKLDm6N8EiBw78Pjn-Xw-UJFk5gvup0,3668
-astroid/brain/brain_threading.py,sha256=73Inb3j7Tps5LQDJDGZOgR-bawttS1rk1l0LUL1WR1o,818
-astroid/brain/brain_typing.py,sha256=iFw33beNCitCJjJNvccIY6SsFJcdKVDdl-56DxDioh0,2780
-astroid/brain/brain_uuid.py,sha256=flWrk1Ve7oqYrO8GTZ3To8RBYteRfYwvash-s9KiU9o,564
-astroid/builder.py,sha256=0wrC4-ausU_nEEkgI8LJTsrNFN_XCbOkqoG2DsKCsks,16023
-astroid/context.py,sha256=VsyUDVB1J9fk1o8MQoE4ygfC7gdNjVYVUD4Bhgs9JM0,5164
-astroid/decorators.py,sha256=m0v63YRiQKc66-g8ckkYeJ0d5cji8AhkUxFPbTfLVDc,4229
-astroid/exceptions.py,sha256=_IJRdLfyNSPVjxYgEd11Uu9XpdqE7uBCVOEIxt3ua70,7047
-astroid/helpers.py,sha256=3HOFwK0ieIoLu7JhrbM1r0zxPyDtTl2oNSv-tXQ2iRw,9170
-astroid/inference.py,sha256=0diHXE-ZGiWU9y31flQa3YZhg6-v4dZgD4PPFAlHJGc,33023
-astroid/interpreter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-astroid/interpreter/__pycache__/__init__.cpython-37.pyc,,
-astroid/interpreter/__pycache__/dunder_lookup.cpython-37.pyc,,
-astroid/interpreter/__pycache__/objectmodel.cpython-37.pyc,,
-astroid/interpreter/_import/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-astroid/interpreter/_import/__pycache__/__init__.cpython-37.pyc,,
-astroid/interpreter/_import/__pycache__/spec.cpython-37.pyc,,
-astroid/interpreter/_import/__pycache__/util.cpython-37.pyc,,
-astroid/interpreter/_import/spec.py,sha256=L48FismdLnk6wjyAzIzJocKVdkBmbQlJgxwzeJ2_luA,11318
-astroid/interpreter/_import/util.py,sha256=inubUz6F3_kaMFaeleKUW6E6wCMIPrhU882zvwEZ02I,255
-astroid/interpreter/dunder_lookup.py,sha256=dP-AZU_aGPNt03b1ttrMglxzeU3NtgnG0MfpSLPH6sg,2155
-astroid/interpreter/objectmodel.py,sha256=7wQbTJhoUwH89x3tBfaA9WLaudBjwKcNpsBPWBQM_7U,23935
-astroid/manager.py,sha256=p7YPLYupDzG05OxR8qqF4fWMJExFAGIjTbVunPT3ECQ,12998
-astroid/mixins.py,sha256=F2rv2Ow7AU3YT_2jitVJik95ZWRVK6hpf8BrkkspzUY,5571
-astroid/modutils.py,sha256=1mBU_-rZH5-9K4nXB9hPi4mesi-pdlDltM_A-OU3zec,23425
-astroid/node_classes.py,sha256=FVYqErzW6lEHEZz3x_ZsqpyR1nyNOvnt0_Oi86btwAQ,140093
-astroid/nodes.py,sha256=tzYNu1tTF8bemsDitnSj7RFjQR2hrwlMDTwAmULoU5A,2957
-astroid/objects.py,sha256=q6ffgYLpyHENUY8BtiZAPHhnz91LJbQFkuaQnrNtf7g,9879
-astroid/protocols.py,sha256=Y-Mupe42X_FrdDC6KwnLyUM4yByWicR_tfqaSGWopT0,26828
-astroid/raw_building.py,sha256=HKYGE5Ll3g0WKntVErqCacQFiyTa5OVuVieIhkvckbc,16808
-astroid/rebuilder.py,sha256=q1XtkOYkykbRhk2UXhuMGsnGZFMzCDxdvTaG4VEh6Mw,41835
-astroid/scoped_nodes.py,sha256=C-ZcmS7QNkIBGUb2wc-hbHaUtOvfcOkQxYhD8xPrwjQ,94141
-astroid/test_utils.py,sha256=Q9SsfJDCJqSdRzEkp_5i1xLGcbFDztqqkdRjjLH476o,2314
-astroid/transforms.py,sha256=1npwJWcQUSIjcpcWd1pc-dJhtHOyiboQHsETAIQd5co,3377
-astroid/util.py,sha256=jg5LnqbWSZTZP1KgpxGBuC6Lfwhn9Jb2T2TohXghmC0,4785
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/WHEEL b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/WHEEL
deleted file mode 100644
index 3b5c403..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/WHEEL
+++ /dev/null
@@ -1,5 +0,0 @@
-Wheel-Version: 1.0
-Generator: bdist_wheel (0.33.6)
-Root-Is-Purelib: true
-Tag: py3-none-any
-
diff --git a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/top_level.txt b/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/top_level.txt
deleted file mode 100644
index 450d4fe..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid-2.3.3.dist-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-astroid
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__init__.py b/src/main/python/venv/Lib/site-packages/astroid/__init__.py
deleted file mode 100644
index d36a5b4..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/__init__.py
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright (c) 2006-2013, 2015 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016, 2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2016 Moises Lopez
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Python Abstract Syntax Tree New Generation
-
-The aim of this module is to provide a common base representation of
-python source code for projects such as pychecker, pyreverse,
-pylint... Well, actually the development of this library is essentially
-governed by pylint's needs.
-
-It extends class defined in the python's _ast module with some
-additional methods and attributes. Instance attributes are added by a
-builder object, which can either generate extended ast (let's call
-them astroid ;) by visiting an existent ast tree or by inspecting living
-object. Methods are added by monkey patching ast classes.
-
-Main modules are:
-
-* nodes and scoped_nodes for more information about methods and
- attributes added to different node classes
-
-* the manager contains a high level object to get astroid trees from
- source files and living objects. It maintains a cache of previously
- constructed tree for quick access
-
-* builder contains the class responsible to build astroid trees
-"""
-
-import enum
-import itertools
-import os
-import sys
-
-import wrapt
-
-
-_Context = enum.Enum("Context", "Load Store Del")
-Load = _Context.Load
-Store = _Context.Store
-Del = _Context.Del
-del _Context
-
-
-from .__pkginfo__ import version as __version__
-
-# WARNING: internal imports order matters !
-
-# pylint: disable=redefined-builtin
-
-# make all exception classes accessible from astroid package
-from astroid.exceptions import *
-
-# make all node classes accessible from astroid package
-from astroid.nodes import *
-
-# trigger extra monkey-patching
-from astroid import inference
-
-# more stuff available
-from astroid import raw_building
-from astroid.bases import BaseInstance, Instance, BoundMethod, UnboundMethod
-from astroid.node_classes import are_exclusive, unpack_infer
-from astroid.scoped_nodes import builtin_lookup
-from astroid.builder import parse, extract_node
-from astroid.util import Uninferable
-
-# make a manager instance (borg) accessible from astroid package
-from astroid.manager import AstroidManager
-
-MANAGER = AstroidManager()
-del AstroidManager
-
-# transform utilities (filters and decorator)
-
-
-# pylint: disable=dangerous-default-value
-@wrapt.decorator
-def _inference_tip_cached(func, instance, args, kwargs, _cache={}):
- """Cache decorator used for inference tips"""
- node = args[0]
- try:
- return iter(_cache[func, node])
- except KeyError:
- result = func(*args, **kwargs)
- # Need to keep an iterator around
- original, copy = itertools.tee(result)
- _cache[func, node] = list(copy)
- return original
-
-
-# pylint: enable=dangerous-default-value
-
-
-def inference_tip(infer_function, raise_on_overwrite=False):
- """Given an instance specific inference function, return a function to be
- given to MANAGER.register_transform to set this inference function.
-
- :param bool raise_on_overwrite: Raise an `InferenceOverwriteError`
- if the inference tip will overwrite another. Used for debugging
-
- Typical usage
-
- .. sourcecode:: python
-
- MANAGER.register_transform(Call, inference_tip(infer_named_tuple),
- predicate)
-
- .. Note::
-
- Using an inference tip will override
- any previously set inference tip for the given
- node. Use a predicate in the transform to prevent
- excess overwrites.
- """
-
- def transform(node, infer_function=infer_function):
- if (
- raise_on_overwrite
- and node._explicit_inference is not None
- and node._explicit_inference is not infer_function
- ):
- raise InferenceOverwriteError(
- "Inference already set to {existing_inference}. "
- "Trying to overwrite with {new_inference} for {node}".format(
- existing_inference=infer_function,
- new_inference=node._explicit_inference,
- node=node,
- )
- )
- # pylint: disable=no-value-for-parameter
- node._explicit_inference = _inference_tip_cached(infer_function)
- return node
-
- return transform
-
-
-def register_module_extender(manager, module_name, get_extension_mod):
- def transform(node):
- extension_module = get_extension_mod()
- for name, objs in extension_module.locals.items():
- node.locals[name] = objs
- for obj in objs:
- if obj.parent is extension_module:
- obj.parent = node
-
- manager.register_transform(Module, transform, lambda n: n.name == module_name)
-
-
-# load brain plugins
-BRAIN_MODULES_DIR = os.path.join(os.path.dirname(__file__), "brain")
-if BRAIN_MODULES_DIR not in sys.path:
- # add it to the end of the list so user path take precedence
- sys.path.append(BRAIN_MODULES_DIR)
-# load modules in this directory
-for module in os.listdir(BRAIN_MODULES_DIR):
- if module.endswith(".py"):
- __import__(module[:-3])
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pkginfo__.py b/src/main/python/venv/Lib/site-packages/astroid/__pkginfo__.py
deleted file mode 100644
index 4a17b5d..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/__pkginfo__.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2006-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2015-2017 Ceridwen
-# Copyright (c) 2015 Florian Bruhin
-# Copyright (c) 2015 Radosław Ganczarek
-# Copyright (c) 2016 Moises Lopez
-# Copyright (c) 2017 Hugo
-# Copyright (c) 2017 Łukasz Rogalski
-# Copyright (c) 2017 Calen Pennington
-# Copyright (c) 2018 Ashley Whetter
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""astroid packaging information"""
-
-version = "2.3.3"
-numversion = tuple(int(elem) for elem in version.split(".") if elem.isdigit())
-
-extras_require = {}
-install_requires = [
- "lazy_object_proxy==1.4.*",
- "six~=1.12",
- "wrapt==1.11.*",
- 'typed-ast>=1.4.0,<1.5;implementation_name== "cpython" and python_version<"3.8"',
-]
-
-# pylint: disable=redefined-builtin; why license is a builtin anyway?
-license = "LGPL"
-
-author = "Python Code Quality Authority"
-author_email = "code-quality@python.org"
-mailinglist = "mailto://%s" % author_email
-web = "https://github.com/PyCQA/astroid"
-
-description = "An abstract syntax tree for Python with inference support."
-
-classifiers = [
- "Topic :: Software Development :: Libraries :: Python Modules",
- "Topic :: Software Development :: Quality Assurance",
- "Programming Language :: Python",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.5",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: Implementation :: CPython",
- "Programming Language :: Python :: Implementation :: PyPy",
-]
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/__init__.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index eb28207..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/__pkginfo__.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/__pkginfo__.cpython-37.pyc
deleted file mode 100644
index ed3f17b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/__pkginfo__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/_ast.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/_ast.cpython-37.pyc
deleted file mode 100644
index c6f8a74..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/_ast.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/arguments.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/arguments.cpython-37.pyc
deleted file mode 100644
index 64896f7..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/arguments.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/as_string.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/as_string.cpython-37.pyc
deleted file mode 100644
index 372e534..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/as_string.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/bases.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/bases.cpython-37.pyc
deleted file mode 100644
index 366b834..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/bases.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/builder.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/builder.cpython-37.pyc
deleted file mode 100644
index 6ff12eb..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/builder.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/context.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/context.cpython-37.pyc
deleted file mode 100644
index 777eede..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/context.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/decorators.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/decorators.cpython-37.pyc
deleted file mode 100644
index 1bc12f8..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/decorators.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/exceptions.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/exceptions.cpython-37.pyc
deleted file mode 100644
index 211001b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/exceptions.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/helpers.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/helpers.cpython-37.pyc
deleted file mode 100644
index bae7ec3..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/helpers.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/inference.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/inference.cpython-37.pyc
deleted file mode 100644
index c9328c1..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/inference.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/manager.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/manager.cpython-37.pyc
deleted file mode 100644
index 31b45d7..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/manager.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/mixins.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/mixins.cpython-37.pyc
deleted file mode 100644
index 7b5b9e4..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/mixins.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/modutils.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/modutils.cpython-37.pyc
deleted file mode 100644
index a0f3b48..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/modutils.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/node_classes.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/node_classes.cpython-37.pyc
deleted file mode 100644
index 7abdd4b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/node_classes.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/nodes.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/nodes.cpython-37.pyc
deleted file mode 100644
index 18c04f8..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/nodes.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/objects.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/objects.cpython-37.pyc
deleted file mode 100644
index 460886a..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/objects.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/protocols.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/protocols.cpython-37.pyc
deleted file mode 100644
index d628662..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/protocols.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/raw_building.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/raw_building.cpython-37.pyc
deleted file mode 100644
index 0b414cf..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/raw_building.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/rebuilder.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/rebuilder.cpython-37.pyc
deleted file mode 100644
index 13516ca..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/rebuilder.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/scoped_nodes.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/scoped_nodes.cpython-37.pyc
deleted file mode 100644
index d767b50..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/scoped_nodes.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/test_utils.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/test_utils.cpython-37.pyc
deleted file mode 100644
index 4b6fba6..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/test_utils.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/transforms.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/transforms.cpython-37.pyc
deleted file mode 100644
index b2f4230..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/transforms.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/util.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/__pycache__/util.cpython-37.pyc
deleted file mode 100644
index b5e4fe7..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/__pycache__/util.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/_ast.py b/src/main/python/venv/Lib/site-packages/astroid/_ast.py
deleted file mode 100644
index 2e44c1f..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/_ast.py
+++ /dev/null
@@ -1,49 +0,0 @@
-import ast
-from collections import namedtuple
-from functools import partial
-from typing import Optional
-import sys
-
-_ast_py2 = _ast_py3 = None
-try:
- import typed_ast.ast3 as _ast_py3
- import typed_ast.ast27 as _ast_py2
-except ImportError:
- pass
-
-
-PY38 = sys.version_info[:2] >= (3, 8)
-if PY38:
- # On Python 3.8, typed_ast was merged back into `ast`
- _ast_py3 = ast
-
-
-FunctionType = namedtuple("FunctionType", ["argtypes", "returns"])
-
-
-def _get_parser_module(parse_python_two: bool = False):
- if parse_python_two:
- parser_module = _ast_py2
- else:
- parser_module = _ast_py3
- return parser_module or ast
-
-
-def _parse(string: str, parse_python_two: bool = False):
- parse_module = _get_parser_module(parse_python_two=parse_python_two)
- parse_func = parse_module.parse
- if _ast_py3:
- if PY38:
- parse_func = partial(parse_func, type_comments=True)
- if not parse_python_two:
- parse_func = partial(parse_func, feature_version=sys.version_info.minor)
- return parse_func(string)
-
-
-def parse_function_type_comment(type_comment: str) -> Optional[FunctionType]:
- """Given a correct type comment, obtain a FunctionType object"""
- if _ast_py3 is None:
- return None
-
- func_type = _ast_py3.parse(type_comment, "", "func_type")
- return FunctionType(argtypes=func_type.argtypes, returns=func_type.returns)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/arguments.py b/src/main/python/venv/Lib/site-packages/astroid/arguments.py
deleted file mode 100644
index c4bdc6d..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/arguments.py
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright (c) 2015-2016, 2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2018 Bryce Guinta
-# Copyright (c) 2018 Nick Drozd
-# Copyright (c) 2018 Anthony Sottile
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-from astroid import bases
-from astroid import context as contextmod
-from astroid import exceptions
-from astroid import nodes
-from astroid import util
-
-
-class CallSite:
- """Class for understanding arguments passed into a call site
-
- It needs a call context, which contains the arguments and the
- keyword arguments that were passed into a given call site.
- In order to infer what an argument represents, call
- :meth:`infer_argument` with the corresponding function node
- and the argument name.
- """
-
- def __init__(self, callcontext, argument_context_map=None):
- if argument_context_map is None:
- argument_context_map = {}
- self.argument_context_map = argument_context_map
- args = callcontext.args
- keywords = callcontext.keywords
- self.duplicated_keywords = set()
- self._unpacked_args = self._unpack_args(args)
- self._unpacked_kwargs = self._unpack_keywords(keywords)
-
- self.positional_arguments = [
- arg for arg in self._unpacked_args if arg is not util.Uninferable
- ]
- self.keyword_arguments = {
- key: value
- for key, value in self._unpacked_kwargs.items()
- if value is not util.Uninferable
- }
-
- @classmethod
- def from_call(cls, call_node):
- """Get a CallSite object from the given Call node."""
- callcontext = contextmod.CallContext(call_node.args, call_node.keywords)
- return cls(callcontext)
-
- def has_invalid_arguments(self):
- """Check if in the current CallSite were passed *invalid* arguments
-
- This can mean multiple things. For instance, if an unpacking
- of an invalid object was passed, then this method will return True.
- Other cases can be when the arguments can't be inferred by astroid,
- for example, by passing objects which aren't known statically.
- """
- return len(self.positional_arguments) != len(self._unpacked_args)
-
- def has_invalid_keywords(self):
- """Check if in the current CallSite were passed *invalid* keyword arguments
-
- For instance, unpacking a dictionary with integer keys is invalid
- (**{1:2}), because the keys must be strings, which will make this
- method to return True. Other cases where this might return True if
- objects which can't be inferred were passed.
- """
- return len(self.keyword_arguments) != len(self._unpacked_kwargs)
-
- def _unpack_keywords(self, keywords):
- values = {}
- context = contextmod.InferenceContext()
- context.extra_context = self.argument_context_map
- for name, value in keywords:
- if name is None:
- # Then it's an unpacking operation (**)
- try:
- inferred = next(value.infer(context=context))
- except exceptions.InferenceError:
- values[name] = util.Uninferable
- continue
-
- if not isinstance(inferred, nodes.Dict):
- # Not something we can work with.
- values[name] = util.Uninferable
- continue
-
- for dict_key, dict_value in inferred.items:
- try:
- dict_key = next(dict_key.infer(context=context))
- except exceptions.InferenceError:
- values[name] = util.Uninferable
- continue
- if not isinstance(dict_key, nodes.Const):
- values[name] = util.Uninferable
- continue
- if not isinstance(dict_key.value, str):
- values[name] = util.Uninferable
- continue
- if dict_key.value in values:
- # The name is already in the dictionary
- values[dict_key.value] = util.Uninferable
- self.duplicated_keywords.add(dict_key.value)
- continue
- values[dict_key.value] = dict_value
- else:
- values[name] = value
- return values
-
- def _unpack_args(self, args):
- values = []
- context = contextmod.InferenceContext()
- context.extra_context = self.argument_context_map
- for arg in args:
- if isinstance(arg, nodes.Starred):
- try:
- inferred = next(arg.value.infer(context=context))
- except exceptions.InferenceError:
- values.append(util.Uninferable)
- continue
-
- if inferred is util.Uninferable:
- values.append(util.Uninferable)
- continue
- if not hasattr(inferred, "elts"):
- values.append(util.Uninferable)
- continue
- values.extend(inferred.elts)
- else:
- values.append(arg)
- return values
-
- def infer_argument(self, funcnode, name, context):
- """infer a function argument value according to the call context
-
- Arguments:
- funcnode: The function being called.
- name: The name of the argument whose value is being inferred.
- context: Inference context object
- """
- if name in self.duplicated_keywords:
- raise exceptions.InferenceError(
- "The arguments passed to {func!r} " " have duplicate keywords.",
- call_site=self,
- func=funcnode,
- arg=name,
- context=context,
- )
-
- # Look into the keywords first, maybe it's already there.
- try:
- return self.keyword_arguments[name].infer(context)
- except KeyError:
- pass
-
- # Too many arguments given and no variable arguments.
- if len(self.positional_arguments) > len(funcnode.args.args):
- if not funcnode.args.vararg:
- raise exceptions.InferenceError(
- "Too many positional arguments "
- "passed to {func!r} that does "
- "not have *args.",
- call_site=self,
- func=funcnode,
- arg=name,
- context=context,
- )
-
- positional = self.positional_arguments[: len(funcnode.args.args)]
- vararg = self.positional_arguments[len(funcnode.args.args) :]
- argindex = funcnode.args.find_argname(name)[0]
- kwonlyargs = {arg.name for arg in funcnode.args.kwonlyargs}
- kwargs = {
- key: value
- for key, value in self.keyword_arguments.items()
- if key not in kwonlyargs
- }
- # If there are too few positionals compared to
- # what the function expects to receive, check to see
- # if the missing positional arguments were passed
- # as keyword arguments and if so, place them into the
- # positional args list.
- if len(positional) < len(funcnode.args.args):
- for func_arg in funcnode.args.args:
- if func_arg.name in kwargs:
- arg = kwargs.pop(func_arg.name)
- positional.append(arg)
-
- if argindex is not None:
- # 2. first argument of instance/class method
- if argindex == 0 and funcnode.type in ("method", "classmethod"):
- if context.boundnode is not None:
- boundnode = context.boundnode
- else:
- # XXX can do better ?
- boundnode = funcnode.parent.frame()
-
- if isinstance(boundnode, nodes.ClassDef):
- # Verify that we're accessing a method
- # of the metaclass through a class, as in
- # `cls.metaclass_method`. In this case, the
- # first argument is always the class.
- method_scope = funcnode.parent.scope()
- if method_scope is boundnode.metaclass():
- return iter((boundnode,))
-
- if funcnode.type == "method":
- if not isinstance(boundnode, bases.Instance):
- boundnode = bases.Instance(boundnode)
- return iter((boundnode,))
- if funcnode.type == "classmethod":
- return iter((boundnode,))
- # if we have a method, extract one position
- # from the index, so we'll take in account
- # the extra parameter represented by `self` or `cls`
- if funcnode.type in ("method", "classmethod"):
- argindex -= 1
- # 2. search arg index
- try:
- return self.positional_arguments[argindex].infer(context)
- except IndexError:
- pass
-
- if funcnode.args.kwarg == name:
- # It wants all the keywords that were passed into
- # the call site.
- if self.has_invalid_keywords():
- raise exceptions.InferenceError(
- "Inference failed to find values for all keyword arguments "
- "to {func!r}: {unpacked_kwargs!r} doesn't correspond to "
- "{keyword_arguments!r}.",
- keyword_arguments=self.keyword_arguments,
- unpacked_kwargs=self._unpacked_kwargs,
- call_site=self,
- func=funcnode,
- arg=name,
- context=context,
- )
- kwarg = nodes.Dict(
- lineno=funcnode.args.lineno,
- col_offset=funcnode.args.col_offset,
- parent=funcnode.args,
- )
- kwarg.postinit(
- [(nodes.const_factory(key), value) for key, value in kwargs.items()]
- )
- return iter((kwarg,))
- if funcnode.args.vararg == name:
- # It wants all the args that were passed into
- # the call site.
- if self.has_invalid_arguments():
- raise exceptions.InferenceError(
- "Inference failed to find values for all positional "
- "arguments to {func!r}: {unpacked_args!r} doesn't "
- "correspond to {positional_arguments!r}.",
- positional_arguments=self.positional_arguments,
- unpacked_args=self._unpacked_args,
- call_site=self,
- func=funcnode,
- arg=name,
- context=context,
- )
- args = nodes.Tuple(
- lineno=funcnode.args.lineno,
- col_offset=funcnode.args.col_offset,
- parent=funcnode.args,
- )
- args.postinit(vararg)
- return iter((args,))
-
- # Check if it's a default parameter.
- try:
- return funcnode.args.default_value(name).infer(context)
- except exceptions.NoDefault:
- pass
- raise exceptions.InferenceError(
- "No value found for argument {name} to " "{func!r}",
- call_site=self,
- func=funcnode,
- arg=name,
- context=context,
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/as_string.py b/src/main/python/venv/Lib/site-packages/astroid/as_string.py
deleted file mode 100644
index 3cd6e0d..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/as_string.py
+++ /dev/null
@@ -1,633 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2009-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2010 Daniel Harding
-# Copyright (c) 2013-2016, 2018 Claudiu Popa
-# Copyright (c) 2013-2014 Google, Inc.
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2016 Jared Garst
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2017 Łukasz Rogalski
-# Copyright (c) 2017 rr-
-# Copyright (c) 2018 brendanator
-# Copyright (c) 2018 Nick Drozd
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""This module renders Astroid nodes as string:
-
-* :func:`to_code` function return equivalent (hopefully valid) python string
-
-* :func:`dump` function return an internal representation of nodes found
- in the tree, useful for debugging or understanding the tree structure
-"""
-
-# pylint: disable=unused-argument
-
-DOC_NEWLINE = "\0"
-
-
-class AsStringVisitor:
- """Visitor to render an Astroid node as a valid python code string"""
-
- def __init__(self, indent):
- self.indent = indent
-
- def __call__(self, node):
- """Makes this visitor behave as a simple function"""
- return node.accept(self).replace(DOC_NEWLINE, "\n")
-
- def _docs_dedent(self, doc):
- """Stop newlines in docs being indented by self._stmt_list"""
- return '\n%s"""%s"""' % (self.indent, doc.replace("\n", DOC_NEWLINE))
-
- def _stmt_list(self, stmts, indent=True):
- """return a list of nodes to string"""
- stmts = "\n".join(nstr for nstr in [n.accept(self) for n in stmts] if nstr)
- if indent:
- return self.indent + stmts.replace("\n", "\n" + self.indent)
-
- return stmts
-
- def _precedence_parens(self, node, child, is_left=True):
- """Wrap child in parens only if required to keep same semantics"""
- if self._should_wrap(node, child, is_left):
- return "(%s)" % child.accept(self)
-
- return child.accept(self)
-
- def _should_wrap(self, node, child, is_left):
- """Wrap child if:
- - it has lower precedence
- - same precedence with position opposite to associativity direction
- """
- node_precedence = node.op_precedence()
- child_precedence = child.op_precedence()
-
- if node_precedence > child_precedence:
- # 3 * (4 + 5)
- return True
-
- if (
- node_precedence == child_precedence
- and is_left != node.op_left_associative()
- ):
- # 3 - (4 - 5)
- # (2**3)**4
- return True
-
- return False
-
- ## visit_ methods ###########################################
-
- def visit_arguments(self, node):
- """return an astroid.Function node as string"""
- return node.format_args()
-
- def visit_assignattr(self, node):
- """return an astroid.AssAttr node as string"""
- return self.visit_attribute(node)
-
- def visit_assert(self, node):
- """return an astroid.Assert node as string"""
- if node.fail:
- return "assert %s, %s" % (node.test.accept(self), node.fail.accept(self))
- return "assert %s" % node.test.accept(self)
-
- def visit_assignname(self, node):
- """return an astroid.AssName node as string"""
- return node.name
-
- def visit_assign(self, node):
- """return an astroid.Assign node as string"""
- lhs = " = ".join(n.accept(self) for n in node.targets)
- return "%s = %s" % (lhs, node.value.accept(self))
-
- def visit_augassign(self, node):
- """return an astroid.AugAssign node as string"""
- return "%s %s %s" % (node.target.accept(self), node.op, node.value.accept(self))
-
- def visit_annassign(self, node):
- """Return an astroid.AugAssign node as string"""
-
- target = node.target.accept(self)
- annotation = node.annotation.accept(self)
- if node.value is None:
- return "%s: %s" % (target, annotation)
- return "%s: %s = %s" % (target, annotation, node.value.accept(self))
-
- def visit_repr(self, node):
- """return an astroid.Repr node as string"""
- return "`%s`" % node.value.accept(self)
-
- def visit_binop(self, node):
- """return an astroid.BinOp node as string"""
- left = self._precedence_parens(node, node.left)
- right = self._precedence_parens(node, node.right, is_left=False)
- if node.op == "**":
- return "%s%s%s" % (left, node.op, right)
-
- return "%s %s %s" % (left, node.op, right)
-
- def visit_boolop(self, node):
- """return an astroid.BoolOp node as string"""
- values = ["%s" % self._precedence_parens(node, n) for n in node.values]
- return (" %s " % node.op).join(values)
-
- def visit_break(self, node):
- """return an astroid.Break node as string"""
- return "break"
-
- def visit_call(self, node):
- """return an astroid.Call node as string"""
- expr_str = self._precedence_parens(node, node.func)
- args = [arg.accept(self) for arg in node.args]
- if node.keywords:
- keywords = [kwarg.accept(self) for kwarg in node.keywords]
- else:
- keywords = []
-
- args.extend(keywords)
- return "%s(%s)" % (expr_str, ", ".join(args))
-
- def visit_classdef(self, node):
- """return an astroid.ClassDef node as string"""
- decorate = node.decorators.accept(self) if node.decorators else ""
- bases = ", ".join(n.accept(self) for n in node.bases)
- metaclass = node.metaclass()
- if metaclass and not node.has_metaclass_hack():
- if bases:
- bases = "(%s, metaclass=%s)" % (bases, metaclass.name)
- else:
- bases = "(metaclass=%s)" % metaclass.name
- else:
- bases = "(%s)" % bases if bases else ""
- docs = self._docs_dedent(node.doc) if node.doc else ""
- return "\n\n%sclass %s%s:%s\n%s\n" % (
- decorate,
- node.name,
- bases,
- docs,
- self._stmt_list(node.body),
- )
-
- def visit_compare(self, node):
- """return an astroid.Compare node as string"""
- rhs_str = " ".join(
- [
- "%s %s" % (op, self._precedence_parens(node, expr, is_left=False))
- for op, expr in node.ops
- ]
- )
- return "%s %s" % (self._precedence_parens(node, node.left), rhs_str)
-
- def visit_comprehension(self, node):
- """return an astroid.Comprehension node as string"""
- ifs = "".join(" if %s" % n.accept(self) for n in node.ifs)
- return "for %s in %s%s" % (
- node.target.accept(self),
- node.iter.accept(self),
- ifs,
- )
-
- def visit_const(self, node):
- """return an astroid.Const node as string"""
- if node.value is Ellipsis:
- return "..."
- return repr(node.value)
-
- def visit_continue(self, node):
- """return an astroid.Continue node as string"""
- return "continue"
-
- def visit_delete(self, node): # XXX check if correct
- """return an astroid.Delete node as string"""
- return "del %s" % ", ".join(child.accept(self) for child in node.targets)
-
- def visit_delattr(self, node):
- """return an astroid.DelAttr node as string"""
- return self.visit_attribute(node)
-
- def visit_delname(self, node):
- """return an astroid.DelName node as string"""
- return node.name
-
- def visit_decorators(self, node):
- """return an astroid.Decorators node as string"""
- return "@%s\n" % "\n@".join(item.accept(self) for item in node.nodes)
-
- def visit_dict(self, node):
- """return an astroid.Dict node as string"""
- return "{%s}" % ", ".join(self._visit_dict(node))
-
- def _visit_dict(self, node):
- for key, value in node.items:
- key = key.accept(self)
- value = value.accept(self)
- if key == "**":
- # It can only be a DictUnpack node.
- yield key + value
- else:
- yield "%s: %s" % (key, value)
-
- def visit_dictunpack(self, node):
- return "**"
-
- def visit_dictcomp(self, node):
- """return an astroid.DictComp node as string"""
- return "{%s: %s %s}" % (
- node.key.accept(self),
- node.value.accept(self),
- " ".join(n.accept(self) for n in node.generators),
- )
-
- def visit_expr(self, node):
- """return an astroid.Discard node as string"""
- return node.value.accept(self)
-
- def visit_emptynode(self, node):
- """dummy method for visiting an Empty node"""
- return ""
-
- def visit_excepthandler(self, node):
- if node.type:
- if node.name:
- excs = "except %s, %s" % (
- node.type.accept(self),
- node.name.accept(self),
- )
- else:
- excs = "except %s" % node.type.accept(self)
- else:
- excs = "except"
- return "%s:\n%s" % (excs, self._stmt_list(node.body))
-
- def visit_ellipsis(self, node):
- """return an astroid.Ellipsis node as string"""
- return "..."
-
- def visit_empty(self, node):
- """return an Empty node as string"""
- return ""
-
- def visit_exec(self, node):
- """return an astroid.Exec node as string"""
- if node.locals:
- return "exec %s in %s, %s" % (
- node.expr.accept(self),
- node.locals.accept(self),
- node.globals.accept(self),
- )
- if node.globals:
- return "exec %s in %s" % (node.expr.accept(self), node.globals.accept(self))
- return "exec %s" % node.expr.accept(self)
-
- def visit_extslice(self, node):
- """return an astroid.ExtSlice node as string"""
- return ", ".join(dim.accept(self) for dim in node.dims)
-
- def visit_for(self, node):
- """return an astroid.For node as string"""
- fors = "for %s in %s:\n%s" % (
- node.target.accept(self),
- node.iter.accept(self),
- self._stmt_list(node.body),
- )
- if node.orelse:
- fors = "%s\nelse:\n%s" % (fors, self._stmt_list(node.orelse))
- return fors
-
- def visit_importfrom(self, node):
- """return an astroid.ImportFrom node as string"""
- return "from %s import %s" % (
- "." * (node.level or 0) + node.modname,
- _import_string(node.names),
- )
-
- def visit_functiondef(self, node):
- """return an astroid.Function node as string"""
- decorate = node.decorators.accept(self) if node.decorators else ""
- docs = self._docs_dedent(node.doc) if node.doc else ""
- trailer = ":"
- if node.returns:
- return_annotation = " -> " + node.returns.as_string()
- trailer = return_annotation + ":"
- def_format = "\n%sdef %s(%s)%s%s\n%s"
- return def_format % (
- decorate,
- node.name,
- node.args.accept(self),
- trailer,
- docs,
- self._stmt_list(node.body),
- )
-
- def visit_generatorexp(self, node):
- """return an astroid.GeneratorExp node as string"""
- return "(%s %s)" % (
- node.elt.accept(self),
- " ".join(n.accept(self) for n in node.generators),
- )
-
- def visit_attribute(self, node):
- """return an astroid.Getattr node as string"""
- return "%s.%s" % (self._precedence_parens(node, node.expr), node.attrname)
-
- def visit_global(self, node):
- """return an astroid.Global node as string"""
- return "global %s" % ", ".join(node.names)
-
- def visit_if(self, node):
- """return an astroid.If node as string"""
- ifs = ["if %s:\n%s" % (node.test.accept(self), self._stmt_list(node.body))]
- if node.has_elif_block():
- ifs.append("el%s" % self._stmt_list(node.orelse, indent=False))
- elif node.orelse:
- ifs.append("else:\n%s" % self._stmt_list(node.orelse))
- return "\n".join(ifs)
-
- def visit_ifexp(self, node):
- """return an astroid.IfExp node as string"""
- return "%s if %s else %s" % (
- self._precedence_parens(node, node.body, is_left=True),
- self._precedence_parens(node, node.test, is_left=True),
- self._precedence_parens(node, node.orelse, is_left=False),
- )
-
- def visit_import(self, node):
- """return an astroid.Import node as string"""
- return "import %s" % _import_string(node.names)
-
- def visit_keyword(self, node):
- """return an astroid.Keyword node as string"""
- if node.arg is None:
- return "**%s" % node.value.accept(self)
- return "%s=%s" % (node.arg, node.value.accept(self))
-
- def visit_lambda(self, node):
- """return an astroid.Lambda node as string"""
- args = node.args.accept(self)
- body = node.body.accept(self)
- if args:
- return "lambda %s: %s" % (args, body)
-
- return "lambda: %s" % body
-
- def visit_list(self, node):
- """return an astroid.List node as string"""
- return "[%s]" % ", ".join(child.accept(self) for child in node.elts)
-
- def visit_listcomp(self, node):
- """return an astroid.ListComp node as string"""
- return "[%s %s]" % (
- node.elt.accept(self),
- " ".join(n.accept(self) for n in node.generators),
- )
-
- def visit_module(self, node):
- """return an astroid.Module node as string"""
- docs = '"""%s"""\n\n' % node.doc if node.doc else ""
- return docs + "\n".join(n.accept(self) for n in node.body) + "\n\n"
-
- def visit_name(self, node):
- """return an astroid.Name node as string"""
- return node.name
-
- def visit_pass(self, node):
- """return an astroid.Pass node as string"""
- return "pass"
-
- def visit_print(self, node):
- """return an astroid.Print node as string"""
- nodes = ", ".join(n.accept(self) for n in node.values)
- if not node.nl:
- nodes = "%s," % nodes
- if node.dest:
- return "print >> %s, %s" % (node.dest.accept(self), nodes)
- return "print %s" % nodes
-
- def visit_raise(self, node):
- """return an astroid.Raise node as string"""
- if node.exc:
- if node.inst:
- if node.tback:
- return "raise %s, %s, %s" % (
- node.exc.accept(self),
- node.inst.accept(self),
- node.tback.accept(self),
- )
- return "raise %s, %s" % (node.exc.accept(self), node.inst.accept(self))
- return "raise %s" % node.exc.accept(self)
- return "raise"
-
- def visit_return(self, node):
- """return an astroid.Return node as string"""
- if node.is_tuple_return() and len(node.value.elts) > 1:
- elts = [child.accept(self) for child in node.value.elts]
- return "return %s" % ", ".join(elts)
-
- if node.value:
- return "return %s" % node.value.accept(self)
-
- return "return"
-
- def visit_index(self, node):
- """return an astroid.Index node as string"""
- return node.value.accept(self)
-
- def visit_set(self, node):
- """return an astroid.Set node as string"""
- return "{%s}" % ", ".join(child.accept(self) for child in node.elts)
-
- def visit_setcomp(self, node):
- """return an astroid.SetComp node as string"""
- return "{%s %s}" % (
- node.elt.accept(self),
- " ".join(n.accept(self) for n in node.generators),
- )
-
- def visit_slice(self, node):
- """return an astroid.Slice node as string"""
- lower = node.lower.accept(self) if node.lower else ""
- upper = node.upper.accept(self) if node.upper else ""
- step = node.step.accept(self) if node.step else ""
- if step:
- return "%s:%s:%s" % (lower, upper, step)
- return "%s:%s" % (lower, upper)
-
- def visit_subscript(self, node):
- """return an astroid.Subscript node as string"""
- idx = node.slice
- if idx.__class__.__name__.lower() == "index":
- idx = idx.value
- idxstr = idx.accept(self)
- if idx.__class__.__name__.lower() == "tuple" and idx.elts:
- # Remove parenthesis in tuple and extended slice.
- # a[(::1, 1:)] is not valid syntax.
- idxstr = idxstr[1:-1]
- return "%s[%s]" % (self._precedence_parens(node, node.value), idxstr)
-
- def visit_tryexcept(self, node):
- """return an astroid.TryExcept node as string"""
- trys = ["try:\n%s" % self._stmt_list(node.body)]
- for handler in node.handlers:
- trys.append(handler.accept(self))
- if node.orelse:
- trys.append("else:\n%s" % self._stmt_list(node.orelse))
- return "\n".join(trys)
-
- def visit_tryfinally(self, node):
- """return an astroid.TryFinally node as string"""
- return "try:\n%s\nfinally:\n%s" % (
- self._stmt_list(node.body),
- self._stmt_list(node.finalbody),
- )
-
- def visit_tuple(self, node):
- """return an astroid.Tuple node as string"""
- if len(node.elts) == 1:
- return "(%s, )" % node.elts[0].accept(self)
- return "(%s)" % ", ".join(child.accept(self) for child in node.elts)
-
- def visit_unaryop(self, node):
- """return an astroid.UnaryOp node as string"""
- if node.op == "not":
- operator = "not "
- else:
- operator = node.op
- return "%s%s" % (operator, self._precedence_parens(node, node.operand))
-
- def visit_while(self, node):
- """return an astroid.While node as string"""
- whiles = "while %s:\n%s" % (node.test.accept(self), self._stmt_list(node.body))
- if node.orelse:
- whiles = "%s\nelse:\n%s" % (whiles, self._stmt_list(node.orelse))
- return whiles
-
- def visit_with(self, node): # 'with' without 'as' is possible
- """return an astroid.With node as string"""
- items = ", ".join(
- ("%s" % expr.accept(self)) + (vars and " as %s" % (vars.accept(self)) or "")
- for expr, vars in node.items
- )
- return "with %s:\n%s" % (items, self._stmt_list(node.body))
-
- def visit_yield(self, node):
- """yield an ast.Yield node as string"""
- yi_val = (" " + node.value.accept(self)) if node.value else ""
- expr = "yield" + yi_val
- if node.parent.is_statement:
- return expr
-
- return "(%s)" % (expr,)
-
- def visit_starred(self, node):
- """return Starred node as string"""
- return "*" + node.value.accept(self)
-
- # These aren't for real AST nodes, but for inference objects.
-
- def visit_frozenset(self, node):
- return node.parent.accept(self)
-
- def visit_super(self, node):
- return node.parent.accept(self)
-
- def visit_uninferable(self, node):
- return str(node)
-
-
-class AsStringVisitor3(AsStringVisitor):
- """AsStringVisitor3 overwrites some AsStringVisitor methods"""
-
- def visit_excepthandler(self, node):
- if node.type:
- if node.name:
- excs = "except %s as %s" % (
- node.type.accept(self),
- node.name.accept(self),
- )
- else:
- excs = "except %s" % node.type.accept(self)
- else:
- excs = "except"
- return "%s:\n%s" % (excs, self._stmt_list(node.body))
-
- def visit_nonlocal(self, node):
- """return an astroid.Nonlocal node as string"""
- return "nonlocal %s" % ", ".join(node.names)
-
- def visit_raise(self, node):
- """return an astroid.Raise node as string"""
- if node.exc:
- if node.cause:
- return "raise %s from %s" % (
- node.exc.accept(self),
- node.cause.accept(self),
- )
- return "raise %s" % node.exc.accept(self)
- return "raise"
-
- def visit_yieldfrom(self, node):
- """ Return an astroid.YieldFrom node as string. """
- yi_val = (" " + node.value.accept(self)) if node.value else ""
- expr = "yield from" + yi_val
- if node.parent.is_statement:
- return expr
-
- return "(%s)" % (expr,)
-
- def visit_asyncfunctiondef(self, node):
- function = super(AsStringVisitor3, self).visit_functiondef(node)
- return "async " + function.strip()
-
- def visit_await(self, node):
- return "await %s" % node.value.accept(self)
-
- def visit_asyncwith(self, node):
- return "async %s" % self.visit_with(node)
-
- def visit_asyncfor(self, node):
- return "async %s" % self.visit_for(node)
-
- def visit_joinedstr(self, node):
- # Special treatment for constants,
- # as we want to join literals not reprs
- string = "".join(
- value.value if type(value).__name__ == "Const" else value.accept(self)
- for value in node.values
- )
- return "f'%s'" % string
-
- def visit_formattedvalue(self, node):
- return "{%s}" % node.value.accept(self)
-
- def visit_comprehension(self, node):
- """return an astroid.Comprehension node as string"""
- return "%s%s" % (
- "async " if node.is_async else "",
- super(AsStringVisitor3, self).visit_comprehension(node),
- )
-
- def visit_namedexpr(self, node):
- """Return an assignment expression node as string"""
- target = node.target.accept(self)
- value = node.value.accept(self)
- return "%s := %s" % (target, value)
-
-
-def _import_string(names):
- """return a list of (name, asname) formatted as a string"""
- _names = []
- for name, asname in names:
- if asname is not None:
- _names.append("%s as %s" % (name, asname))
- else:
- _names.append(name)
- return ", ".join(_names)
-
-
-AsStringVisitor = AsStringVisitor3
-
-# This sets the default indent to 4 spaces.
-to_code = AsStringVisitor(" ")
diff --git a/src/main/python/venv/Lib/site-packages/astroid/bases.py b/src/main/python/venv/Lib/site-packages/astroid/bases.py
deleted file mode 100644
index d5b042a..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/bases.py
+++ /dev/null
@@ -1,542 +0,0 @@
-# Copyright (c) 2009-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2012 FELD Boris
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Florian Bruhin
-# Copyright (c) 2016-2017 Derek Gustafson
-# Copyright (c) 2017 Calen Pennington
-# Copyright (c) 2018 Bryce Guinta
-# Copyright (c) 2018 Nick Drozd
-# Copyright (c) 2018 Daniel Colascione
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""This module contains base classes and functions for the nodes and some
-inference utils.
-"""
-
-import builtins
-import collections
-
-from astroid import context as contextmod
-from astroid import exceptions
-from astroid import util
-
-objectmodel = util.lazy_import("interpreter.objectmodel")
-helpers = util.lazy_import("helpers")
-BUILTINS = builtins.__name__
-manager = util.lazy_import("manager")
-MANAGER = manager.AstroidManager()
-
-# TODO: check if needs special treatment
-BUILTINS = "builtins"
-BOOL_SPECIAL_METHOD = "__bool__"
-
-PROPERTIES = {BUILTINS + ".property", "abc.abstractproperty"}
-# List of possible property names. We use this list in order
-# to see if a method is a property or not. This should be
-# pretty reliable and fast, the alternative being to check each
-# decorator to see if its a real property-like descriptor, which
-# can be too complicated.
-# Also, these aren't qualified, because each project can
-# define them, we shouldn't expect to know every possible
-# property-like decorator!
-POSSIBLE_PROPERTIES = {
- "cached_property",
- "cachedproperty",
- "lazyproperty",
- "lazy_property",
- "reify",
- "lazyattribute",
- "lazy_attribute",
- "LazyProperty",
- "lazy",
- "cache_readonly",
-}
-
-
-def _is_property(meth):
- if PROPERTIES.intersection(meth.decoratornames()):
- return True
- stripped = {
- name.split(".")[-1]
- for name in meth.decoratornames()
- if name is not util.Uninferable
- }
- if any(name in stripped for name in POSSIBLE_PROPERTIES):
- return True
-
- # Lookup for subclasses of *property*
- if not meth.decorators:
- return False
- for decorator in meth.decorators.nodes or ():
- inferred = helpers.safe_infer(decorator)
- if inferred is None or inferred is util.Uninferable:
- continue
- if inferred.__class__.__name__ == "ClassDef":
- for base_class in inferred.bases:
- if base_class.__class__.__name__ != "Name":
- continue
- module, _ = base_class.lookup(base_class.name)
- if module.name == BUILTINS and base_class.name == "property":
- return True
-
- return False
-
-
-class Proxy:
- """a simple proxy object
-
- Note:
-
- Subclasses of this object will need a custom __getattr__
- if new instance attributes are created. See the Const class
- """
-
- _proxied = None # proxied object may be set by class or by instance
-
- def __init__(self, proxied=None):
- if proxied is not None:
- self._proxied = proxied
-
- def __getattr__(self, name):
- if name == "_proxied":
- return getattr(self.__class__, "_proxied")
- if name in self.__dict__:
- return self.__dict__[name]
- return getattr(self._proxied, name)
-
- def infer(self, context=None):
- yield self
-
-
-def _infer_stmts(stmts, context, frame=None):
- """Return an iterator on statements inferred by each statement in *stmts*."""
- inferred = False
- if context is not None:
- name = context.lookupname
- context = context.clone()
- else:
- name = None
- context = contextmod.InferenceContext()
-
- for stmt in stmts:
- if stmt is util.Uninferable:
- yield stmt
- inferred = True
- continue
- context.lookupname = stmt._infer_name(frame, name)
- try:
- for inferred in stmt.infer(context=context):
- yield inferred
- inferred = True
- except exceptions.NameInferenceError:
- continue
- except exceptions.InferenceError:
- yield util.Uninferable
- inferred = True
- if not inferred:
- raise exceptions.InferenceError(
- "Inference failed for all members of {stmts!r}.",
- stmts=stmts,
- frame=frame,
- context=context,
- )
-
-
-def _infer_method_result_truth(instance, method_name, context):
- # Get the method from the instance and try to infer
- # its return's truth value.
- meth = next(instance.igetattr(method_name, context=context), None)
- if meth and hasattr(meth, "infer_call_result"):
- if not meth.callable():
- return util.Uninferable
- try:
- for value in meth.infer_call_result(instance, context=context):
- if value is util.Uninferable:
- return value
-
- inferred = next(value.infer(context=context))
- return inferred.bool_value()
- except exceptions.InferenceError:
- pass
- return util.Uninferable
-
-
-class BaseInstance(Proxy):
- """An instance base class, which provides lookup methods for potential instances."""
-
- special_attributes = None
-
- def display_type(self):
- return "Instance of"
-
- def getattr(self, name, context=None, lookupclass=True):
- try:
- values = self._proxied.instance_attr(name, context)
- except exceptions.AttributeInferenceError as exc:
- if self.special_attributes and name in self.special_attributes:
- return [self.special_attributes.lookup(name)]
-
- if lookupclass:
- # Class attributes not available through the instance
- # unless they are explicitly defined.
- return self._proxied.getattr(name, context, class_context=False)
-
- raise exceptions.AttributeInferenceError(
- target=self, attribute=name, context=context
- ) from exc
- # since we've no context information, return matching class members as
- # well
- if lookupclass:
- try:
- return values + self._proxied.getattr(
- name, context, class_context=False
- )
- except exceptions.AttributeInferenceError:
- pass
- return values
-
- def igetattr(self, name, context=None):
- """inferred getattr"""
- if not context:
- context = contextmod.InferenceContext()
- try:
- # avoid recursively inferring the same attr on the same class
- if context.push((self._proxied, name)):
- raise exceptions.InferenceError(
- message="Cannot infer the same attribute again",
- node=self,
- context=context,
- )
-
- # XXX frame should be self._proxied, or not ?
- get_attr = self.getattr(name, context, lookupclass=False)
- yield from _infer_stmts(
- self._wrap_attr(get_attr, context), context, frame=self
- )
- except exceptions.AttributeInferenceError as error:
- try:
- # fallback to class.igetattr since it has some logic to handle
- # descriptors
- # But only if the _proxied is the Class.
- if self._proxied.__class__.__name__ != "ClassDef":
- raise
- attrs = self._proxied.igetattr(name, context, class_context=False)
- yield from self._wrap_attr(attrs, context)
- except exceptions.AttributeInferenceError as error:
- raise exceptions.InferenceError(**vars(error)) from error
-
- def _wrap_attr(self, attrs, context=None):
- """wrap bound methods of attrs in a InstanceMethod proxies"""
- for attr in attrs:
- if isinstance(attr, UnboundMethod):
- if _is_property(attr):
- yield from attr.infer_call_result(self, context)
- else:
- yield BoundMethod(attr, self)
- elif hasattr(attr, "name") and attr.name == "":
- if attr.args.args and attr.args.args[0].name == "self":
- yield BoundMethod(attr, self)
- continue
- yield attr
- else:
- yield attr
-
- def infer_call_result(self, caller, context=None):
- """infer what a class instance is returning when called"""
- context = contextmod.bind_context_to_node(context, self)
- inferred = False
- for node in self._proxied.igetattr("__call__", context):
- if node is util.Uninferable or not node.callable():
- continue
- for res in node.infer_call_result(caller, context):
- inferred = True
- yield res
- if not inferred:
- raise exceptions.InferenceError(node=self, caller=caller, context=context)
-
-
-class Instance(BaseInstance):
- """A special node representing a class instance."""
-
- # pylint: disable=unnecessary-lambda
- special_attributes = util.lazy_descriptor(lambda: objectmodel.InstanceModel())
-
- def __repr__(self):
- return "" % (
- self._proxied.root().name,
- self._proxied.name,
- id(self),
- )
-
- def __str__(self):
- return "Instance of %s.%s" % (self._proxied.root().name, self._proxied.name)
-
- def callable(self):
- try:
- self._proxied.getattr("__call__", class_context=False)
- return True
- except exceptions.AttributeInferenceError:
- return False
-
- def pytype(self):
- return self._proxied.qname()
-
- def display_type(self):
- return "Instance of"
-
- def bool_value(self):
- """Infer the truth value for an Instance
-
- The truth value of an instance is determined by these conditions:
-
- * if it implements __bool__ on Python 3 or __nonzero__
- on Python 2, then its bool value will be determined by
- calling this special method and checking its result.
- * when this method is not defined, __len__() is called, if it
- is defined, and the object is considered true if its result is
- nonzero. If a class defines neither __len__() nor __bool__(),
- all its instances are considered true.
- """
- context = contextmod.InferenceContext()
- context.callcontext = contextmod.CallContext(args=[])
- context.boundnode = self
-
- try:
- result = _infer_method_result_truth(self, BOOL_SPECIAL_METHOD, context)
- except (exceptions.InferenceError, exceptions.AttributeInferenceError):
- # Fallback to __len__.
- try:
- result = _infer_method_result_truth(self, "__len__", context)
- except (exceptions.AttributeInferenceError, exceptions.InferenceError):
- return True
- return result
-
- # This is set in inference.py.
- def getitem(self, index, context=None):
- pass
-
-
-class UnboundMethod(Proxy):
- """a special node representing a method not bound to an instance"""
-
- # pylint: disable=unnecessary-lambda
- special_attributes = util.lazy_descriptor(lambda: objectmodel.UnboundMethodModel())
-
- def __repr__(self):
- frame = self._proxied.parent.frame()
- return "<%s %s of %s at 0x%s" % (
- self.__class__.__name__,
- self._proxied.name,
- frame.qname(),
- id(self),
- )
-
- def implicit_parameters(self):
- return 0
-
- def is_bound(self):
- return False
-
- def getattr(self, name, context=None):
- if name in self.special_attributes:
- return [self.special_attributes.lookup(name)]
- return self._proxied.getattr(name, context)
-
- def igetattr(self, name, context=None):
- if name in self.special_attributes:
- return iter((self.special_attributes.lookup(name),))
- return self._proxied.igetattr(name, context)
-
- def infer_call_result(self, caller, context):
- """
- The boundnode of the regular context with a function called
- on ``object.__new__`` will be of type ``object``,
- which is incorrect for the argument in general.
- If no context is given the ``object.__new__`` call argument will
- correctly inferred except when inside a call that requires
- the additional context (such as a classmethod) of the boundnode
- to determine which class the method was called from
- """
-
- # If we're unbound method __new__ of builtin object, the result is an
- # instance of the class given as first argument.
- if (
- self._proxied.name == "__new__"
- and self._proxied.parent.frame().qname() == "%s.object" % BUILTINS
- ):
- if caller.args:
- node_context = context.extra_context.get(caller.args[0])
- infer = caller.args[0].infer(context=node_context)
- else:
- infer = []
- return (Instance(x) if x is not util.Uninferable else x for x in infer)
- return self._proxied.infer_call_result(caller, context)
-
- def bool_value(self):
- return True
-
-
-class BoundMethod(UnboundMethod):
- """a special node representing a method bound to an instance"""
-
- # pylint: disable=unnecessary-lambda
- special_attributes = util.lazy_descriptor(lambda: objectmodel.BoundMethodModel())
-
- def __init__(self, proxy, bound):
- UnboundMethod.__init__(self, proxy)
- self.bound = bound
-
- def implicit_parameters(self):
- return 1
-
- def is_bound(self):
- return True
-
- def _infer_type_new_call(self, caller, context):
- """Try to infer what type.__new__(mcs, name, bases, attrs) returns.
-
- In order for such call to be valid, the metaclass needs to be
- a subtype of ``type``, the name needs to be a string, the bases
- needs to be a tuple of classes
- """
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import node_classes
-
- # Verify the metaclass
- mcs = next(caller.args[0].infer(context=context))
- if mcs.__class__.__name__ != "ClassDef":
- # Not a valid first argument.
- return None
- if not mcs.is_subtype_of("%s.type" % BUILTINS):
- # Not a valid metaclass.
- return None
-
- # Verify the name
- name = next(caller.args[1].infer(context=context))
- if name.__class__.__name__ != "Const":
- # Not a valid name, needs to be a const.
- return None
- if not isinstance(name.value, str):
- # Needs to be a string.
- return None
-
- # Verify the bases
- bases = next(caller.args[2].infer(context=context))
- if bases.__class__.__name__ != "Tuple":
- # Needs to be a tuple.
- return None
- inferred_bases = [next(elt.infer(context=context)) for elt in bases.elts]
- if any(base.__class__.__name__ != "ClassDef" for base in inferred_bases):
- # All the bases needs to be Classes
- return None
-
- # Verify the attributes.
- attrs = next(caller.args[3].infer(context=context))
- if attrs.__class__.__name__ != "Dict":
- # Needs to be a dictionary.
- return None
- cls_locals = collections.defaultdict(list)
- for key, value in attrs.items:
- key = next(key.infer(context=context))
- value = next(value.infer(context=context))
- # Ignore non string keys
- if key.__class__.__name__ == "Const" and isinstance(key.value, str):
- cls_locals[key.value].append(value)
-
- # Build the class from now.
- cls = mcs.__class__(
- name=name.value,
- lineno=caller.lineno,
- col_offset=caller.col_offset,
- parent=caller,
- )
- empty = node_classes.Pass()
- cls.postinit(
- bases=bases.elts,
- body=[empty],
- decorators=[],
- newstyle=True,
- metaclass=mcs,
- keywords=[],
- )
- cls.locals = cls_locals
- return cls
-
- def infer_call_result(self, caller, context=None):
- context = contextmod.bind_context_to_node(context, self.bound)
- if (
- self.bound.__class__.__name__ == "ClassDef"
- and self.bound.name == "type"
- and self.name == "__new__"
- and len(caller.args) == 4
- ):
- # Check if we have a ``type.__new__(mcs, name, bases, attrs)`` call.
- new_cls = self._infer_type_new_call(caller, context)
- if new_cls:
- return iter((new_cls,))
-
- return super(BoundMethod, self).infer_call_result(caller, context)
-
- def bool_value(self):
- return True
-
-
-class Generator(BaseInstance):
- """a special node representing a generator.
-
- Proxied class is set once for all in raw_building.
- """
-
- # pylint: disable=unnecessary-lambda
- special_attributes = util.lazy_descriptor(lambda: objectmodel.GeneratorModel())
-
- # pylint: disable=super-init-not-called
- def __init__(self, parent=None):
- self.parent = parent
-
- def callable(self):
- return False
-
- def pytype(self):
- return "%s.generator" % BUILTINS
-
- def display_type(self):
- return "Generator"
-
- def bool_value(self):
- return True
-
- def __repr__(self):
- return "" % (
- self._proxied.name,
- self.lineno,
- id(self),
- )
-
- def __str__(self):
- return "Generator(%s)" % (self._proxied.name)
-
-
-class AsyncGenerator(Generator):
- """Special node representing an async generator"""
-
- def pytype(self):
- return "%s.async_generator" % BUILTINS
-
- def display_type(self):
- return "AsyncGenerator"
-
- def __repr__(self):
- return "" % (
- self._proxied.name,
- self.lineno,
- id(self),
- )
-
- def __str__(self):
- return "AsyncGenerator(%s)" % (self._proxied.name)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_argparse.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_argparse.cpython-37.pyc
deleted file mode 100644
index 02f8cf7..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_argparse.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_attrs.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_attrs.cpython-37.pyc
deleted file mode 100644
index 7cf4841..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_attrs.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_builtin_inference.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_builtin_inference.cpython-37.pyc
deleted file mode 100644
index c2a6f46..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_builtin_inference.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_collections.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_collections.cpython-37.pyc
deleted file mode 100644
index af5833f..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_collections.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_crypt.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_crypt.cpython-37.pyc
deleted file mode 100644
index a895bb5..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_crypt.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_curses.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_curses.cpython-37.pyc
deleted file mode 100644
index e33a68c..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_curses.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dataclasses.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dataclasses.cpython-37.pyc
deleted file mode 100644
index ead95a8..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dataclasses.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dateutil.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dateutil.cpython-37.pyc
deleted file mode 100644
index 94c253f..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_dateutil.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_fstrings.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_fstrings.cpython-37.pyc
deleted file mode 100644
index 807c54d..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_fstrings.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_functools.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_functools.cpython-37.pyc
deleted file mode 100644
index 1d0fbe5..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_functools.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_gi.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_gi.cpython-37.pyc
deleted file mode 100644
index 115a75b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_gi.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_hashlib.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_hashlib.cpython-37.pyc
deleted file mode 100644
index 8cd6565..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_hashlib.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_http.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_http.cpython-37.pyc
deleted file mode 100644
index ca12de5..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_http.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_io.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_io.cpython-37.pyc
deleted file mode 100644
index 5befdcd..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_io.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_mechanize.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_mechanize.cpython-37.pyc
deleted file mode 100644
index e02f078..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_mechanize.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_multiprocessing.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_multiprocessing.cpython-37.pyc
deleted file mode 100644
index 4c20ea7..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_multiprocessing.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_namedtuple_enum.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_namedtuple_enum.cpython-37.pyc
deleted file mode 100644
index 4f6155a..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_namedtuple_enum.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_nose.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_nose.cpython-37.pyc
deleted file mode 100644
index 872060b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_nose.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_fromnumeric.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_fromnumeric.cpython-37.pyc
deleted file mode 100644
index 275e716..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_fromnumeric.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_function_base.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_function_base.cpython-37.pyc
deleted file mode 100644
index 1b3da4c..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_function_base.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_multiarray.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_multiarray.cpython-37.pyc
deleted file mode 100644
index 4e9eb31..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_multiarray.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numeric.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numeric.cpython-37.pyc
deleted file mode 100644
index 6f6e302..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numeric.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numerictypes.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numerictypes.cpython-37.pyc
deleted file mode 100644
index 0c77435..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_numerictypes.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_umath.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_umath.cpython-37.pyc
deleted file mode 100644
index bb8593b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_core_umath.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_ndarray.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_ndarray.cpython-37.pyc
deleted file mode 100644
index f663c18..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_ndarray.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_random_mtrand.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_random_mtrand.cpython-37.pyc
deleted file mode 100644
index 32a3b7b..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_random_mtrand.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_utils.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_utils.cpython-37.pyc
deleted file mode 100644
index 0e950e7..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_numpy_utils.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pkg_resources.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pkg_resources.cpython-37.pyc
deleted file mode 100644
index bca107d..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pkg_resources.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pytest.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pytest.cpython-37.pyc
deleted file mode 100644
index c6647f8..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_pytest.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_qt.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_qt.cpython-37.pyc
deleted file mode 100644
index 01d5160..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_qt.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_random.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_random.cpython-37.pyc
deleted file mode 100644
index b5d2c69..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_random.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_re.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_re.cpython-37.pyc
deleted file mode 100644
index e317433..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_re.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_six.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_six.cpython-37.pyc
deleted file mode 100644
index b5deac2..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_six.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_ssl.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_ssl.cpython-37.pyc
deleted file mode 100644
index 90e94c9..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_ssl.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_subprocess.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_subprocess.cpython-37.pyc
deleted file mode 100644
index ac6c87d..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_subprocess.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_threading.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_threading.cpython-37.pyc
deleted file mode 100644
index a9214ba..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_threading.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_typing.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_typing.cpython-37.pyc
deleted file mode 100644
index 9cb0782..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_typing.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_uuid.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_uuid.cpython-37.pyc
deleted file mode 100644
index f6850ba..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/brain/__pycache__/brain_uuid.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_argparse.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_argparse.py
deleted file mode 100644
index d489911..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_argparse.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from astroid import MANAGER, arguments, nodes, inference_tip, UseInferenceDefault
-
-
-def infer_namespace(node, context=None):
- callsite = arguments.CallSite.from_call(node)
- if not callsite.keyword_arguments:
- # Cannot make sense of it.
- raise UseInferenceDefault()
-
- class_node = nodes.ClassDef("Namespace", "docstring")
- class_node.parent = node.parent
- for attr in set(callsite.keyword_arguments):
- fake_node = nodes.EmptyNode()
- fake_node.parent = class_node
- fake_node.attrname = attr
- class_node.instance_attrs[attr] = [fake_node]
- return iter((class_node.instantiate_class(),))
-
-
-def _looks_like_namespace(node):
- func = node.func
- if isinstance(func, nodes.Attribute):
- return (
- func.attrname == "Namespace"
- and isinstance(func.expr, nodes.Name)
- and func.expr.name == "argparse"
- )
- return False
-
-
-MANAGER.register_transform(
- nodes.Call, inference_tip(infer_namespace), _looks_like_namespace
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_attrs.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_attrs.py
deleted file mode 100644
index 670736f..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_attrs.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-"""
-Astroid hook for the attrs library
-
-Without this hook pylint reports unsupported-assignment-operation
-for attrs classes
-"""
-
-import astroid
-from astroid import MANAGER
-
-
-ATTRIB_NAMES = frozenset(("attr.ib", "attrib", "attr.attrib"))
-ATTRS_NAMES = frozenset(("attr.s", "attrs", "attr.attrs", "attr.attributes"))
-
-
-def is_decorated_with_attrs(node, decorator_names=ATTRS_NAMES):
- """Return True if a decorated node has
- an attr decorator applied."""
- if not node.decorators:
- return False
- for decorator_attribute in node.decorators.nodes:
- if isinstance(decorator_attribute, astroid.Call): # decorator with arguments
- decorator_attribute = decorator_attribute.func
- if decorator_attribute.as_string() in decorator_names:
- return True
- return False
-
-
-def attr_attributes_transform(node):
- """Given that the ClassNode has an attr decorator,
- rewrite class attributes as instance attributes
- """
- # Astroid can't infer this attribute properly
- # Prevents https://github.com/PyCQA/pylint/issues/1884
- node.locals["__attrs_attrs__"] = [astroid.Unknown(parent=node)]
-
- for cdefbodynode in node.body:
- if not isinstance(cdefbodynode, (astroid.Assign, astroid.AnnAssign)):
- continue
- if isinstance(cdefbodynode.value, astroid.Call):
- if cdefbodynode.value.func.as_string() not in ATTRIB_NAMES:
- continue
- else:
- continue
- targets = (
- cdefbodynode.targets
- if hasattr(cdefbodynode, "targets")
- else [cdefbodynode.target]
- )
- for target in targets:
-
- rhs_node = astroid.Unknown(
- lineno=cdefbodynode.lineno,
- col_offset=cdefbodynode.col_offset,
- parent=cdefbodynode,
- )
- node.locals[target.name] = [rhs_node]
- node.instance_attrs[target.name] = [rhs_node]
-
-
-MANAGER.register_transform(
- astroid.ClassDef, attr_attributes_transform, is_decorated_with_attrs
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_builtin_inference.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_builtin_inference.py
deleted file mode 100644
index 2dd7cc5..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_builtin_inference.py
+++ /dev/null
@@ -1,829 +0,0 @@
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014-2015 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Rene Zhang
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for various builtins."""
-
-from functools import partial
-from textwrap import dedent
-
-import six
-from astroid import (
- MANAGER,
- UseInferenceDefault,
- AttributeInferenceError,
- inference_tip,
- InferenceError,
- NameInferenceError,
- AstroidTypeError,
- MroError,
-)
-from astroid import arguments
-from astroid.builder import AstroidBuilder
-from astroid import helpers
-from astroid import nodes
-from astroid import objects
-from astroid import scoped_nodes
-from astroid import util
-
-
-OBJECT_DUNDER_NEW = "object.__new__"
-
-
-def _extend_str(class_node, rvalue):
- """function to extend builtin str/unicode class"""
- code = dedent(
- """
- class whatever(object):
- def join(self, iterable):
- return {rvalue}
- def replace(self, old, new, count=None):
- return {rvalue}
- def format(self, *args, **kwargs):
- return {rvalue}
- def encode(self, encoding='ascii', errors=None):
- return ''
- def decode(self, encoding='ascii', errors=None):
- return u''
- def capitalize(self):
- return {rvalue}
- def title(self):
- return {rvalue}
- def lower(self):
- return {rvalue}
- def upper(self):
- return {rvalue}
- def swapcase(self):
- return {rvalue}
- def index(self, sub, start=None, end=None):
- return 0
- def find(self, sub, start=None, end=None):
- return 0
- def count(self, sub, start=None, end=None):
- return 0
- def strip(self, chars=None):
- return {rvalue}
- def lstrip(self, chars=None):
- return {rvalue}
- def rstrip(self, chars=None):
- return {rvalue}
- def rjust(self, width, fillchar=None):
- return {rvalue}
- def center(self, width, fillchar=None):
- return {rvalue}
- def ljust(self, width, fillchar=None):
- return {rvalue}
- """
- )
- code = code.format(rvalue=rvalue)
- fake = AstroidBuilder(MANAGER).string_build(code)["whatever"]
- for method in fake.mymethods():
- method.parent = class_node
- method.lineno = None
- method.col_offset = None
- if "__class__" in method.locals:
- method.locals["__class__"] = [class_node]
- class_node.locals[method.name] = [method]
- method.parent = class_node
-
-
-def _extend_builtins(class_transforms):
- builtin_ast = MANAGER.builtins_module
- for class_name, transform in class_transforms.items():
- transform(builtin_ast[class_name])
-
-
-_extend_builtins(
- {
- "bytes": partial(_extend_str, rvalue="b''"),
- "str": partial(_extend_str, rvalue="''"),
- }
-)
-
-
-def _builtin_filter_predicate(node, builtin_name):
- if isinstance(node.func, nodes.Name) and node.func.name == builtin_name:
- return True
- if isinstance(node.func, nodes.Attribute):
- return (
- node.func.attrname == "fromkeys"
- and isinstance(node.func.expr, nodes.Name)
- and node.func.expr.name == "dict"
- )
- return False
-
-
-def register_builtin_transform(transform, builtin_name):
- """Register a new transform function for the given *builtin_name*.
-
- The transform function must accept two parameters, a node and
- an optional context.
- """
-
- def _transform_wrapper(node, context=None):
- result = transform(node, context=context)
- if result:
- if not result.parent:
- # Let the transformation function determine
- # the parent for its result. Otherwise,
- # we set it to be the node we transformed from.
- result.parent = node
-
- if result.lineno is None:
- result.lineno = node.lineno
- if result.col_offset is None:
- result.col_offset = node.col_offset
- return iter([result])
-
- MANAGER.register_transform(
- nodes.Call,
- inference_tip(_transform_wrapper),
- partial(_builtin_filter_predicate, builtin_name=builtin_name),
- )
-
-
-def _container_generic_inference(node, context, node_type, transform):
- args = node.args
- if not args:
- return node_type()
- if len(node.args) > 1:
- raise UseInferenceDefault()
-
- arg, = args
- transformed = transform(arg)
- if not transformed:
- try:
- inferred = next(arg.infer(context=context))
- except (InferenceError, StopIteration):
- raise UseInferenceDefault()
- if inferred is util.Uninferable:
- raise UseInferenceDefault()
- transformed = transform(inferred)
- if not transformed or transformed is util.Uninferable:
- raise UseInferenceDefault()
- return transformed
-
-
-def _container_generic_transform(arg, klass, iterables, build_elts):
- if isinstance(arg, klass):
- return arg
- elif isinstance(arg, iterables):
- if all(isinstance(elt, nodes.Const) for elt in arg.elts):
- elts = [elt.value for elt in arg.elts]
- else:
- # TODO: Does not handle deduplication for sets.
- elts = filter(None, map(helpers.safe_infer, arg.elts))
- elif isinstance(arg, nodes.Dict):
- # Dicts need to have consts as strings already.
- if not all(isinstance(elt[0], nodes.Const) for elt in arg.items):
- raise UseInferenceDefault()
- elts = [item[0].value for item in arg.items]
- elif isinstance(arg, nodes.Const) and isinstance(
- arg.value, (six.string_types, six.binary_type)
- ):
- elts = arg.value
- else:
- return
- return klass.from_elements(elts=build_elts(elts))
-
-
-def _infer_builtin_container(
- node, context, klass=None, iterables=None, build_elts=None
-):
- transform_func = partial(
- _container_generic_transform,
- klass=klass,
- iterables=iterables,
- build_elts=build_elts,
- )
-
- return _container_generic_inference(node, context, klass, transform_func)
-
-
-# pylint: disable=invalid-name
-infer_tuple = partial(
- _infer_builtin_container,
- klass=nodes.Tuple,
- iterables=(
- nodes.List,
- nodes.Set,
- objects.FrozenSet,
- objects.DictItems,
- objects.DictKeys,
- objects.DictValues,
- ),
- build_elts=tuple,
-)
-
-infer_list = partial(
- _infer_builtin_container,
- klass=nodes.List,
- iterables=(
- nodes.Tuple,
- nodes.Set,
- objects.FrozenSet,
- objects.DictItems,
- objects.DictKeys,
- objects.DictValues,
- ),
- build_elts=list,
-)
-
-infer_set = partial(
- _infer_builtin_container,
- klass=nodes.Set,
- iterables=(nodes.List, nodes.Tuple, objects.FrozenSet, objects.DictKeys),
- build_elts=set,
-)
-
-infer_frozenset = partial(
- _infer_builtin_container,
- klass=objects.FrozenSet,
- iterables=(nodes.List, nodes.Tuple, nodes.Set, objects.FrozenSet, objects.DictKeys),
- build_elts=frozenset,
-)
-
-
-def _get_elts(arg, context):
- is_iterable = lambda n: isinstance(n, (nodes.List, nodes.Tuple, nodes.Set))
- try:
- inferred = next(arg.infer(context))
- except (InferenceError, NameInferenceError):
- raise UseInferenceDefault()
- if isinstance(inferred, nodes.Dict):
- items = inferred.items
- elif is_iterable(inferred):
- items = []
- for elt in inferred.elts:
- # If an item is not a pair of two items,
- # then fallback to the default inference.
- # Also, take in consideration only hashable items,
- # tuples and consts. We are choosing Names as well.
- if not is_iterable(elt):
- raise UseInferenceDefault()
- if len(elt.elts) != 2:
- raise UseInferenceDefault()
- if not isinstance(elt.elts[0], (nodes.Tuple, nodes.Const, nodes.Name)):
- raise UseInferenceDefault()
- items.append(tuple(elt.elts))
- else:
- raise UseInferenceDefault()
- return items
-
-
-def infer_dict(node, context=None):
- """Try to infer a dict call to a Dict node.
-
- The function treats the following cases:
-
- * dict()
- * dict(mapping)
- * dict(iterable)
- * dict(iterable, **kwargs)
- * dict(mapping, **kwargs)
- * dict(**kwargs)
-
- If a case can't be inferred, we'll fallback to default inference.
- """
- call = arguments.CallSite.from_call(node)
- if call.has_invalid_arguments() or call.has_invalid_keywords():
- raise UseInferenceDefault
-
- args = call.positional_arguments
- kwargs = list(call.keyword_arguments.items())
-
- if not args and not kwargs:
- # dict()
- return nodes.Dict()
- elif kwargs and not args:
- # dict(a=1, b=2, c=4)
- items = [(nodes.Const(key), value) for key, value in kwargs]
- elif len(args) == 1 and kwargs:
- # dict(some_iterable, b=2, c=4)
- elts = _get_elts(args[0], context)
- keys = [(nodes.Const(key), value) for key, value in kwargs]
- items = elts + keys
- elif len(args) == 1:
- items = _get_elts(args[0], context)
- else:
- raise UseInferenceDefault()
-
- value = nodes.Dict(
- col_offset=node.col_offset, lineno=node.lineno, parent=node.parent
- )
- value.postinit(items)
- return value
-
-
-def infer_super(node, context=None):
- """Understand super calls.
-
- There are some restrictions for what can be understood:
-
- * unbounded super (one argument form) is not understood.
-
- * if the super call is not inside a function (classmethod or method),
- then the default inference will be used.
-
- * if the super arguments can't be inferred, the default inference
- will be used.
- """
- if len(node.args) == 1:
- # Ignore unbounded super.
- raise UseInferenceDefault
-
- scope = node.scope()
- if not isinstance(scope, nodes.FunctionDef):
- # Ignore non-method uses of super.
- raise UseInferenceDefault
- if scope.type not in ("classmethod", "method"):
- # Not interested in staticmethods.
- raise UseInferenceDefault
-
- cls = scoped_nodes.get_wrapping_class(scope)
- if not len(node.args):
- mro_pointer = cls
- # In we are in a classmethod, the interpreter will fill
- # automatically the class as the second argument, not an instance.
- if scope.type == "classmethod":
- mro_type = cls
- else:
- mro_type = cls.instantiate_class()
- else:
- try:
- mro_pointer = next(node.args[0].infer(context=context))
- except InferenceError:
- raise UseInferenceDefault
- try:
- mro_type = next(node.args[1].infer(context=context))
- except InferenceError:
- raise UseInferenceDefault
-
- if mro_pointer is util.Uninferable or mro_type is util.Uninferable:
- # No way we could understand this.
- raise UseInferenceDefault
-
- super_obj = objects.Super(
- mro_pointer=mro_pointer, mro_type=mro_type, self_class=cls, scope=scope
- )
- super_obj.parent = node
- return super_obj
-
-
-def _infer_getattr_args(node, context):
- if len(node.args) not in (2, 3):
- # Not a valid getattr call.
- raise UseInferenceDefault
-
- try:
- obj = next(node.args[0].infer(context=context))
- attr = next(node.args[1].infer(context=context))
- except InferenceError:
- raise UseInferenceDefault
-
- if obj is util.Uninferable or attr is util.Uninferable:
- # If one of the arguments is something we can't infer,
- # then also make the result of the getattr call something
- # which is unknown.
- return util.Uninferable, util.Uninferable
-
- is_string = isinstance(attr, nodes.Const) and isinstance(
- attr.value, six.string_types
- )
- if not is_string:
- raise UseInferenceDefault
-
- return obj, attr.value
-
-
-def infer_getattr(node, context=None):
- """Understand getattr calls
-
- If one of the arguments is an Uninferable object, then the
- result will be an Uninferable object. Otherwise, the normal attribute
- lookup will be done.
- """
- obj, attr = _infer_getattr_args(node, context)
- if (
- obj is util.Uninferable
- or attr is util.Uninferable
- or not hasattr(obj, "igetattr")
- ):
- return util.Uninferable
-
- try:
- return next(obj.igetattr(attr, context=context))
- except (StopIteration, InferenceError, AttributeInferenceError):
- if len(node.args) == 3:
- # Try to infer the default and return it instead.
- try:
- return next(node.args[2].infer(context=context))
- except InferenceError:
- raise UseInferenceDefault
-
- raise UseInferenceDefault
-
-
-def infer_hasattr(node, context=None):
- """Understand hasattr calls
-
- This always guarantees three possible outcomes for calling
- hasattr: Const(False) when we are sure that the object
- doesn't have the intended attribute, Const(True) when
- we know that the object has the attribute and Uninferable
- when we are unsure of the outcome of the function call.
- """
- try:
- obj, attr = _infer_getattr_args(node, context)
- if (
- obj is util.Uninferable
- or attr is util.Uninferable
- or not hasattr(obj, "getattr")
- ):
- return util.Uninferable
- obj.getattr(attr, context=context)
- except UseInferenceDefault:
- # Can't infer something from this function call.
- return util.Uninferable
- except AttributeInferenceError:
- # Doesn't have it.
- return nodes.Const(False)
- return nodes.Const(True)
-
-
-def infer_callable(node, context=None):
- """Understand callable calls
-
- This follows Python's semantics, where an object
- is callable if it provides an attribute __call__,
- even though that attribute is something which can't be
- called.
- """
- if len(node.args) != 1:
- # Invalid callable call.
- raise UseInferenceDefault
-
- argument = node.args[0]
- try:
- inferred = next(argument.infer(context=context))
- except InferenceError:
- return util.Uninferable
- if inferred is util.Uninferable:
- return util.Uninferable
- return nodes.Const(inferred.callable())
-
-
-def infer_bool(node, context=None):
- """Understand bool calls."""
- if len(node.args) > 1:
- # Invalid bool call.
- raise UseInferenceDefault
-
- if not node.args:
- return nodes.Const(False)
-
- argument = node.args[0]
- try:
- inferred = next(argument.infer(context=context))
- except InferenceError:
- return util.Uninferable
- if inferred is util.Uninferable:
- return util.Uninferable
-
- bool_value = inferred.bool_value()
- if bool_value is util.Uninferable:
- return util.Uninferable
- return nodes.Const(bool_value)
-
-
-def infer_type(node, context=None):
- """Understand the one-argument form of *type*."""
- if len(node.args) != 1:
- raise UseInferenceDefault
-
- return helpers.object_type(node.args[0], context)
-
-
-def infer_slice(node, context=None):
- """Understand `slice` calls."""
- args = node.args
- if not 0 < len(args) <= 3:
- raise UseInferenceDefault
-
- infer_func = partial(helpers.safe_infer, context=context)
- args = [infer_func(arg) for arg in args]
- for arg in args:
- if not arg or arg is util.Uninferable:
- raise UseInferenceDefault
- if not isinstance(arg, nodes.Const):
- raise UseInferenceDefault
- if not isinstance(arg.value, (type(None), int)):
- raise UseInferenceDefault
-
- if len(args) < 3:
- # Make sure we have 3 arguments.
- args.extend([None] * (3 - len(args)))
-
- slice_node = nodes.Slice(
- lineno=node.lineno, col_offset=node.col_offset, parent=node.parent
- )
- slice_node.postinit(*args)
- return slice_node
-
-
-def _infer_object__new__decorator(node, context=None):
- # Instantiate class immediately
- # since that's what @object.__new__ does
- return iter((node.instantiate_class(),))
-
-
-def _infer_object__new__decorator_check(node):
- """Predicate before inference_tip
-
- Check if the given ClassDef has an @object.__new__ decorator
- """
- if not node.decorators:
- return False
-
- for decorator in node.decorators.nodes:
- if isinstance(decorator, nodes.Attribute):
- if decorator.as_string() == OBJECT_DUNDER_NEW:
- return True
- return False
-
-
-def infer_issubclass(callnode, context=None):
- """Infer issubclass() calls
-
- :param nodes.Call callnode: an `issubclass` call
- :param InferenceContext: the context for the inference
- :rtype nodes.Const: Boolean Const value of the `issubclass` call
- :raises UseInferenceDefault: If the node cannot be inferred
- """
- call = arguments.CallSite.from_call(callnode)
- if call.keyword_arguments:
- # issubclass doesn't support keyword arguments
- raise UseInferenceDefault("TypeError: issubclass() takes no keyword arguments")
- if len(call.positional_arguments) != 2:
- raise UseInferenceDefault(
- "Expected two arguments, got {count}".format(
- count=len(call.positional_arguments)
- )
- )
- # The left hand argument is the obj to be checked
- obj_node, class_or_tuple_node = call.positional_arguments
-
- try:
- obj_type = next(obj_node.infer(context=context))
- except InferenceError as exc:
- raise UseInferenceDefault from exc
- if not isinstance(obj_type, nodes.ClassDef):
- raise UseInferenceDefault("TypeError: arg 1 must be class")
-
- # The right hand argument is the class(es) that the given
- # object is to be checked against.
- try:
- class_container = _class_or_tuple_to_container(
- class_or_tuple_node, context=context
- )
- except InferenceError as exc:
- raise UseInferenceDefault from exc
- try:
- issubclass_bool = helpers.object_issubclass(obj_type, class_container, context)
- except AstroidTypeError as exc:
- raise UseInferenceDefault("TypeError: " + str(exc)) from exc
- except MroError as exc:
- raise UseInferenceDefault from exc
- return nodes.Const(issubclass_bool)
-
-
-def infer_isinstance(callnode, context=None):
- """Infer isinstance calls
-
- :param nodes.Call callnode: an isinstance call
- :param InferenceContext: context for call
- (currently unused but is a common interface for inference)
- :rtype nodes.Const: Boolean Const value of isinstance call
-
- :raises UseInferenceDefault: If the node cannot be inferred
- """
- call = arguments.CallSite.from_call(callnode)
- if call.keyword_arguments:
- # isinstance doesn't support keyword arguments
- raise UseInferenceDefault("TypeError: isinstance() takes no keyword arguments")
- if len(call.positional_arguments) != 2:
- raise UseInferenceDefault(
- "Expected two arguments, got {count}".format(
- count=len(call.positional_arguments)
- )
- )
- # The left hand argument is the obj to be checked
- obj_node, class_or_tuple_node = call.positional_arguments
- # The right hand argument is the class(es) that the given
- # obj is to be check is an instance of
- try:
- class_container = _class_or_tuple_to_container(
- class_or_tuple_node, context=context
- )
- except InferenceError:
- raise UseInferenceDefault
- try:
- isinstance_bool = helpers.object_isinstance(obj_node, class_container, context)
- except AstroidTypeError as exc:
- raise UseInferenceDefault("TypeError: " + str(exc))
- except MroError as exc:
- raise UseInferenceDefault from exc
- if isinstance_bool is util.Uninferable:
- raise UseInferenceDefault
- return nodes.Const(isinstance_bool)
-
-
-def _class_or_tuple_to_container(node, context=None):
- # Move inferences results into container
- # to simplify later logic
- # raises InferenceError if any of the inferences fall through
- node_infer = next(node.infer(context=context))
- # arg2 MUST be a type or a TUPLE of types
- # for isinstance
- if isinstance(node_infer, nodes.Tuple):
- class_container = [
- next(node.infer(context=context)) for node in node_infer.elts
- ]
- class_container = [
- klass_node for klass_node in class_container if klass_node is not None
- ]
- else:
- class_container = [node_infer]
- return class_container
-
-
-def infer_len(node, context=None):
- """Infer length calls
-
- :param nodes.Call node: len call to infer
- :param context.InferenceContext: node context
- :rtype nodes.Const: a Const node with the inferred length, if possible
- """
- call = arguments.CallSite.from_call(node)
- if call.keyword_arguments:
- raise UseInferenceDefault("TypeError: len() must take no keyword arguments")
- if len(call.positional_arguments) != 1:
- raise UseInferenceDefault(
- "TypeError: len() must take exactly one argument "
- "({len}) given".format(len=len(call.positional_arguments))
- )
- [argument_node] = call.positional_arguments
- try:
- return nodes.Const(helpers.object_len(argument_node, context=context))
- except (AstroidTypeError, InferenceError) as exc:
- raise UseInferenceDefault(str(exc)) from exc
-
-
-def infer_str(node, context=None):
- """Infer str() calls
-
- :param nodes.Call node: str() call to infer
- :param context.InferenceContext: node context
- :rtype nodes.Const: a Const containing an empty string
- """
- call = arguments.CallSite.from_call(node)
- if call.keyword_arguments:
- raise UseInferenceDefault("TypeError: str() must take no keyword arguments")
- try:
- return nodes.Const("")
- except (AstroidTypeError, InferenceError) as exc:
- raise UseInferenceDefault(str(exc)) from exc
-
-
-def infer_int(node, context=None):
- """Infer int() calls
-
- :param nodes.Call node: int() call to infer
- :param context.InferenceContext: node context
- :rtype nodes.Const: a Const containing the integer value of the int() call
- """
- call = arguments.CallSite.from_call(node)
- if call.keyword_arguments:
- raise UseInferenceDefault("TypeError: int() must take no keyword arguments")
-
- if call.positional_arguments:
- try:
- first_value = next(call.positional_arguments[0].infer(context=context))
- except InferenceError as exc:
- raise UseInferenceDefault(str(exc)) from exc
-
- if first_value is util.Uninferable:
- raise UseInferenceDefault
-
- if isinstance(first_value, nodes.Const) and isinstance(
- first_value.value, (int, str)
- ):
- try:
- actual_value = int(first_value.value)
- except ValueError:
- return nodes.Const(0)
- return nodes.Const(actual_value)
-
- return nodes.Const(0)
-
-
-def infer_dict_fromkeys(node, context=None):
- """Infer dict.fromkeys
-
- :param nodes.Call node: dict.fromkeys() call to infer
- :param context.InferenceContext: node context
- :rtype nodes.Dict:
- a Dictionary containing the values that astroid was able to infer.
- In case the inference failed for any reason, an empty dictionary
- will be inferred instead.
- """
-
- def _build_dict_with_elements(elements):
- new_node = nodes.Dict(
- col_offset=node.col_offset, lineno=node.lineno, parent=node.parent
- )
- new_node.postinit(elements)
- return new_node
-
- call = arguments.CallSite.from_call(node)
- if call.keyword_arguments:
- raise UseInferenceDefault("TypeError: int() must take no keyword arguments")
- if len(call.positional_arguments) not in {1, 2}:
- raise UseInferenceDefault(
- "TypeError: Needs between 1 and 2 positional arguments"
- )
-
- default = nodes.Const(None)
- values = call.positional_arguments[0]
- try:
- inferred_values = next(values.infer(context=context))
- except InferenceError:
- return _build_dict_with_elements([])
- if inferred_values is util.Uninferable:
- return _build_dict_with_elements([])
-
- # Limit to a couple of potential values, as this can become pretty complicated
- accepted_iterable_elements = (nodes.Const,)
- if isinstance(inferred_values, (nodes.List, nodes.Set, nodes.Tuple)):
- elements = inferred_values.elts
- for element in elements:
- if not isinstance(element, accepted_iterable_elements):
- # Fallback to an empty dict
- return _build_dict_with_elements([])
-
- elements_with_value = [(element, default) for element in elements]
- return _build_dict_with_elements(elements_with_value)
-
- elif isinstance(inferred_values, nodes.Const) and isinstance(
- inferred_values.value, (str, bytes)
- ):
- elements = [
- (nodes.Const(element), default) for element in inferred_values.value
- ]
- return _build_dict_with_elements(elements)
- elif isinstance(inferred_values, nodes.Dict):
- keys = inferred_values.itered()
- for key in keys:
- if not isinstance(key, accepted_iterable_elements):
- # Fallback to an empty dict
- return _build_dict_with_elements([])
-
- elements_with_value = [(element, default) for element in keys]
- return _build_dict_with_elements(elements_with_value)
-
- # Fallback to an empty dictionary
- return _build_dict_with_elements([])
-
-
-# Builtins inference
-register_builtin_transform(infer_bool, "bool")
-register_builtin_transform(infer_super, "super")
-register_builtin_transform(infer_callable, "callable")
-register_builtin_transform(infer_getattr, "getattr")
-register_builtin_transform(infer_hasattr, "hasattr")
-register_builtin_transform(infer_tuple, "tuple")
-register_builtin_transform(infer_set, "set")
-register_builtin_transform(infer_list, "list")
-register_builtin_transform(infer_dict, "dict")
-register_builtin_transform(infer_frozenset, "frozenset")
-register_builtin_transform(infer_type, "type")
-register_builtin_transform(infer_slice, "slice")
-register_builtin_transform(infer_isinstance, "isinstance")
-register_builtin_transform(infer_issubclass, "issubclass")
-register_builtin_transform(infer_len, "len")
-register_builtin_transform(infer_str, "str")
-register_builtin_transform(infer_int, "int")
-register_builtin_transform(infer_dict_fromkeys, "dict.fromkeys")
-
-
-# Infer object.__new__ calls
-MANAGER.register_transform(
- nodes.ClassDef,
- inference_tip(_infer_object__new__decorator),
- _infer_object__new__decorator_check,
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_collections.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_collections.py
deleted file mode 100644
index e5b09ec..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_collections.py
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2016, 2018 Claudiu Popa
-# Copyright (c) 2016-2017 Łukasz Rogalski
-# Copyright (c) 2017 Derek Gustafson
-# Copyright (c) 2018 Ioana Tagirta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import sys
-
-import astroid
-
-
-def _collections_transform():
- return astroid.parse(
- """
- class defaultdict(dict):
- default_factory = None
- def __missing__(self, key): pass
- def __getitem__(self, key): return default_factory
-
- """
- + _deque_mock()
- + _ordered_dict_mock()
- )
-
-
-def _deque_mock():
- base_deque_class = """
- class deque(object):
- maxlen = 0
- def __init__(self, iterable=None, maxlen=None):
- self.iterable = iterable or []
- def append(self, x): pass
- def appendleft(self, x): pass
- def clear(self): pass
- def count(self, x): return 0
- def extend(self, iterable): pass
- def extendleft(self, iterable): pass
- def pop(self): return self.iterable[0]
- def popleft(self): return self.iterable[0]
- def remove(self, value): pass
- def reverse(self): return reversed(self.iterable)
- def rotate(self, n=1): return self
- def __iter__(self): return self
- def __reversed__(self): return self.iterable[::-1]
- def __getitem__(self, index): return self.iterable[index]
- def __setitem__(self, index, value): pass
- def __delitem__(self, index): pass
- def __bool__(self): return bool(self.iterable)
- def __nonzero__(self): return bool(self.iterable)
- def __contains__(self, o): return o in self.iterable
- def __len__(self): return len(self.iterable)
- def __copy__(self): return deque(self.iterable)
- def copy(self): return deque(self.iterable)
- def index(self, x, start=0, end=0): return 0
- def insert(self, x, i): pass
- def __add__(self, other): pass
- def __iadd__(self, other): pass
- def __mul__(self, other): pass
- def __imul__(self, other): pass
- def __rmul__(self, other): pass"""
- return base_deque_class
-
-
-def _ordered_dict_mock():
- base_ordered_dict_class = """
- class OrderedDict(dict):
- def __reversed__(self): return self[::-1]
- def move_to_end(self, key, last=False): pass"""
- return base_ordered_dict_class
-
-
-astroid.register_module_extender(astroid.MANAGER, "collections", _collections_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_crypt.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_crypt.py
deleted file mode 100644
index 491ee23..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_crypt.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import sys
-import astroid
-
-PY37 = sys.version_info >= (3, 7)
-
-if PY37:
- # Since Python 3.7 Hashing Methods are added
- # dynamically to globals()
-
- def _re_transform():
- return astroid.parse(
- """
- from collections import namedtuple
- _Method = namedtuple('_Method', 'name ident salt_chars total_size')
-
- METHOD_SHA512 = _Method('SHA512', '6', 16, 106)
- METHOD_SHA256 = _Method('SHA256', '5', 16, 63)
- METHOD_BLOWFISH = _Method('BLOWFISH', 2, 'b', 22)
- METHOD_MD5 = _Method('MD5', '1', 8, 34)
- METHOD_CRYPT = _Method('CRYPT', None, 2, 13)
- """
- )
-
- astroid.register_module_extender(astroid.MANAGER, "crypt", _re_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_curses.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_curses.py
deleted file mode 100644
index 68e88b9..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_curses.py
+++ /dev/null
@@ -1,179 +0,0 @@
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import astroid
-
-
-def _curses_transform():
- return astroid.parse(
- """
- A_ALTCHARSET = 1
- A_BLINK = 1
- A_BOLD = 1
- A_DIM = 1
- A_INVIS = 1
- A_ITALIC = 1
- A_NORMAL = 1
- A_PROTECT = 1
- A_REVERSE = 1
- A_STANDOUT = 1
- A_UNDERLINE = 1
- A_HORIZONTAL = 1
- A_LEFT = 1
- A_LOW = 1
- A_RIGHT = 1
- A_TOP = 1
- A_VERTICAL = 1
- A_CHARTEXT = 1
- A_ATTRIBUTES = 1
- A_CHARTEXT = 1
- A_COLOR = 1
- KEY_MIN = 1
- KEY_BREAK = 1
- KEY_DOWN = 1
- KEY_UP = 1
- KEY_LEFT = 1
- KEY_RIGHT = 1
- KEY_HOME = 1
- KEY_BACKSPACE = 1
- KEY_F0 = 1
- KEY_Fn = 1
- KEY_DL = 1
- KEY_IL = 1
- KEY_DC = 1
- KEY_IC = 1
- KEY_EIC = 1
- KEY_CLEAR = 1
- KEY_EOS = 1
- KEY_EOL = 1
- KEY_SF = 1
- KEY_SR = 1
- KEY_NPAGE = 1
- KEY_PPAGE = 1
- KEY_STAB = 1
- KEY_CTAB = 1
- KEY_CATAB = 1
- KEY_ENTER = 1
- KEY_SRESET = 1
- KEY_RESET = 1
- KEY_PRINT = 1
- KEY_LL = 1
- KEY_A1 = 1
- KEY_A3 = 1
- KEY_B2 = 1
- KEY_C1 = 1
- KEY_C3 = 1
- KEY_BTAB = 1
- KEY_BEG = 1
- KEY_CANCEL = 1
- KEY_CLOSE = 1
- KEY_COMMAND = 1
- KEY_COPY = 1
- KEY_CREATE = 1
- KEY_END = 1
- KEY_EXIT = 1
- KEY_FIND = 1
- KEY_HELP = 1
- KEY_MARK = 1
- KEY_MESSAGE = 1
- KEY_MOVE = 1
- KEY_NEXT = 1
- KEY_OPEN = 1
- KEY_OPTIONS = 1
- KEY_PREVIOUS = 1
- KEY_REDO = 1
- KEY_REFERENCE = 1
- KEY_REFRESH = 1
- KEY_REPLACE = 1
- KEY_RESTART = 1
- KEY_RESUME = 1
- KEY_SAVE = 1
- KEY_SBEG = 1
- KEY_SCANCEL = 1
- KEY_SCOMMAND = 1
- KEY_SCOPY = 1
- KEY_SCREATE = 1
- KEY_SDC = 1
- KEY_SDL = 1
- KEY_SELECT = 1
- KEY_SEND = 1
- KEY_SEOL = 1
- KEY_SEXIT = 1
- KEY_SFIND = 1
- KEY_SHELP = 1
- KEY_SHOME = 1
- KEY_SIC = 1
- KEY_SLEFT = 1
- KEY_SMESSAGE = 1
- KEY_SMOVE = 1
- KEY_SNEXT = 1
- KEY_SOPTIONS = 1
- KEY_SPREVIOUS = 1
- KEY_SPRINT = 1
- KEY_SREDO = 1
- KEY_SREPLACE = 1
- KEY_SRIGHT = 1
- KEY_SRSUME = 1
- KEY_SSAVE = 1
- KEY_SSUSPEND = 1
- KEY_SUNDO = 1
- KEY_SUSPEND = 1
- KEY_UNDO = 1
- KEY_MOUSE = 1
- KEY_RESIZE = 1
- KEY_MAX = 1
- ACS_BBSS = 1
- ACS_BLOCK = 1
- ACS_BOARD = 1
- ACS_BSBS = 1
- ACS_BSSB = 1
- ACS_BSSS = 1
- ACS_BTEE = 1
- ACS_BULLET = 1
- ACS_CKBOARD = 1
- ACS_DARROW = 1
- ACS_DEGREE = 1
- ACS_DIAMOND = 1
- ACS_GEQUAL = 1
- ACS_HLINE = 1
- ACS_LANTERN = 1
- ACS_LARROW = 1
- ACS_LEQUAL = 1
- ACS_LLCORNER = 1
- ACS_LRCORNER = 1
- ACS_LTEE = 1
- ACS_NEQUAL = 1
- ACS_PI = 1
- ACS_PLMINUS = 1
- ACS_PLUS = 1
- ACS_RARROW = 1
- ACS_RTEE = 1
- ACS_S1 = 1
- ACS_S3 = 1
- ACS_S7 = 1
- ACS_S9 = 1
- ACS_SBBS = 1
- ACS_SBSB = 1
- ACS_SBSS = 1
- ACS_SSBB = 1
- ACS_SSBS = 1
- ACS_SSSB = 1
- ACS_SSSS = 1
- ACS_STERLING = 1
- ACS_TTEE = 1
- ACS_UARROW = 1
- ACS_ULCORNER = 1
- ACS_URCORNER = 1
- ACS_VLINE = 1
- COLOR_BLACK = 1
- COLOR_BLUE = 1
- COLOR_CYAN = 1
- COLOR_GREEN = 1
- COLOR_MAGENTA = 1
- COLOR_RED = 1
- COLOR_WHITE = 1
- COLOR_YELLOW = 1
- """
- )
-
-
-astroid.register_module_extender(astroid.MANAGER, "curses", _curses_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_dataclasses.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_dataclasses.py
deleted file mode 100644
index 7a25e0c..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_dataclasses.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-"""
-Astroid hook for the dataclasses library
-"""
-
-import astroid
-from astroid import MANAGER
-
-
-DATACLASSES_DECORATORS = frozenset(("dataclasses.dataclass", "dataclass"))
-
-
-def is_decorated_with_dataclass(node, decorator_names=DATACLASSES_DECORATORS):
- """Return True if a decorated node has a `dataclass` decorator applied."""
- if not node.decorators:
- return False
- for decorator_attribute in node.decorators.nodes:
- if isinstance(decorator_attribute, astroid.Call): # decorator with arguments
- decorator_attribute = decorator_attribute.func
- if decorator_attribute.as_string() in decorator_names:
- return True
- return False
-
-
-def dataclass_transform(node):
- """Rewrite a dataclass to be easily understood by pylint"""
-
- for assign_node in node.body:
- if not isinstance(assign_node, (astroid.AnnAssign, astroid.Assign)):
- continue
-
- targets = (
- assign_node.targets
- if hasattr(assign_node, "targets")
- else [assign_node.target]
- )
- for target in targets:
- rhs_node = astroid.Unknown(
- lineno=assign_node.lineno,
- col_offset=assign_node.col_offset,
- parent=assign_node,
- )
- node.instance_attrs[target.name] = [rhs_node]
- node.locals[target.name] = [rhs_node]
-
-
-MANAGER.register_transform(
- astroid.ClassDef, dataclass_transform, is_decorated_with_dataclass
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_dateutil.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_dateutil.py
deleted file mode 100644
index a1c270f..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_dateutil.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2015-2016 Claudiu Popa
-# Copyright (c) 2015 raylu
-# Copyright (c) 2016 Ceridwen
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for dateutil"""
-
-import textwrap
-
-from astroid import MANAGER, register_module_extender
-from astroid.builder import AstroidBuilder
-
-
-def dateutil_transform():
- return AstroidBuilder(MANAGER).string_build(
- textwrap.dedent(
- """
- import datetime
- def parse(timestr, parserinfo=None, **kwargs):
- return datetime.datetime()
- """
- )
- )
-
-
-register_module_extender(MANAGER, "dateutil.parser", dateutil_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_fstrings.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_fstrings.py
deleted file mode 100644
index 7d8c7b6..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_fstrings.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2017 Claudiu Popa
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import collections
-import sys
-
-import astroid
-
-
-def _clone_node_with_lineno(node, parent, lineno):
- cls = node.__class__
- other_fields = node._other_fields
- _astroid_fields = node._astroid_fields
- init_params = {"lineno": lineno, "col_offset": node.col_offset, "parent": parent}
- postinit_params = {param: getattr(node, param) for param in _astroid_fields}
- if other_fields:
- init_params.update({param: getattr(node, param) for param in other_fields})
- new_node = cls(**init_params)
- if hasattr(node, "postinit") and _astroid_fields:
- for param, child in postinit_params.items():
- if child and not isinstance(child, collections.Sequence):
- cloned_child = _clone_node_with_lineno(
- node=child, lineno=new_node.lineno, parent=new_node
- )
- postinit_params[param] = cloned_child
- new_node.postinit(**postinit_params)
- return new_node
-
-
-def _transform_formatted_value(node):
- if node.value and node.value.lineno == 1:
- if node.lineno != node.value.lineno:
- new_node = astroid.FormattedValue(
- lineno=node.lineno, col_offset=node.col_offset, parent=node.parent
- )
- new_value = _clone_node_with_lineno(
- node=node.value, lineno=node.lineno, parent=new_node
- )
- new_node.postinit(value=new_value, format_spec=node.format_spec)
- return new_node
-
-
-if sys.version_info[:2] >= (3, 6):
- # TODO: this fix tries to *patch* http://bugs.python.org/issue29051
- # The problem is that FormattedValue.value, which is a Name node,
- # has wrong line numbers, usually 1. This creates problems for pylint,
- # which expects correct line numbers for things such as message control.
- astroid.MANAGER.register_transform(
- astroid.FormattedValue, _transform_formatted_value
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_functools.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_functools.py
deleted file mode 100644
index 8b594ef..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_functools.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2016, 2018 Claudiu Popa
-# Copyright (c) 2018 Bryce Guinta
-
-"""Astroid hooks for understanding functools library module."""
-from functools import partial
-from itertools import chain
-
-import astroid
-from astroid import arguments
-from astroid import BoundMethod
-from astroid import extract_node
-from astroid import helpers
-from astroid.interpreter import objectmodel
-from astroid import MANAGER
-from astroid import objects
-
-
-LRU_CACHE = "functools.lru_cache"
-
-
-class LruWrappedModel(objectmodel.FunctionModel):
- """Special attribute model for functions decorated with functools.lru_cache.
-
- The said decorators patches at decoration time some functions onto
- the decorated function.
- """
-
- @property
- def attr___wrapped__(self):
- return self._instance
-
- @property
- def attr_cache_info(self):
- cache_info = extract_node(
- """
- from functools import _CacheInfo
- _CacheInfo(0, 0, 0, 0)
- """
- )
-
- class CacheInfoBoundMethod(BoundMethod):
- def infer_call_result(self, caller, context=None):
- yield helpers.safe_infer(cache_info)
-
- return CacheInfoBoundMethod(proxy=self._instance, bound=self._instance)
-
- @property
- def attr_cache_clear(self):
- node = extract_node("""def cache_clear(self): pass""")
- return BoundMethod(proxy=node, bound=self._instance.parent.scope())
-
-
-def _transform_lru_cache(node, context=None):
- # TODO: this is not ideal, since the node should be immutable,
- # but due to https://github.com/PyCQA/astroid/issues/354,
- # there's not much we can do now.
- # Replacing the node would work partially, because,
- # in pylint, the old node would still be available, leading
- # to spurious false positives.
- node.special_attributes = LruWrappedModel()(node)
- return
-
-
-def _functools_partial_inference(node, context=None):
- call = arguments.CallSite.from_call(node)
- number_of_positional = len(call.positional_arguments)
- if number_of_positional < 1:
- raise astroid.UseInferenceDefault(
- "functools.partial takes at least one argument"
- )
- if number_of_positional == 1 and not call.keyword_arguments:
- raise astroid.UseInferenceDefault(
- "functools.partial needs at least to have some filled arguments"
- )
-
- partial_function = call.positional_arguments[0]
- try:
- inferred_wrapped_function = next(partial_function.infer(context=context))
- except astroid.InferenceError as exc:
- raise astroid.UseInferenceDefault from exc
- if inferred_wrapped_function is astroid.Uninferable:
- raise astroid.UseInferenceDefault("Cannot infer the wrapped function")
- if not isinstance(inferred_wrapped_function, astroid.FunctionDef):
- raise astroid.UseInferenceDefault("The wrapped function is not a function")
-
- # Determine if the passed keywords into the callsite are supported
- # by the wrapped function.
- function_parameters = chain(
- inferred_wrapped_function.args.args or (),
- inferred_wrapped_function.args.posonlyargs or (),
- inferred_wrapped_function.args.kwonlyargs or (),
- )
- parameter_names = set(
- param.name
- for param in function_parameters
- if isinstance(param, astroid.AssignName)
- )
- if set(call.keyword_arguments) - parameter_names:
- raise astroid.UseInferenceDefault(
- "wrapped function received unknown parameters"
- )
-
- partial_function = objects.PartialFunction(
- call,
- name=inferred_wrapped_function.name,
- doc=inferred_wrapped_function.doc,
- lineno=inferred_wrapped_function.lineno,
- col_offset=inferred_wrapped_function.col_offset,
- parent=inferred_wrapped_function.parent,
- )
- partial_function.postinit(
- args=inferred_wrapped_function.args,
- body=inferred_wrapped_function.body,
- decorators=inferred_wrapped_function.decorators,
- returns=inferred_wrapped_function.returns,
- type_comment_returns=inferred_wrapped_function.type_comment_returns,
- type_comment_args=inferred_wrapped_function.type_comment_args,
- )
- return iter((partial_function,))
-
-
-def _looks_like_lru_cache(node):
- """Check if the given function node is decorated with lru_cache."""
- if not node.decorators:
- return False
- for decorator in node.decorators.nodes:
- if not isinstance(decorator, astroid.Call):
- continue
- if _looks_like_functools_member(decorator, "lru_cache"):
- return True
- return False
-
-
-def _looks_like_functools_member(node, member):
- """Check if the given Call node is a functools.partial call"""
- if isinstance(node.func, astroid.Name):
- return node.func.name == member
- elif isinstance(node.func, astroid.Attribute):
- return (
- node.func.attrname == member
- and isinstance(node.func.expr, astroid.Name)
- and node.func.expr.name == "functools"
- )
-
-
-_looks_like_partial = partial(_looks_like_functools_member, member="partial")
-
-
-MANAGER.register_transform(
- astroid.FunctionDef, _transform_lru_cache, _looks_like_lru_cache
-)
-
-
-MANAGER.register_transform(
- astroid.Call,
- astroid.inference_tip(_functools_partial_inference),
- _looks_like_partial,
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_gi.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_gi.py
deleted file mode 100644
index 0970610..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_gi.py
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright (c) 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2014 Cole Robinson
-# Copyright (c) 2015-2016 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 David Shea
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2016 Giuseppe Scrivano
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for the Python 2 GObject introspection bindings.
-
-Helps with understanding everything imported from 'gi.repository'
-"""
-
-import inspect
-import itertools
-import sys
-import re
-import warnings
-
-from astroid import MANAGER, AstroidBuildingError, nodes
-from astroid.builder import AstroidBuilder
-
-
-_inspected_modules = {}
-
-_identifier_re = r"^[A-Za-z_]\w*$"
-
-
-def _gi_build_stub(parent):
- """
- Inspect the passed module recursively and build stubs for functions,
- classes, etc.
- """
- classes = {}
- functions = {}
- constants = {}
- methods = {}
- for name in dir(parent):
- if name.startswith("__"):
- continue
-
- # Check if this is a valid name in python
- if not re.match(_identifier_re, name):
- continue
-
- try:
- obj = getattr(parent, name)
- except:
- continue
-
- if inspect.isclass(obj):
- classes[name] = obj
- elif inspect.isfunction(obj) or inspect.isbuiltin(obj):
- functions[name] = obj
- elif inspect.ismethod(obj) or inspect.ismethoddescriptor(obj):
- methods[name] = obj
- elif (
- str(obj).startswith(", )
- # Only accept function calls with two constant arguments
- if len(node.args) != 2:
- return False
-
- if not all(isinstance(arg, nodes.Const) for arg in node.args):
- return False
-
- func = node.func
- if isinstance(func, nodes.Attribute):
- if func.attrname != "require_version":
- return False
- if isinstance(func.expr, nodes.Name) and func.expr.name == "gi":
- return True
-
- return False
-
- if isinstance(func, nodes.Name):
- return func.name == "require_version"
-
- return False
-
-
-def _register_require_version(node):
- # Load the gi.require_version locally
- try:
- import gi
-
- gi.require_version(node.args[0].value, node.args[1].value)
- except Exception:
- pass
-
- return node
-
-
-MANAGER.register_failed_import_hook(_import_gi_module)
-MANAGER.register_transform(
- nodes.Call, _register_require_version, _looks_like_require_version
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_hashlib.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_hashlib.py
deleted file mode 100644
index 98ae774..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_hashlib.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) 2016, 2018 Claudiu Popa
-# Copyright (c) 2018 Ioana Tagirta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import sys
-
-import six
-
-import astroid
-
-PY36 = sys.version_info >= (3, 6)
-
-
-def _hashlib_transform():
- signature = "value=''"
- template = """
- class %(name)s(object):
- def __init__(self, %(signature)s): pass
- def digest(self):
- return %(digest)s
- def copy(self):
- return self
- def update(self, value): pass
- def hexdigest(self):
- return ''
- @property
- def name(self):
- return %(name)r
- @property
- def block_size(self):
- return 1
- @property
- def digest_size(self):
- return 1
- """
- algorithms_with_signature = dict.fromkeys(
- ["md5", "sha1", "sha224", "sha256", "sha384", "sha512"], signature
- )
- if PY36:
- blake2b_signature = "data=b'', *, digest_size=64, key=b'', salt=b'', \
- person=b'', fanout=1, depth=1, leaf_size=0, node_offset=0, \
- node_depth=0, inner_size=0, last_node=False"
- blake2s_signature = "data=b'', *, digest_size=32, key=b'', salt=b'', \
- person=b'', fanout=1, depth=1, leaf_size=0, node_offset=0, \
- node_depth=0, inner_size=0, last_node=False"
- new_algorithms = dict.fromkeys(
- ["sha3_224", "sha3_256", "sha3_384", "sha3_512", "shake_128", "shake_256"],
- signature,
- )
- algorithms_with_signature.update(new_algorithms)
- algorithms_with_signature.update(
- {"blake2b": blake2b_signature, "blake2s": blake2s_signature}
- )
- classes = "".join(
- template
- % {
- "name": hashfunc,
- "digest": 'b""' if six.PY3 else '""',
- "signature": signature,
- }
- for hashfunc, signature in algorithms_with_signature.items()
- )
- return astroid.parse(classes)
-
-
-astroid.register_module_extender(astroid.MANAGER, "hashlib", _hashlib_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_http.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_http.py
deleted file mode 100644
index a3aa814..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_http.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright (c) 2018 Claudiu Popa
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid brain hints for some of the `http` module."""
-import textwrap
-
-import astroid
-from astroid.builder import AstroidBuilder
-
-
-def _http_transform():
- code = textwrap.dedent(
- """
- from collections import namedtuple
- _HTTPStatus = namedtuple('_HTTPStatus', 'value phrase description')
-
- class HTTPStatus:
-
- # informational
- CONTINUE = _HTTPStatus(100, 'Continue', 'Request received, please continue')
- SWITCHING_PROTOCOLS = _HTTPStatus(101, 'Switching Protocols',
- 'Switching to new protocol; obey Upgrade header')
- PROCESSING = _HTTPStatus(102, 'Processing', '')
- OK = _HTTPStatus(200, 'OK', 'Request fulfilled, document follows')
- CREATED = _HTTPStatus(201, 'Created', 'Document created, URL follows')
- ACCEPTED = _HTTPStatus(202, 'Accepted',
- 'Request accepted, processing continues off-line')
- NON_AUTHORITATIVE_INFORMATION = _HTTPStatus(203,
- 'Non-Authoritative Information', 'Request fulfilled from cache')
- NO_CONTENT = _HTTPStatus(204, 'No Content', 'Request fulfilled, nothing follows')
- RESET_CONTENT =_HTTPStatus(205, 'Reset Content', 'Clear input form for further input')
- PARTIAL_CONTENT = _HTTPStatus(206, 'Partial Content', 'Partial content follows')
- MULTI_STATUS = _HTTPStatus(207, 'Multi-Status', '')
- ALREADY_REPORTED = _HTTPStatus(208, 'Already Reported', '')
- IM_USED = _HTTPStatus(226, 'IM Used', '')
- MULTIPLE_CHOICES = _HTTPStatus(300, 'Multiple Choices',
- 'Object has several resources -- see URI list')
- MOVED_PERMANENTLY = _HTTPStatus(301, 'Moved Permanently',
- 'Object moved permanently -- see URI list')
- FOUND = _HTTPStatus(302, 'Found', 'Object moved temporarily -- see URI list')
- SEE_OTHER = _HTTPStatus(303, 'See Other', 'Object moved -- see Method and URL list')
- NOT_MODIFIED = _HTTPStatus(304, 'Not Modified',
- 'Document has not changed since given time')
- USE_PROXY = _HTTPStatus(305, 'Use Proxy',
- 'You must use proxy specified in Location to access this resource')
- TEMPORARY_REDIRECT = _HTTPStatus(307, 'Temporary Redirect',
- 'Object moved temporarily -- see URI list')
- PERMANENT_REDIRECT = _HTTPStatus(308, 'Permanent Redirect',
- 'Object moved permanently -- see URI list')
- BAD_REQUEST = _HTTPStatus(400, 'Bad Request',
- 'Bad request syntax or unsupported method')
- UNAUTHORIZED = _HTTPStatus(401, 'Unauthorized',
- 'No permission -- see authorization schemes')
- PAYMENT_REQUIRED = _HTTPStatus(402, 'Payment Required',
- 'No payment -- see charging schemes')
- FORBIDDEN = _HTTPStatus(403, 'Forbidden',
- 'Request forbidden -- authorization will not help')
- NOT_FOUND = _HTTPStatus(404, 'Not Found',
- 'Nothing matches the given URI')
- METHOD_NOT_ALLOWED = _HTTPStatus(405, 'Method Not Allowed',
- 'Specified method is invalid for this resource')
- NOT_ACCEPTABLE = _HTTPStatus(406, 'Not Acceptable',
- 'URI not available in preferred format')
- PROXY_AUTHENTICATION_REQUIRED = _HTTPStatus(407,
- 'Proxy Authentication Required',
- 'You must authenticate with this proxy before proceeding')
- REQUEST_TIMEOUT = _HTTPStatus(408, 'Request Timeout',
- 'Request timed out; try again later')
- CONFLICT = _HTTPStatus(409, 'Conflict', 'Request conflict')
- GONE = _HTTPStatus(410, 'Gone',
- 'URI no longer exists and has been permanently removed')
- LENGTH_REQUIRED = _HTTPStatus(411, 'Length Required',
- 'Client must specify Content-Length')
- PRECONDITION_FAILED = _HTTPStatus(412, 'Precondition Failed',
- 'Precondition in headers is false')
- REQUEST_ENTITY_TOO_LARGE = _HTTPStatus(413, 'Request Entity Too Large',
- 'Entity is too large')
- REQUEST_URI_TOO_LONG = _HTTPStatus(414, 'Request-URI Too Long',
- 'URI is too long')
- UNSUPPORTED_MEDIA_TYPE = _HTTPStatus(415, 'Unsupported Media Type',
- 'Entity body in unsupported format')
- REQUESTED_RANGE_NOT_SATISFIABLE = _HTTPStatus(416,
- 'Requested Range Not Satisfiable',
- 'Cannot satisfy request range')
- EXPECTATION_FAILED = _HTTPStatus(417, 'Expectation Failed',
- 'Expect condition could not be satisfied')
- MISDIRECTED_REQUEST = _HTTPStatus(421, 'Misdirected Request',
- 'Server is not able to produce a response')
- UNPROCESSABLE_ENTITY = _HTTPStatus(422, 'Unprocessable Entity')
- LOCKED = _HTTPStatus(423, 'Locked')
- FAILED_DEPENDENCY = _HTTPStatus(424, 'Failed Dependency')
- UPGRADE_REQUIRED = _HTTPStatus(426, 'Upgrade Required')
- PRECONDITION_REQUIRED = _HTTPStatus(428, 'Precondition Required',
- 'The origin server requires the request to be conditional')
- TOO_MANY_REQUESTS = _HTTPStatus(429, 'Too Many Requests',
- 'The user has sent too many requests in '
- 'a given amount of time ("rate limiting")')
- REQUEST_HEADER_FIELDS_TOO_LARGE = _HTTPStatus(431,
- 'Request Header Fields Too Large',
- 'The server is unwilling to process the request because its header '
- 'fields are too large')
- UNAVAILABLE_FOR_LEGAL_REASONS = _HTTPStatus(451,
- 'Unavailable For Legal Reasons',
- 'The server is denying access to the '
- 'resource as a consequence of a legal demand')
- INTERNAL_SERVER_ERROR = _HTTPStatus(500, 'Internal Server Error',
- 'Server got itself in trouble')
- NOT_IMPLEMENTED = _HTTPStatus(501, 'Not Implemented',
- 'Server does not support this operation')
- BAD_GATEWAY = _HTTPStatus(502, 'Bad Gateway',
- 'Invalid responses from another server/proxy')
- SERVICE_UNAVAILABLE = _HTTPStatus(503, 'Service Unavailable',
- 'The server cannot process the request due to a high load')
- GATEWAY_TIMEOUT = _HTTPStatus(504, 'Gateway Timeout',
- 'The gateway server did not receive a timely response')
- HTTP_VERSION_NOT_SUPPORTED = _HTTPStatus(505, 'HTTP Version Not Supported',
- 'Cannot fulfill request')
- VARIANT_ALSO_NEGOTIATES = _HTTPStatus(506, 'Variant Also Negotiates')
- INSUFFICIENT_STORAGE = _HTTPStatus(507, 'Insufficient Storage')
- LOOP_DETECTED = _HTTPStatus(508, 'Loop Detected')
- NOT_EXTENDED = _HTTPStatus(510, 'Not Extended')
- NETWORK_AUTHENTICATION_REQUIRED = _HTTPStatus(511,
- 'Network Authentication Required',
- 'The client needs to authenticate to gain network access')
- """
- )
- return AstroidBuilder(astroid.MANAGER).string_build(code)
-
-
-def _http_client_transform():
- return AstroidBuilder(astroid.MANAGER).string_build(
- textwrap.dedent(
- """
- from http import HTTPStatus
-
- CONTINUE = HTTPStatus.CONTINUE
- SWITCHING_PROTOCOLS = HTTPStatus.SWITCHING_PROTOCOLS
- PROCESSING = HTTPStatus.PROCESSING
- OK = HTTPStatus.OK
- CREATED = HTTPStatus.CREATED
- ACCEPTED = HTTPStatus.ACCEPTED
- NON_AUTHORITATIVE_INFORMATION = HTTPStatus.NON_AUTHORITATIVE_INFORMATION
- NO_CONTENT = HTTPStatus.NO_CONTENT
- RESET_CONTENT = HTTPStatus.RESET_CONTENT
- PARTIAL_CONTENT = HTTPStatus.PARTIAL_CONTENT
- MULTI_STATUS = HTTPStatus.MULTI_STATUS
- ALREADY_REPORTED = HTTPStatus.ALREADY_REPORTED
- IM_USED = HTTPStatus.IM_USED
- MULTIPLE_CHOICES = HTTPStatus.MULTIPLE_CHOICES
- MOVED_PERMANENTLY = HTTPStatus.MOVED_PERMANENTLY
- FOUND = HTTPStatus.FOUND
- SEE_OTHER = HTTPStatus.SEE_OTHER
- NOT_MODIFIED = HTTPStatus.NOT_MODIFIED
- USE_PROXY = HTTPStatus.USE_PROXY
- TEMPORARY_REDIRECT = HTTPStatus.TEMPORARY_REDIRECT
- PERMANENT_REDIRECT = HTTPStatus.PERMANENT_REDIRECT
- BAD_REQUEST = HTTPStatus.BAD_REQUEST
- UNAUTHORIZED = HTTPStatus.UNAUTHORIZED
- PAYMENT_REQUIRED = HTTPStatus.PAYMENT_REQUIRED
- FORBIDDEN = HTTPStatus.FORBIDDEN
- NOT_FOUND = HTTPStatus.NOT_FOUND
- METHOD_NOT_ALLOWED = HTTPStatus.METHOD_NOT_ALLOWED
- NOT_ACCEPTABLE = HTTPStatus.NOT_ACCEPTABLE
- PROXY_AUTHENTICATION_REQUIRED = HTTPStatus.PROXY_AUTHENTICATION_REQUIRED
- REQUEST_TIMEOUT = HTTPStatus.REQUEST_TIMEOUT
- CONFLICT = HTTPStatus.CONFLICT
- GONE = HTTPStatus.GONE
- LENGTH_REQUIRED = HTTPStatus.LENGTH_REQUIRED
- PRECONDITION_FAILED = HTTPStatus.PRECONDITION_FAILED
- REQUEST_ENTITY_TOO_LARGE = HTTPStatus.REQUEST_ENTITY_TOO_LARGE
- REQUEST_URI_TOO_LONG = HTTPStatus.REQUEST_URI_TOO_LONG
- UNSUPPORTED_MEDIA_TYPE = HTTPStatus.UNSUPPORTED_MEDIA_TYPE
- REQUESTED_RANGE_NOT_SATISFIABLE = HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE
- EXPECTATION_FAILED = HTTPStatus.EXPECTATION_FAILED
- UNPROCESSABLE_ENTITY = HTTPStatus.UNPROCESSABLE_ENTITY
- LOCKED = HTTPStatus.LOCKED
- FAILED_DEPENDENCY = HTTPStatus.FAILED_DEPENDENCY
- UPGRADE_REQUIRED = HTTPStatus.UPGRADE_REQUIRED
- PRECONDITION_REQUIRED = HTTPStatus.PRECONDITION_REQUIRED
- TOO_MANY_REQUESTS = HTTPStatus.TOO_MANY_REQUESTS
- REQUEST_HEADER_FIELDS_TOO_LARGE = HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE
- INTERNAL_SERVER_ERROR = HTTPStatus.INTERNAL_SERVER_ERROR
- NOT_IMPLEMENTED = HTTPStatus.NOT_IMPLEMENTED
- BAD_GATEWAY = HTTPStatus.BAD_GATEWAY
- SERVICE_UNAVAILABLE = HTTPStatus.SERVICE_UNAVAILABLE
- GATEWAY_TIMEOUT = HTTPStatus.GATEWAY_TIMEOUT
- HTTP_VERSION_NOT_SUPPORTED = HTTPStatus.HTTP_VERSION_NOT_SUPPORTED
- VARIANT_ALSO_NEGOTIATES = HTTPStatus.VARIANT_ALSO_NEGOTIATES
- INSUFFICIENT_STORAGE = HTTPStatus.INSUFFICIENT_STORAGE
- LOOP_DETECTED = HTTPStatus.LOOP_DETECTED
- NOT_EXTENDED = HTTPStatus.NOT_EXTENDED
- NETWORK_AUTHENTICATION_REQUIRED = HTTPStatus.NETWORK_AUTHENTICATION_REQUIRED
- """
- )
- )
-
-
-astroid.register_module_extender(astroid.MANAGER, "http", _http_transform)
-astroid.register_module_extender(astroid.MANAGER, "http.client", _http_client_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_io.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_io.py
deleted file mode 100644
index 4c68922..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_io.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2016 Claudiu Popa
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid brain hints for some of the _io C objects."""
-
-import astroid
-
-
-BUFFERED = {"BufferedWriter", "BufferedReader"}
-TextIOWrapper = "TextIOWrapper"
-FileIO = "FileIO"
-BufferedWriter = "BufferedWriter"
-
-
-def _generic_io_transform(node, name, cls):
- """Transform the given name, by adding the given *class* as a member of the node."""
-
- io_module = astroid.MANAGER.ast_from_module_name("_io")
- attribute_object = io_module[cls]
- instance = attribute_object.instantiate_class()
- node.locals[name] = [instance]
-
-
-def _transform_text_io_wrapper(node):
- # This is not always correct, since it can vary with the type of the descriptor,
- # being stdout, stderr or stdin. But we cannot get access to the name of the
- # stream, which is why we are using the BufferedWriter class as a default
- # value
- return _generic_io_transform(node, name="buffer", cls=BufferedWriter)
-
-
-def _transform_buffered(node):
- return _generic_io_transform(node, name="raw", cls=FileIO)
-
-
-astroid.MANAGER.register_transform(
- astroid.ClassDef, _transform_buffered, lambda node: node.name in BUFFERED
-)
-astroid.MANAGER.register_transform(
- astroid.ClassDef,
- _transform_text_io_wrapper,
- lambda node: node.name == TextIOWrapper,
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_mechanize.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_mechanize.py
deleted file mode 100644
index 93f282e..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_mechanize.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2012-2013 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2015-2016 Claudiu Popa
-# Copyright (c) 2016 Ceridwen
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-from astroid import MANAGER, register_module_extender
-from astroid.builder import AstroidBuilder
-
-
-def mechanize_transform():
- return AstroidBuilder(MANAGER).string_build(
- """
-
-class Browser(object):
- def open(self, url, data=None, timeout=None):
- return None
- def open_novisit(self, url, data=None, timeout=None):
- return None
- def open_local_file(self, filename):
- return None
-
-"""
- )
-
-
-register_module_extender(MANAGER, "mechanize", mechanize_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_multiprocessing.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_multiprocessing.py
deleted file mode 100644
index 71256ee..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_multiprocessing.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016 Claudiu Popa
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-import sys
-
-import astroid
-from astroid import exceptions
-
-
-def _multiprocessing_transform():
- module = astroid.parse(
- """
- from multiprocessing.managers import SyncManager
- def Manager():
- return SyncManager()
- """
- )
- # Multiprocessing uses a getattr lookup inside contexts,
- # in order to get the attributes they need. Since it's extremely
- # dynamic, we use this approach to fake it.
- node = astroid.parse(
- """
- from multiprocessing.context import DefaultContext, BaseContext
- default = DefaultContext()
- base = BaseContext()
- """
- )
- try:
- context = next(node["default"].infer())
- base = next(node["base"].infer())
- except exceptions.InferenceError:
- return module
-
- for node in (context, base):
- for key, value in node.locals.items():
- if key.startswith("_"):
- continue
-
- value = value[0]
- if isinstance(value, astroid.FunctionDef):
- # We need to rebound this, since otherwise
- # it will have an extra argument (self).
- value = astroid.BoundMethod(value, node)
- module[key] = value
- return module
-
-
-def _multiprocessing_managers_transform():
- return astroid.parse(
- """
- import array
- import threading
- import multiprocessing.pool as pool
-
- import six
-
- class Namespace(object):
- pass
-
- class Value(object):
- def __init__(self, typecode, value, lock=True):
- self._typecode = typecode
- self._value = value
- def get(self):
- return self._value
- def set(self, value):
- self._value = value
- def __repr__(self):
- return '%s(%r, %r)'%(type(self).__name__, self._typecode, self._value)
- value = property(get, set)
-
- def Array(typecode, sequence, lock=True):
- return array.array(typecode, sequence)
-
- class SyncManager(object):
- Queue = JoinableQueue = six.moves.queue.Queue
- Event = threading.Event
- RLock = threading.RLock
- BoundedSemaphore = threading.BoundedSemaphore
- Condition = threading.Condition
- Barrier = threading.Barrier
- Pool = pool.Pool
- list = list
- dict = dict
- Value = Value
- Array = Array
- Namespace = Namespace
- __enter__ = lambda self: self
- __exit__ = lambda *args: args
-
- def start(self, initializer=None, initargs=None):
- pass
- def shutdown(self):
- pass
- """
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "multiprocessing.managers", _multiprocessing_managers_transform
-)
-astroid.register_module_extender(
- astroid.MANAGER, "multiprocessing", _multiprocessing_transform
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_namedtuple_enum.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_namedtuple_enum.py
deleted file mode 100644
index de24067..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_namedtuple_enum.py
+++ /dev/null
@@ -1,449 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2012-2015 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2013-2014 Google, Inc.
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Dmitry Pribysh
-# Copyright (c) 2015 David Shea
-# Copyright (c) 2015 Philip Lorenz
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2016 Mateusz Bysiek
-# Copyright (c) 2017 Hugo
-# Copyright (c) 2017 Łukasz Rogalski
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for the Python standard library."""
-
-import functools
-import keyword
-from textwrap import dedent
-
-from astroid import MANAGER, UseInferenceDefault, inference_tip, InferenceError
-from astroid import arguments
-from astroid import exceptions
-from astroid import nodes
-from astroid.builder import AstroidBuilder, extract_node
-from astroid import util
-
-
-TYPING_NAMEDTUPLE_BASENAMES = {"NamedTuple", "typing.NamedTuple"}
-ENUM_BASE_NAMES = {
- "Enum",
- "IntEnum",
- "enum.Enum",
- "enum.IntEnum",
- "IntFlag",
- "enum.IntFlag",
-}
-
-
-def _infer_first(node, context):
- if node is util.Uninferable:
- raise UseInferenceDefault
- try:
- value = next(node.infer(context=context))
- if value is util.Uninferable:
- raise UseInferenceDefault()
- else:
- return value
- except StopIteration:
- raise InferenceError()
-
-
-def _find_func_form_arguments(node, context):
- def _extract_namedtuple_arg_or_keyword(position, key_name=None):
-
- if len(args) > position:
- return _infer_first(args[position], context)
- if key_name and key_name in found_keywords:
- return _infer_first(found_keywords[key_name], context)
-
- args = node.args
- keywords = node.keywords
- found_keywords = (
- {keyword.arg: keyword.value for keyword in keywords} if keywords else {}
- )
-
- name = _extract_namedtuple_arg_or_keyword(position=0, key_name="typename")
- names = _extract_namedtuple_arg_or_keyword(position=1, key_name="field_names")
- if name and names:
- return name.value, names
-
- raise UseInferenceDefault()
-
-
-def infer_func_form(node, base_type, context=None, enum=False):
- """Specific inference function for namedtuple or Python 3 enum. """
- # node is a Call node, class name as first argument and generated class
- # attributes as second argument
-
- # namedtuple or enums list of attributes can be a list of strings or a
- # whitespace-separate string
- try:
- name, names = _find_func_form_arguments(node, context)
- try:
- attributes = names.value.replace(",", " ").split()
- except AttributeError:
- if not enum:
- attributes = [
- _infer_first(const, context).value for const in names.elts
- ]
- else:
- # Enums supports either iterator of (name, value) pairs
- # or mappings.
- if hasattr(names, "items") and isinstance(names.items, list):
- attributes = [
- _infer_first(const[0], context).value
- for const in names.items
- if isinstance(const[0], nodes.Const)
- ]
- elif hasattr(names, "elts"):
- # Enums can support either ["a", "b", "c"]
- # or [("a", 1), ("b", 2), ...], but they can't
- # be mixed.
- if all(isinstance(const, nodes.Tuple) for const in names.elts):
- attributes = [
- _infer_first(const.elts[0], context).value
- for const in names.elts
- if isinstance(const, nodes.Tuple)
- ]
- else:
- attributes = [
- _infer_first(const, context).value for const in names.elts
- ]
- else:
- raise AttributeError
- if not attributes:
- raise AttributeError
- except (AttributeError, exceptions.InferenceError):
- raise UseInferenceDefault()
-
- # If we can't infer the name of the class, don't crash, up to this point
- # we know it is a namedtuple anyway.
- name = name or "Uninferable"
- # we want to return a Class node instance with proper attributes set
- class_node = nodes.ClassDef(name, "docstring")
- class_node.parent = node.parent
- # set base class=tuple
- class_node.bases.append(base_type)
- # XXX add __init__(*attributes) method
- for attr in attributes:
- fake_node = nodes.EmptyNode()
- fake_node.parent = class_node
- fake_node.attrname = attr
- class_node.instance_attrs[attr] = [fake_node]
- return class_node, name, attributes
-
-
-def _has_namedtuple_base(node):
- """Predicate for class inference tip
-
- :type node: ClassDef
- :rtype: bool
- """
- return set(node.basenames) & TYPING_NAMEDTUPLE_BASENAMES
-
-
-def _looks_like(node, name):
- func = node.func
- if isinstance(func, nodes.Attribute):
- return func.attrname == name
- if isinstance(func, nodes.Name):
- return func.name == name
- return False
-
-
-_looks_like_namedtuple = functools.partial(_looks_like, name="namedtuple")
-_looks_like_enum = functools.partial(_looks_like, name="Enum")
-_looks_like_typing_namedtuple = functools.partial(_looks_like, name="NamedTuple")
-
-
-def infer_named_tuple(node, context=None):
- """Specific inference function for namedtuple Call node"""
- tuple_base_name = nodes.Name(name="tuple", parent=node.root())
- class_node, name, attributes = infer_func_form(
- node, tuple_base_name, context=context
- )
- call_site = arguments.CallSite.from_call(node)
- func = next(extract_node("import collections; collections.namedtuple").infer())
- try:
- rename = next(call_site.infer_argument(func, "rename", context)).bool_value()
- except InferenceError:
- rename = False
-
- if rename:
- attributes = _get_renamed_namedtuple_attributes(attributes)
-
- replace_args = ", ".join("{arg}=None".format(arg=arg) for arg in attributes)
- field_def = (
- " {name} = property(lambda self: self[{index:d}], "
- "doc='Alias for field number {index:d}')"
- )
- field_defs = "\n".join(
- field_def.format(name=name, index=index)
- for index, name in enumerate(attributes)
- )
- fake = AstroidBuilder(MANAGER).string_build(
- """
-class %(name)s(tuple):
- __slots__ = ()
- _fields = %(fields)r
- def _asdict(self):
- return self.__dict__
- @classmethod
- def _make(cls, iterable, new=tuple.__new__, len=len):
- return new(cls, iterable)
- def _replace(self, %(replace_args)s):
- return self
- def __getnewargs__(self):
- return tuple(self)
-%(field_defs)s
- """
- % {
- "name": name,
- "fields": attributes,
- "field_defs": field_defs,
- "replace_args": replace_args,
- }
- )
- class_node.locals["_asdict"] = fake.body[0].locals["_asdict"]
- class_node.locals["_make"] = fake.body[0].locals["_make"]
- class_node.locals["_replace"] = fake.body[0].locals["_replace"]
- class_node.locals["_fields"] = fake.body[0].locals["_fields"]
- for attr in attributes:
- class_node.locals[attr] = fake.body[0].locals[attr]
- # we use UseInferenceDefault, we can't be a generator so return an iterator
- return iter([class_node])
-
-
-def _get_renamed_namedtuple_attributes(field_names):
- names = list(field_names)
- seen = set()
- for i, name in enumerate(field_names):
- if (
- not all(c.isalnum() or c == "_" for c in name)
- or keyword.iskeyword(name)
- or not name
- or name[0].isdigit()
- or name.startswith("_")
- or name in seen
- ):
- names[i] = "_%d" % i
- seen.add(name)
- return tuple(names)
-
-
-def infer_enum(node, context=None):
- """ Specific inference function for enum Call node. """
- enum_meta = extract_node(
- """
- class EnumMeta(object):
- 'docstring'
- def __call__(self, node):
- class EnumAttribute(object):
- name = ''
- value = 0
- return EnumAttribute()
- def __iter__(self):
- class EnumAttribute(object):
- name = ''
- value = 0
- return [EnumAttribute()]
- def __reversed__(self):
- class EnumAttribute(object):
- name = ''
- value = 0
- return (EnumAttribute, )
- def __next__(self):
- return next(iter(self))
- def __getitem__(self, attr):
- class Value(object):
- @property
- def name(self):
- return ''
- @property
- def value(self):
- return attr
-
- return Value()
- __members__ = ['']
- """
- )
- class_node = infer_func_form(node, enum_meta, context=context, enum=True)[0]
- return iter([class_node.instantiate_class()])
-
-
-INT_FLAG_ADDITION_METHODS = """
- def __or__(self, other):
- return {name}(self.value | other.value)
- def __and__(self, other):
- return {name}(self.value & other.value)
- def __xor__(self, other):
- return {name}(self.value ^ other.value)
- def __add__(self, other):
- return {name}(self.value + other.value)
- def __div__(self, other):
- return {name}(self.value / other.value)
- def __invert__(self):
- return {name}(~self.value)
- def __mul__(self, other):
- return {name}(self.value * other.value)
-"""
-
-
-def infer_enum_class(node):
- """ Specific inference for enums. """
- for basename in node.basenames:
- # TODO: doesn't handle subclasses yet. This implementation
- # is a hack to support enums.
- if basename not in ENUM_BASE_NAMES:
- continue
- if node.root().name == "enum":
- # Skip if the class is directly from enum module.
- break
- for local, values in node.locals.items():
- if any(not isinstance(value, nodes.AssignName) for value in values):
- continue
-
- targets = []
- stmt = values[0].statement()
- if isinstance(stmt, nodes.Assign):
- if isinstance(stmt.targets[0], nodes.Tuple):
- targets = stmt.targets[0].itered()
- else:
- targets = stmt.targets
- elif isinstance(stmt, nodes.AnnAssign):
- targets = [stmt.target]
-
- inferred_return_value = None
- if isinstance(stmt, nodes.Assign):
- if isinstance(stmt.value, nodes.Const):
- if isinstance(stmt.value.value, str):
- inferred_return_value = repr(stmt.value.value)
- else:
- inferred_return_value = stmt.value.value
- else:
- inferred_return_value = stmt.value.as_string()
-
- new_targets = []
- for target in targets:
- # Replace all the assignments with our mocked class.
- classdef = dedent(
- """
- class {name}({types}):
- @property
- def value(self):
- return {return_value}
- @property
- def name(self):
- return "{name}"
- """.format(
- name=target.name,
- types=", ".join(node.basenames),
- return_value=inferred_return_value,
- )
- )
- if "IntFlag" in basename:
- # Alright, we need to add some additional methods.
- # Unfortunately we still can't infer the resulting objects as
- # Enum members, but once we'll be able to do that, the following
- # should result in some nice symbolic execution
- classdef += INT_FLAG_ADDITION_METHODS.format(name=target.name)
-
- fake = AstroidBuilder(MANAGER).string_build(classdef)[target.name]
- fake.parent = target.parent
- for method in node.mymethods():
- fake.locals[method.name] = [method]
- new_targets.append(fake.instantiate_class())
- node.locals[local] = new_targets
- break
- return node
-
-
-def infer_typing_namedtuple_class(class_node, context=None):
- """Infer a subclass of typing.NamedTuple"""
- # Check if it has the corresponding bases
- annassigns_fields = [
- annassign.target.name
- for annassign in class_node.body
- if isinstance(annassign, nodes.AnnAssign)
- ]
- code = dedent(
- """
- from collections import namedtuple
- namedtuple({typename!r}, {fields!r})
- """
- ).format(typename=class_node.name, fields=",".join(annassigns_fields))
- node = extract_node(code)
- generated_class_node = next(infer_named_tuple(node, context))
- for method in class_node.mymethods():
- generated_class_node.locals[method.name] = [method]
-
- for assign in class_node.body:
- if not isinstance(assign, nodes.Assign):
- continue
-
- for target in assign.targets:
- attr = target.name
- generated_class_node.locals[attr] = class_node.locals[attr]
-
- return iter((generated_class_node,))
-
-
-def infer_typing_namedtuple(node, context=None):
- """Infer a typing.NamedTuple(...) call."""
- # This is essentially a namedtuple with different arguments
- # so we extract the args and infer a named tuple.
- try:
- func = next(node.func.infer())
- except InferenceError:
- raise UseInferenceDefault
-
- if func.qname() != "typing.NamedTuple":
- raise UseInferenceDefault
-
- if len(node.args) != 2:
- raise UseInferenceDefault
-
- if not isinstance(node.args[1], (nodes.List, nodes.Tuple)):
- raise UseInferenceDefault
-
- names = []
- for elt in node.args[1].elts:
- if not isinstance(elt, (nodes.List, nodes.Tuple)):
- raise UseInferenceDefault
- if len(elt.elts) != 2:
- raise UseInferenceDefault
- names.append(elt.elts[0].as_string())
-
- typename = node.args[0].as_string()
- if names:
- field_names = "({},)".format(",".join(names))
- else:
- field_names = "''"
- node = extract_node(
- "namedtuple({typename}, {fields})".format(typename=typename, fields=field_names)
- )
- return infer_named_tuple(node, context)
-
-
-MANAGER.register_transform(
- nodes.Call, inference_tip(infer_named_tuple), _looks_like_namedtuple
-)
-MANAGER.register_transform(nodes.Call, inference_tip(infer_enum), _looks_like_enum)
-MANAGER.register_transform(
- nodes.ClassDef,
- infer_enum_class,
- predicate=lambda cls: any(
- basename for basename in cls.basenames if basename in ENUM_BASE_NAMES
- ),
-)
-MANAGER.register_transform(
- nodes.ClassDef, inference_tip(infer_typing_namedtuple_class), _has_namedtuple_base
-)
-MANAGER.register_transform(
- nodes.Call, inference_tip(infer_typing_namedtuple), _looks_like_typing_namedtuple
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_nose.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_nose.py
deleted file mode 100644
index 7b12d76..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_nose.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright (c) 2015-2016 Claudiu Popa
-# Copyright (c) 2016 Ceridwen
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Hooks for nose library."""
-
-import re
-import textwrap
-
-import astroid
-import astroid.builder
-
-_BUILDER = astroid.builder.AstroidBuilder(astroid.MANAGER)
-
-
-def _pep8(name, caps=re.compile("([A-Z])")):
- return caps.sub(lambda m: "_" + m.groups()[0].lower(), name)
-
-
-def _nose_tools_functions():
- """Get an iterator of names and bound methods."""
- module = _BUILDER.string_build(
- textwrap.dedent(
- """
- import unittest
-
- class Test(unittest.TestCase):
- pass
- a = Test()
- """
- )
- )
- try:
- case = next(module["a"].infer())
- except astroid.InferenceError:
- return
- for method in case.methods():
- if method.name.startswith("assert") and "_" not in method.name:
- pep8_name = _pep8(method.name)
- yield pep8_name, astroid.BoundMethod(method, case)
- if method.name == "assertEqual":
- # nose also exports assert_equals.
- yield "assert_equals", astroid.BoundMethod(method, case)
-
-
-def _nose_tools_transform(node):
- for method_name, method in _nose_tools_functions():
- node.locals[method_name] = [method]
-
-
-def _nose_tools_trivial_transform():
- """Custom transform for the nose.tools module."""
- stub = _BUILDER.string_build("""__all__ = []""")
- all_entries = ["ok_", "eq_"]
-
- for pep8_name, method in _nose_tools_functions():
- all_entries.append(pep8_name)
- stub[pep8_name] = method
-
- # Update the __all__ variable, since nose.tools
- # does this manually with .append.
- all_assign = stub["__all__"].parent
- all_object = astroid.List(all_entries)
- all_object.parent = all_assign
- all_assign.value = all_object
- return stub
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "nose.tools.trivial", _nose_tools_trivial_transform
-)
-astroid.MANAGER.register_transform(
- astroid.Module, _nose_tools_transform, lambda n: n.name == "nose.tools"
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_fromnumeric.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_fromnumeric.py
deleted file mode 100644
index 43b30e4..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_fromnumeric.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for numpy.core.fromnumeric module."""
-
-import astroid
-
-
-def numpy_core_fromnumeric_transform():
- return astroid.parse(
- """
- def sum(a, axis=None, dtype=None, out=None, keepdims=None, initial=None):
- return numpy.ndarray([0, 0])
- """
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "numpy.core.fromnumeric", numpy_core_fromnumeric_transform
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_function_base.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_function_base.py
deleted file mode 100644
index 05a73d9..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_function_base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for numpy.core.function_base module."""
-
-import functools
-import astroid
-from brain_numpy_utils import looks_like_numpy_member, infer_numpy_member
-
-
-METHODS_TO_BE_INFERRED = {
- "linspace": """def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0):
- return numpy.ndarray([0, 0])""",
- "logspace": """def logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0):
- return numpy.ndarray([0, 0])""",
- "geomspace": """def geomspace(start, stop, num=50, endpoint=True, dtype=None, axis=0):
- return numpy.ndarray([0, 0])""",
-}
-
-for func_name, func_src in METHODS_TO_BE_INFERRED.items():
- inference_function = functools.partial(infer_numpy_member, func_src)
- astroid.MANAGER.register_transform(
- astroid.Attribute,
- astroid.inference_tip(inference_function),
- functools.partial(looks_like_numpy_member, func_name),
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_multiarray.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_multiarray.py
deleted file mode 100644
index 3032acc..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_multiarray.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for numpy.core.multiarray module."""
-
-import functools
-import astroid
-from brain_numpy_utils import looks_like_numpy_member, infer_numpy_member
-
-
-def numpy_core_multiarray_transform():
- return astroid.parse(
- """
- # different functions defined in multiarray.py
- def inner(a, b):
- return numpy.ndarray([0, 0])
-
- def vdot(a, b):
- return numpy.ndarray([0, 0])
- """
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "numpy.core.multiarray", numpy_core_multiarray_transform
-)
-
-
-METHODS_TO_BE_INFERRED = {
- "array": """def array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0):
- return numpy.ndarray([0, 0])""",
- "dot": """def dot(a, b, out=None):
- return numpy.ndarray([0, 0])""",
- "empty_like": """def empty_like(a, dtype=None, order='K', subok=True):
- return numpy.ndarray((0, 0))""",
- "concatenate": """def concatenate(arrays, axis=None, out=None):
- return numpy.ndarray((0, 0))""",
- "where": """def where(condition, x=None, y=None):
- return numpy.ndarray([0, 0])""",
- "empty": """def empty(shape, dtype=float, order='C'):
- return numpy.ndarray([0, 0])""",
- "zeros": """def zeros(shape, dtype=float, order='C'):
- return numpy.ndarray([0, 0])""",
-}
-
-for method_name, function_src in METHODS_TO_BE_INFERRED.items():
- inference_function = functools.partial(infer_numpy_member, function_src)
- astroid.MANAGER.register_transform(
- astroid.Attribute,
- astroid.inference_tip(inference_function),
- functools.partial(looks_like_numpy_member, method_name),
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numeric.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numeric.py
deleted file mode 100644
index ba43c94..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numeric.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for numpy.core.numeric module."""
-
-import functools
-import astroid
-from brain_numpy_utils import looks_like_numpy_member, infer_numpy_member
-
-
-def numpy_core_numeric_transform():
- return astroid.parse(
- """
- # different functions defined in numeric.py
- import numpy
- def zeros_like(a, dtype=None, order='K', subok=True): return numpy.ndarray((0, 0))
- def ones_like(a, dtype=None, order='K', subok=True): return numpy.ndarray((0, 0))
- def full_like(a, fill_value, dtype=None, order='K', subok=True): return numpy.ndarray((0, 0))
- """
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "numpy.core.numeric", numpy_core_numeric_transform
-)
-
-
-METHODS_TO_BE_INFERRED = {
- "ones": """def ones(shape, dtype=None, order='C'):
- return numpy.ndarray([0, 0])"""
-}
-
-
-for method_name, function_src in METHODS_TO_BE_INFERRED.items():
- inference_function = functools.partial(infer_numpy_member, function_src)
- astroid.MANAGER.register_transform(
- astroid.Attribute,
- astroid.inference_tip(inference_function),
- functools.partial(looks_like_numpy_member, method_name),
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numerictypes.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numerictypes.py
deleted file mode 100644
index 42021fa..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_numerictypes.py
+++ /dev/null
@@ -1,250 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-# TODO(hippo91) : correct the methods signature.
-
-"""Astroid hooks for numpy.core.numerictypes module."""
-
-import astroid
-
-
-def numpy_core_numerictypes_transform():
- return astroid.parse(
- """
- # different types defined in numerictypes.py
- class generic(object):
- def __init__(self, value):
- self.T = None
- self.base = None
- self.data = None
- self.dtype = None
- self.flags = None
- self.flat = None
- self.imag = None
- self.itemsize = None
- self.nbytes = None
- self.ndim = None
- self.real = None
- self.size = None
- self.strides = None
-
- def all(self): return uninferable
- def any(self): return uninferable
- def argmax(self): return uninferable
- def argmin(self): return uninferable
- def argsort(self): return uninferable
- def astype(self): return uninferable
- def base(self): return uninferable
- def byteswap(self): return uninferable
- def choose(self): return uninferable
- def clip(self): return uninferable
- def compress(self): return uninferable
- def conj(self): return uninferable
- def conjugate(self): return uninferable
- def copy(self): return uninferable
- def cumprod(self): return uninferable
- def cumsum(self): return uninferable
- def data(self): return uninferable
- def diagonal(self): return uninferable
- def dtype(self): return uninferable
- def dump(self): return uninferable
- def dumps(self): return uninferable
- def fill(self): return uninferable
- def flags(self): return uninferable
- def flat(self): return uninferable
- def flatten(self): return uninferable
- def getfield(self): return uninferable
- def imag(self): return uninferable
- def item(self): return uninferable
- def itemset(self): return uninferable
- def itemsize(self): return uninferable
- def max(self): return uninferable
- def mean(self): return uninferable
- def min(self): return uninferable
- def nbytes(self): return uninferable
- def ndim(self): return uninferable
- def newbyteorder(self): return uninferable
- def nonzero(self): return uninferable
- def prod(self): return uninferable
- def ptp(self): return uninferable
- def put(self): return uninferable
- def ravel(self): return uninferable
- def real(self): return uninferable
- def repeat(self): return uninferable
- def reshape(self): return uninferable
- def resize(self): return uninferable
- def round(self): return uninferable
- def searchsorted(self): return uninferable
- def setfield(self): return uninferable
- def setflags(self): return uninferable
- def shape(self): return uninferable
- def size(self): return uninferable
- def sort(self): return uninferable
- def squeeze(self): return uninferable
- def std(self): return uninferable
- def strides(self): return uninferable
- def sum(self): return uninferable
- def swapaxes(self): return uninferable
- def take(self): return uninferable
- def tobytes(self): return uninferable
- def tofile(self): return uninferable
- def tolist(self): return uninferable
- def tostring(self): return uninferable
- def trace(self): return uninferable
- def transpose(self): return uninferable
- def var(self): return uninferable
- def view(self): return uninferable
-
-
- class dtype(object):
- def __init__(self, obj, align=False, copy=False):
- self.alignment = None
- self.base = None
- self.byteorder = None
- self.char = None
- self.descr = None
- self.fields = None
- self.flags = None
- self.hasobject = None
- self.isalignedstruct = None
- self.isbuiltin = None
- self.isnative = None
- self.itemsize = None
- self.kind = None
- self.metadata = None
- self.name = None
- self.names = None
- self.num = None
- self.shape = None
- self.str = None
- self.subdtype = None
- self.type = None
-
- def newbyteorder(self, new_order='S'): return uninferable
- def __neg__(self): return uninferable
-
- class busdaycalendar(object):
- def __init__(self, weekmask='1111100', holidays=None):
- self.holidays = None
- self.weekmask = None
-
- class flexible(generic): pass
- class bool_(generic): pass
- class number(generic):
- def __neg__(self): return uninferable
- class datetime64(generic):
- def __init__(self, nb, unit=None): pass
-
-
- class void(flexible):
- def __init__(self, *args, **kwargs):
- self.base = None
- self.dtype = None
- self.flags = None
- def getfield(self): return uninferable
- def setfield(self): return uninferable
-
-
- class character(flexible): pass
-
-
- class integer(number):
- def __init__(self, value):
- self.denominator = None
- self.numerator = None
-
-
- class inexact(number): pass
-
-
- class str_(str, character):
- def maketrans(self, x, y=None, z=None): return uninferable
-
-
- class bytes_(bytes, character):
- def fromhex(self, string): return uninferable
- def maketrans(self, frm, to): return uninferable
-
-
- class signedinteger(integer): pass
-
-
- class unsignedinteger(integer): pass
-
-
- class complexfloating(inexact): pass
-
-
- class floating(inexact): pass
-
-
- class float64(floating, float):
- def fromhex(self, string): return uninferable
-
-
- class uint64(unsignedinteger): pass
- class complex64(complexfloating): pass
- class int16(signedinteger): pass
- class float96(floating): pass
- class int8(signedinteger): pass
- class uint32(unsignedinteger): pass
- class uint8(unsignedinteger): pass
- class _typedict(dict): pass
- class complex192(complexfloating): pass
- class timedelta64(signedinteger):
- def __init__(self, nb, unit=None): pass
- class int32(signedinteger): pass
- class uint16(unsignedinteger): pass
- class float32(floating): pass
- class complex128(complexfloating, complex): pass
- class float16(floating): pass
- class int64(signedinteger): pass
-
- buffer_type = memoryview
- bool8 = bool_
- byte = int8
- bytes0 = bytes_
- cdouble = complex128
- cfloat = complex128
- clongdouble = complex192
- clongfloat = complex192
- complex_ = complex128
- csingle = complex64
- double = float64
- float_ = float64
- half = float16
- int0 = int32
- int_ = int32
- intc = int32
- intp = int32
- long = int32
- longcomplex = complex192
- longdouble = float96
- longfloat = float96
- longlong = int64
- object0 = object_
- object_ = object_
- short = int16
- single = float32
- singlecomplex = complex64
- str0 = str_
- string_ = bytes_
- ubyte = uint8
- uint = uint32
- uint0 = uint32
- uintc = uint32
- uintp = uint32
- ulonglong = uint64
- unicode = str_
- unicode_ = str_
- ushort = uint16
- void0 = void
- """
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "numpy.core.numerictypes", numpy_core_numerictypes_transform
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_umath.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_umath.py
deleted file mode 100644
index 459d38c..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_core_umath.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for numpy.core.umath module."""
-
-import astroid
-
-
-def numpy_core_umath_transform():
- ufunc_optional_keyword_arguments = (
- """out=None, where=True, casting='same_kind', order='K', """
- """dtype=None, subok=True"""
- )
- return astroid.parse(
- """
- # Constants
- e = 2.718281828459045
- euler_gamma = 0.5772156649015329
-
- # No arg functions
- def geterrobj(): return []
-
- # One arg functions
- def seterrobj(errobj): return None
-
- # One arg functions with optional kwargs
- def arccos(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def arccosh(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def arcsin(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def arcsinh(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def arctan(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def arctanh(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def cbrt(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def conj(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def conjugate(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def cosh(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def deg2rad(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def degrees(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def exp2(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def expm1(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def fabs(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def frexp(x, {opt_args:s}): return (numpy.ndarray((0, 0)), numpy.ndarray((0, 0)))
- def isfinite(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def isinf(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def log(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def log1p(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def log2(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def logical_not(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def modf(x, {opt_args:s}): return (numpy.ndarray((0, 0)), numpy.ndarray((0, 0)))
- def negative(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def rad2deg(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def radians(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def reciprocal(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def rint(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def sign(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def signbit(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def sinh(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def spacing(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def square(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def tan(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def tanh(x, {opt_args:s}): return numpy.ndarray((0, 0))
- def trunc(x, {opt_args:s}): return numpy.ndarray((0, 0))
-
- # Two args functions with optional kwargs
- def bitwise_and(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def bitwise_or(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def bitwise_xor(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def copysign(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def divide(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def equal(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def floor_divide(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def fmax(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def fmin(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def fmod(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def greater(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def hypot(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def ldexp(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def left_shift(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def less(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def logaddexp(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def logaddexp2(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def logical_and(x1, x2, {opt_args:s}): return numpy.ndarray([0, 0])
- def logical_or(x1, x2, {opt_args:s}): return numpy.ndarray([0, 0])
- def logical_xor(x1, x2, {opt_args:s}): return numpy.ndarray([0, 0])
- def maximum(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def minimum(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def nextafter(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def not_equal(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def power(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def remainder(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def right_shift(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def subtract(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- def true_divide(x1, x2, {opt_args:s}): return numpy.ndarray((0, 0))
- """.format(
- opt_args=ufunc_optional_keyword_arguments
- )
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "numpy.core.umath", numpy_core_umath_transform
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_ndarray.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_ndarray.py
deleted file mode 100644
index 8c231a3..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_ndarray.py
+++ /dev/null
@@ -1,153 +0,0 @@
-# Copyright (c) 2015-2016, 2018 Claudiu Popa
-# Copyright (c) 2016 Ceridwen
-# Copyright (c) 2017-2018 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for numpy ndarray class."""
-
-import functools
-import astroid
-
-
-def infer_numpy_ndarray(node, context=None):
- ndarray = """
- class ndarray(object):
- def __init__(self, shape, dtype=float, buffer=None, offset=0,
- strides=None, order=None):
- self.T = None
- self.base = None
- self.ctypes = None
- self.data = None
- self.dtype = None
- self.flags = None
- self.flat = None
- self.imag = None
- self.itemsize = None
- self.nbytes = None
- self.ndim = None
- self.real = None
- self.shape = None
- self.size = None
- self.strides = None
-
- def __abs__(self): return numpy.ndarray([0, 0])
- def __add__(self, value): return numpy.ndarray([0, 0])
- def __and__(self, value): return numpy.ndarray([0, 0])
- def __array__(self, dtype=None): return numpy.ndarray([0, 0])
- def __array_wrap__(self, obj): return numpy.ndarray([0, 0])
- def __contains__(self, key): return True
- def __copy__(self): return numpy.ndarray([0, 0])
- def __deepcopy__(self, memo): return numpy.ndarray([0, 0])
- def __divmod__(self, value): return (numpy.ndarray([0, 0]), numpy.ndarray([0, 0]))
- def __eq__(self, value): return numpy.ndarray([0, 0])
- def __float__(self): return 0.
- def __floordiv__(self): return numpy.ndarray([0, 0])
- def __ge__(self, value): return numpy.ndarray([0, 0])
- def __getitem__(self, key): return uninferable
- def __gt__(self, value): return numpy.ndarray([0, 0])
- def __iadd__(self, value): return numpy.ndarray([0, 0])
- def __iand__(self, value): return numpy.ndarray([0, 0])
- def __ifloordiv__(self, value): return numpy.ndarray([0, 0])
- def __ilshift__(self, value): return numpy.ndarray([0, 0])
- def __imod__(self, value): return numpy.ndarray([0, 0])
- def __imul__(self, value): return numpy.ndarray([0, 0])
- def __int__(self): return 0
- def __invert__(self): return numpy.ndarray([0, 0])
- def __ior__(self, value): return numpy.ndarray([0, 0])
- def __ipow__(self, value): return numpy.ndarray([0, 0])
- def __irshift__(self, value): return numpy.ndarray([0, 0])
- def __isub__(self, value): return numpy.ndarray([0, 0])
- def __itruediv__(self, value): return numpy.ndarray([0, 0])
- def __ixor__(self, value): return numpy.ndarray([0, 0])
- def __le__(self, value): return numpy.ndarray([0, 0])
- def __len__(self): return 1
- def __lshift__(self, value): return numpy.ndarray([0, 0])
- def __lt__(self, value): return numpy.ndarray([0, 0])
- def __matmul__(self, value): return numpy.ndarray([0, 0])
- def __mod__(self, value): return numpy.ndarray([0, 0])
- def __mul__(self, value): return numpy.ndarray([0, 0])
- def __ne__(self, value): return numpy.ndarray([0, 0])
- def __neg__(self): return numpy.ndarray([0, 0])
- def __or__(self): return numpy.ndarray([0, 0])
- def __pos__(self): return numpy.ndarray([0, 0])
- def __pow__(self): return numpy.ndarray([0, 0])
- def __repr__(self): return str()
- def __rshift__(self): return numpy.ndarray([0, 0])
- def __setitem__(self, key, value): return uninferable
- def __str__(self): return str()
- def __sub__(self, value): return numpy.ndarray([0, 0])
- def __truediv__(self, value): return numpy.ndarray([0, 0])
- def __xor__(self, value): return numpy.ndarray([0, 0])
- def all(self, axis=None, out=None, keepdims=False): return np.ndarray([0, 0])
- def any(self, axis=None, out=None, keepdims=False): return np.ndarray([0, 0])
- def argmax(self, axis=None, out=None): return np.ndarray([0, 0])
- def argmin(self, axis=None, out=None): return np.ndarray([0, 0])
- def argpartition(self, kth, axis=-1, kind='introselect', order=None): return np.ndarray([0, 0])
- def argsort(self, axis=-1, kind='quicksort', order=None): return np.ndarray([0, 0])
- def astype(self, dtype, order='K', casting='unsafe', subok=True, copy=True): return np.ndarray([0, 0])
- def byteswap(self, inplace=False): return np.ndarray([0, 0])
- def choose(self, choices, out=None, mode='raise'): return np.ndarray([0, 0])
- def clip(self, min=None, max=None, out=None): return np.ndarray([0, 0])
- def compress(self, condition, axis=None, out=None): return np.ndarray([0, 0])
- def conj(self): return np.ndarray([0, 0])
- def conjugate(self): return np.ndarray([0, 0])
- def copy(self, order='C'): return np.ndarray([0, 0])
- def cumprod(self, axis=None, dtype=None, out=None): return np.ndarray([0, 0])
- def cumsum(self, axis=None, dtype=None, out=None): return np.ndarray([0, 0])
- def diagonal(self, offset=0, axis1=0, axis2=1): return np.ndarray([0, 0])
- def dot(self, b, out=None): return np.ndarray([0, 0])
- def dump(self, file): return None
- def dumps(self): return str()
- def fill(self, value): return None
- def flatten(self, order='C'): return np.ndarray([0, 0])
- def getfield(self, dtype, offset=0): return np.ndarray([0, 0])
- def item(self, *args): return uninferable
- def itemset(self, *args): return None
- def max(self, axis=None, out=None): return np.ndarray([0, 0])
- def mean(self, axis=None, dtype=None, out=None, keepdims=False): return np.ndarray([0, 0])
- def min(self, axis=None, out=None, keepdims=False): return np.ndarray([0, 0])
- def newbyteorder(self, new_order='S'): return np.ndarray([0, 0])
- def nonzero(self): return (1,)
- def partition(self, kth, axis=-1, kind='introselect', order=None): return None
- def prod(self, axis=None, dtype=None, out=None, keepdims=False): return np.ndarray([0, 0])
- def ptp(self, axis=None, out=None): return np.ndarray([0, 0])
- def put(self, indices, values, mode='raise'): return None
- def ravel(self, order='C'): return np.ndarray([0, 0])
- def repeat(self, repeats, axis=None): return np.ndarray([0, 0])
- def reshape(self, shape, order='C'): return np.ndarray([0, 0])
- def resize(self, new_shape, refcheck=True): return None
- def round(self, decimals=0, out=None): return np.ndarray([0, 0])
- def searchsorted(self, v, side='left', sorter=None): return np.ndarray([0, 0])
- def setfield(self, val, dtype, offset=0): return None
- def setflags(self, write=None, align=None, uic=None): return None
- def sort(self, axis=-1, kind='quicksort', order=None): return None
- def squeeze(self, axis=None): return np.ndarray([0, 0])
- def std(self, axis=None, dtype=None, out=None, ddof=0, keepdims=False): return np.ndarray([0, 0])
- def sum(self, axis=None, dtype=None, out=None, keepdims=False): return np.ndarray([0, 0])
- def swapaxes(self, axis1, axis2): return np.ndarray([0, 0])
- def take(self, indices, axis=None, out=None, mode='raise'): return np.ndarray([0, 0])
- def tobytes(self, order='C'): return b''
- def tofile(self, fid, sep="", format="%s"): return None
- def tolist(self, ): return []
- def tostring(self, order='C'): return b''
- def trace(self, offset=0, axis1=0, axis2=1, dtype=None, out=None): return np.ndarray([0, 0])
- def transpose(self, *axes): return np.ndarray([0, 0])
- def var(self, axis=None, dtype=None, out=None, ddof=0, keepdims=False): return np.ndarray([0, 0])
- def view(self, dtype=None, type=None): return np.ndarray([0, 0])
- """
- node = astroid.extract_node(ndarray)
- return node.infer(context=context)
-
-
-def _looks_like_numpy_ndarray(node):
- return isinstance(node, astroid.Attribute) and node.attrname == "ndarray"
-
-
-astroid.MANAGER.register_transform(
- astroid.Attribute,
- astroid.inference_tip(infer_numpy_ndarray),
- _looks_like_numpy_ndarray,
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_random_mtrand.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_random_mtrand.py
deleted file mode 100644
index 772bfc4..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_random_mtrand.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-# TODO(hippo91) : correct the functions return types
-"""Astroid hooks for numpy.random.mtrand module."""
-
-import astroid
-
-
-def numpy_random_mtrand_transform():
- return astroid.parse(
- """
- def beta(a, b, size=None): return uninferable
- def binomial(n, p, size=None): return uninferable
- def bytes(length): return uninferable
- def chisquare(df, size=None): return uninferable
- def choice(a, size=None, replace=True, p=None): return uninferable
- def dirichlet(alpha, size=None): return uninferable
- def exponential(scale=1.0, size=None): return uninferable
- def f(dfnum, dfden, size=None): return uninferable
- def gamma(shape, scale=1.0, size=None): return uninferable
- def geometric(p, size=None): return uninferable
- def get_state(): return uninferable
- def gumbel(loc=0.0, scale=1.0, size=None): return uninferable
- def hypergeometric(ngood, nbad, nsample, size=None): return uninferable
- def laplace(loc=0.0, scale=1.0, size=None): return uninferable
- def logistic(loc=0.0, scale=1.0, size=None): return uninferable
- def lognormal(mean=0.0, sigma=1.0, size=None): return uninferable
- def logseries(p, size=None): return uninferable
- def multinomial(n, pvals, size=None): return uninferable
- def multivariate_normal(mean, cov, size=None): return uninferable
- def negative_binomial(n, p, size=None): return uninferable
- def noncentral_chisquare(df, nonc, size=None): return uninferable
- def noncentral_f(dfnum, dfden, nonc, size=None): return uninferable
- def normal(loc=0.0, scale=1.0, size=None): return uninferable
- def pareto(a, size=None): return uninferable
- def permutation(x): return uninferable
- def poisson(lam=1.0, size=None): return uninferable
- def power(a, size=None): return uninferable
- def rand(*args): return uninferable
- def randint(low, high=None, size=None, dtype='l'):
- import numpy
- return numpy.ndarray((1,1))
- def randn(*args): return uninferable
- def random_integers(low, high=None, size=None): return uninferable
- def random_sample(size=None): return uninferable
- def rayleigh(scale=1.0, size=None): return uninferable
- def seed(seed=None): return uninferable
- def set_state(state): return uninferable
- def shuffle(x): return uninferable
- def standard_cauchy(size=None): return uninferable
- def standard_exponential(size=None): return uninferable
- def standard_gamma(shape, size=None): return uninferable
- def standard_normal(size=None): return uninferable
- def standard_t(df, size=None): return uninferable
- def triangular(left, mode, right, size=None): return uninferable
- def uniform(low=0.0, high=1.0, size=None): return uninferable
- def vonmises(mu, kappa, size=None): return uninferable
- def wald(mean, scale, size=None): return uninferable
- def weibull(a, size=None): return uninferable
- def zipf(a, size=None): return uninferable
- """
- )
-
-
-astroid.register_module_extender(
- astroid.MANAGER, "numpy.random.mtrand", numpy_random_mtrand_transform
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
deleted file mode 100644
index 2bad01e..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright (c) 2018-2019 hippo91
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Different utilities for the numpy brains"""
-
-
-import astroid
-
-
-def infer_numpy_member(src, node, context=None):
- node = astroid.extract_node(src)
- return node.infer(context=context)
-
-
-def _is_a_numpy_module(node: astroid.node_classes.Name) -> bool:
- """
- Returns True if the node is a representation of a numpy module.
-
- For example in :
- import numpy as np
- x = np.linspace(1, 2)
- The node is a representation of the numpy module.
-
- :param node: node to test
- :return: True if the node is a representation of the numpy module.
- """
- module_nickname = node.name
- potential_import_target = [
- x for x in node.lookup(module_nickname)[1] if isinstance(x, astroid.Import)
- ]
- for target in potential_import_target:
- if ("numpy", module_nickname) in target.names:
- return True
- return False
-
-
-def looks_like_numpy_member(
- member_name: str, node: astroid.node_classes.NodeNG
-) -> bool:
- """
- Returns True if the node is a member of numpy whose
- name is member_name.
-
- :param member_name: name of the member
- :param node: node to test
- :return: True if the node is a member of numpy
- """
- return (
- isinstance(node, astroid.Attribute)
- and node.attrname == member_name
- and isinstance(node.expr, astroid.Name)
- and _is_a_numpy_module(node.expr)
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_pkg_resources.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_pkg_resources.py
deleted file mode 100644
index 25e7649..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_pkg_resources.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright (c) 2016, 2018 Claudiu Popa
-# Copyright (c) 2016 Ceridwen
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-import astroid
-from astroid import parse
-from astroid import inference_tip
-from astroid import register_module_extender
-from astroid import MANAGER
-
-
-def pkg_resources_transform():
- return parse(
- """
-def require(*requirements):
- return pkg_resources.working_set.require(*requirements)
-
-def run_script(requires, script_name):
- return pkg_resources.working_set.run_script(requires, script_name)
-
-def iter_entry_points(group, name=None):
- return pkg_resources.working_set.iter_entry_points(group, name)
-
-def resource_exists(package_or_requirement, resource_name):
- return get_provider(package_or_requirement).has_resource(resource_name)
-
-def resource_isdir(package_or_requirement, resource_name):
- return get_provider(package_or_requirement).resource_isdir(
- resource_name)
-
-def resource_filename(package_or_requirement, resource_name):
- return get_provider(package_or_requirement).get_resource_filename(
- self, resource_name)
-
-def resource_stream(package_or_requirement, resource_name):
- return get_provider(package_or_requirement).get_resource_stream(
- self, resource_name)
-
-def resource_string(package_or_requirement, resource_name):
- return get_provider(package_or_requirement).get_resource_string(
- self, resource_name)
-
-def resource_listdir(package_or_requirement, resource_name):
- return get_provider(package_or_requirement).resource_listdir(
- resource_name)
-
-def extraction_error():
- pass
-
-def get_cache_path(archive_name, names=()):
- extract_path = self.extraction_path or get_default_cache()
- target_path = os.path.join(extract_path, archive_name+'-tmp', *names)
- return target_path
-
-def postprocess(tempname, filename):
- pass
-
-def set_extraction_path(path):
- pass
-
-def cleanup_resources(force=False):
- pass
-
-def get_distribution(dist):
- return Distribution(dist)
-
-_namespace_packages = {}
-"""
- )
-
-
-register_module_extender(MANAGER, "pkg_resources", pkg_resources_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_pytest.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_pytest.py
deleted file mode 100644
index d7e3ac8..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_pytest.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2014-2016 Claudiu Popa
-# Copyright (c) 2014 Jeff Quast
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2016 Florian Bruhin
-# Copyright (c) 2016 Ceridwen
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for pytest."""
-from __future__ import absolute_import
-from astroid import MANAGER, register_module_extender
-from astroid.builder import AstroidBuilder
-
-
-def pytest_transform():
- return AstroidBuilder(MANAGER).string_build(
- """
-
-try:
- import _pytest.mark
- import _pytest.recwarn
- import _pytest.runner
- import _pytest.python
- import _pytest.skipping
- import _pytest.assertion
-except ImportError:
- pass
-else:
- deprecated_call = _pytest.recwarn.deprecated_call
- warns = _pytest.recwarn.warns
-
- exit = _pytest.runner.exit
- fail = _pytest.runner.fail
- skip = _pytest.runner.skip
- importorskip = _pytest.runner.importorskip
-
- xfail = _pytest.skipping.xfail
- mark = _pytest.mark.MarkGenerator()
- raises = _pytest.python.raises
-
- # New in pytest 3.0
- try:
- approx = _pytest.python.approx
- register_assert_rewrite = _pytest.assertion.register_assert_rewrite
- except AttributeError:
- pass
-
-
-# Moved in pytest 3.0
-
-try:
- import _pytest.freeze_support
- freeze_includes = _pytest.freeze_support.freeze_includes
-except ImportError:
- try:
- import _pytest.genscript
- freeze_includes = _pytest.genscript.freeze_includes
- except ImportError:
- pass
-
-try:
- import _pytest.debugging
- set_trace = _pytest.debugging.pytestPDB().set_trace
-except ImportError:
- try:
- import _pytest.pdb
- set_trace = _pytest.pdb.pytestPDB().set_trace
- except ImportError:
- pass
-
-try:
- import _pytest.fixtures
- fixture = _pytest.fixtures.fixture
- yield_fixture = _pytest.fixtures.yield_fixture
-except ImportError:
- try:
- import _pytest.python
- fixture = _pytest.python.fixture
- yield_fixture = _pytest.python.yield_fixture
- except ImportError:
- pass
-"""
- )
-
-
-register_module_extender(MANAGER, "pytest", pytest_transform)
-register_module_extender(MANAGER, "py.test", pytest_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_qt.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_qt.py
deleted file mode 100644
index 8679d14..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_qt.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2015-2016 Claudiu Popa
-# Copyright (c) 2016 Ceridwen
-# Copyright (c) 2017 Roy Wright
-# Copyright (c) 2018 Ashley Whetter
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for the PyQT library."""
-
-from astroid import MANAGER, register_module_extender
-from astroid.builder import AstroidBuilder
-from astroid import nodes
-from astroid import parse
-
-
-def _looks_like_signal(node, signal_name="pyqtSignal"):
- if "__class__" in node.instance_attrs:
- try:
- cls = node.instance_attrs["__class__"][0]
- return cls.name == signal_name
- except AttributeError:
- # return False if the cls does not have a name attribute
- pass
- return False
-
-
-def transform_pyqt_signal(node):
- module = parse(
- """
- class pyqtSignal(object):
- def connect(self, slot, type=None, no_receiver_check=False):
- pass
- def disconnect(self, slot):
- pass
- def emit(self, *args):
- pass
- """
- )
- signal_cls = module["pyqtSignal"]
- node.instance_attrs["emit"] = signal_cls["emit"]
- node.instance_attrs["disconnect"] = signal_cls["disconnect"]
- node.instance_attrs["connect"] = signal_cls["connect"]
-
-
-def transform_pyside_signal(node):
- module = parse(
- """
- class NotPySideSignal(object):
- def connect(self, receiver, type=None):
- pass
- def disconnect(self, receiver):
- pass
- def emit(self, *args):
- pass
- """
- )
- signal_cls = module["NotPySideSignal"]
- node.instance_attrs["connect"] = signal_cls["connect"]
- node.instance_attrs["disconnect"] = signal_cls["disconnect"]
- node.instance_attrs["emit"] = signal_cls["emit"]
-
-
-def pyqt4_qtcore_transform():
- return AstroidBuilder(MANAGER).string_build(
- """
-
-def SIGNAL(signal_name): pass
-
-class QObject(object):
- def emit(self, signal): pass
-"""
- )
-
-
-register_module_extender(MANAGER, "PyQt4.QtCore", pyqt4_qtcore_transform)
-MANAGER.register_transform(nodes.FunctionDef, transform_pyqt_signal, _looks_like_signal)
-MANAGER.register_transform(
- nodes.ClassDef,
- transform_pyside_signal,
- lambda node: node.qname() in ("PySide.QtCore.Signal", "PySide2.QtCore.Signal"),
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_random.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_random.py
deleted file mode 100644
index 5ec858a..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_random.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import random
-
-import astroid
-from astroid import helpers
-from astroid import MANAGER
-
-
-ACCEPTED_ITERABLES_FOR_SAMPLE = (astroid.List, astroid.Set, astroid.Tuple)
-
-
-def _clone_node_with_lineno(node, parent, lineno):
- cls = node.__class__
- other_fields = node._other_fields
- _astroid_fields = node._astroid_fields
- init_params = {"lineno": lineno, "col_offset": node.col_offset, "parent": parent}
- postinit_params = {param: getattr(node, param) for param in _astroid_fields}
- if other_fields:
- init_params.update({param: getattr(node, param) for param in other_fields})
- new_node = cls(**init_params)
- if hasattr(node, "postinit") and _astroid_fields:
- new_node.postinit(**postinit_params)
- return new_node
-
-
-def infer_random_sample(node, context=None):
- if len(node.args) != 2:
- raise astroid.UseInferenceDefault
-
- length = node.args[1]
- if not isinstance(length, astroid.Const):
- raise astroid.UseInferenceDefault
- if not isinstance(length.value, int):
- raise astroid.UseInferenceDefault
-
- inferred_sequence = helpers.safe_infer(node.args[0], context=context)
- if not inferred_sequence:
- raise astroid.UseInferenceDefault
-
- if not isinstance(inferred_sequence, ACCEPTED_ITERABLES_FOR_SAMPLE):
- raise astroid.UseInferenceDefault
-
- if length.value > len(inferred_sequence.elts):
- # In this case, this will raise a ValueError
- raise astroid.UseInferenceDefault
-
- try:
- elts = random.sample(inferred_sequence.elts, length.value)
- except ValueError:
- raise astroid.UseInferenceDefault
-
- new_node = astroid.List(
- lineno=node.lineno, col_offset=node.col_offset, parent=node.scope()
- )
- new_elts = [
- _clone_node_with_lineno(elt, parent=new_node, lineno=new_node.lineno)
- for elt in elts
- ]
- new_node.postinit(new_elts)
- return iter((new_node,))
-
-
-def _looks_like_random_sample(node):
- func = node.func
- if isinstance(func, astroid.Attribute):
- return func.attrname == "sample"
- if isinstance(func, astroid.Name):
- return func.name == "sample"
- return False
-
-
-MANAGER.register_transform(
- astroid.Call, astroid.inference_tip(infer_random_sample), _looks_like_random_sample
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_re.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_re.py
deleted file mode 100644
index c7ee51a..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_re.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import sys
-import astroid
-
-PY36 = sys.version_info >= (3, 6)
-
-if PY36:
- # Since Python 3.6 there is the RegexFlag enum
- # where every entry will be exposed via updating globals()
-
- def _re_transform():
- return astroid.parse(
- """
- import sre_compile
- ASCII = sre_compile.SRE_FLAG_ASCII
- IGNORECASE = sre_compile.SRE_FLAG_IGNORECASE
- LOCALE = sre_compile.SRE_FLAG_LOCALE
- UNICODE = sre_compile.SRE_FLAG_UNICODE
- MULTILINE = sre_compile.SRE_FLAG_MULTILINE
- DOTALL = sre_compile.SRE_FLAG_DOTALL
- VERBOSE = sre_compile.SRE_FLAG_VERBOSE
- A = ASCII
- I = IGNORECASE
- L = LOCALE
- U = UNICODE
- M = MULTILINE
- S = DOTALL
- X = VERBOSE
- TEMPLATE = sre_compile.SRE_FLAG_TEMPLATE
- T = TEMPLATE
- DEBUG = sre_compile.SRE_FLAG_DEBUG
- """
- )
-
- astroid.register_module_extender(astroid.MANAGER, "re", _re_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_six.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_six.py
deleted file mode 100644
index b342fbf..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_six.py
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright (c) 2014-2016, 2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""Astroid hooks for six module."""
-
-from textwrap import dedent
-
-from astroid import MANAGER, register_module_extender
-from astroid.builder import AstroidBuilder
-from astroid.exceptions import (
- AstroidBuildingError,
- InferenceError,
- AttributeInferenceError,
-)
-from astroid import nodes
-
-
-SIX_ADD_METACLASS = "six.add_metaclass"
-
-
-def _indent(text, prefix, predicate=None):
- """Adds 'prefix' to the beginning of selected lines in 'text'.
-
- If 'predicate' is provided, 'prefix' will only be added to the lines
- where 'predicate(line)' is True. If 'predicate' is not provided,
- it will default to adding 'prefix' to all non-empty lines that do not
- consist solely of whitespace characters.
- """
- if predicate is None:
- predicate = lambda line: line.strip()
-
- def prefixed_lines():
- for line in text.splitlines(True):
- yield prefix + line if predicate(line) else line
-
- return "".join(prefixed_lines())
-
-
-_IMPORTS = """
-import _io
-cStringIO = _io.StringIO
-filter = filter
-from itertools import filterfalse
-input = input
-from sys import intern
-map = map
-range = range
-from imp import reload as reload_module
-from functools import reduce
-from shlex import quote as shlex_quote
-from io import StringIO
-from collections import UserDict, UserList, UserString
-xrange = range
-zip = zip
-from itertools import zip_longest
-import builtins
-import configparser
-import copyreg
-import _dummy_thread
-import http.cookiejar as http_cookiejar
-import http.cookies as http_cookies
-import html.entities as html_entities
-import html.parser as html_parser
-import http.client as http_client
-import http.server as http_server
-BaseHTTPServer = CGIHTTPServer = SimpleHTTPServer = http.server
-import pickle as cPickle
-import queue
-import reprlib
-import socketserver
-import _thread
-import winreg
-import xmlrpc.server as xmlrpc_server
-import xmlrpc.client as xmlrpc_client
-import urllib.robotparser as urllib_robotparser
-import email.mime.multipart as email_mime_multipart
-import email.mime.nonmultipart as email_mime_nonmultipart
-import email.mime.text as email_mime_text
-import email.mime.base as email_mime_base
-import urllib.parse as urllib_parse
-import urllib.error as urllib_error
-import tkinter
-import tkinter.dialog as tkinter_dialog
-import tkinter.filedialog as tkinter_filedialog
-import tkinter.scrolledtext as tkinter_scrolledtext
-import tkinter.simpledialog as tkinder_simpledialog
-import tkinter.tix as tkinter_tix
-import tkinter.ttk as tkinter_ttk
-import tkinter.constants as tkinter_constants
-import tkinter.dnd as tkinter_dnd
-import tkinter.colorchooser as tkinter_colorchooser
-import tkinter.commondialog as tkinter_commondialog
-import tkinter.filedialog as tkinter_tkfiledialog
-import tkinter.font as tkinter_font
-import tkinter.messagebox as tkinter_messagebox
-import urllib
-import urllib.request as urllib_request
-import urllib.robotparser as urllib_robotparser
-import urllib.parse as urllib_parse
-import urllib.error as urllib_error
-"""
-
-
-def six_moves_transform():
- code = dedent(
- """
- class Moves(object):
- {}
- moves = Moves()
- """
- ).format(_indent(_IMPORTS, " "))
- module = AstroidBuilder(MANAGER).string_build(code)
- module.name = "six.moves"
- return module
-
-
-def _six_fail_hook(modname):
- """Fix six.moves imports due to the dynamic nature of this
- class.
-
- Construct a pseudo-module which contains all the necessary imports
- for six
-
- :param modname: Name of failed module
- :type modname: str
-
- :return: An astroid module
- :rtype: nodes.Module
- """
-
- attribute_of = modname != "six.moves" and modname.startswith("six.moves")
- if modname != "six.moves" and not attribute_of:
- raise AstroidBuildingError(modname=modname)
- module = AstroidBuilder(MANAGER).string_build(_IMPORTS)
- module.name = "six.moves"
- if attribute_of:
- # Facilitate import of submodules in Moves
- start_index = len(module.name)
- attribute = modname[start_index:].lstrip(".").replace(".", "_")
- try:
- import_attr = module.getattr(attribute)[0]
- except AttributeInferenceError:
- raise AstroidBuildingError(modname=modname)
- if isinstance(import_attr, nodes.Import):
- submodule = MANAGER.ast_from_module_name(import_attr.names[0][0])
- return submodule
- # Let dummy submodule imports pass through
- # This will cause an Uninferable result, which is okay
- return module
-
-
-def _looks_like_decorated_with_six_add_metaclass(node):
- if not node.decorators:
- return False
-
- for decorator in node.decorators.nodes:
- if not isinstance(decorator, nodes.Call):
- continue
- if decorator.func.as_string() == SIX_ADD_METACLASS:
- return True
- return False
-
-
-def transform_six_add_metaclass(node):
- """Check if the given class node is decorated with *six.add_metaclass*
-
- If so, inject its argument as the metaclass of the underlying class.
- """
- if not node.decorators:
- return
-
- for decorator in node.decorators.nodes:
- if not isinstance(decorator, nodes.Call):
- continue
-
- try:
- func = next(decorator.func.infer())
- except InferenceError:
- continue
- if func.qname() == SIX_ADD_METACLASS and decorator.args:
- metaclass = decorator.args[0]
- node._metaclass = metaclass
- return node
-
-
-register_module_extender(MANAGER, "six", six_moves_transform)
-register_module_extender(
- MANAGER, "requests.packages.urllib3.packages.six", six_moves_transform
-)
-MANAGER.register_failed_import_hook(_six_fail_hook)
-MANAGER.register_transform(
- nodes.ClassDef,
- transform_six_add_metaclass,
- _looks_like_decorated_with_six_add_metaclass,
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_ssl.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_ssl.py
deleted file mode 100644
index 893d8a2..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_ssl.py
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (c) 2016 Claudiu Popa
-# Copyright (c) 2016 Ceridwen
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for the ssl library."""
-
-from astroid import MANAGER, register_module_extender
-from astroid.builder import AstroidBuilder
-from astroid import nodes
-from astroid import parse
-
-
-def ssl_transform():
- return parse(
- """
- from _ssl import OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_INFO, OPENSSL_VERSION
- from _ssl import _SSLContext, MemoryBIO
- from _ssl import (
- SSLError, SSLZeroReturnError, SSLWantReadError, SSLWantWriteError,
- SSLSyscallError, SSLEOFError,
- )
- from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
- from _ssl import txt2obj as _txt2obj, nid2obj as _nid2obj
- from _ssl import RAND_status, RAND_add, RAND_bytes, RAND_pseudo_bytes
- try:
- from _ssl import RAND_egd
- except ImportError:
- # LibreSSL does not provide RAND_egd
- pass
- from _ssl import (OP_ALL, OP_CIPHER_SERVER_PREFERENCE,
- OP_NO_COMPRESSION, OP_NO_SSLv2, OP_NO_SSLv3,
- OP_NO_TLSv1, OP_NO_TLSv1_1, OP_NO_TLSv1_2,
- OP_SINGLE_DH_USE, OP_SINGLE_ECDH_USE)
-
- from _ssl import (ALERT_DESCRIPTION_ACCESS_DENIED, ALERT_DESCRIPTION_BAD_CERTIFICATE,
- ALERT_DESCRIPTION_BAD_CERTIFICATE_HASH_VALUE,
- ALERT_DESCRIPTION_BAD_CERTIFICATE_STATUS_RESPONSE,
- ALERT_DESCRIPTION_BAD_RECORD_MAC,
- ALERT_DESCRIPTION_CERTIFICATE_EXPIRED,
- ALERT_DESCRIPTION_CERTIFICATE_REVOKED,
- ALERT_DESCRIPTION_CERTIFICATE_UNKNOWN,
- ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE,
- ALERT_DESCRIPTION_CLOSE_NOTIFY, ALERT_DESCRIPTION_DECODE_ERROR,
- ALERT_DESCRIPTION_DECOMPRESSION_FAILURE,
- ALERT_DESCRIPTION_DECRYPT_ERROR,
- ALERT_DESCRIPTION_HANDSHAKE_FAILURE,
- ALERT_DESCRIPTION_ILLEGAL_PARAMETER,
- ALERT_DESCRIPTION_INSUFFICIENT_SECURITY,
- ALERT_DESCRIPTION_INTERNAL_ERROR,
- ALERT_DESCRIPTION_NO_RENEGOTIATION,
- ALERT_DESCRIPTION_PROTOCOL_VERSION,
- ALERT_DESCRIPTION_RECORD_OVERFLOW,
- ALERT_DESCRIPTION_UNEXPECTED_MESSAGE,
- ALERT_DESCRIPTION_UNKNOWN_CA,
- ALERT_DESCRIPTION_UNKNOWN_PSK_IDENTITY,
- ALERT_DESCRIPTION_UNRECOGNIZED_NAME,
- ALERT_DESCRIPTION_UNSUPPORTED_CERTIFICATE,
- ALERT_DESCRIPTION_UNSUPPORTED_EXTENSION,
- ALERT_DESCRIPTION_USER_CANCELLED)
- from _ssl import (SSL_ERROR_EOF, SSL_ERROR_INVALID_ERROR_CODE, SSL_ERROR_SSL,
- SSL_ERROR_SYSCALL, SSL_ERROR_WANT_CONNECT, SSL_ERROR_WANT_READ,
- SSL_ERROR_WANT_WRITE, SSL_ERROR_WANT_X509_LOOKUP, SSL_ERROR_ZERO_RETURN)
- from _ssl import VERIFY_CRL_CHECK_CHAIN, VERIFY_CRL_CHECK_LEAF, VERIFY_DEFAULT, VERIFY_X509_STRICT
- from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN
- from _ssl import _OPENSSL_API_VERSION
- from _ssl import PROTOCOL_SSLv23, PROTOCOL_TLSv1, PROTOCOL_TLSv1_1, PROTOCOL_TLSv1_2
- from _ssl import PROTOCOL_TLS, PROTOCOL_TLS_CLIENT, PROTOCOL_TLS_SERVER
- """
- )
-
-
-register_module_extender(MANAGER, "ssl", ssl_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_subprocess.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_subprocess.py
deleted file mode 100644
index c14dc55..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_subprocess.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright (c) 2016-2017 Claudiu Popa
-# Copyright (c) 2017 Hugo
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-import sys
-import textwrap
-
-import astroid
-
-
-PY37 = sys.version_info >= (3, 7)
-PY36 = sys.version_info >= (3, 6)
-
-
-def _subprocess_transform():
- communicate = (bytes("string", "ascii"), bytes("string", "ascii"))
- communicate_signature = "def communicate(self, input=None, timeout=None)"
- if PY37:
- init = """
- def __init__(self, args, bufsize=0, executable=None,
- stdin=None, stdout=None, stderr=None,
- preexec_fn=None, close_fds=False, shell=False,
- cwd=None, env=None, universal_newlines=False,
- startupinfo=None, creationflags=0, restore_signals=True,
- start_new_session=False, pass_fds=(), *,
- encoding=None, errors=None, text=None):
- pass
- """
- elif PY36:
- init = """
- def __init__(self, args, bufsize=0, executable=None,
- stdin=None, stdout=None, stderr=None,
- preexec_fn=None, close_fds=False, shell=False,
- cwd=None, env=None, universal_newlines=False,
- startupinfo=None, creationflags=0, restore_signals=True,
- start_new_session=False, pass_fds=(), *,
- encoding=None, errors=None):
- pass
- """
- else:
- init = """
- def __init__(self, args, bufsize=0, executable=None,
- stdin=None, stdout=None, stderr=None,
- preexec_fn=None, close_fds=False, shell=False,
- cwd=None, env=None, universal_newlines=False,
- startupinfo=None, creationflags=0, restore_signals=True,
- start_new_session=False, pass_fds=()):
- pass
- """
- wait_signature = "def wait(self, timeout=None)"
- ctx_manager = """
- def __enter__(self): return self
- def __exit__(self, *args): pass
- """
- py3_args = "args = []"
- code = textwrap.dedent(
- """
- def check_output(
- args, *,
- stdin=None,
- stderr=None,
- shell=False,
- cwd=None,
- encoding=None,
- errors=None,
- universal_newlines=False,
- timeout=None,
- env=None
- ):
-
- if universal_newlines:
- return ""
- return b""
- class Popen(object):
- returncode = pid = 0
- stdin = stdout = stderr = file()
- %(py3_args)s
-
- %(communicate_signature)s:
- return %(communicate)r
- %(wait_signature)s:
- return self.returncode
- def poll(self):
- return self.returncode
- def send_signal(self, signal):
- pass
- def terminate(self):
- pass
- def kill(self):
- pass
- %(ctx_manager)s
- """
- % {
- "communicate": communicate,
- "communicate_signature": communicate_signature,
- "wait_signature": wait_signature,
- "ctx_manager": ctx_manager,
- "py3_args": py3_args,
- }
- )
-
- init_lines = textwrap.dedent(init).splitlines()
- indented_init = "\n".join(" " * 4 + line for line in init_lines)
- code += indented_init
- return astroid.parse(code)
-
-
-astroid.register_module_extender(astroid.MANAGER, "subprocess", _subprocess_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_threading.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_threading.py
deleted file mode 100644
index dffa55a..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_threading.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2016 Claudiu Popa
-# Copyright (c) 2017 Łukasz Rogalski
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-import astroid
-
-
-def _thread_transform():
- return astroid.parse(
- """
- class lock(object):
- def acquire(self, blocking=True, timeout=-1):
- pass
- def release(self):
- pass
- def __enter__(self):
- return True
- def __exit__(self, *args):
- pass
- def locked(self):
- return False
-
- def Lock():
- return lock()
- """
- )
-
-
-astroid.register_module_extender(astroid.MANAGER, "threading", _thread_transform)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_typing.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_typing.py
deleted file mode 100644
index 9ff7227..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_typing.py
+++ /dev/null
@@ -1,96 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017-2018 Claudiu Popa
-# Copyright (c) 2017 Łukasz Rogalski
-# Copyright (c) 2017 David Euresti
-# Copyright (c) 2018 Bryce Guinta
-
-"""Astroid hooks for typing.py support."""
-import typing
-
-from astroid import (
- MANAGER,
- UseInferenceDefault,
- extract_node,
- inference_tip,
- nodes,
- InferenceError,
-)
-
-
-TYPING_NAMEDTUPLE_BASENAMES = {"NamedTuple", "typing.NamedTuple"}
-TYPING_TYPEVARS = {"TypeVar", "NewType"}
-TYPING_TYPEVARS_QUALIFIED = {"typing.TypeVar", "typing.NewType"}
-TYPING_TYPE_TEMPLATE = """
-class Meta(type):
- def __getitem__(self, item):
- return self
-
- @property
- def __args__(self):
- return ()
-
-class {0}(metaclass=Meta):
- pass
-"""
-TYPING_MEMBERS = set(typing.__all__)
-
-
-def looks_like_typing_typevar_or_newtype(node):
- func = node.func
- if isinstance(func, nodes.Attribute):
- return func.attrname in TYPING_TYPEVARS
- if isinstance(func, nodes.Name):
- return func.name in TYPING_TYPEVARS
- return False
-
-
-def infer_typing_typevar_or_newtype(node, context=None):
- """Infer a typing.TypeVar(...) or typing.NewType(...) call"""
- try:
- func = next(node.func.infer(context=context))
- except InferenceError as exc:
- raise UseInferenceDefault from exc
-
- if func.qname() not in TYPING_TYPEVARS_QUALIFIED:
- raise UseInferenceDefault
- if not node.args:
- raise UseInferenceDefault
-
- typename = node.args[0].as_string().strip("'")
- node = extract_node(TYPING_TYPE_TEMPLATE.format(typename))
- return node.infer(context=context)
-
-
-def _looks_like_typing_subscript(node):
- """Try to figure out if a Subscript node *might* be a typing-related subscript"""
- if isinstance(node, nodes.Name):
- return node.name in TYPING_MEMBERS
- elif isinstance(node, nodes.Attribute):
- return node.attrname in TYPING_MEMBERS
- elif isinstance(node, nodes.Subscript):
- return _looks_like_typing_subscript(node.value)
- return False
-
-
-def infer_typing_attr(node, context=None):
- """Infer a typing.X[...] subscript"""
- try:
- value = next(node.value.infer())
- except InferenceError as exc:
- raise UseInferenceDefault from exc
-
- if not value.qname().startswith("typing."):
- raise UseInferenceDefault
-
- node = extract_node(TYPING_TYPE_TEMPLATE.format(value.qname().split(".")[-1]))
- return node.infer(context=context)
-
-
-MANAGER.register_transform(
- nodes.Call,
- inference_tip(infer_typing_typevar_or_newtype),
- looks_like_typing_typevar_or_newtype,
-)
-MANAGER.register_transform(
- nodes.Subscript, inference_tip(infer_typing_attr), _looks_like_typing_subscript
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_uuid.py b/src/main/python/venv/Lib/site-packages/astroid/brain/brain_uuid.py
deleted file mode 100644
index 8bda631..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/brain/brain_uuid.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2017 Claudiu Popa
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Astroid hooks for the UUID module."""
-
-
-from astroid import MANAGER
-from astroid import nodes
-
-
-def _patch_uuid_class(node):
- # The .int member is patched using __dict__
- node.locals["int"] = [nodes.Const(0, parent=node)]
-
-
-MANAGER.register_transform(
- nodes.ClassDef, _patch_uuid_class, lambda node: node.qname() == "uuid.UUID"
-)
diff --git a/src/main/python/venv/Lib/site-packages/astroid/builder.py b/src/main/python/venv/Lib/site-packages/astroid/builder.py
deleted file mode 100644
index ac71093..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/builder.py
+++ /dev/null
@@ -1,435 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2006-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2013 Phil Schaf
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014-2015 Google, Inc.
-# Copyright (c) 2014 Alexander Presnyakov
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2017 Łukasz Rogalski
-# Copyright (c) 2018 Anthony Sottile
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""The AstroidBuilder makes astroid from living object and / or from _ast
-
-The builder is not thread safe and can't be used to parse different sources
-at the same time.
-"""
-
-import os
-import textwrap
-from tokenize import detect_encoding
-
-from astroid._ast import _parse
-from astroid import bases
-from astroid import exceptions
-from astroid import manager
-from astroid import modutils
-from astroid import raw_building
-from astroid import rebuilder
-from astroid import nodes
-from astroid import util
-
-# The name of the transient function that is used to
-# wrap expressions to be extracted when calling
-# extract_node.
-_TRANSIENT_FUNCTION = "__"
-
-# The comment used to select a statement to be extracted
-# when calling extract_node.
-_STATEMENT_SELECTOR = "#@"
-
-MANAGER = manager.AstroidManager()
-
-
-def open_source_file(filename):
- with open(filename, "rb") as byte_stream:
- encoding = detect_encoding(byte_stream.readline)[0]
- stream = open(filename, "r", newline=None, encoding=encoding)
- data = stream.read()
- return stream, encoding, data
-
-
-def _can_assign_attr(node, attrname):
- try:
- slots = node.slots()
- except NotImplementedError:
- pass
- else:
- if slots and attrname not in {slot.value for slot in slots}:
- return False
- return True
-
-
-class AstroidBuilder(raw_building.InspectBuilder):
- """Class for building an astroid tree from source code or from a live module.
-
- The param *manager* specifies the manager class which should be used.
- If no manager is given, then the default one will be used. The
- param *apply_transforms* determines if the transforms should be
- applied after the tree was built from source or from a live object,
- by default being True.
- """
-
- # pylint: disable=redefined-outer-name
- def __init__(self, manager=None, apply_transforms=True):
- super(AstroidBuilder, self).__init__()
- self._manager = manager or MANAGER
- self._apply_transforms = apply_transforms
-
- def module_build(self, module, modname=None):
- """Build an astroid from a living module instance."""
- node = None
- path = getattr(module, "__file__", None)
- if path is not None:
- path_, ext = os.path.splitext(modutils._path_from_filename(path))
- if ext in (".py", ".pyc", ".pyo") and os.path.exists(path_ + ".py"):
- node = self.file_build(path_ + ".py", modname)
- if node is None:
- # this is a built-in module
- # get a partial representation by introspection
- node = self.inspect_build(module, modname=modname, path=path)
- if self._apply_transforms:
- # We have to handle transformation by ourselves since the
- # rebuilder isn't called for builtin nodes
- node = self._manager.visit_transforms(node)
- return node
-
- def file_build(self, path, modname=None):
- """Build astroid from a source code file (i.e. from an ast)
-
- *path* is expected to be a python source file
- """
- try:
- stream, encoding, data = open_source_file(path)
- except IOError as exc:
- raise exceptions.AstroidBuildingError(
- "Unable to load file {path}:\n{error}",
- modname=modname,
- path=path,
- error=exc,
- ) from exc
- except (SyntaxError, LookupError) as exc:
- raise exceptions.AstroidSyntaxError(
- "Python 3 encoding specification error or unknown encoding:\n"
- "{error}",
- modname=modname,
- path=path,
- error=exc,
- ) from exc
- except UnicodeError as exc: # wrong encoding
- # detect_encoding returns utf-8 if no encoding specified
- raise exceptions.AstroidBuildingError(
- "Wrong or no encoding specified for {filename}.", filename=path
- ) from exc
- with stream:
- # get module name if necessary
- if modname is None:
- try:
- modname = ".".join(modutils.modpath_from_file(path))
- except ImportError:
- modname = os.path.splitext(os.path.basename(path))[0]
- # build astroid representation
- module = self._data_build(data, modname, path)
- return self._post_build(module, encoding)
-
- def string_build(self, data, modname="", path=None):
- """Build astroid from source code string."""
- module = self._data_build(data, modname, path)
- module.file_bytes = data.encode("utf-8")
- return self._post_build(module, "utf-8")
-
- def _post_build(self, module, encoding):
- """Handles encoding and delayed nodes after a module has been built"""
- module.file_encoding = encoding
- self._manager.cache_module(module)
- # post tree building steps after we stored the module in the cache:
- for from_node in module._import_from_nodes:
- if from_node.modname == "__future__":
- for symbol, _ in from_node.names:
- module.future_imports.add(symbol)
- self.add_from_names_to_locals(from_node)
- # handle delayed assattr nodes
- for delayed in module._delayed_assattr:
- self.delayed_assattr(delayed)
-
- # Visit the transforms
- if self._apply_transforms:
- module = self._manager.visit_transforms(module)
- return module
-
- def _data_build(self, data, modname, path):
- """Build tree node from data and add some informations"""
- try:
- node = _parse(data + "\n")
- except (TypeError, ValueError, SyntaxError) as exc:
- raise exceptions.AstroidSyntaxError(
- "Parsing Python code failed:\n{error}",
- source=data,
- modname=modname,
- path=path,
- error=exc,
- ) from exc
- if path is not None:
- node_file = os.path.abspath(path)
- else:
- node_file = ">"
- if modname.endswith(".__init__"):
- modname = modname[:-9]
- package = True
- else:
- package = (
- path is not None
- and os.path.splitext(os.path.basename(path))[0] == "__init__"
- )
- builder = rebuilder.TreeRebuilder(self._manager)
- module = builder.visit_module(node, modname, node_file, package)
- module._import_from_nodes = builder._import_from_nodes
- module._delayed_assattr = builder._delayed_assattr
- return module
-
- def add_from_names_to_locals(self, node):
- """Store imported names to the locals
-
- Resort the locals if coming from a delayed node
- """
- _key_func = lambda node: node.fromlineno
-
- def sort_locals(my_list):
- my_list.sort(key=_key_func)
-
- for (name, asname) in node.names:
- if name == "*":
- try:
- imported = node.do_import_module()
- except exceptions.AstroidBuildingError:
- continue
- for name in imported.public_names():
- node.parent.set_local(name, node)
- sort_locals(node.parent.scope().locals[name])
- else:
- node.parent.set_local(asname or name, node)
- sort_locals(node.parent.scope().locals[asname or name])
-
- def delayed_assattr(self, node):
- """Visit a AssAttr node
-
- This adds name to locals and handle members definition.
- """
- try:
- frame = node.frame()
- for inferred in node.expr.infer():
- if inferred is util.Uninferable:
- continue
- try:
- if inferred.__class__ is bases.Instance:
- inferred = inferred._proxied
- iattrs = inferred.instance_attrs
- if not _can_assign_attr(inferred, node.attrname):
- continue
- elif isinstance(inferred, bases.Instance):
- # Const, Tuple, ... we may be wrong, may be not, but
- # anyway we don't want to pollute builtin's namespace
- continue
- elif inferred.is_function:
- iattrs = inferred.instance_attrs
- else:
- iattrs = inferred.locals
- except AttributeError:
- # XXX log error
- continue
- values = iattrs.setdefault(node.attrname, [])
- if node in values:
- continue
- # get assign in __init__ first XXX useful ?
- if (
- frame.name == "__init__"
- and values
- and values[0].frame().name != "__init__"
- ):
- values.insert(0, node)
- else:
- values.append(node)
- except exceptions.InferenceError:
- pass
-
-
-def build_namespace_package_module(name, path):
- return nodes.Module(name, doc="", path=path, package=True)
-
-
-def parse(code, module_name="", path=None, apply_transforms=True):
- """Parses a source string in order to obtain an astroid AST from it
-
- :param str code: The code for the module.
- :param str module_name: The name for the module, if any
- :param str path: The path for the module
- :param bool apply_transforms:
- Apply the transforms for the give code. Use it if you
- don't want the default transforms to be applied.
- """
- code = textwrap.dedent(code)
- builder = AstroidBuilder(manager=MANAGER, apply_transforms=apply_transforms)
- return builder.string_build(code, modname=module_name, path=path)
-
-
-def _extract_expressions(node):
- """Find expressions in a call to _TRANSIENT_FUNCTION and extract them.
-
- The function walks the AST recursively to search for expressions that
- are wrapped into a call to _TRANSIENT_FUNCTION. If it finds such an
- expression, it completely removes the function call node from the tree,
- replacing it by the wrapped expression inside the parent.
-
- :param node: An astroid node.
- :type node: astroid.bases.NodeNG
- :yields: The sequence of wrapped expressions on the modified tree
- expression can be found.
- """
- if (
- isinstance(node, nodes.Call)
- and isinstance(node.func, nodes.Name)
- and node.func.name == _TRANSIENT_FUNCTION
- ):
- real_expr = node.args[0]
- real_expr.parent = node.parent
- # Search for node in all _astng_fields (the fields checked when
- # get_children is called) of its parent. Some of those fields may
- # be lists or tuples, in which case the elements need to be checked.
- # When we find it, replace it by real_expr, so that the AST looks
- # like no call to _TRANSIENT_FUNCTION ever took place.
- for name in node.parent._astroid_fields:
- child = getattr(node.parent, name)
- if isinstance(child, (list, tuple)):
- for idx, compound_child in enumerate(child):
- if compound_child is node:
- child[idx] = real_expr
- elif child is node:
- setattr(node.parent, name, real_expr)
- yield real_expr
- else:
- for child in node.get_children():
- yield from _extract_expressions(child)
-
-
-def _find_statement_by_line(node, line):
- """Extracts the statement on a specific line from an AST.
-
- If the line number of node matches line, it will be returned;
- otherwise its children are iterated and the function is called
- recursively.
-
- :param node: An astroid node.
- :type node: astroid.bases.NodeNG
- :param line: The line number of the statement to extract.
- :type line: int
- :returns: The statement on the line, or None if no statement for the line
- can be found.
- :rtype: astroid.bases.NodeNG or None
- """
- if isinstance(node, (nodes.ClassDef, nodes.FunctionDef)):
- # This is an inaccuracy in the AST: the nodes that can be
- # decorated do not carry explicit information on which line
- # the actual definition (class/def), but .fromline seems to
- # be close enough.
- node_line = node.fromlineno
- else:
- node_line = node.lineno
-
- if node_line == line:
- return node
-
- for child in node.get_children():
- result = _find_statement_by_line(child, line)
- if result:
- return result
-
- return None
-
-
-def extract_node(code, module_name=""):
- """Parses some Python code as a module and extracts a designated AST node.
-
- Statements:
- To extract one or more statement nodes, append #@ to the end of the line
-
- Examples:
- >>> def x():
- >>> def y():
- >>> return 1 #@
-
- The return statement will be extracted.
-
- >>> class X(object):
- >>> def meth(self): #@
- >>> pass
-
- The function object 'meth' will be extracted.
-
- Expressions:
- To extract arbitrary expressions, surround them with the fake
- function call __(...). After parsing, the surrounded expression
- will be returned and the whole AST (accessible via the returned
- node's parent attribute) will look like the function call was
- never there in the first place.
-
- Examples:
- >>> a = __(1)
-
- The const node will be extracted.
-
- >>> def x(d=__(foo.bar)): pass
-
- The node containing the default argument will be extracted.
-
- >>> def foo(a, b):
- >>> return 0 < __(len(a)) < b
-
- The node containing the function call 'len' will be extracted.
-
- If no statements or expressions are selected, the last toplevel
- statement will be returned.
-
- If the selected statement is a discard statement, (i.e. an expression
- turned into a statement), the wrapped expression is returned instead.
-
- For convenience, singleton lists are unpacked.
-
- :param str code: A piece of Python code that is parsed as
- a module. Will be passed through textwrap.dedent first.
- :param str module_name: The name of the module.
- :returns: The designated node from the parse tree, or a list of nodes.
- :rtype: astroid.bases.NodeNG, or a list of nodes.
- """
-
- def _extract(node):
- if isinstance(node, nodes.Expr):
- return node.value
-
- return node
-
- requested_lines = []
- for idx, line in enumerate(code.splitlines()):
- if line.strip().endswith(_STATEMENT_SELECTOR):
- requested_lines.append(idx + 1)
-
- tree = parse(code, module_name=module_name)
- if not tree.body:
- raise ValueError("Empty tree, cannot extract from it")
-
- extracted = []
- if requested_lines:
- extracted = [_find_statement_by_line(tree, line) for line in requested_lines]
-
- # Modifies the tree.
- extracted.extend(_extract_expressions(tree))
-
- if not extracted:
- extracted.append(tree.body[-1])
-
- extracted = [_extract(node) for node in extracted]
- if len(extracted) == 1:
- return extracted[0]
- return extracted
diff --git a/src/main/python/venv/Lib/site-packages/astroid/context.py b/src/main/python/venv/Lib/site-packages/astroid/context.py
deleted file mode 100644
index 70a9208..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/context.py
+++ /dev/null
@@ -1,179 +0,0 @@
-# Copyright (c) 2015-2016, 2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2018 Bryce Guinta
-# Copyright (c) 2018 Nick Drozd
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Various context related utilities, including inference and call contexts."""
-import contextlib
-import pprint
-from typing import Optional
-
-
-class InferenceContext:
- """Provide context for inference
-
- Store already inferred nodes to save time
- Account for already visited nodes to infinite stop infinite recursion
- """
-
- __slots__ = (
- "path",
- "lookupname",
- "callcontext",
- "boundnode",
- "inferred",
- "extra_context",
- )
-
- def __init__(self, path=None, inferred=None):
- self.path = path or set()
- """
- :type: set(tuple(NodeNG, optional(str)))
-
- Path of visited nodes and their lookupname
-
- Currently this key is ``(node, context.lookupname)``
- """
- self.lookupname = None
- """
- :type: optional[str]
-
- The original name of the node
-
- e.g.
- foo = 1
- The inference of 'foo' is nodes.Const(1) but the lookup name is 'foo'
- """
- self.callcontext = None
- """
- :type: optional[CallContext]
-
- The call arguments and keywords for the given context
- """
- self.boundnode = None
- """
- :type: optional[NodeNG]
-
- The bound node of the given context
-
- e.g. the bound node of object.__new__(cls) is the object node
- """
- self.inferred = inferred or {}
- """
- :type: dict(seq, seq)
-
- Inferred node contexts to their mapped results
- Currently the key is ``(node, lookupname, callcontext, boundnode)``
- and the value is tuple of the inferred results
- """
- self.extra_context = {}
- """
- :type: dict(NodeNG, Context)
-
- Context that needs to be passed down through call stacks
- for call arguments
- """
-
- def push(self, node):
- """Push node into inference path
-
- :return: True if node is already in context path else False
- :rtype: bool
-
- Allows one to see if the given node has already
- been looked at for this inference context"""
- name = self.lookupname
- if (node, name) in self.path:
- return True
-
- self.path.add((node, name))
- return False
-
- def clone(self):
- """Clone inference path
-
- For example, each side of a binary operation (BinOp)
- starts with the same context but diverge as each side is inferred
- so the InferenceContext will need be cloned"""
- # XXX copy lookupname/callcontext ?
- clone = InferenceContext(self.path, inferred=self.inferred)
- clone.callcontext = self.callcontext
- clone.boundnode = self.boundnode
- clone.extra_context = self.extra_context
- return clone
-
- def cache_generator(self, key, generator):
- """Cache result of generator into dictionary
-
- Used to cache inference results"""
- results = []
- for result in generator:
- results.append(result)
- yield result
-
- self.inferred[key] = tuple(results)
-
- @contextlib.contextmanager
- def restore_path(self):
- path = set(self.path)
- yield
- self.path = path
-
- def __str__(self):
- state = (
- "%s=%s"
- % (field, pprint.pformat(getattr(self, field), width=80 - len(field)))
- for field in self.__slots__
- )
- return "%s(%s)" % (type(self).__name__, ",\n ".join(state))
-
-
-class CallContext:
- """Holds information for a call site."""
-
- __slots__ = ("args", "keywords")
-
- def __init__(self, args, keywords=None):
- """
- :param List[NodeNG] args: Call positional arguments
- :param Union[List[nodes.Keyword], None] keywords: Call keywords
- """
- self.args = args
- if keywords:
- keywords = [(arg.arg, arg.value) for arg in keywords]
- else:
- keywords = []
- self.keywords = keywords
-
-
-def copy_context(context: Optional[InferenceContext]) -> InferenceContext:
- """Clone a context if given, or return a fresh contexxt"""
- if context is not None:
- return context.clone()
-
- return InferenceContext()
-
-
-def bind_context_to_node(context, node):
- """Give a context a boundnode
- to retrieve the correct function name or attribute value
- with from further inference.
-
- Do not use an existing context since the boundnode could then
- be incorrectly propagated higher up in the call stack.
-
- :param context: Context to use
- :type context: Optional(context)
-
- :param node: Node to do name lookups from
- :type node NodeNG:
-
- :returns: A new context
- :rtype: InferenceContext
- """
- context = copy_context(context)
- context.boundnode = node
- return context
diff --git a/src/main/python/venv/Lib/site-packages/astroid/decorators.py b/src/main/python/venv/Lib/site-packages/astroid/decorators.py
deleted file mode 100644
index 1448757..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/decorators.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (c) 2015-2016, 2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Florian Bruhin
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2018 Nick Drozd
-# Copyright (c) 2018 Ashley Whetter
-# Copyright (c) 2018 HoverHell
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-""" A few useful function/method decorators."""
-
-import functools
-
-import wrapt
-
-from astroid import context as contextmod
-from astroid import exceptions
-from astroid import util
-
-
-@wrapt.decorator
-def cached(func, instance, args, kwargs):
- """Simple decorator to cache result of method calls without args."""
- cache = getattr(instance, "__cache", None)
- if cache is None:
- instance.__cache = cache = {}
- try:
- return cache[func]
- except KeyError:
- cache[func] = result = func(*args, **kwargs)
- return result
-
-
-class cachedproperty:
- """ Provides a cached property equivalent to the stacking of
- @cached and @property, but more efficient.
-
- After first usage, the becomes part of the object's
- __dict__. Doing:
-
- del obj. empties the cache.
-
- Idea taken from the pyramid_ framework and the mercurial_ project.
-
- .. _pyramid: http://pypi.python.org/pypi/pyramid
- .. _mercurial: http://pypi.python.org/pypi/Mercurial
- """
-
- __slots__ = ("wrapped",)
-
- def __init__(self, wrapped):
- try:
- wrapped.__name__
- except AttributeError as exc:
- raise TypeError("%s must have a __name__ attribute" % wrapped) from exc
- self.wrapped = wrapped
-
- @property
- def __doc__(self):
- doc = getattr(self.wrapped, "__doc__", None)
- return "%s" % (
- "\n%s" % doc if doc else ""
- )
-
- def __get__(self, inst, objtype=None):
- if inst is None:
- return self
- val = self.wrapped(inst)
- setattr(inst, self.wrapped.__name__, val)
- return val
-
-
-def path_wrapper(func):
- """return the given infer function wrapped to handle the path
-
- Used to stop inference if the node has already been looked
- at for a given `InferenceContext` to prevent infinite recursion
- """
-
- @functools.wraps(func)
- def wrapped(node, context=None, _func=func, **kwargs):
- """wrapper function handling context"""
- if context is None:
- context = contextmod.InferenceContext()
- if context.push(node):
- return None
-
- yielded = set()
- generator = _func(node, context, **kwargs)
- try:
- while True:
- res = next(generator)
- # unproxy only true instance, not const, tuple, dict...
- if res.__class__.__name__ == "Instance":
- ares = res._proxied
- else:
- ares = res
- if ares not in yielded:
- yield res
- yielded.add(ares)
- except StopIteration as error:
- if error.args:
- return error.args[0]
- return None
-
- return wrapped
-
-
-@wrapt.decorator
-def yes_if_nothing_inferred(func, instance, args, kwargs):
- generator = func(*args, **kwargs)
-
- try:
- yield next(generator)
- except StopIteration:
- # generator is empty
- yield util.Uninferable
- return
-
- yield from generator
-
-
-@wrapt.decorator
-def raise_if_nothing_inferred(func, instance, args, kwargs):
- generator = func(*args, **kwargs)
-
- try:
- yield next(generator)
- except StopIteration as error:
- # generator is empty
- if error.args:
- # pylint: disable=not-a-mapping
- raise exceptions.InferenceError(**error.args[0])
- raise exceptions.InferenceError(
- "StopIteration raised without any error information."
- )
-
- yield from generator
diff --git a/src/main/python/venv/Lib/site-packages/astroid/exceptions.py b/src/main/python/venv/Lib/site-packages/astroid/exceptions.py
deleted file mode 100644
index 7e9d655..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/exceptions.py
+++ /dev/null
@@ -1,230 +0,0 @@
-# Copyright (c) 2007, 2009-2010, 2013 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2015-2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""this module contains exceptions used in the astroid library
-"""
-from astroid import util
-
-
-class AstroidError(Exception):
- """base exception class for all astroid related exceptions
-
- AstroidError and its subclasses are structured, intended to hold
- objects representing state when the exception is thrown. Field
- values are passed to the constructor as keyword-only arguments.
- Each subclass has its own set of standard fields, but use your
- best judgment to decide whether a specific exception instance
- needs more or fewer fields for debugging. Field values may be
- used to lazily generate the error message: self.message.format()
- will be called with the field names and values supplied as keyword
- arguments.
- """
-
- def __init__(self, message="", **kws):
- super(AstroidError, self).__init__(message)
- self.message = message
- for key, value in kws.items():
- setattr(self, key, value)
-
- def __str__(self):
- return self.message.format(**vars(self))
-
-
-class AstroidBuildingError(AstroidError):
- """exception class when we are unable to build an astroid representation
-
- Standard attributes:
- modname: Name of the module that AST construction failed for.
- error: Exception raised during construction.
- """
-
- def __init__(self, message="Failed to import module {modname}.", **kws):
- super(AstroidBuildingError, self).__init__(message, **kws)
-
-
-class AstroidImportError(AstroidBuildingError):
- """Exception class used when a module can't be imported by astroid."""
-
-
-class TooManyLevelsError(AstroidImportError):
- """Exception class which is raised when a relative import was beyond the top-level.
-
- Standard attributes:
- level: The level which was attempted.
- name: the name of the module on which the relative import was attempted.
- """
-
- level = None
- name = None
-
- def __init__(
- self,
- message="Relative import with too many levels " "({level}) for module {name!r}",
- **kws
- ):
- super(TooManyLevelsError, self).__init__(message, **kws)
-
-
-class AstroidSyntaxError(AstroidBuildingError):
- """Exception class used when a module can't be parsed."""
-
-
-class NoDefault(AstroidError):
- """raised by function's `default_value` method when an argument has
- no default value
-
- Standard attributes:
- func: Function node.
- name: Name of argument without a default.
- """
-
- func = None
- name = None
-
- def __init__(self, message="{func!r} has no default for {name!r}.", **kws):
- super(NoDefault, self).__init__(message, **kws)
-
-
-class ResolveError(AstroidError):
- """Base class of astroid resolution/inference error.
-
- ResolveError is not intended to be raised.
-
- Standard attributes:
- context: InferenceContext object.
- """
-
- context = None
-
-
-class MroError(ResolveError):
- """Error raised when there is a problem with method resolution of a class.
-
- Standard attributes:
- mros: A sequence of sequences containing ClassDef nodes.
- cls: ClassDef node whose MRO resolution failed.
- context: InferenceContext object.
- """
-
- mros = ()
- cls = None
-
- def __str__(self):
- mro_names = ", ".join(
- "({})".format(", ".join(b.name for b in m)) for m in self.mros
- )
- return self.message.format(mros=mro_names, cls=self.cls)
-
-
-class DuplicateBasesError(MroError):
- """Error raised when there are duplicate bases in the same class bases."""
-
-
-class InconsistentMroError(MroError):
- """Error raised when a class's MRO is inconsistent."""
-
-
-class SuperError(ResolveError):
- """Error raised when there is a problem with a *super* call.
-
- Standard attributes:
- *super_*: The Super instance that raised the exception.
- context: InferenceContext object.
- """
-
- super_ = None
-
- def __str__(self):
- return self.message.format(**vars(self.super_))
-
-
-class InferenceError(ResolveError):
- """raised when we are unable to infer a node
-
- Standard attributes:
- node: The node inference was called on.
- context: InferenceContext object.
- """
-
- node = None
- context = None
-
- def __init__(self, message="Inference failed for {node!r}.", **kws):
- super(InferenceError, self).__init__(message, **kws)
-
-
-# Why does this inherit from InferenceError rather than ResolveError?
-# Changing it causes some inference tests to fail.
-class NameInferenceError(InferenceError):
- """Raised when a name lookup fails, corresponds to NameError.
-
- Standard attributes:
- name: The name for which lookup failed, as a string.
- scope: The node representing the scope in which the lookup occurred.
- context: InferenceContext object.
- """
-
- name = None
- scope = None
-
- def __init__(self, message="{name!r} not found in {scope!r}.", **kws):
- super(NameInferenceError, self).__init__(message, **kws)
-
-
-class AttributeInferenceError(ResolveError):
- """Raised when an attribute lookup fails, corresponds to AttributeError.
-
- Standard attributes:
- target: The node for which lookup failed.
- attribute: The attribute for which lookup failed, as a string.
- context: InferenceContext object.
- """
-
- target = None
- attribute = None
-
- def __init__(self, message="{attribute!r} not found on {target!r}.", **kws):
- super(AttributeInferenceError, self).__init__(message, **kws)
-
-
-class UseInferenceDefault(Exception):
- """exception to be raised in custom inference function to indicate that it
- should go back to the default behaviour
- """
-
-
-class _NonDeducibleTypeHierarchy(Exception):
- """Raised when is_subtype / is_supertype can't deduce the relation between two types."""
-
-
-class AstroidIndexError(AstroidError):
- """Raised when an Indexable / Mapping does not have an index / key."""
-
-
-class AstroidTypeError(AstroidError):
- """Raised when a TypeError would be expected in Python code."""
-
-
-class InferenceOverwriteError(AstroidError):
- """Raised when an inference tip is overwritten
-
- Currently only used for debugging.
- """
-
-
-# Backwards-compatibility aliases
-OperationError = util.BadOperationMessage
-UnaryOperationError = util.BadUnaryOperationMessage
-BinaryOperationError = util.BadBinaryOperationMessage
-
-SuperArgumentTypeError = SuperError
-UnresolvableName = NameInferenceError
-NotFoundError = AttributeInferenceError
-AstroidBuildingException = AstroidBuildingError
diff --git a/src/main/python/venv/Lib/site-packages/astroid/helpers.py b/src/main/python/venv/Lib/site-packages/astroid/helpers.py
deleted file mode 100644
index be133b3..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/helpers.py
+++ /dev/null
@@ -1,273 +0,0 @@
-# Copyright (c) 2015-2018 Claudiu Popa
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2018 Bryce Guinta
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
-"""
-Various helper utilities.
-"""
-
-import builtins as builtins_mod
-
-from astroid import bases
-from astroid import context as contextmod
-from astroid import exceptions
-from astroid import manager
-from astroid import nodes
-from astroid import raw_building
-from astroid import scoped_nodes
-from astroid import util
-
-
-BUILTINS = builtins_mod.__name__
-
-
-def _build_proxy_class(cls_name, builtins):
- proxy = raw_building.build_class(cls_name)
- proxy.parent = builtins
- return proxy
-
-
-def _function_type(function, builtins):
- if isinstance(function, scoped_nodes.Lambda):
- if function.root().name == BUILTINS:
- cls_name = "builtin_function_or_method"
- else:
- cls_name = "function"
- elif isinstance(function, bases.BoundMethod):
- cls_name = "method"
- elif isinstance(function, bases.UnboundMethod):
- cls_name = "function"
- return _build_proxy_class(cls_name, builtins)
-
-
-def _object_type(node, context=None):
- astroid_manager = manager.AstroidManager()
- builtins = astroid_manager.builtins_module
- context = context or contextmod.InferenceContext()
-
- for inferred in node.infer(context=context):
- if isinstance(inferred, scoped_nodes.ClassDef):
- if inferred.newstyle:
- metaclass = inferred.metaclass(context=context)
- if metaclass:
- yield metaclass
- continue
- yield builtins.getattr("type")[0]
- elif isinstance(inferred, (scoped_nodes.Lambda, bases.UnboundMethod)):
- yield _function_type(inferred, builtins)
- elif isinstance(inferred, scoped_nodes.Module):
- yield _build_proxy_class("module", builtins)
- else:
- yield inferred._proxied
-
-
-def object_type(node, context=None):
- """Obtain the type of the given node
-
- This is used to implement the ``type`` builtin, which means that it's
- used for inferring type calls, as well as used in a couple of other places
- in the inference.
- The node will be inferred first, so this function can support all
- sorts of objects, as long as they support inference.
- """
-
- try:
- types = set(_object_type(node, context))
- except exceptions.InferenceError:
- return util.Uninferable
- if len(types) > 1 or not types:
- return util.Uninferable
- return list(types)[0]
-
-
-def _object_type_is_subclass(obj_type, class_or_seq, context=None):
- if not isinstance(class_or_seq, (tuple, list)):
- class_seq = (class_or_seq,)
- else:
- class_seq = class_or_seq
-
- if obj_type is util.Uninferable:
- return util.Uninferable
-
- # Instances are not types
- class_seq = [
- item if not isinstance(item, bases.Instance) else util.Uninferable
- for item in class_seq
- ]
- # strict compatibility with issubclass
- # issubclass(type, (object, 1)) evaluates to true
- # issubclass(object, (1, type)) raises TypeError
- for klass in class_seq:
- if klass is util.Uninferable:
- raise exceptions.AstroidTypeError("arg 2 must be a type or tuple of types")
-
- for obj_subclass in obj_type.mro():
- if obj_subclass == klass:
- return True
- return False
-
-
-def object_isinstance(node, class_or_seq, context=None):
- """Check if a node 'isinstance' any node in class_or_seq
-
- :param node: A given node
- :param class_or_seq: Union[nodes.NodeNG, Sequence[nodes.NodeNG]]
- :rtype: bool
-
- :raises AstroidTypeError: if the given ``classes_or_seq`` are not types
- """
- obj_type = object_type(node, context)
- if obj_type is util.Uninferable:
- return util.Uninferable
- return _object_type_is_subclass(obj_type, class_or_seq, context=context)
-
-
-def object_issubclass(node, class_or_seq, context=None):
- """Check if a type is a subclass of any node in class_or_seq
-
- :param node: A given node
- :param class_or_seq: Union[Nodes.NodeNG, Sequence[nodes.NodeNG]]
- :rtype: bool
-
- :raises AstroidTypeError: if the given ``classes_or_seq`` are not types
- :raises AstroidError: if the type of the given node cannot be inferred
- or its type's mro doesn't work
- """
- if not isinstance(node, nodes.ClassDef):
- raise TypeError("{node} needs to be a ClassDef node".format(node=node))
- return _object_type_is_subclass(node, class_or_seq, context=context)
-
-
-def safe_infer(node, context=None):
- """Return the inferred value for the given node.
-
- Return None if inference failed or if there is some ambiguity (more than
- one node has been inferred).
- """
- try:
- inferit = node.infer(context=context)
- value = next(inferit)
- except exceptions.InferenceError:
- return None
- try:
- next(inferit)
- return None # None if there is ambiguity on the inferred node
- except exceptions.InferenceError:
- return None # there is some kind of ambiguity
- except StopIteration:
- return value
-
-
-def has_known_bases(klass, context=None):
- """Return true if all base classes of a class could be inferred."""
- try:
- return klass._all_bases_known
- except AttributeError:
- pass
- for base in klass.bases:
- result = safe_infer(base, context=context)
- # TODO: check for A->B->A->B pattern in class structure too?
- if (
- not isinstance(result, scoped_nodes.ClassDef)
- or result is klass
- or not has_known_bases(result, context=context)
- ):
- klass._all_bases_known = False
- return False
- klass._all_bases_known = True
- return True
-
-
-def _type_check(type1, type2):
- if not all(map(has_known_bases, (type1, type2))):
- raise exceptions._NonDeducibleTypeHierarchy
-
- if not all([type1.newstyle, type2.newstyle]):
- return False
- try:
- return type1 in type2.mro()[:-1]
- except exceptions.MroError:
- # The MRO is invalid.
- raise exceptions._NonDeducibleTypeHierarchy
-
-
-def is_subtype(type1, type2):
- """Check if *type1* is a subtype of *type2*."""
- return _type_check(type1=type2, type2=type1)
-
-
-def is_supertype(type1, type2):
- """Check if *type2* is a supertype of *type1*."""
- return _type_check(type1, type2)
-
-
-def class_instance_as_index(node):
- """Get the value as an index for the given instance.
-
- If an instance provides an __index__ method, then it can
- be used in some scenarios where an integer is expected,
- for instance when multiplying or subscripting a list.
- """
- context = contextmod.InferenceContext()
- context.callcontext = contextmod.CallContext(args=[node])
-
- try:
- for inferred in node.igetattr("__index__", context=context):
- if not isinstance(inferred, bases.BoundMethod):
- continue
-
- for result in inferred.infer_call_result(node, context=context):
- if isinstance(result, nodes.Const) and isinstance(result.value, int):
- return result
- except exceptions.InferenceError:
- pass
- return None
-
-
-def object_len(node, context=None):
- """Infer length of given node object
-
- :param Union[nodes.ClassDef, nodes.Instance] node:
- :param node: Node to infer length of
-
- :raises AstroidTypeError: If an invalid node is returned
- from __len__ method or no __len__ method exists
- :raises InferenceError: If the given node cannot be inferred
- or if multiple nodes are inferred
- :rtype int: Integer length of node
- """
- # pylint: disable=import-outside-toplevel; circular import
- from astroid.objects import FrozenSet
-
- inferred_node = safe_infer(node, context=context)
- if inferred_node is None or inferred_node is util.Uninferable:
- raise exceptions.InferenceError(node=node)
- if isinstance(inferred_node, nodes.Const) and isinstance(
- inferred_node.value, (bytes, str)
- ):
- return len(inferred_node.value)
- if isinstance(inferred_node, (nodes.List, nodes.Set, nodes.Tuple, FrozenSet)):
- return len(inferred_node.elts)
- if isinstance(inferred_node, nodes.Dict):
- return len(inferred_node.items)
- try:
- node_type = object_type(inferred_node, context=context)
- len_call = next(node_type.igetattr("__len__", context=context))
- except exceptions.AttributeInferenceError:
- raise exceptions.AstroidTypeError(
- "object of type '{}' has no len()".format(len_call.pytype())
- )
-
- result_of_len = next(len_call.infer_call_result(node, context))
- if (
- isinstance(result_of_len, nodes.Const)
- and result_of_len.pytype() == "builtins.int"
- ):
- return result_of_len.value
- raise exceptions.AstroidTypeError(
- "'{}' object cannot be interpreted as an integer".format(result_of_len)
- )
diff --git a/src/main/python/venv/Lib/site-packages/astroid/inference.py b/src/main/python/venv/Lib/site-packages/astroid/inference.py
deleted file mode 100644
index 77c6b1d..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/inference.py
+++ /dev/null
@@ -1,943 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2006-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2012 FELD Boris
-# Copyright (c) 2013-2014 Google, Inc.
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Dmitry Pribysh
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2017 Michał Masłowski
-# Copyright (c) 2017 Calen Pennington
-# Copyright (c) 2017 Łukasz Rogalski
-# Copyright (c) 2018 Bryce Guinta
-# Copyright (c) 2018 Nick Drozd
-# Copyright (c) 2018 Ashley Whetter
-# Copyright (c) 2018 HoverHell
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""this module contains a set of functions to handle inference on astroid trees
-"""
-
-import functools
-import itertools
-import operator
-
-from astroid import bases
-from astroid import context as contextmod
-from astroid import exceptions
-from astroid import decorators
-from astroid import helpers
-from astroid import manager
-from astroid import nodes
-from astroid.interpreter import dunder_lookup
-from astroid import protocols
-from astroid import util
-
-
-MANAGER = manager.AstroidManager()
-
-
-# .infer method ###############################################################
-
-
-def infer_end(self, context=None):
- """inference's end for node such as Module, ClassDef, FunctionDef,
- Const...
-
- """
- yield self
-
-
-nodes.Module._infer = infer_end
-nodes.ClassDef._infer = infer_end
-nodes.FunctionDef._infer = infer_end
-nodes.Lambda._infer = infer_end
-nodes.Const._infer = infer_end
-nodes.Slice._infer = infer_end
-
-
-def _infer_sequence_helper(node, context=None):
- """Infer all values based on _BaseContainer.elts"""
- values = []
-
- for elt in node.elts:
- if isinstance(elt, nodes.Starred):
- starred = helpers.safe_infer(elt.value, context)
- if not starred:
- raise exceptions.InferenceError(node=node, context=context)
- if not hasattr(starred, "elts"):
- raise exceptions.InferenceError(node=node, context=context)
- values.extend(_infer_sequence_helper(starred))
- elif isinstance(elt, nodes.NamedExpr):
- value = helpers.safe_infer(elt.value, context)
- if not value:
- raise exceptions.InferenceError(node=node, context=context)
- values.append(value)
- else:
- values.append(elt)
- return values
-
-
-@decorators.raise_if_nothing_inferred
-def infer_sequence(self, context=None):
- has_starred_named_expr = any(
- isinstance(e, (nodes.Starred, nodes.NamedExpr)) for e in self.elts
- )
- if has_starred_named_expr:
- values = _infer_sequence_helper(self, context)
- new_seq = type(self)(
- lineno=self.lineno, col_offset=self.col_offset, parent=self.parent
- )
- new_seq.postinit(values)
-
- yield new_seq
- else:
- yield self
-
-
-nodes.List._infer = infer_sequence
-nodes.Tuple._infer = infer_sequence
-nodes.Set._infer = infer_sequence
-
-
-def infer_map(self, context=None):
- if not any(isinstance(k, nodes.DictUnpack) for k, _ in self.items):
- yield self
- else:
- items = _infer_map(self, context)
- new_seq = type(self)(self.lineno, self.col_offset, self.parent)
- new_seq.postinit(list(items.items()))
- yield new_seq
-
-
-def _update_with_replacement(lhs_dict, rhs_dict):
- """Delete nodes that equate to duplicate keys
-
- Since an astroid node doesn't 'equal' another node with the same value,
- this function uses the as_string method to make sure duplicate keys
- don't get through
-
- Note that both the key and the value are astroid nodes
-
- Fixes issue with DictUnpack causing duplicte keys
- in inferred Dict items
-
- :param dict(nodes.NodeNG, nodes.NodeNG) lhs_dict: Dictionary to 'merge' nodes into
- :param dict(nodes.NodeNG, nodes.NodeNG) rhs_dict: Dictionary with nodes to pull from
- :return dict(nodes.NodeNG, nodes.NodeNG): merged dictionary of nodes
- """
- combined_dict = itertools.chain(lhs_dict.items(), rhs_dict.items())
- # Overwrite keys which have the same string values
- string_map = {key.as_string(): (key, value) for key, value in combined_dict}
- # Return to dictionary
- return dict(string_map.values())
-
-
-def _infer_map(node, context):
- """Infer all values based on Dict.items"""
- values = {}
- for name, value in node.items:
- if isinstance(name, nodes.DictUnpack):
- double_starred = helpers.safe_infer(value, context)
- if not double_starred:
- raise exceptions.InferenceError
- if not isinstance(double_starred, nodes.Dict):
- raise exceptions.InferenceError(node=node, context=context)
- unpack_items = _infer_map(double_starred, context)
- values = _update_with_replacement(values, unpack_items)
- else:
- key = helpers.safe_infer(name, context=context)
- value = helpers.safe_infer(value, context=context)
- if any(not elem for elem in (key, value)):
- raise exceptions.InferenceError(node=node, context=context)
- values = _update_with_replacement(values, {key: value})
- return values
-
-
-nodes.Dict._infer = infer_map
-
-
-def _higher_function_scope(node):
- """ Search for the first function which encloses the given
- scope. This can be used for looking up in that function's
- scope, in case looking up in a lower scope for a particular
- name fails.
-
- :param node: A scope node.
- :returns:
- ``None``, if no parent function scope was found,
- otherwise an instance of :class:`astroid.scoped_nodes.Function`,
- which encloses the given node.
- """
- current = node
- while current.parent and not isinstance(current.parent, nodes.FunctionDef):
- current = current.parent
- if current and current.parent:
- return current.parent
- return None
-
-
-def infer_name(self, context=None):
- """infer a Name: use name lookup rules"""
- frame, stmts = self.lookup(self.name)
- if not stmts:
- # Try to see if the name is enclosed in a nested function
- # and use the higher (first function) scope for searching.
- parent_function = _higher_function_scope(self.scope())
- if parent_function:
- _, stmts = parent_function.lookup(self.name)
-
- if not stmts:
- raise exceptions.NameInferenceError(
- name=self.name, scope=self.scope(), context=context
- )
- context = contextmod.copy_context(context)
- context.lookupname = self.name
- return bases._infer_stmts(stmts, context, frame)
-
-
-# pylint: disable=no-value-for-parameter
-nodes.Name._infer = decorators.raise_if_nothing_inferred(
- decorators.path_wrapper(infer_name)
-)
-nodes.AssignName.infer_lhs = infer_name # won't work with a path wrapper
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_call(self, context=None):
- """infer a Call node by trying to guess what the function returns"""
- callcontext = contextmod.copy_context(context)
- callcontext.callcontext = contextmod.CallContext(
- args=self.args, keywords=self.keywords
- )
- callcontext.boundnode = None
- if context is not None:
- callcontext.extra_context = _populate_context_lookup(self, context.clone())
-
- for callee in self.func.infer(context):
- if callee is util.Uninferable:
- yield callee
- continue
- try:
- if hasattr(callee, "infer_call_result"):
- yield from callee.infer_call_result(caller=self, context=callcontext)
- except exceptions.InferenceError:
- continue
- return dict(node=self, context=context)
-
-
-nodes.Call._infer = infer_call
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_import(self, context=None, asname=True):
- """infer an Import node: return the imported module/object"""
- name = context.lookupname
- if name is None:
- raise exceptions.InferenceError(node=self, context=context)
-
- try:
- if asname:
- yield self.do_import_module(self.real_name(name))
- else:
- yield self.do_import_module(name)
- except exceptions.AstroidBuildingError as exc:
- raise exceptions.InferenceError(node=self, context=context) from exc
-
-
-nodes.Import._infer = infer_import
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_import_from(self, context=None, asname=True):
- """infer a ImportFrom node: return the imported module/object"""
- name = context.lookupname
- if name is None:
- raise exceptions.InferenceError(node=self, context=context)
- if asname:
- name = self.real_name(name)
-
- try:
- module = self.do_import_module()
- except exceptions.AstroidBuildingError as exc:
- raise exceptions.InferenceError(node=self, context=context) from exc
-
- try:
- context = contextmod.copy_context(context)
- context.lookupname = name
- stmts = module.getattr(name, ignore_locals=module is self.root())
- return bases._infer_stmts(stmts, context)
- except exceptions.AttributeInferenceError as error:
- raise exceptions.InferenceError(
- error.message, target=self, attribute=name, context=context
- ) from error
-
-
-nodes.ImportFrom._infer = infer_import_from
-
-
-def infer_attribute(self, context=None):
- """infer an Attribute node by using getattr on the associated object"""
- for owner in self.expr.infer(context):
- if owner is util.Uninferable:
- yield owner
- continue
-
- if context and context.boundnode:
- # This handles the situation where the attribute is accessed through a subclass
- # of a base class and the attribute is defined at the base class's level,
- # by taking in consideration a redefinition in the subclass.
- if isinstance(owner, bases.Instance) and isinstance(
- context.boundnode, bases.Instance
- ):
- try:
- if helpers.is_subtype(
- helpers.object_type(context.boundnode),
- helpers.object_type(owner),
- ):
- owner = context.boundnode
- except exceptions._NonDeducibleTypeHierarchy:
- # Can't determine anything useful.
- pass
-
- try:
- context.boundnode = owner
- yield from owner.igetattr(self.attrname, context)
- context.boundnode = None
- except (exceptions.AttributeInferenceError, exceptions.InferenceError):
- context.boundnode = None
- except AttributeError:
- # XXX method / function
- context.boundnode = None
- return dict(node=self, context=context)
-
-
-nodes.Attribute._infer = decorators.raise_if_nothing_inferred(
- decorators.path_wrapper(infer_attribute)
-)
-# won't work with a path wrapper
-nodes.AssignAttr.infer_lhs = decorators.raise_if_nothing_inferred(infer_attribute)
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_global(self, context=None):
- if context.lookupname is None:
- raise exceptions.InferenceError(node=self, context=context)
- try:
- return bases._infer_stmts(self.root().getattr(context.lookupname), context)
- except exceptions.AttributeInferenceError as error:
- raise exceptions.InferenceError(
- error.message, target=self, attribute=context.lookupname, context=context
- ) from error
-
-
-nodes.Global._infer = infer_global
-
-
-_SUBSCRIPT_SENTINEL = object()
-
-
-@decorators.raise_if_nothing_inferred
-def infer_subscript(self, context=None):
- """Inference for subscripts
-
- We're understanding if the index is a Const
- or a slice, passing the result of inference
- to the value's `getitem` method, which should
- handle each supported index type accordingly.
- """
-
- found_one = False
- for value in self.value.infer(context):
- if value is util.Uninferable:
- yield util.Uninferable
- return None
- for index in self.slice.infer(context):
- if index is util.Uninferable:
- yield util.Uninferable
- return None
-
- # Try to deduce the index value.
- index_value = _SUBSCRIPT_SENTINEL
- if value.__class__ == bases.Instance:
- index_value = index
- else:
- if index.__class__ == bases.Instance:
- instance_as_index = helpers.class_instance_as_index(index)
- if instance_as_index:
- index_value = instance_as_index
- else:
- index_value = index
- if index_value is _SUBSCRIPT_SENTINEL:
- raise exceptions.InferenceError(node=self, context=context)
-
- try:
- assigned = value.getitem(index_value, context)
- except (
- exceptions.AstroidTypeError,
- exceptions.AstroidIndexError,
- exceptions.AttributeInferenceError,
- AttributeError,
- ) as exc:
- raise exceptions.InferenceError(node=self, context=context) from exc
-
- # Prevent inferring if the inferred subscript
- # is the same as the original subscripted object.
- if self is assigned or assigned is util.Uninferable:
- yield util.Uninferable
- return None
- yield from assigned.infer(context)
- found_one = True
-
- if found_one:
- return dict(node=self, context=context)
- return None
-
-
-nodes.Subscript._infer = decorators.path_wrapper(infer_subscript)
-nodes.Subscript.infer_lhs = infer_subscript
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def _infer_boolop(self, context=None):
- """Infer a boolean operation (and / or / not).
-
- The function will calculate the boolean operation
- for all pairs generated through inference for each component
- node.
- """
- values = self.values
- if self.op == "or":
- predicate = operator.truth
- else:
- predicate = operator.not_
-
- try:
- values = [value.infer(context=context) for value in values]
- except exceptions.InferenceError:
- yield util.Uninferable
- return None
-
- for pair in itertools.product(*values):
- if any(item is util.Uninferable for item in pair):
- # Can't infer the final result, just yield Uninferable.
- yield util.Uninferable
- continue
-
- bool_values = [item.bool_value() for item in pair]
- if any(item is util.Uninferable for item in bool_values):
- # Can't infer the final result, just yield Uninferable.
- yield util.Uninferable
- continue
-
- # Since the boolean operations are short circuited operations,
- # this code yields the first value for which the predicate is True
- # and if no value respected the predicate, then the last value will
- # be returned (or Uninferable if there was no last value).
- # This is conforming to the semantics of `and` and `or`:
- # 1 and 0 -> 1
- # 0 and 1 -> 0
- # 1 or 0 -> 1
- # 0 or 1 -> 1
- value = util.Uninferable
- for value, bool_value in zip(pair, bool_values):
- if predicate(bool_value):
- yield value
- break
- else:
- yield value
-
- return dict(node=self, context=context)
-
-
-nodes.BoolOp._infer = _infer_boolop
-
-
-# UnaryOp, BinOp and AugAssign inferences
-
-
-def _filter_operation_errors(self, infer_callable, context, error):
- for result in infer_callable(self, context):
- if isinstance(result, error):
- # For the sake of .infer(), we don't care about operation
- # errors, which is the job of pylint. So return something
- # which shows that we can't infer the result.
- yield util.Uninferable
- else:
- yield result
-
-
-def _infer_unaryop(self, context=None):
- """Infer what an UnaryOp should return when evaluated."""
- for operand in self.operand.infer(context):
- try:
- yield operand.infer_unary_op(self.op)
- except TypeError as exc:
- # The operand doesn't support this operation.
- yield util.BadUnaryOperationMessage(operand, self.op, exc)
- except AttributeError as exc:
- meth = protocols.UNARY_OP_METHOD[self.op]
- if meth is None:
- # `not node`. Determine node's boolean
- # value and negate its result, unless it is
- # Uninferable, which will be returned as is.
- bool_value = operand.bool_value()
- if bool_value is not util.Uninferable:
- yield nodes.const_factory(not bool_value)
- else:
- yield util.Uninferable
- else:
- if not isinstance(operand, (bases.Instance, nodes.ClassDef)):
- # The operation was used on something which
- # doesn't support it.
- yield util.BadUnaryOperationMessage(operand, self.op, exc)
- continue
-
- try:
- try:
- methods = dunder_lookup.lookup(operand, meth)
- except exceptions.AttributeInferenceError:
- yield util.BadUnaryOperationMessage(operand, self.op, exc)
- continue
-
- meth = methods[0]
- inferred = next(meth.infer(context=context))
- if inferred is util.Uninferable or not inferred.callable():
- continue
-
- context = contextmod.copy_context(context)
- context.callcontext = contextmod.CallContext(args=[operand])
- call_results = inferred.infer_call_result(self, context=context)
- result = next(call_results, None)
- if result is None:
- # Failed to infer, return the same type.
- yield operand
- else:
- yield result
- except exceptions.AttributeInferenceError as exc:
- # The unary operation special method was not found.
- yield util.BadUnaryOperationMessage(operand, self.op, exc)
- except exceptions.InferenceError:
- yield util.Uninferable
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_unaryop(self, context=None):
- """Infer what an UnaryOp should return when evaluated."""
- yield from _filter_operation_errors(
- self, _infer_unaryop, context, util.BadUnaryOperationMessage
- )
- return dict(node=self, context=context)
-
-
-nodes.UnaryOp._infer_unaryop = _infer_unaryop
-nodes.UnaryOp._infer = infer_unaryop
-
-
-def _is_not_implemented(const):
- """Check if the given const node is NotImplemented."""
- return isinstance(const, nodes.Const) and const.value is NotImplemented
-
-
-def _invoke_binop_inference(instance, opnode, op, other, context, method_name):
- """Invoke binary operation inference on the given instance."""
- methods = dunder_lookup.lookup(instance, method_name)
- context = contextmod.bind_context_to_node(context, instance)
- method = methods[0]
- inferred = next(method.infer(context=context))
- if inferred is util.Uninferable:
- raise exceptions.InferenceError
- return instance.infer_binary_op(opnode, op, other, context, inferred)
-
-
-def _aug_op(instance, opnode, op, other, context, reverse=False):
- """Get an inference callable for an augmented binary operation."""
- method_name = protocols.AUGMENTED_OP_METHOD[op]
- return functools.partial(
- _invoke_binop_inference,
- instance=instance,
- op=op,
- opnode=opnode,
- other=other,
- context=context,
- method_name=method_name,
- )
-
-
-def _bin_op(instance, opnode, op, other, context, reverse=False):
- """Get an inference callable for a normal binary operation.
-
- If *reverse* is True, then the reflected method will be used instead.
- """
- if reverse:
- method_name = protocols.REFLECTED_BIN_OP_METHOD[op]
- else:
- method_name = protocols.BIN_OP_METHOD[op]
- return functools.partial(
- _invoke_binop_inference,
- instance=instance,
- op=op,
- opnode=opnode,
- other=other,
- context=context,
- method_name=method_name,
- )
-
-
-def _get_binop_contexts(context, left, right):
- """Get contexts for binary operations.
-
- This will return two inference contexts, the first one
- for x.__op__(y), the other one for y.__rop__(x), where
- only the arguments are inversed.
- """
- # The order is important, since the first one should be
- # left.__op__(right).
- for arg in (right, left):
- new_context = context.clone()
- new_context.callcontext = contextmod.CallContext(args=[arg])
- new_context.boundnode = None
- yield new_context
-
-
-def _same_type(type1, type2):
- """Check if type1 is the same as type2."""
- return type1.qname() == type2.qname()
-
-
-def _get_binop_flow(
- left, left_type, binary_opnode, right, right_type, context, reverse_context
-):
- """Get the flow for binary operations.
-
- The rules are a bit messy:
-
- * if left and right have the same type, then only one
- method will be called, left.__op__(right)
- * if left and right are unrelated typewise, then first
- left.__op__(right) is tried and if this does not exist
- or returns NotImplemented, then right.__rop__(left) is tried.
- * if left is a subtype of right, then only left.__op__(right)
- is tried.
- * if left is a supertype of right, then right.__rop__(left)
- is first tried and then left.__op__(right)
- """
- op = binary_opnode.op
- if _same_type(left_type, right_type):
- methods = [_bin_op(left, binary_opnode, op, right, context)]
- elif helpers.is_subtype(left_type, right_type):
- methods = [_bin_op(left, binary_opnode, op, right, context)]
- elif helpers.is_supertype(left_type, right_type):
- methods = [
- _bin_op(right, binary_opnode, op, left, reverse_context, reverse=True),
- _bin_op(left, binary_opnode, op, right, context),
- ]
- else:
- methods = [
- _bin_op(left, binary_opnode, op, right, context),
- _bin_op(right, binary_opnode, op, left, reverse_context, reverse=True),
- ]
- return methods
-
-
-def _get_aug_flow(
- left, left_type, aug_opnode, right, right_type, context, reverse_context
-):
- """Get the flow for augmented binary operations.
-
- The rules are a bit messy:
-
- * if left and right have the same type, then left.__augop__(right)
- is first tried and then left.__op__(right).
- * if left and right are unrelated typewise, then
- left.__augop__(right) is tried, then left.__op__(right)
- is tried and then right.__rop__(left) is tried.
- * if left is a subtype of right, then left.__augop__(right)
- is tried and then left.__op__(right).
- * if left is a supertype of right, then left.__augop__(right)
- is tried, then right.__rop__(left) and then
- left.__op__(right)
- """
- bin_op = aug_opnode.op.strip("=")
- aug_op = aug_opnode.op
- if _same_type(left_type, right_type):
- methods = [
- _aug_op(left, aug_opnode, aug_op, right, context),
- _bin_op(left, aug_opnode, bin_op, right, context),
- ]
- elif helpers.is_subtype(left_type, right_type):
- methods = [
- _aug_op(left, aug_opnode, aug_op, right, context),
- _bin_op(left, aug_opnode, bin_op, right, context),
- ]
- elif helpers.is_supertype(left_type, right_type):
- methods = [
- _aug_op(left, aug_opnode, aug_op, right, context),
- _bin_op(right, aug_opnode, bin_op, left, reverse_context, reverse=True),
- _bin_op(left, aug_opnode, bin_op, right, context),
- ]
- else:
- methods = [
- _aug_op(left, aug_opnode, aug_op, right, context),
- _bin_op(left, aug_opnode, bin_op, right, context),
- _bin_op(right, aug_opnode, bin_op, left, reverse_context, reverse=True),
- ]
- return methods
-
-
-def _infer_binary_operation(left, right, binary_opnode, context, flow_factory):
- """Infer a binary operation between a left operand and a right operand
-
- This is used by both normal binary operations and augmented binary
- operations, the only difference is the flow factory used.
- """
-
- context, reverse_context = _get_binop_contexts(context, left, right)
- left_type = helpers.object_type(left)
- right_type = helpers.object_type(right)
- methods = flow_factory(
- left, left_type, binary_opnode, right, right_type, context, reverse_context
- )
- for method in methods:
- try:
- results = list(method())
- except AttributeError:
- continue
- except exceptions.AttributeInferenceError:
- continue
- except exceptions.InferenceError:
- yield util.Uninferable
- return
- else:
- if any(result is util.Uninferable for result in results):
- yield util.Uninferable
- return
-
- if all(map(_is_not_implemented, results)):
- continue
- not_implemented = sum(
- 1 for result in results if _is_not_implemented(result)
- )
- if not_implemented and not_implemented != len(results):
- # Can't infer yet what this is.
- yield util.Uninferable
- return
-
- yield from results
- return
- # The operation doesn't seem to be supported so let the caller know about it
- yield util.BadBinaryOperationMessage(left_type, binary_opnode.op, right_type)
-
-
-def _infer_binop(self, context):
- """Binary operation inference logic."""
- left = self.left
- right = self.right
-
- # we use two separate contexts for evaluating lhs and rhs because
- # 1. evaluating lhs may leave some undesired entries in context.path
- # which may not let us infer right value of rhs
- context = context or contextmod.InferenceContext()
- lhs_context = contextmod.copy_context(context)
- rhs_context = contextmod.copy_context(context)
- lhs_iter = left.infer(context=lhs_context)
- rhs_iter = right.infer(context=rhs_context)
- for lhs, rhs in itertools.product(lhs_iter, rhs_iter):
- if any(value is util.Uninferable for value in (rhs, lhs)):
- # Don't know how to process this.
- yield util.Uninferable
- return
-
- try:
- yield from _infer_binary_operation(lhs, rhs, self, context, _get_binop_flow)
- except exceptions._NonDeducibleTypeHierarchy:
- yield util.Uninferable
-
-
-@decorators.yes_if_nothing_inferred
-@decorators.path_wrapper
-def infer_binop(self, context=None):
- return _filter_operation_errors(
- self, _infer_binop, context, util.BadBinaryOperationMessage
- )
-
-
-nodes.BinOp._infer_binop = _infer_binop
-nodes.BinOp._infer = infer_binop
-
-
-def _infer_augassign(self, context=None):
- """Inference logic for augmented binary operations."""
- if context is None:
- context = contextmod.InferenceContext()
-
- rhs_context = context.clone()
-
- lhs_iter = self.target.infer_lhs(context=context)
- rhs_iter = self.value.infer(context=rhs_context)
- for lhs, rhs in itertools.product(lhs_iter, rhs_iter):
- if any(value is util.Uninferable for value in (rhs, lhs)):
- # Don't know how to process this.
- yield util.Uninferable
- return
-
- try:
- yield from _infer_binary_operation(
- left=lhs,
- right=rhs,
- binary_opnode=self,
- context=context,
- flow_factory=_get_aug_flow,
- )
- except exceptions._NonDeducibleTypeHierarchy:
- yield util.Uninferable
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_augassign(self, context=None):
- return _filter_operation_errors(
- self, _infer_augassign, context, util.BadBinaryOperationMessage
- )
-
-
-nodes.AugAssign._infer_augassign = _infer_augassign
-nodes.AugAssign._infer = infer_augassign
-
-# End of binary operation inference.
-
-
-@decorators.raise_if_nothing_inferred
-def infer_arguments(self, context=None):
- name = context.lookupname
- if name is None:
- raise exceptions.InferenceError(node=self, context=context)
- return protocols._arguments_infer_argname(self, name, context)
-
-
-nodes.Arguments._infer = infer_arguments
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_assign(self, context=None):
- """infer a AssignName/AssignAttr: need to inspect the RHS part of the
- assign node
- """
- stmt = self.statement()
- if isinstance(stmt, nodes.AugAssign):
- return stmt.infer(context)
-
- stmts = list(self.assigned_stmts(context=context))
- return bases._infer_stmts(stmts, context)
-
-
-nodes.AssignName._infer = infer_assign
-nodes.AssignAttr._infer = infer_assign
-
-
-@decorators.raise_if_nothing_inferred
-@decorators.path_wrapper
-def infer_empty_node(self, context=None):
- if not self.has_underlying_object():
- yield util.Uninferable
- else:
- try:
- yield from MANAGER.infer_ast_from_something(self.object, context=context)
- except exceptions.AstroidError:
- yield util.Uninferable
-
-
-nodes.EmptyNode._infer = infer_empty_node
-
-
-@decorators.raise_if_nothing_inferred
-def infer_index(self, context=None):
- return self.value.infer(context)
-
-
-nodes.Index._infer = infer_index
-
-# TODO: move directly into bases.Instance when the dependency hell
-# will be solved.
-def instance_getitem(self, index, context=None):
- # Rewrap index to Const for this case
- new_context = contextmod.bind_context_to_node(context, self)
- if not context:
- context = new_context
-
- # Create a new callcontext for providing index as an argument.
- new_context.callcontext = contextmod.CallContext(args=[index])
-
- method = next(self.igetattr("__getitem__", context=context), None)
- if not isinstance(method, bases.BoundMethod):
- raise exceptions.InferenceError(
- "Could not find __getitem__ for {node!r}.", node=self, context=context
- )
-
- return next(method.infer_call_result(self, new_context))
-
-
-bases.Instance.getitem = instance_getitem
-
-
-def _populate_context_lookup(call, context):
- # Allows context to be saved for later
- # for inference inside a function
- context_lookup = {}
- if context is None:
- return context_lookup
- for arg in call.args:
- if isinstance(arg, nodes.Starred):
- context_lookup[arg.value] = context
- else:
- context_lookup[arg] = context
- keywords = call.keywords if call.keywords is not None else []
- for keyword in keywords:
- context_lookup[keyword.value] = context
- return context_lookup
-
-
-@decorators.raise_if_nothing_inferred
-def infer_ifexp(self, context=None):
- """Support IfExp inference
-
- If we can't infer the truthiness of the condition, we default
- to inferring both branches. Otherwise, we infer either branch
- depending on the condition.
- """
- both_branches = False
- # We use two separate contexts for evaluating lhs and rhs because
- # evaluating lhs may leave some undesired entries in context.path
- # which may not let us infer right value of rhs.
-
- context = context or contextmod.InferenceContext()
- lhs_context = contextmod.copy_context(context)
- rhs_context = contextmod.copy_context(context)
- try:
- test = next(self.test.infer(context=context.clone()))
- except exceptions.InferenceError:
- both_branches = True
- else:
- if test is not util.Uninferable:
- if test.bool_value():
- yield from self.body.infer(context=lhs_context)
- else:
- yield from self.orelse.infer(context=rhs_context)
- else:
- both_branches = True
- if both_branches:
- yield from self.body.infer(context=lhs_context)
- yield from self.orelse.infer(context=rhs_context)
-
-
-nodes.IfExp._infer = infer_ifexp
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__init__.py b/src/main/python/venv/Lib/site-packages/astroid/interpreter/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/__init__.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 1bd9d33..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/dunder_lookup.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/dunder_lookup.cpython-37.pyc
deleted file mode 100644
index 4001903..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/dunder_lookup.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/objectmodel.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/objectmodel.cpython-37.pyc
deleted file mode 100644
index dc15f91..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/interpreter/__pycache__/objectmodel.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__init__.py b/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/__init__.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 6cdce33..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/spec.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/spec.cpython-37.pyc
deleted file mode 100644
index 1f091df..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/spec.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/util.cpython-37.pyc b/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/util.cpython-37.pyc
deleted file mode 100644
index 2a7fdbb..0000000
Binary files a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/__pycache__/util.cpython-37.pyc and /dev/null differ
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/spec.py b/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/spec.py
deleted file mode 100644
index 84e093b..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/spec.py
+++ /dev/null
@@ -1,344 +0,0 @@
-# Copyright (c) 2016-2018 Claudiu Popa
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2017 Chris Philip
-# Copyright (c) 2017 Hugo
-# Copyright (c) 2017 ioanatia
-# Copyright (c) 2017 Calen Pennington
-# Copyright (c) 2018 Nick Drozd
-
-import abc
-import collections
-import distutils
-import enum
-import imp
-import os
-import sys
-import zipimport
-
-try:
- import importlib.machinery
-
- _HAS_MACHINERY = True
-except ImportError:
- _HAS_MACHINERY = False
-
-try:
- from functools import lru_cache
-except ImportError:
- from backports.functools_lru_cache import lru_cache
-
-from . import util
-
-ModuleType = enum.Enum(
- "ModuleType",
- "C_BUILTIN C_EXTENSION PKG_DIRECTORY "
- "PY_CODERESOURCE PY_COMPILED PY_FROZEN PY_RESOURCE "
- "PY_SOURCE PY_ZIPMODULE PY_NAMESPACE",
-)
-_ImpTypes = {
- imp.C_BUILTIN: ModuleType.C_BUILTIN,
- imp.C_EXTENSION: ModuleType.C_EXTENSION,
- imp.PKG_DIRECTORY: ModuleType.PKG_DIRECTORY,
- imp.PY_COMPILED: ModuleType.PY_COMPILED,
- imp.PY_FROZEN: ModuleType.PY_FROZEN,
- imp.PY_SOURCE: ModuleType.PY_SOURCE,
-}
-if hasattr(imp, "PY_RESOURCE"):
- _ImpTypes[imp.PY_RESOURCE] = ModuleType.PY_RESOURCE
-if hasattr(imp, "PY_CODERESOURCE"):
- _ImpTypes[imp.PY_CODERESOURCE] = ModuleType.PY_CODERESOURCE
-
-
-def _imp_type_to_module_type(imp_type):
- return _ImpTypes[imp_type]
-
-
-_ModuleSpec = collections.namedtuple(
- "_ModuleSpec", "name type location " "origin submodule_search_locations"
-)
-
-
-class ModuleSpec(_ModuleSpec):
- """Defines a class similar to PEP 420's ModuleSpec
-
- A module spec defines a name of a module, its type, location
- and where submodules can be found, if the module is a package.
- """
-
- def __new__(
- cls,
- name,
- module_type,
- location=None,
- origin=None,
- submodule_search_locations=None,
- ):
- return _ModuleSpec.__new__(
- cls,
- name=name,
- type=module_type,
- location=location,
- origin=origin,
- submodule_search_locations=submodule_search_locations,
- )
-
-
-class Finder:
- """A finder is a class which knows how to find a particular module."""
-
- def __init__(self, path=None):
- self._path = path or sys.path
-
- @abc.abstractmethod
- def find_module(self, modname, module_parts, processed, submodule_path):
- """Find the given module
-
- Each finder is responsible for each protocol of finding, as long as
- they all return a ModuleSpec.
-
- :param str modname: The module which needs to be searched.
- :param list module_parts: It should be a list of strings,
- where each part contributes to the module's
- namespace.
- :param list processed: What parts from the module parts were processed
- so far.
- :param list submodule_path: A list of paths where the module
- can be looked into.
- :returns: A ModuleSpec, describing how and where the module was found,
- None, otherwise.
- """
-
- def contribute_to_path(self, spec, processed):
- """Get a list of extra paths where this finder can search."""
-
-
-class ImpFinder(Finder):
- """A finder based on the imp module."""
-
- def find_module(self, modname, module_parts, processed, submodule_path):
- if submodule_path is not None:
- submodule_path = list(submodule_path)
- try:
- stream, mp_filename, mp_desc = imp.find_module(modname, submodule_path)
- except ImportError:
- return None
-
- # Close resources.
- if stream:
- stream.close()
-
- return ModuleSpec(
- name=modname,
- location=mp_filename,
- module_type=_imp_type_to_module_type(mp_desc[2]),
- )
-
- def contribute_to_path(self, spec, processed):
- if spec.location is None:
- # Builtin.
- return None
-
- if _is_setuptools_namespace(spec.location):
- # extend_path is called, search sys.path for module/packages
- # of this name see pkgutil.extend_path documentation
- path = [
- os.path.join(p, *processed)
- for p in sys.path
- if os.path.isdir(os.path.join(p, *processed))
- ]
- # We already import distutils elsewhere in astroid,
- # so if it is the same module, we can use it directly.
- elif spec.name == "distutils" and spec.location in distutils.__path__:
- # distutils is patched inside virtualenvs to pick up submodules
- # from the original Python, not from the virtualenv itself.
- path = list(distutils.__path__)
- else:
- path = [spec.location]
- return path
-
-
-class ExplicitNamespacePackageFinder(ImpFinder):
- """A finder for the explicit namespace packages, generated through pkg_resources."""
-
- def find_module(self, modname, module_parts, processed, submodule_path):
- if processed:
- modname = ".".join(processed + [modname])
- if util.is_namespace(modname) and modname in sys.modules:
- submodule_path = sys.modules[modname].__path__
- return ModuleSpec(
- name=modname,
- location="",
- origin="namespace",
- module_type=ModuleType.PY_NAMESPACE,
- submodule_search_locations=submodule_path,
- )
- return None
-
- def contribute_to_path(self, spec, processed):
- return spec.submodule_search_locations
-
-
-class ZipFinder(Finder):
- """Finder that knows how to find a module inside zip files."""
-
- def __init__(self, path):
- super(ZipFinder, self).__init__(path)
- self._zipimporters = _precache_zipimporters(path)
-
- def find_module(self, modname, module_parts, processed, submodule_path):
- try:
- file_type, filename, path = _search_zip(module_parts, self._zipimporters)
- except ImportError:
- return None
-
- return ModuleSpec(
- name=modname,
- location=filename,
- origin="egg",
- module_type=file_type,
- submodule_search_locations=path,
- )
-
-
-class PathSpecFinder(Finder):
- """Finder based on importlib.machinery.PathFinder."""
-
- def find_module(self, modname, module_parts, processed, submodule_path):
- spec = importlib.machinery.PathFinder.find_spec(modname, path=submodule_path)
- if spec:
- # origin can be either a string on older Python versions
- # or None in case it is a namespace package:
- # https://github.com/python/cpython/pull/5481
- is_namespace_pkg = spec.origin in ("namespace", None)
- location = spec.origin if not is_namespace_pkg else None
- module_type = ModuleType.PY_NAMESPACE if is_namespace_pkg else None
- spec = ModuleSpec(
- name=spec.name,
- location=location,
- origin=spec.origin,
- module_type=module_type,
- submodule_search_locations=list(spec.submodule_search_locations or []),
- )
- return spec
-
- def contribute_to_path(self, spec, processed):
- if spec.type == ModuleType.PY_NAMESPACE:
- return spec.submodule_search_locations
- return None
-
-
-_SPEC_FINDERS = (ImpFinder, ZipFinder)
-if _HAS_MACHINERY:
- _SPEC_FINDERS += (PathSpecFinder,)
-_SPEC_FINDERS += (ExplicitNamespacePackageFinder,)
-
-
-def _is_setuptools_namespace(location):
- try:
- with open(os.path.join(location, "__init__.py"), "rb") as stream:
- data = stream.read(4096)
- except IOError:
- pass
- else:
- extend_path = b"pkgutil" in data and b"extend_path" in data
- declare_namespace = (
- b"pkg_resources" in data and b"declare_namespace(__name__)" in data
- )
- return extend_path or declare_namespace
-
-
-@lru_cache()
-def _cached_set_diff(left, right):
- result = set(left)
- result.difference_update(right)
- return result
-
-
-def _precache_zipimporters(path=None):
- pic = sys.path_importer_cache
-
- # When measured, despite having the same complexity (O(n)),
- # converting to tuples and then caching the conversion to sets
- # and the set difference is faster than converting to sets
- # and then only caching the set difference.
-
- req_paths = tuple(path or sys.path)
- cached_paths = tuple(pic)
- new_paths = _cached_set_diff(req_paths, cached_paths)
- for entry_path in new_paths:
- try:
- pic[entry_path] = zipimport.zipimporter(entry_path)
- except zipimport.ZipImportError:
- continue
- return pic
-
-
-def _search_zip(modpath, pic):
- for filepath, importer in list(pic.items()):
- if importer is not None:
- found = importer.find_module(modpath[0])
- if found:
- if not importer.find_module(os.path.sep.join(modpath)):
- raise ImportError(
- "No module named %s in %s/%s"
- % (".".join(modpath[1:]), filepath, modpath)
- )
- # import code; code.interact(local=locals())
- return (
- ModuleType.PY_ZIPMODULE,
- os.path.abspath(filepath) + os.path.sep + os.path.sep.join(modpath),
- filepath,
- )
- raise ImportError("No module named %s" % ".".join(modpath))
-
-
-def _find_spec_with_path(search_path, modname, module_parts, processed, submodule_path):
- finders = [finder(search_path) for finder in _SPEC_FINDERS]
- for finder in finders:
- spec = finder.find_module(modname, module_parts, processed, submodule_path)
- if spec is None:
- continue
- return finder, spec
-
- raise ImportError("No module named %s" % ".".join(module_parts))
-
-
-def find_spec(modpath, path=None):
- """Find a spec for the given module.
-
- :type modpath: list or tuple
- :param modpath:
- split module's name (i.e name of a module or package split
- on '.'), with leading empty strings for explicit relative import
-
- :type path: list or None
- :param path:
- optional list of path where the module or package should be
- searched (use sys.path if nothing or None is given)
-
- :rtype: ModuleSpec
- :return: A module spec, which describes how the module was
- found and where.
- """
- _path = path or sys.path
-
- # Need a copy for not mutating the argument.
- modpath = modpath[:]
-
- submodule_path = None
- module_parts = modpath[:]
- processed = []
-
- while modpath:
- modname = modpath.pop(0)
- finder, spec = _find_spec_with_path(
- _path, modname, module_parts, processed, submodule_path or path
- )
- processed.append(modname)
- if modpath:
- submodule_path = finder.contribute_to_path(spec, processed)
-
- if spec.type == ModuleType.PKG_DIRECTORY:
- spec = spec._replace(submodule_search_locations=submodule_path)
-
- return spec
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/util.py b/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/util.py
deleted file mode 100644
index a917bd3..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/interpreter/_import/util.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2016, 2018 Claudiu Popa
-
-try:
- import pkg_resources
-except ImportError:
- pkg_resources = None
-
-
-def is_namespace(modname):
- return pkg_resources is not None and modname in pkg_resources._namespace_packages
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/dunder_lookup.py b/src/main/python/venv/Lib/site-packages/astroid/interpreter/dunder_lookup.py
deleted file mode 100644
index 0ae9bc9..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/interpreter/dunder_lookup.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (c) 2016-2018 Claudiu Popa
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Contains logic for retrieving special methods.
-
-This implementation does not rely on the dot attribute access
-logic, found in ``.getattr()``. The difference between these two
-is that the dunder methods are looked with the type slots
-(you can find more about these here
-http://lucumr.pocoo.org/2014/8/16/the-python-i-would-like-to-see/)
-As such, the lookup for the special methods is actually simpler than
-the dot attribute access.
-"""
-import itertools
-
-import astroid
-from astroid import exceptions
-
-
-def _lookup_in_mro(node, name):
- attrs = node.locals.get(name, [])
-
- nodes = itertools.chain.from_iterable(
- ancestor.locals.get(name, []) for ancestor in node.ancestors(recurs=True)
- )
- values = list(itertools.chain(attrs, nodes))
- if not values:
- raise exceptions.AttributeInferenceError(attribute=name, target=node)
-
- return values
-
-
-def lookup(node, name):
- """Lookup the given special method name in the given *node*
-
- If the special method was found, then a list of attributes
- will be returned. Otherwise, `astroid.AttributeInferenceError`
- is going to be raised.
- """
- if isinstance(
- node, (astroid.List, astroid.Tuple, astroid.Const, astroid.Dict, astroid.Set)
- ):
- return _builtin_lookup(node, name)
- if isinstance(node, astroid.Instance):
- return _lookup_in_mro(node, name)
- if isinstance(node, astroid.ClassDef):
- return _class_lookup(node, name)
-
- raise exceptions.AttributeInferenceError(attribute=name, target=node)
-
-
-def _class_lookup(node, name):
- metaclass = node.metaclass()
- if metaclass is None:
- raise exceptions.AttributeInferenceError(attribute=name, target=node)
-
- return _lookup_in_mro(metaclass, name)
-
-
-def _builtin_lookup(node, name):
- values = node.locals.get(name, [])
- if not values:
- raise exceptions.AttributeInferenceError(attribute=name, target=node)
-
- return values
diff --git a/src/main/python/venv/Lib/site-packages/astroid/interpreter/objectmodel.py b/src/main/python/venv/Lib/site-packages/astroid/interpreter/objectmodel.py
deleted file mode 100644
index 5e488d9..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/interpreter/objectmodel.py
+++ /dev/null
@@ -1,738 +0,0 @@
-# Copyright (c) 2016-2018 Claudiu Popa
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2017-2018 Bryce Guinta
-# Copyright (c) 2017 Ceridwen
-# Copyright (c) 2017 Calen Pennington
-# Copyright (c) 2018 Nick Drozd
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-"""
-Data object model, as per https://docs.python.org/3/reference/datamodel.html.
-
-This module describes, at least partially, a data object model for some
-of astroid's nodes. The model contains special attributes that nodes such
-as functions, classes, modules etc have, such as __doc__, __class__,
-__module__ etc, being used when doing attribute lookups over nodes.
-
-For instance, inferring `obj.__class__` will first trigger an inference
-of the `obj` variable. If it was successfully inferred, then an attribute
-`__class__ will be looked for in the inferred object. This is the part
-where the data model occurs. The model is attached to those nodes
-and the lookup mechanism will try to see if attributes such as
-`__class__` are defined by the model or not. If they are defined,
-the model will be requested to return the corresponding value of that
-attribute. Thus the model can be viewed as a special part of the lookup
-mechanism.
-"""
-
-import itertools
-import pprint
-import os
-import types
-from functools import lru_cache
-
-import astroid
-from astroid import context as contextmod
-from astroid import exceptions
-from astroid import node_classes
-
-
-IMPL_PREFIX = "attr_"
-
-
-def _dunder_dict(instance, attributes):
- obj = node_classes.Dict(parent=instance)
-
- # Convert the keys to node strings
- keys = [
- node_classes.Const(value=value, parent=obj) for value in list(attributes.keys())
- ]
-
- # The original attribute has a list of elements for each key,
- # but that is not useful for retrieving the special attribute's value.
- # In this case, we're picking the last value from each list.
- values = [elem[-1] for elem in attributes.values()]
-
- obj.postinit(list(zip(keys, values)))
- return obj
-
-
-class ObjectModel:
- def __init__(self):
- self._instance = None
-
- def __repr__(self):
- result = []
- cname = type(self).__name__
- string = "%(cname)s(%(fields)s)"
- alignment = len(cname) + 1
- for field in sorted(self.attributes()):
- width = 80 - len(field) - alignment
- lines = pprint.pformat(field, indent=2, width=width).splitlines(True)
-
- inner = [lines[0]]
- for line in lines[1:]:
- inner.append(" " * alignment + line)
- result.append(field)
-
- return string % {
- "cname": cname,
- "fields": (",\n" + " " * alignment).join(result),
- }
-
- def __call__(self, instance):
- self._instance = instance
- return self
-
- def __get__(self, instance, cls=None):
- # ObjectModel needs to be a descriptor so that just doing
- # `special_attributes = SomeObjectModel` should be enough in the body of a node.
- # But at the same time, node.special_attributes should return an object
- # which can be used for manipulating the special attributes. That's the reason
- # we pass the instance through which it got accessed to ObjectModel.__call__,
- # returning itself afterwards, so we can still have access to the
- # underlying data model and to the instance for which it got accessed.
- return self(instance)
-
- def __contains__(self, name):
- return name in self.attributes()
-
- @lru_cache(maxsize=None)
- def attributes(self):
- """Get the attributes which are exported by this object model."""
- return [
- obj[len(IMPL_PREFIX) :] for obj in dir(self) if obj.startswith(IMPL_PREFIX)
- ]
-
- def lookup(self, name):
- """Look up the given *name* in the current model
-
- It should return an AST or an interpreter object,
- but if the name is not found, then an AttributeInferenceError will be raised.
- """
-
- if name in self.attributes():
- return getattr(self, IMPL_PREFIX + name)
- raise exceptions.AttributeInferenceError(target=self._instance, attribute=name)
-
-
-class ModuleModel(ObjectModel):
- def _builtins(self):
- builtins_ast_module = astroid.MANAGER.builtins_module
- return builtins_ast_module.special_attributes.lookup("__dict__")
-
- @property
- def attr_builtins(self):
- return self._builtins()
-
- @property
- def attr___path__(self):
- if not self._instance.package:
- raise exceptions.AttributeInferenceError(
- target=self._instance, attribute="__path__"
- )
-
- path_objs = [
- node_classes.Const(
- value=path
- if not path.endswith("__init__.py")
- else os.path.dirname(path),
- parent=self._instance,
- )
- for path in self._instance.path
- ]
-
- container = node_classes.List(parent=self._instance)
- container.postinit(path_objs)
-
- return container
-
- @property
- def attr___name__(self):
- return node_classes.Const(value=self._instance.name, parent=self._instance)
-
- @property
- def attr___doc__(self):
- return node_classes.Const(value=self._instance.doc, parent=self._instance)
-
- @property
- def attr___file__(self):
- return node_classes.Const(value=self._instance.file, parent=self._instance)
-
- @property
- def attr___dict__(self):
- return _dunder_dict(self._instance, self._instance.globals)
-
- @property
- def attr___package__(self):
- if not self._instance.package:
- value = ""
- else:
- value = self._instance.name
-
- return node_classes.Const(value=value, parent=self._instance)
-
- # These are related to the Python 3 implementation of the
- # import system,
- # https://docs.python.org/3/reference/import.html#import-related-module-attributes
-
- @property
- def attr___spec__(self):
- # No handling for now.
- return node_classes.Unknown()
-
- @property
- def attr___loader__(self):
- # No handling for now.
- return node_classes.Unknown()
-
- @property
- def attr___cached__(self):
- # No handling for now.
- return node_classes.Unknown()
-
-
-class FunctionModel(ObjectModel):
- @property
- def attr___name__(self):
- return node_classes.Const(value=self._instance.name, parent=self._instance)
-
- @property
- def attr___doc__(self):
- return node_classes.Const(value=self._instance.doc, parent=self._instance)
-
- @property
- def attr___qualname__(self):
- return node_classes.Const(value=self._instance.qname(), parent=self._instance)
-
- @property
- def attr___defaults__(self):
- func = self._instance
- if not func.args.defaults:
- return node_classes.Const(value=None, parent=func)
-
- defaults_obj = node_classes.Tuple(parent=func)
- defaults_obj.postinit(func.args.defaults)
- return defaults_obj
-
- @property
- def attr___annotations__(self):
- obj = node_classes.Dict(parent=self._instance)
-
- if not self._instance.returns:
- returns = None
- else:
- returns = self._instance.returns
-
- args = self._instance.args
- pair_annotations = itertools.chain(
- zip(args.args or [], args.annotations),
- zip(args.kwonlyargs, args.kwonlyargs_annotations),
- zip(args.posonlyargs or [], args.posonlyargs_annotations),
- )
-
- annotations = {
- arg.name: annotation for (arg, annotation) in pair_annotations if annotation
- }
- if args.varargannotation:
- annotations[args.vararg] = args.varargannotation
- if args.kwargannotation:
- annotations[args.kwarg] = args.kwargannotation
- if returns:
- annotations["return"] = returns
-
- items = [
- (node_classes.Const(key, parent=obj), value)
- for (key, value) in annotations.items()
- ]
-
- obj.postinit(items)
- return obj
-
- @property
- def attr___dict__(self):
- return node_classes.Dict(parent=self._instance)
-
- attr___globals__ = attr___dict__
-
- @property
- def attr___kwdefaults__(self):
- def _default_args(args, parent):
- for arg in args.kwonlyargs:
- try:
- default = args.default_value(arg.name)
- except exceptions.NoDefault:
- continue
-
- name = node_classes.Const(arg.name, parent=parent)
- yield name, default
-
- args = self._instance.args
- obj = node_classes.Dict(parent=self._instance)
- defaults = dict(_default_args(args, obj))
-
- obj.postinit(list(defaults.items()))
- return obj
-
- @property
- def attr___module__(self):
- return node_classes.Const(self._instance.root().qname())
-
- @property
- def attr___get__(self):
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import bases
-
- func = self._instance
-
- class DescriptorBoundMethod(bases.BoundMethod):
- """Bound method which knows how to understand calling descriptor binding."""
-
- def implicit_parameters(self):
- # Different than BoundMethod since the signature
- # is different.
- return 0
-
- def infer_call_result(self, caller, context=None):
- if len(caller.args) > 2 or len(caller.args) < 1:
- raise exceptions.InferenceError(
- "Invalid arguments for descriptor binding",
- target=self,
- context=context,
- )
-
- context = contextmod.copy_context(context)
- cls = next(caller.args[0].infer(context=context))
-
- if cls is astroid.Uninferable:
- raise exceptions.InferenceError(
- "Invalid class inferred", target=self, context=context
- )
-
- # For some reason func is a Node that the below
- # code is not expecting
- if isinstance(func, bases.BoundMethod):
- yield func
- return
-
- # Rebuild the original value, but with the parent set as the
- # class where it will be bound.
- new_func = func.__class__(
- name=func.name,
- doc=func.doc,
- lineno=func.lineno,
- col_offset=func.col_offset,
- parent=cls,
- )
- # pylint: disable=no-member
- new_func.postinit(func.args, func.body, func.decorators, func.returns)
-
- # Build a proper bound method that points to our newly built function.
- proxy = bases.UnboundMethod(new_func)
- yield bases.BoundMethod(proxy=proxy, bound=cls)
-
- @property
- def args(self):
- """Overwrite the underlying args to match those of the underlying func
-
- Usually the underlying *func* is a function/method, as in:
-
- def test(self):
- pass
-
- This has only the *self* parameter but when we access test.__get__
- we get a new object which has two parameters, *self* and *type*.
- """
- nonlocal func
- positional_or_keyword_params = func.args.args.copy()
- positional_or_keyword_params.append(astroid.AssignName(name="type"))
-
- positional_only_params = func.args.posonlyargs.copy()
-
- arguments = astroid.Arguments(parent=func.args.parent)
- arguments.postinit(
- args=positional_or_keyword_params,
- posonlyargs=positional_only_params,
- defaults=[],
- kwonlyargs=[],
- kw_defaults=[],
- annotations=[],
- )
- return arguments
-
- return DescriptorBoundMethod(proxy=self._instance, bound=self._instance)
-
- # These are here just for completion.
- @property
- def attr___ne__(self):
- return node_classes.Unknown()
-
- attr___subclasshook__ = attr___ne__
- attr___str__ = attr___ne__
- attr___sizeof__ = attr___ne__
- attr___setattr___ = attr___ne__
- attr___repr__ = attr___ne__
- attr___reduce__ = attr___ne__
- attr___reduce_ex__ = attr___ne__
- attr___new__ = attr___ne__
- attr___lt__ = attr___ne__
- attr___eq__ = attr___ne__
- attr___gt__ = attr___ne__
- attr___format__ = attr___ne__
- attr___delattr___ = attr___ne__
- attr___getattribute__ = attr___ne__
- attr___hash__ = attr___ne__
- attr___init__ = attr___ne__
- attr___dir__ = attr___ne__
- attr___call__ = attr___ne__
- attr___class__ = attr___ne__
- attr___closure__ = attr___ne__
- attr___code__ = attr___ne__
-
-
-class ClassModel(ObjectModel):
- @property
- def attr___module__(self):
- return node_classes.Const(self._instance.root().qname())
-
- @property
- def attr___name__(self):
- return node_classes.Const(self._instance.name)
-
- @property
- def attr___qualname__(self):
- return node_classes.Const(self._instance.qname())
-
- @property
- def attr___doc__(self):
- return node_classes.Const(self._instance.doc)
-
- @property
- def attr___mro__(self):
- if not self._instance.newstyle:
- raise exceptions.AttributeInferenceError(
- target=self._instance, attribute="__mro__"
- )
-
- mro = self._instance.mro()
- obj = node_classes.Tuple(parent=self._instance)
- obj.postinit(mro)
- return obj
-
- @property
- def attr_mro(self):
- if not self._instance.newstyle:
- raise exceptions.AttributeInferenceError(
- target=self._instance, attribute="mro"
- )
-
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import bases
-
- other_self = self
-
- # Cls.mro is a method and we need to return one in order to have a proper inference.
- # The method we're returning is capable of inferring the underlying MRO though.
- class MroBoundMethod(bases.BoundMethod):
- def infer_call_result(self, caller, context=None):
- yield other_self.attr___mro__
-
- implicit_metaclass = self._instance.implicit_metaclass()
- mro_method = implicit_metaclass.locals["mro"][0]
- return MroBoundMethod(proxy=mro_method, bound=implicit_metaclass)
-
- @property
- def attr___bases__(self):
- obj = node_classes.Tuple()
- context = contextmod.InferenceContext()
- elts = list(self._instance._inferred_bases(context))
- obj.postinit(elts=elts)
- return obj
-
- @property
- def attr___class__(self):
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import helpers
-
- return helpers.object_type(self._instance)
-
- @property
- def attr___subclasses__(self):
- """Get the subclasses of the underlying class
-
- This looks only in the current module for retrieving the subclasses,
- thus it might miss a couple of them.
- """
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import bases
- from astroid import scoped_nodes
-
- if not self._instance.newstyle:
- raise exceptions.AttributeInferenceError(
- target=self._instance, attribute="__subclasses__"
- )
-
- qname = self._instance.qname()
- root = self._instance.root()
- classes = [
- cls
- for cls in root.nodes_of_class(scoped_nodes.ClassDef)
- if cls != self._instance and cls.is_subtype_of(qname)
- ]
-
- obj = node_classes.List(parent=self._instance)
- obj.postinit(classes)
-
- class SubclassesBoundMethod(bases.BoundMethod):
- def infer_call_result(self, caller, context=None):
- yield obj
-
- implicit_metaclass = self._instance.implicit_metaclass()
- subclasses_method = implicit_metaclass.locals["__subclasses__"][0]
- return SubclassesBoundMethod(proxy=subclasses_method, bound=implicit_metaclass)
-
- @property
- def attr___dict__(self):
- return node_classes.Dict(parent=self._instance)
-
-
-class SuperModel(ObjectModel):
- @property
- def attr___thisclass__(self):
- return self._instance.mro_pointer
-
- @property
- def attr___self_class__(self):
- return self._instance._self_class
-
- @property
- def attr___self__(self):
- return self._instance.type
-
- @property
- def attr___class__(self):
- return self._instance._proxied
-
-
-class UnboundMethodModel(ObjectModel):
- @property
- def attr___class__(self):
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import helpers
-
- return helpers.object_type(self._instance)
-
- @property
- def attr___func__(self):
- return self._instance._proxied
-
- @property
- def attr___self__(self):
- return node_classes.Const(value=None, parent=self._instance)
-
- attr_im_func = attr___func__
- attr_im_class = attr___class__
- attr_im_self = attr___self__
-
-
-class BoundMethodModel(FunctionModel):
- @property
- def attr___func__(self):
- return self._instance._proxied._proxied
-
- @property
- def attr___self__(self):
- return self._instance.bound
-
-
-class GeneratorModel(FunctionModel):
- def __new__(cls, *args, **kwargs):
- # Append the values from the GeneratorType unto this object.
- ret = super(GeneratorModel, cls).__new__(cls, *args, **kwargs)
- generator = astroid.MANAGER.builtins_module["generator"]
- for name, values in generator.locals.items():
- method = values[0]
- patched = lambda cls, meth=method: meth
-
- setattr(type(ret), IMPL_PREFIX + name, property(patched))
-
- return ret
-
- @property
- def attr___name__(self):
- return node_classes.Const(
- value=self._instance.parent.name, parent=self._instance
- )
-
- @property
- def attr___doc__(self):
- return node_classes.Const(
- value=self._instance.parent.doc, parent=self._instance
- )
-
-
-class AsyncGeneratorModel(GeneratorModel):
- def __new__(cls, *args, **kwargs):
- # Append the values from the AGeneratorType unto this object.
- ret = super().__new__(cls, *args, **kwargs)
- astroid_builtins = astroid.MANAGER.builtins_module
- generator = astroid_builtins.get("async_generator")
- if generator is None:
- # Make it backward compatible.
- generator = astroid_builtins.get("generator")
-
- for name, values in generator.locals.items():
- method = values[0]
- patched = lambda cls, meth=method: meth
-
- setattr(type(ret), IMPL_PREFIX + name, property(patched))
-
- return ret
-
-
-class InstanceModel(ObjectModel):
- @property
- def attr___class__(self):
- return self._instance._proxied
-
- @property
- def attr___module__(self):
- return node_classes.Const(self._instance.root().qname())
-
- @property
- def attr___doc__(self):
- return node_classes.Const(self._instance.doc)
-
- @property
- def attr___dict__(self):
- return _dunder_dict(self._instance, self._instance.instance_attrs)
-
-
-# Exception instances
-
-
-class ExceptionInstanceModel(InstanceModel):
- @property
- def attr_args(self):
- message = node_classes.Const("")
- args = node_classes.Tuple(parent=self._instance)
- args.postinit((message,))
- return args
-
- @property
- def attr___traceback__(self):
- builtins_ast_module = astroid.MANAGER.builtins_module
- traceback_type = builtins_ast_module[types.TracebackType.__name__]
- return traceback_type.instantiate_class()
-
-
-class SyntaxErrorInstanceModel(ExceptionInstanceModel):
- @property
- def attr_text(self):
- return node_classes.Const("")
-
-
-class OSErrorInstanceModel(ExceptionInstanceModel):
- @property
- def attr_filename(self):
- return node_classes.Const("")
-
- @property
- def attr_errno(self):
- return node_classes.Const(0)
-
- @property
- def attr_strerror(self):
- return node_classes.Const("")
-
- attr_filename2 = attr_filename
-
-
-class ImportErrorInstanceModel(ExceptionInstanceModel):
- @property
- def attr_name(self):
- return node_classes.Const("")
-
- @property
- def attr_path(self):
- return node_classes.Const("")
-
-
-BUILTIN_EXCEPTIONS = {
- "builtins.SyntaxError": SyntaxErrorInstanceModel,
- "builtins.ImportError": ImportErrorInstanceModel,
- # These are all similar to OSError in terms of attributes
- "builtins.OSError": OSErrorInstanceModel,
- "builtins.BlockingIOError": OSErrorInstanceModel,
- "builtins.BrokenPipeError": OSErrorInstanceModel,
- "builtins.ChildProcessError": OSErrorInstanceModel,
- "builtins.ConnectionAbortedError": OSErrorInstanceModel,
- "builtins.ConnectionError": OSErrorInstanceModel,
- "builtins.ConnectionRefusedError": OSErrorInstanceModel,
- "builtins.ConnectionResetError": OSErrorInstanceModel,
- "builtins.FileExistsError": OSErrorInstanceModel,
- "builtins.FileNotFoundError": OSErrorInstanceModel,
- "builtins.InterruptedError": OSErrorInstanceModel,
- "builtins.IsADirectoryError": OSErrorInstanceModel,
- "builtins.NotADirectoryError": OSErrorInstanceModel,
- "builtins.PermissionError": OSErrorInstanceModel,
- "builtins.ProcessLookupError": OSErrorInstanceModel,
- "builtins.TimeoutError": OSErrorInstanceModel,
-}
-
-
-class DictModel(ObjectModel):
- @property
- def attr___class__(self):
- return self._instance._proxied
-
- def _generic_dict_attribute(self, obj, name):
- """Generate a bound method that can infer the given *obj*."""
-
- class DictMethodBoundMethod(astroid.BoundMethod):
- def infer_call_result(self, caller, context=None):
- yield obj
-
- meth = next(self._instance._proxied.igetattr(name))
- return DictMethodBoundMethod(proxy=meth, bound=self._instance)
-
- @property
- def attr_items(self):
- elems = []
- obj = node_classes.List(parent=self._instance)
- for key, value in self._instance.items:
- elem = node_classes.Tuple(parent=obj)
- elem.postinit((key, value))
- elems.append(elem)
- obj.postinit(elts=elems)
-
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import objects
-
- obj = objects.DictItems(obj)
- return self._generic_dict_attribute(obj, "items")
-
- @property
- def attr_keys(self):
- keys = [key for (key, _) in self._instance.items]
- obj = node_classes.List(parent=self._instance)
- obj.postinit(elts=keys)
-
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import objects
-
- obj = objects.DictKeys(obj)
- return self._generic_dict_attribute(obj, "keys")
-
- @property
- def attr_values(self):
-
- values = [value for (_, value) in self._instance.items]
- obj = node_classes.List(parent=self._instance)
- obj.postinit(values)
-
- # pylint: disable=import-outside-toplevel; circular import
- from astroid import objects
-
- obj = objects.DictValues(obj)
- return self._generic_dict_attribute(obj, "values")
diff --git a/src/main/python/venv/Lib/site-packages/astroid/manager.py b/src/main/python/venv/Lib/site-packages/astroid/manager.py
deleted file mode 100644
index e5fd0d6..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/manager.py
+++ /dev/null
@@ -1,337 +0,0 @@
-# Copyright (c) 2006-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 BioGeek
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2017 Iva Miholic
-# Copyright (c) 2018 Bryce Guinta
-# Copyright (c) 2018 Nick Drozd
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""astroid manager: avoid multiple astroid build of a same module when
-possible by providing a class responsible to get astroid representation
-from various source and using a cache of built modules)
-"""
-
-import os
-import zipimport
-
-from astroid import exceptions
-from astroid.interpreter._import import spec
-from astroid import modutils
-from astroid import transforms
-
-
-ZIP_IMPORT_EXTS = (".zip", ".egg", ".whl")
-
-
-def safe_repr(obj):
- try:
- return repr(obj)
- except Exception: # pylint: disable=broad-except
- return "???"
-
-
-class AstroidManager:
- """the astroid manager, responsible to build astroid from files
- or modules.
-
- Use the Borg pattern.
- """
-
- name = "astroid loader"
- brain = {}
-
- def __init__(self):
- self.__dict__ = AstroidManager.brain
- if not self.__dict__:
- # NOTE: cache entries are added by the [re]builder
- self.astroid_cache = {}
- self._mod_file_cache = {}
- self._failed_import_hooks = []
- self.always_load_extensions = False
- self.optimize_ast = False
- self.extension_package_whitelist = set()
- self._transform = transforms.TransformVisitor()
-
- # Export these APIs for convenience
- self.register_transform = self._transform.register_transform
- self.unregister_transform = self._transform.unregister_transform
- self.max_inferable_values = 100
-
- @property
- def builtins_module(self):
- return self.astroid_cache["builtins"]
-
- def visit_transforms(self, node):
- """Visit the transforms and apply them to the given *node*."""
- return self._transform.visit(node)
-
- def ast_from_file(self, filepath, modname=None, fallback=True, source=False):
- """given a module name, return the astroid object"""
- try:
- filepath = modutils.get_source_file(filepath, include_no_ext=True)
- source = True
- except modutils.NoSourceFile:
- pass
- if modname is None:
- try:
- modname = ".".join(modutils.modpath_from_file(filepath))
- except ImportError:
- modname = filepath
- if (
- modname in self.astroid_cache
- and self.astroid_cache[modname].file == filepath
- ):
- return self.astroid_cache[modname]
- if source:
- # pylint: disable=import-outside-toplevel; circular import
- from astroid.builder import AstroidBuilder
-
- return AstroidBuilder(self).file_build(filepath, modname)
- if fallback and modname:
- return self.ast_from_module_name(modname)
- raise exceptions.AstroidBuildingError(
- "Unable to build an AST for {path}.", path=filepath
- )
-
- def _build_stub_module(self, modname):
- # pylint: disable=import-outside-toplevel; circular import
- from astroid.builder import AstroidBuilder
-
- return AstroidBuilder(self).string_build("", modname)
-
- def _build_namespace_module(self, modname, path):
- # pylint: disable=import-outside-toplevel; circular import
- from astroid.builder import build_namespace_package_module
-
- return build_namespace_package_module(modname, path)
-
- def _can_load_extension(self, modname):
- if self.always_load_extensions:
- return True
- if modutils.is_standard_module(modname):
- return True
- parts = modname.split(".")
- return any(
- ".".join(parts[:x]) in self.extension_package_whitelist
- for x in range(1, len(parts) + 1)
- )
-
- def ast_from_module_name(self, modname, context_file=None):
- """given a module name, return the astroid object"""
- if modname in self.astroid_cache:
- return self.astroid_cache[modname]
- if modname == "__main__":
- return self._build_stub_module(modname)
- old_cwd = os.getcwd()
- if context_file:
- os.chdir(os.path.dirname(context_file))
- try:
- found_spec = self.file_from_module_name(modname, context_file)
- if found_spec.type == spec.ModuleType.PY_ZIPMODULE:
- module = self.zip_import_data(found_spec.location)
- if module is not None:
- return module
-
- elif found_spec.type in (
- spec.ModuleType.C_BUILTIN,
- spec.ModuleType.C_EXTENSION,
- ):
- if (
- found_spec.type == spec.ModuleType.C_EXTENSION
- and not self._can_load_extension(modname)
- ):
- return self._build_stub_module(modname)
- try:
- module = modutils.load_module_from_name(modname)
- except Exception as ex:
- raise exceptions.AstroidImportError(
- "Loading {modname} failed with:\n{error}",
- modname=modname,
- path=found_spec.location,
- ) from ex
- return self.ast_from_module(module, modname)
-
- elif found_spec.type == spec.ModuleType.PY_COMPILED:
- raise exceptions.AstroidImportError(
- "Unable to load compiled module {modname}.",
- modname=modname,
- path=found_spec.location,
- )
-
- elif found_spec.type == spec.ModuleType.PY_NAMESPACE:
- return self._build_namespace_module(
- modname, found_spec.submodule_search_locations
- )
-
- if found_spec.location is None:
- raise exceptions.AstroidImportError(
- "Can't find a file for module {modname}.", modname=modname
- )
-
- return self.ast_from_file(found_spec.location, modname, fallback=False)
- except exceptions.AstroidBuildingError as e:
- for hook in self._failed_import_hooks:
- try:
- return hook(modname)
- except exceptions.AstroidBuildingError:
- pass
- raise e
- finally:
- os.chdir(old_cwd)
-
- def zip_import_data(self, filepath):
- if zipimport is None:
- return None
-
- # pylint: disable=import-outside-toplevel; circular import
- from astroid.builder import AstroidBuilder
-
- builder = AstroidBuilder(self)
- for ext in ZIP_IMPORT_EXTS:
- try:
- eggpath, resource = filepath.rsplit(ext + os.path.sep, 1)
- except ValueError:
- continue
- try:
- importer = zipimport.zipimporter(eggpath + ext)
- zmodname = resource.replace(os.path.sep, ".")
- if importer.is_package(resource):
- zmodname = zmodname + ".__init__"
- module = builder.string_build(
- importer.get_source(resource), zmodname, filepath
- )
- return module
- except Exception: # pylint: disable=broad-except
- continue
- return None
-
- def file_from_module_name(self, modname, contextfile):
- try:
- value = self._mod_file_cache[(modname, contextfile)]
- except KeyError:
- try:
- value = modutils.file_info_from_modpath(
- modname.split("."), context_file=contextfile
- )
- except ImportError as ex:
- value = exceptions.AstroidImportError(
- "Failed to import module {modname} with error:\n{error}.",
- modname=modname,
- error=ex,
- )
- self._mod_file_cache[(modname, contextfile)] = value
- if isinstance(value, exceptions.AstroidBuildingError):
- raise value
- return value
-
- def ast_from_module(self, module, modname=None):
- """given an imported module, return the astroid object"""
- modname = modname or module.__name__
- if modname in self.astroid_cache:
- return self.astroid_cache[modname]
- try:
- # some builtin modules don't have __file__ attribute
- filepath = module.__file__
- if modutils.is_python_source(filepath):
- return self.ast_from_file(filepath, modname)
- except AttributeError:
- pass
-
- # pylint: disable=import-outside-toplevel; circular import
- from astroid.builder import AstroidBuilder
-
- return AstroidBuilder(self).module_build(module, modname)
-
- def ast_from_class(self, klass, modname=None):
- """get astroid for the given class"""
- if modname is None:
- try:
- modname = klass.__module__
- except AttributeError as exc:
- raise exceptions.AstroidBuildingError(
- "Unable to get module for class {class_name}.",
- cls=klass,
- class_repr=safe_repr(klass),
- modname=modname,
- ) from exc
- modastroid = self.ast_from_module_name(modname)
- return modastroid.getattr(klass.__name__)[0] # XXX
-
- def infer_ast_from_something(self, obj, context=None):
- """infer astroid for the given class"""
- if hasattr(obj, "__class__") and not isinstance(obj, type):
- klass = obj.__class__
- else:
- klass = obj
- try:
- modname = klass.__module__
- except AttributeError as exc:
- raise exceptions.AstroidBuildingError(
- "Unable to get module for {class_repr}.",
- cls=klass,
- class_repr=safe_repr(klass),
- ) from exc
- except Exception as exc:
- raise exceptions.AstroidImportError(
- "Unexpected error while retrieving module for {class_repr}:\n"
- "{error}",
- cls=klass,
- class_repr=safe_repr(klass),
- ) from exc
- try:
- name = klass.__name__
- except AttributeError as exc:
- raise exceptions.AstroidBuildingError(
- "Unable to get name for {class_repr}:\n",
- cls=klass,
- class_repr=safe_repr(klass),
- ) from exc
- except Exception as exc:
- raise exceptions.AstroidImportError(
- "Unexpected error while retrieving name for {class_repr}:\n" "{error}",
- cls=klass,
- class_repr=safe_repr(klass),
- ) from exc
- # take care, on living object __module__ is regularly wrong :(
- modastroid = self.ast_from_module_name(modname)
- if klass is obj:
- for inferred in modastroid.igetattr(name, context):
- yield inferred
- else:
- for inferred in modastroid.igetattr(name, context):
- yield inferred.instantiate_class()
-
- def register_failed_import_hook(self, hook):
- """Registers a hook to resolve imports that cannot be found otherwise.
-
- `hook` must be a function that accepts a single argument `modname` which
- contains the name of the module or package that could not be imported.
- If `hook` can resolve the import, must return a node of type `astroid.Module`,
- otherwise, it must raise `AstroidBuildingError`.
- """
- self._failed_import_hooks.append(hook)
-
- def cache_module(self, module):
- """Cache a module if no module with the same name is known yet."""
- self.astroid_cache.setdefault(module.name, module)
-
- def bootstrap(self):
- """Bootstrap the required AST modules needed for the manager to work
-
- The bootstrap usually involves building the AST for the builtins
- module, which is required by the rest of astroid to work correctly.
- """
- from astroid import raw_building # pylint: disable=import-outside-toplevel
-
- raw_building._astroid_bootstrapping()
-
- def clear_cache(self):
- """Clear the underlying cache. Also bootstraps the builtins module."""
- self.astroid_cache.clear()
- self.bootstrap()
diff --git a/src/main/python/venv/Lib/site-packages/astroid/mixins.py b/src/main/python/venv/Lib/site-packages/astroid/mixins.py
deleted file mode 100644
index 497a840..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/mixins.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (c) 2010-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014-2016, 2018 Claudiu Popa
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Florian Bruhin
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2018 Nick Drozd
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""This module contains some mixins for the different nodes.
-"""
-import itertools
-
-from astroid import decorators
-from astroid import exceptions
-
-
-class BlockRangeMixIn:
- """override block range """
-
- @decorators.cachedproperty
- def blockstart_tolineno(self):
- return self.lineno
-
- def _elsed_block_range(self, lineno, orelse, last=None):
- """handle block line numbers range for try/finally, for, if and while
- statements
- """
- if lineno == self.fromlineno:
- return lineno, lineno
- if orelse:
- if lineno >= orelse[0].fromlineno:
- return lineno, orelse[-1].tolineno
- return lineno, orelse[0].fromlineno - 1
- return lineno, last or self.tolineno
-
-
-class FilterStmtsMixin:
- """Mixin for statement filtering and assignment type"""
-
- def _get_filtered_stmts(self, _, node, _stmts, mystmt):
- """method used in _filter_stmts to get statements and trigger break"""
- if self.statement() is mystmt:
- # original node's statement is the assignment, only keep
- # current node (gen exp, list comp)
- return [node], True
- return _stmts, False
-
- def assign_type(self):
- return self
-
-
-class AssignTypeMixin:
- def assign_type(self):
- return self
-
- def _get_filtered_stmts(self, lookup_node, node, _stmts, mystmt):
- """method used in filter_stmts"""
- if self is mystmt:
- return _stmts, True
- if self.statement() is mystmt:
- # original node's statement is the assignment, only keep
- # current node (gen exp, list comp)
- return [node], True
- return _stmts, False
-
-
-class ParentAssignTypeMixin(AssignTypeMixin):
- def assign_type(self):
- return self.parent.assign_type()
-
-
-class ImportFromMixin(FilterStmtsMixin):
- """MixIn for From and Import Nodes"""
-
- def _infer_name(self, frame, name):
- return name
-
- def do_import_module(self, modname=None):
- """return the ast for a module whose name is imported by
- """
- # handle special case where we are on a package node importing a module
- # using the same name as the package, which may end in an infinite loop
- # on relative imports
- # XXX: no more needed ?
- mymodule = self.root()
- level = getattr(self, "level", None) # Import as no level
- if modname is None:
- modname = self.modname
- # XXX we should investigate deeper if we really want to check
- # importing itself: modname and mymodule.name be relative or absolute
- if mymodule.relative_to_absolute_name(modname, level) == mymodule.name:
- # FIXME: we used to raise InferenceError here, but why ?
- return mymodule
-
- return mymodule.import_module(
- modname, level=level, relative_only=level and level >= 1
- )
-
- def real_name(self, asname):
- """get name from 'as' name"""
- for name, _asname in self.names:
- if name == "*":
- return asname
- if not _asname:
- name = name.split(".", 1)[0]
- _asname = name
- if asname == _asname:
- return name
- raise exceptions.AttributeInferenceError(
- "Could not find original name for {attribute} in {target!r}",
- target=self,
- attribute=asname,
- )
-
-
-class MultiLineBlockMixin:
- """Mixin for nodes with multi-line blocks, e.g. For and FunctionDef.
- Note that this does not apply to every node with a `body` field.
- For instance, an If node has a multi-line body, but the body of an
- IfExpr is not multi-line, and hence cannot contain Return nodes,
- Assign nodes, etc.
- """
-
- @decorators.cachedproperty
- def _multi_line_blocks(self):
- return tuple(getattr(self, field) for field in self._multi_line_block_fields)
-
- def _get_return_nodes_skip_functions(self):
- for block in self._multi_line_blocks:
- for child_node in block:
- if child_node.is_function:
- continue
- yield from child_node._get_return_nodes_skip_functions()
-
- def _get_yield_nodes_skip_lambdas(self):
- for block in self._multi_line_blocks:
- for child_node in block:
- if child_node.is_lambda:
- continue
- yield from child_node._get_yield_nodes_skip_lambdas()
-
- @decorators.cached
- def _get_assign_nodes(self):
- children_assign_nodes = (
- child_node._get_assign_nodes()
- for block in self._multi_line_blocks
- for child_node in block
- )
- return list(itertools.chain.from_iterable(children_assign_nodes))
-
-
-class NoChildrenMixin:
- """Mixin for nodes with no children, e.g. Pass."""
-
- def get_children(self):
- yield from ()
diff --git a/src/main/python/venv/Lib/site-packages/astroid/modutils.py b/src/main/python/venv/Lib/site-packages/astroid/modutils.py
deleted file mode 100644
index 0c009b1..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/modutils.py
+++ /dev/null
@@ -1,698 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 Google, Inc.
-# Copyright (c) 2014 Denis Laxalde
-# Copyright (c) 2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015 Florian Bruhin
-# Copyright (c) 2015 Radosław Ganczarek
-# Copyright (c) 2016 Derek Gustafson
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2016 Ceridwen
-# Copyright (c) 2018 Mario Corchero
-# Copyright (c) 2018 Mario Corchero
-# Copyright (c) 2018 Anthony Sottile
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-"""Python modules manipulation utility functions.
-
-:type PY_SOURCE_EXTS: tuple(str)
-:var PY_SOURCE_EXTS: list of possible python source file extension
-
-:type STD_LIB_DIRS: set of str
-:var STD_LIB_DIRS: directories where standard modules are located
-
-:type BUILTIN_MODULES: dict
-:var BUILTIN_MODULES: dictionary with builtin module names has key
-"""
-import imp
-import os
-import platform
-import sys
-import itertools
-from distutils.sysconfig import get_python_lib # pylint: disable=import-error
-
-# pylint: disable=import-error, no-name-in-module
-from distutils.errors import DistutilsPlatformError
-
-# distutils is replaced by virtualenv with a module that does
-# weird path manipulations in order to get to the
-# real distutils module.
-
-from .interpreter._import import spec
-from .interpreter._import import util
-
-if sys.platform.startswith("win"):
- PY_SOURCE_EXTS = ("py", "pyw")
- PY_COMPILED_EXTS = ("dll", "pyd")
-else:
- PY_SOURCE_EXTS = ("py",)
- PY_COMPILED_EXTS = ("so",)
-
-
-try:
- # The explicit sys.prefix is to work around a patch in virtualenv that
- # replaces the 'real' sys.prefix (i.e. the location of the binary)
- # with the prefix from which the virtualenv was created. This throws
- # off the detection logic for standard library modules, thus the
- # workaround.
- STD_LIB_DIRS = {
- get_python_lib(standard_lib=True, prefix=sys.prefix),
- # Take care of installations where exec_prefix != prefix.
- get_python_lib(standard_lib=True, prefix=sys.exec_prefix),
- get_python_lib(standard_lib=True),
- }
-# get_python_lib(standard_lib=1) is not available on pypy, set STD_LIB_DIR to
-# non-valid path, see https://bugs.pypy.org/issue1164
-except DistutilsPlatformError:
- STD_LIB_DIRS = set()
-
-if os.name == "nt":
- STD_LIB_DIRS.add(os.path.join(sys.prefix, "dlls"))
- try:
- # real_prefix is defined when running inside virtual environments,
- # created with the **virtualenv** library.
- STD_LIB_DIRS.add(os.path.join(sys.real_prefix, "dlls"))
- except AttributeError:
- # sys.base_exec_prefix is always defined, but in a virtual environment
- # created with the stdlib **venv** module, it points to the original
- # installation, if the virtual env is activated.
- try:
- STD_LIB_DIRS.add(os.path.join(sys.base_exec_prefix, "dlls"))
- except AttributeError:
- pass
-
-if platform.python_implementation() == "PyPy":
- _root = os.path.join(sys.prefix, "lib_pypy")
- STD_LIB_DIRS.add(_root)
- try:
- # real_prefix is defined when running inside virtualenv.
- STD_LIB_DIRS.add(os.path.join(sys.real_prefix, "lib_pypy"))
- except AttributeError:
- pass
- del _root
-if os.name == "posix":
- # Need the real prefix is we're under a virtualenv, otherwise
- # the usual one will do.
- try:
- prefix = sys.real_prefix
- except AttributeError:
- prefix = sys.prefix
-
- def _posix_path(path):
- base_python = "python%d.%d" % sys.version_info[:2]
- return os.path.join(prefix, path, base_python)
-
- STD_LIB_DIRS.add(_posix_path("lib"))
- if sys.maxsize > 2 ** 32:
- # This tries to fix a problem with /usr/lib64 builds,
- # where systems are running both 32-bit and 64-bit code
- # on the same machine, which reflects into the places where
- # standard library could be found. More details can be found
- # here http://bugs.python.org/issue1294959.
- # An easy reproducing case would be
- # https://github.com/PyCQA/pylint/issues/712#issuecomment-163178753
- STD_LIB_DIRS.add(_posix_path("lib64"))
-
-EXT_LIB_DIRS = {get_python_lib(), get_python_lib(True)}
-IS_JYTHON = platform.python_implementation() == "Jython"
-BUILTIN_MODULES = dict.fromkeys(sys.builtin_module_names, True)
-
-
-class NoSourceFile(Exception):
- """exception raised when we are not able to get a python
- source file for a precompiled file
- """
-
-
-def _normalize_path(path):
- return os.path.normcase(os.path.abspath(path))
-
-
-def _canonicalize_path(path):
- return os.path.realpath(os.path.expanduser(path))
-
-
-def _path_from_filename(filename, is_jython=IS_JYTHON):
- if not is_jython:
- return filename
- head, has_pyclass, _ = filename.partition("$py.class")
- if has_pyclass:
- return head + ".py"
- return filename
-
-
-def _handle_blacklist(blacklist, dirnames, filenames):
- """remove files/directories in the black list
-
- dirnames/filenames are usually from os.walk
- """
- for norecurs in blacklist:
- if norecurs in dirnames:
- dirnames.remove(norecurs)
- elif norecurs in filenames:
- filenames.remove(norecurs)
-
-
-_NORM_PATH_CACHE = {}
-
-
-def _cache_normalize_path(path):
- """abspath with caching"""
- # _module_file calls abspath on every path in sys.path every time it's
- # called; on a larger codebase this easily adds up to half a second just
- # assembling path components. This cache alleviates that.
- try:
- return _NORM_PATH_CACHE[path]
- except KeyError:
- if not path: # don't cache result for ''
- return _normalize_path(path)
- result = _NORM_PATH_CACHE[path] = _normalize_path(path)
- return result
-
-
-def load_module_from_name(dotted_name, path=None, use_sys=True):
- """Load a Python module from its name.
-
- :type dotted_name: str
- :param dotted_name: python name of a module or package
-
- :type path: list or None
- :param path:
- optional list of path where the module or package should be
- searched (use sys.path if nothing or None is given)
-
- :type use_sys: bool
- :param use_sys:
- boolean indicating whether the sys.modules dictionary should be
- used or not
-
-
- :raise ImportError: if the module or package is not found
-
- :rtype: module
- :return: the loaded module
- """
- return load_module_from_modpath(dotted_name.split("."), path, use_sys)
-
-
-def load_module_from_modpath(parts, path=None, use_sys=1):
- """Load a python module from its split name.
-
- :type parts: list(str) or tuple(str)
- :param parts:
- python name of a module or package split on '.'
-
- :type path: list or None
- :param path:
- optional list of path where the module or package should be
- searched (use sys.path if nothing or None is given)
-
- :type use_sys: bool
- :param use_sys:
- boolean indicating whether the sys.modules dictionary should be used or not
-
- :raise ImportError: if the module or package is not found
-
- :rtype: module
- :return: the loaded module
- """
- if use_sys:
- try:
- return sys.modules[".".join(parts)]
- except KeyError:
- pass
- modpath = []
- prevmodule = None
- for part in parts:
- modpath.append(part)
- curname = ".".join(modpath)
- module = None
- if len(modpath) != len(parts):
- # even with use_sys=False, should try to get outer packages from sys.modules
- module = sys.modules.get(curname)
- elif use_sys:
- # because it may have been indirectly loaded through a parent
- module = sys.modules.get(curname)
- if module is None:
- mp_file, mp_filename, mp_desc = imp.find_module(part, path)
- module = imp.load_module(curname, mp_file, mp_filename, mp_desc)
- # mp_file still needs to be closed.
- if mp_file:
- mp_file.close()
- if prevmodule:
- setattr(prevmodule, part, module)
- _file = getattr(module, "__file__", "")
- prevmodule = module
- if not _file and util.is_namespace(curname):
- continue
- if not _file and len(modpath) != len(parts):
- raise ImportError("no module in %s" % ".".join(parts[len(modpath) :]))
- path = [os.path.dirname(_file)]
- return module
-
-
-def load_module_from_file(filepath, path=None, use_sys=True, extrapath=None):
- """Load a Python module from it's path.
-
- :type filepath: str
- :param filepath: path to the python module or package
-
- :type path: list or None
- :param path:
- optional list of path where the module or package should be
- searched (use sys.path if nothing or None is given)
-
- :type use_sys: bool
- :param use_sys:
- boolean indicating whether the sys.modules dictionary should be
- used or not
-
-
- :raise ImportError: if the module or package is not found
-
- :rtype: module
- :return: the loaded module
- """
- modpath = modpath_from_file(filepath, extrapath)
- return load_module_from_modpath(modpath, path, use_sys)
-
-
-def check_modpath_has_init(path, mod_path):
- """check there are some __init__.py all along the way"""
- modpath = []
- for part in mod_path:
- modpath.append(part)
- path = os.path.join(path, part)
- if not _has_init(path):
- old_namespace = util.is_namespace(".".join(modpath))
- if not old_namespace:
- return False
- return True
-
-
-def _get_relative_base_path(filename, path_to_check):
- """Extracts the relative mod path of the file to import from
-
- Check if a file is within the passed in path and if so, returns the
- relative mod path from the one passed in.
-
- If the filename is no in path_to_check, returns None
-
- Note this function will look for both abs and realpath of the file,
- this allows to find the relative base path even if the file is a
- symlink of a file in the passed in path
-
- Examples:
- _get_relative_base_path("/a/b/c/d.py", "/a/b") -> ["c","d"]
- _get_relative_base_path("/a/b/c/d.py", "/dev") -> None
- """
- importable_path = None
- path_to_check = os.path.normcase(path_to_check)
- abs_filename = os.path.abspath(filename)
- if os.path.normcase(abs_filename).startswith(path_to_check):
- importable_path = abs_filename
-
- real_filename = os.path.realpath(filename)
- if os.path.normcase(real_filename).startswith(path_to_check):
- importable_path = real_filename
-
- if importable_path:
- base_path = os.path.splitext(importable_path)[0]
- relative_base_path = base_path[len(path_to_check) :]
- return [pkg for pkg in relative_base_path.split(os.sep) if pkg]
-
- return None
-
-
-def modpath_from_file_with_callback(filename, extrapath=None, is_package_cb=None):
- filename = os.path.expanduser(_path_from_filename(filename))
-
- if extrapath is not None:
- for path_ in itertools.chain(map(_canonicalize_path, extrapath), extrapath):
- path = os.path.abspath(path_)
- if not path:
- continue
- submodpath = _get_relative_base_path(filename, path)
- if not submodpath:
- continue
- if is_package_cb(path, submodpath[:-1]):
- return extrapath[path_].split(".") + submodpath
-
- for path in itertools.chain(map(_canonicalize_path, sys.path), sys.path):
- path = _cache_normalize_path(path)
- if not path:
- continue
- modpath = _get_relative_base_path(filename, path)
- if not modpath:
- continue
- if is_package_cb(path, modpath[:-1]):
- return modpath
-
- raise ImportError(
- "Unable to find module for %s in %s" % (filename, ", \n".join(sys.path))
- )
-
-
-def modpath_from_file(filename, extrapath=None):
- """given a file path return the corresponding split module's name
- (i.e name of a module or package split on '.')
-
- :type filename: str
- :param filename: file's path for which we want the module's name
-
- :type extrapath: dict
- :param extrapath:
- optional extra search path, with path as key and package name for the path
- as value. This is usually useful to handle package split in multiple
- directories using __path__ trick.
-
-
- :raise ImportError:
- if the corresponding module's name has not been found
-
- :rtype: list(str)
- :return: the corresponding split module's name
- """
- return modpath_from_file_with_callback(filename, extrapath, check_modpath_has_init)
-
-
-def file_from_modpath(modpath, path=None, context_file=None):
- return file_info_from_modpath(modpath, path, context_file).location
-
-
-def file_info_from_modpath(modpath, path=None, context_file=None):
- """given a mod path (i.e. split module / package name), return the
- corresponding file, giving priority to source file over precompiled
- file if it exists
-
- :type modpath: list or tuple
- :param modpath:
- split module's name (i.e name of a module or package split
- on '.')
- (this means explicit relative imports that start with dots have
- empty strings in this list!)
-
- :type path: list or None
- :param path:
- optional list of path where the module or package should be
- searched (use sys.path if nothing or None is given)
-
- :type context_file: str or None
- :param context_file:
- context file to consider, necessary if the identifier has been
- introduced using a relative import unresolvable in the actual
- context (i.e. modutils)
-
- :raise ImportError: if there is no such module in the directory
-
- :rtype: (str or None, import type)
- :return:
- the path to the module's file or None if it's an integrated
- builtin module such as 'sys'
- """
- if context_file is not None:
- context = os.path.dirname(context_file)
- else:
- context = context_file
- if modpath[0] == "xml":
- # handle _xmlplus
- try:
- return _spec_from_modpath(["_xmlplus"] + modpath[1:], path, context)
- except ImportError:
- return _spec_from_modpath(modpath, path, context)
- elif modpath == ["os", "path"]:
- # FIXME: currently ignoring search_path...
- return spec.ModuleSpec(
- name="os.path", location=os.path.__file__, module_type=imp.PY_SOURCE
- )
- return _spec_from_modpath(modpath, path, context)
-
-
-def get_module_part(dotted_name, context_file=None):
- """given a dotted name return the module part of the name :
-
- >>> get_module_part('astroid.as_string.dump')
- 'astroid.as_string'
-
- :type dotted_name: str
- :param dotted_name: full name of the identifier we are interested in
-
- :type context_file: str or None
- :param context_file:
- context file to consider, necessary if the identifier has been
- introduced using a relative import unresolvable in the actual
- context (i.e. modutils)
-
-
- :raise ImportError: if there is no such module in the directory
-
- :rtype: str or None
- :return:
- the module part of the name or None if we have not been able at
- all to import the given name
-
- XXX: deprecated, since it doesn't handle package precedence over module
- (see #10066)
- """
- # os.path trick
- if dotted_name.startswith("os.path"):
- return "os.path"
- parts = dotted_name.split(".")
- if context_file is not None:
- # first check for builtin module which won't be considered latter
- # in that case (path != None)
- if parts[0] in BUILTIN_MODULES:
- if len(parts) > 2:
- raise ImportError(dotted_name)
- return parts[0]
- # don't use += or insert, we want a new list to be created !
- path = None
- starti = 0
- if parts[0] == "":
- assert (
- context_file is not None
- ), "explicit relative import, but no context_file?"
- path = [] # prevent resolving the import non-relatively
- starti = 1
- while parts[starti] == "": # for all further dots: change context
- starti += 1
- context_file = os.path.dirname(context_file)
- for i in range(starti, len(parts)):
- try:
- file_from_modpath(
- parts[starti : i + 1], path=path, context_file=context_file
- )
- except ImportError:
- if i < max(1, len(parts) - 2):
- raise
- return ".".join(parts[:i])
- return dotted_name
-
-
-def get_module_files(src_directory, blacklist, list_all=False):
- """given a package directory return a list of all available python
- module's files in the package and its subpackages
-
- :type src_directory: str
- :param src_directory:
- path of the directory corresponding to the package
-
- :type blacklist: list or tuple
- :param blacklist: iterable
- list of files or directories to ignore.
-
- :type list_all: bool
- :param list_all:
- get files from all paths, including ones without __init__.py
-
- :rtype: list
- :return:
- the list of all available python module's files in the package and
- its subpackages
- """
- files = []
- for directory, dirnames, filenames in os.walk(src_directory):
- if directory in blacklist:
- continue
- _handle_blacklist(blacklist, dirnames, filenames)
- # check for __init__.py
- if not list_all and "__init__.py" not in filenames:
- dirnames[:] = ()
- continue
- for filename in filenames:
- if _is_python_file(filename):
- src = os.path.join(directory, filename)
- files.append(src)
- return files
-
-
-def get_source_file(filename, include_no_ext=False):
- """given a python module's file name return the matching source file
- name (the filename will be returned identically if it's already an
- absolute path to a python source file...)
-
- :type filename: str
- :param filename: python module's file name
-
-
- :raise NoSourceFile: if no source file exists on the file system
-
- :rtype: str
- :return: the absolute path of the source file if it exists
- """
- filename = os.path.abspath(_path_from_filename(filename))
- base, orig_ext = os.path.splitext(filename)
- for ext in PY_SOURCE_EXTS:
- source_path = "%s.%s" % (base, ext)
- if os.path.exists(source_path):
- return source_path
- if include_no_ext and not orig_ext and os.path.exists(base):
- return base
- raise NoSourceFile(filename)
-
-
-def is_python_source(filename):
- """
- rtype: bool
- return: True if the filename is a python source file
- """
- return os.path.splitext(filename)[1][1:] in PY_SOURCE_EXTS
-
-
-def is_standard_module(modname, std_path=None):
- """try to guess if a module is a standard python module (by default,
- see `std_path` parameter's description)
-
- :type modname: str
- :param modname: name of the module we are interested in
-
- :type std_path: list(str) or tuple(str)
- :param std_path: list of path considered has standard
-
-
- :rtype: bool
- :return:
- true if the module:
- - is located on the path listed in one of the directory in `std_path`
- - is a built-in module
- """
- modname = modname.split(".")[0]
- try:
- filename = file_from_modpath([modname])
- except ImportError:
- # import failed, i'm probably not so wrong by supposing it's
- # not standard...
- return False
- # modules which are not living in a file are considered standard
- # (sys and __builtin__ for instance)
- if filename is None:
- # we assume there are no namespaces in stdlib
- return not util.is_namespace(modname)
- filename = _normalize_path(filename)
- for path in EXT_LIB_DIRS:
- if filename.startswith(_cache_normalize_path(path)):
- return False
- if std_path is None:
- std_path = STD_LIB_DIRS
- for path in std_path:
- if filename.startswith(_cache_normalize_path(path)):
- return True
- return False
-
-
-def is_relative(modname, from_file):
- """return true if the given module name is relative to the given
- file name
-
- :type modname: str
- :param modname: name of the module we are interested in
-
- :type from_file: str
- :param from_file:
- path of the module from which modname has been imported
-
- :rtype: bool
- :return:
- true if the module has been imported relatively to `from_file`
- """
- if not os.path.isdir(from_file):
- from_file = os.path.dirname(from_file)
- if from_file in sys.path:
- return False
- try:
- stream, _, _ = imp.find_module(modname.split(".")[0], [from_file])
-
- # Close the stream to avoid ResourceWarnings.
- if stream:
- stream.close()
- return True
- except ImportError:
- return False
-
-
-# internal only functions #####################################################
-
-
-def _spec_from_modpath(modpath, path=None, context=None):
- """given a mod path (i.e. split module / package name), return the
- corresponding spec
-
- this function is used internally, see `file_from_modpath`'s
- documentation for more information
- """
- assert modpath
- location = None
- if context is not None:
- try:
- found_spec = spec.find_spec(modpath, [context])
- location = found_spec.location
- except ImportError:
- found_spec = spec.find_spec(modpath, path)
- location = found_spec.location
- else:
- found_spec = spec.find_spec(modpath, path)
- if found_spec.type == spec.ModuleType.PY_COMPILED:
- try:
- location = get_source_file(found_spec.location)
- return found_spec._replace(
- location=location, type=spec.ModuleType.PY_SOURCE
- )
- except NoSourceFile:
- return found_spec._replace(location=location)
- elif found_spec.type == spec.ModuleType.C_BUILTIN:
- # integrated builtin module
- return found_spec._replace(location=None)
- elif found_spec.type == spec.ModuleType.PKG_DIRECTORY:
- location = _has_init(found_spec.location)
- return found_spec._replace(location=location, type=spec.ModuleType.PY_SOURCE)
- return found_spec
-
-
-def _is_python_file(filename):
- """return true if the given filename should be considered as a python file
-
- .pyc and .pyo are ignored
- """
- return filename.endswith((".py", ".so", ".pyd", ".pyw"))
-
-
-def _has_init(directory):
- """if the given directory has a valid __init__ file, return its path,
- else return None
- """
- mod_or_pack = os.path.join(directory, "__init__")
- for ext in PY_SOURCE_EXTS + ("pyc", "pyo"):
- if os.path.exists(mod_or_pack + "." + ext):
- return mod_or_pack + "." + ext
- return None
-
-
-def is_namespace(specobj):
- return specobj.type == spec.ModuleType.PY_NAMESPACE
-
-
-def is_directory(specobj):
- return specobj.type == spec.ModuleType.PKG_DIRECTORY
diff --git a/src/main/python/venv/Lib/site-packages/astroid/node_classes.py b/src/main/python/venv/Lib/site-packages/astroid/node_classes.py
deleted file mode 100644
index 994c96b..0000000
--- a/src/main/python/venv/Lib/site-packages/astroid/node_classes.py
+++ /dev/null
@@ -1,4775 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2009-2011, 2013-2014 LOGILAB S.A. (Paris, FRANCE)
-# Copyright (c) 2010 Daniel Harding
-# Copyright (c) 2012 FELD Boris
-# Copyright (c) 2013-2014 Google, Inc.
-# Copyright (c) 2014-2018 Claudiu Popa
-# Copyright (c) 2014 Eevee (Alex Munroe)
-# Copyright (c) 2015-2016 Ceridwen
-# Copyright (c) 2015 Florian Bruhin
-# Copyright (c) 2016-2017 Derek Gustafson
-# Copyright (c) 2016 Jared Garst
-# Copyright (c) 2016 Jakub Wilk
-# Copyright (c) 2016 Dave Baum
-# Copyright (c) 2017-2018 Ashley Whetter
-# Copyright (c) 2017 Łukasz Rogalski
-# Copyright (c) 2017 rr-
-# Copyright (c) 2018 Bryce Guinta
-# Copyright (c) 2018 brendanator
-# Copyright (c) 2018 Nick Drozd
-# Copyright (c) 2018 HoverHell
-
-# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
-# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-# pylint: disable=too-many-lines; https://github.com/PyCQA/astroid/issues/465
-
-"""Module for some node classes. More nodes in scoped_nodes.py
-"""
-
-import abc
-import builtins as builtins_mod
-import itertools
-import pprint
-import sys
-from functools import lru_cache, singledispatch as _singledispatch
-
-from astroid import as_string
-from astroid import bases
-from astroid import context as contextmod
-from astroid import decorators
-from astroid import exceptions
-from astroid import manager
-from astroid import mixins
-from astroid import util
-
-
-BUILTINS = builtins_mod.__name__
-MANAGER = manager.AstroidManager()
-PY38 = sys.version_info[:2] >= (3, 8)
-
-
-def _is_const(value):
- return isinstance(value, tuple(CONST_CLS))
-
-
-@decorators.raise_if_nothing_inferred
-def unpack_infer(stmt, context=None):
- """recursively generate nodes inferred by the given statement.
- If the inferred value is a list or a tuple, recurse on the elements
- """
- if isinstance(stmt, (List, Tuple)):
- for elt in stmt.elts:
- if elt is util.Uninferable:
- yield elt
- continue
- yield from unpack_infer(elt, context)
- return dict(node=stmt, context=context)
- # if inferred is a final node, return it and stop
- inferred = next(stmt.infer(context))
- if inferred is stmt:
- yield inferred
- return dict(node=stmt, context=context)
- # else, infer recursively, except Uninferable object that should be returned as is
- for inferred in stmt.infer(context):
- if inferred is util.Uninferable:
- yield inferred
- else:
- yield from unpack_infer(inferred, context)
-
- return dict(node=stmt, context=context)
-
-
-def are_exclusive(
- stmt1, stmt2, exceptions=None
-): # pylint: disable=redefined-outer-name
- """return true if the two given statements are mutually exclusive
-
- `exceptions` may be a list of exception names. If specified, discard If
- branches and check one of the statement is in an exception handler catching
- one of the given exceptions.
-
- algorithm :
- 1) index stmt1's parents
- 2) climb among stmt2's parents until we find a common parent
- 3) if the common parent is a If or TryExcept statement, look if nodes are
- in exclusive branches
- """
- # index stmt1's parents
- stmt1_parents = {}
- children = {}
- node = stmt1.parent
- previous = stmt1
- while node:
- stmt1_parents[node] = 1
- children[node] = previous
- previous = node
- node = node.parent
- # climb among stmt2's parents until we find a common parent
- node = stmt2.parent
- previous = stmt2
- while node:
- if node in stmt1_parents:
- # if the common parent is a If or TryExcept statement, look if
- # nodes are in exclusive branches
- if isinstance(node, If) and exceptions is None:
- if (
- node.locate_child(previous)[1]
- is not node.locate_child(children[node])[1]
- ):
- return True
- elif isinstance(node, TryExcept):
- c2attr, c2node = node.locate_child(previous)
- c1attr, c1node = node.locate_child(children[node])
- if c1node is not c2node:
- first_in_body_caught_by_handlers = (
- c2attr == "handlers"
- and c1attr == "body"
- and previous.catch(exceptions)
- )
- second_in_body_caught_by_handlers = (
- c2attr == "body"
- and c1attr == "handlers"
- and children[node].catch(exceptions)
- )
- first_in_else_other_in_handlers = (
- c2attr == "handlers" and c1attr == "orelse"
- )
- second_in_else_other_in_handlers = (
- c2attr == "orelse" and c1attr == "handlers"
- )
- if any(
- (
- first_in_body_caught_by_handlers,
- second_in_body_caught_by_handlers,
- first_in_else_other_in_handlers,
- second_in_else_other_in_handlers,
- )
- ):
- return True
- elif c2attr == "handlers" and c1attr == "handlers":
- return previous is not children[node]
- return False
- previous = node
- node = node.parent
- return False
-
-
-# getitem() helpers.
-
-_SLICE_SENTINEL = object()
-
-
-def _slice_value(index, context=None):
- """Get the value of the given slice index."""
-
- if isinstance(index, Const):
- if isinstance(index.value, (int, type(None))):
- return index.value
- elif index is None:
- return None
- else:
- # Try to infer what the index actually is.
- # Since we can't return all the possible values,
- # we'll stop at the first possible value.
- try:
- inferred = next(index.infer(context=context))
- except exceptions.InferenceError:
- pass
- else:
- if isinstance(inferred, Const):
- if isinstance(inferred.value, (int, type(None))):
- return inferred.value
-
- # Use a sentinel, because None can be a valid
- # value that this function can return,
- # as it is the case for unspecified bounds.
- return _SLICE_SENTINEL
-
-
-def _infer_slice(node, context=None):
- lower = _slice_value(node.lower, context)
- upper = _slice_value(node.upper, context)
- step = _slice_value(node.step, context)
- if all(elem is not _SLICE_SENTINEL for elem in (lower, upper, step)):
- return slice(lower, upper, step)
-
- raise exceptions.AstroidTypeError(
- message="Could not infer slice used in subscript",
- node=node,
- index=node.parent,
- context=context,
- )
-
-
-def _container_getitem(instance, elts, index, context=None):
- """Get a slice or an item, using the given *index*, for the given sequence."""
- try:
- if isinstance(index, Slice):
- index_slice = _infer_slice(index, context=context)
- new_cls = instance.__class__()
- new_cls.elts = elts[index_slice]
- new_cls.parent = instance.parent
- return new_cls
- if isinstance(index, Const):
- return elts[index.value]
- except IndexError as exc:
- raise exceptions.AstroidIndexError(
- message="Index {index!s} out of range",
- node=instance,
- index=index,
- context=context,
- ) from exc
- except TypeError as exc:
- raise exceptions.AstroidTypeError(
- message="Type error {error!r}", node=instance, index=index, context=context
- ) from exc
-
- raise exceptions.AstroidTypeError("Could not use %s as subscript index" % index)
-
-
-OP_PRECEDENCE = {
- op: precedence
- for precedence, ops in enumerate(
- [
- ["Lambda"], # lambda x: x + 1
- ["IfExp"], # 1 if True else 2
- ["or"],
- ["and"],
- ["not"],
- ["Compare"], # in, not in, is, is not, <, <=, >, >=, !=, ==
- ["|"],
- ["^"],
- ["&"],
- ["<<", ">>"],
- ["+", "-"],
- ["*", "@", "/", "//", "%"],
- ["UnaryOp"], # +, -, ~
- ["**"],
- ["Await"],
- ]
- )
- for op in ops
-}
-
-
-class NodeNG:
- """ A node of the new Abstract Syntax Tree (AST).
-
- This is the base class for all Astroid node classes.
- """
-
- is_statement = False
- """Whether this node indicates a statement.
-
- :type: bool
- """
- optional_assign = False # True for For (and for Comprehension if py <3.0)
- """Whether this node optionally assigns a variable.
-
- This is for loop assignments because loop won't necessarily perform an
- assignment if the loop has no iterations.
- This is also the case from comprehensions in Python 2.
-
- :type: bool
- """
- is_function = False # True for FunctionDef nodes
- """Whether this node indicates a function.
-
- :type: bool
- """
- is_lambda = False
- # Attributes below are set by the builder module or by raw factories
- lineno = None
- """The line that this node appears on in the source code.
-
- :type: int or None
- """
- col_offset = None
- """The column that this node appears on in the source code.
-
- :type: int or None
- """
- parent = None
- """The parent node in the syntax tree.
-
- :type: NodeNG or None
- """
- _astroid_fields = ()
- """Node attributes that contain child nodes.
-
- This is redefined in most concrete classes.
-
- :type: tuple(str)
- """
- _other_fields = ()
- """Node attributes that do not contain child nodes.
-
- :type: tuple(str)
- """
- _other_other_fields = ()
- """Attributes that contain AST-dependent fields.
-
- :type: tuple(str)
- """
- # instance specific inference function infer(node, context)
- _explicit_inference = None
-
- def __init__(self, lineno=None, col_offset=None, parent=None):
- """
- :param lineno: The line that this node appears on in the source code.
- :type lineno: int or None
-
- :param col_offset: The column that this node appears on in the
- source code.
- :type col_offset: int or None
-
- :param parent: The parent node in the syntax tree.
- :type parent: NodeNG or None
- """
- self.lineno = lineno
- self.col_offset = col_offset
- self.parent = parent
-
- def infer(self, context=None, **kwargs):
- """Get a generator of the inferred values.
-
- This is the main entry point to the inference system.
-
- .. seealso:: :ref:`inference`
-
- If the instance has some explicit inference function set, it will be
- called instead of the default interface.
-
- :returns: The inferred values.
- :rtype: iterable
- """
- if context is not None:
- context = context.extra_context.get(self, context)
- if self._explicit_inference is not None:
- # explicit_inference is not bound, give it self explicitly
- try:
- # pylint: disable=not-callable
- return self._explicit_inference(self, context, **kwargs)
- except exceptions.UseInferenceDefault:
- pass
-
- if not context:
- return self._infer(context, **kwargs)
-
- key = (self, context.lookupname, context.callcontext, context.boundnode)
- if key in context.inferred:
- return iter(context.inferred[key])
-
- gen = context.cache_generator(key, self._infer(context, **kwargs))
- return util.limit_inference(gen, MANAGER.max_inferable_values)
-
- def _repr_name(self):
- """Get a name for nice representation.
-
- This is either :attr:`name`, :attr:`attrname`, or the empty string.
-
- :returns: The nice name.
- :rtype: str
- """
- names = {"name", "attrname"}
- if all(name not in self._astroid_fields for name in names):
- return getattr(self, "name", getattr(self, "attrname", ""))
- return ""
-
- def __str__(self):
- rname = self._repr_name()
- cname = type(self).__name__
- if rname:
- string = "%(cname)s.%(rname)s(%(fields)s)"
- alignment = len(cname) + len(rname) + 2
- else:
- string = "%(cname)s(%(fields)s)"
- alignment = len(cname) + 1
- result = []
- for field in self._other_fields + self._astroid_fields:
- value = getattr(self, field)
- width = 80 - len(field) - alignment
- lines = pprint.pformat(value, indent=2, width=width).splitlines(True)
-
- inner = [lines[0]]
- for line in lines[1:]:
- inner.append(" " * alignment + line)
- result.append("%s=%s" % (field, "".join(inner)))
-
- return string % {
- "cname": cname,
- "rname": rname,
- "fields": (",\n" + " " * alignment).join(result),
- }
-
- def __repr__(self):
- rname = self._repr_name()
- if rname:
- string = "<%(cname)s.%(rname)s l.%(lineno)s at 0x%(id)x>"
- else:
- string = "<%(cname)s l.%(lineno)s at 0x%(id)x>"
- return string % {
- "cname": type(self).__name__,
- "rname": rname,
- "lineno": self.fromlineno,
- "id": id(self),
- }
-
- def accept(self, visitor):
- """Visit this node using the given visitor."""
- func = getattr(visitor, "visit_" + self.__class__.__name__.lower())
- return func(self)
-
- def get_children(self):
- """Get the child nodes below this node.
-
- :returns: The children.
- :rtype: iterable(NodeNG)
- """
- for field in self._astroid_fields:
- attr = getattr(self, field)
- if attr is None:
- continue
- if isinstance(attr, (list, tuple)):
- yield from attr
- else:
- yield attr
-
- def last_child(self):
- """An optimized version of list(get_children())[-1]
-
- :returns: The last child, or None if no children exist.
- :rtype: NodeNG or None
- """
- for field in self._astroid_fields[::-1]:
- attr = getattr(self, field)
- if not attr: # None or empty listy / tuple
- continue
- if isinstance(attr, (list, tuple)):
- return attr[-1]
-
- return attr
- return None
-
- def parent_of(self, node):
- """Check if this node is the parent of the given node.
-
- :param node: The node to check if it is the child.
- :type node: NodeNG
-
- :returns: True if this node is the parent of the given node,
- False otherwise.
- :rtype: bool
- """
- parent = node.parent
- while parent is not None:
- if self is parent:
- return True
- parent = parent.parent
- return False
-
- def statement(self):
- """The first parent node, including self, marked as statement node.
-
- :returns: The first parent statement.
- :rtype: NodeNG
- """
- if self.is_statement:
- return self
- return self.parent.statement()
-
- def frame(self):
- """The first parent frame node.
-
- A frame node is a :class:`Module`, :class:`FunctionDef`,
- or :class:`ClassDef`.
-
- :returns: The first parent frame node.
- :rtype: Module or FunctionDef or ClassDef
- """
- return self.parent.frame()
-
- def scope(self):
- """The first parent node defining a new scope.
-
- :returns: The first parent scope node.
- :rtype: Module or FunctionDef or ClassDef or Lambda or GenExpr
- """
- if self.parent:
- return self.parent.scope()
- return None
-
- def root(self):
- """Return the root node of the syntax tree.
-
- :returns: The root node.
- :rtype: Module
- """
- if self.parent:
- return self.parent.root()
- return self
-
- def child_sequence(self, child):
- """Search for the sequence that contains this child.
-
- :param child: The child node to search sequences for.
- :type child: NodeNG
-
- :returns: The sequence containing the given child node.
- :rtype: iterable(NodeNG)
-
- :raises AstroidError: If no sequence could be found that contains
- the given child.
- """
- for field in self._astroid_fields:
- node_or_sequence = getattr(self, field)
- if node_or_sequence is child:
- return [node_or_sequence]
- # /!\ compiler.ast Nodes have an __iter__ walking over child nodes
- if (
- isinstance(node_or_sequence, (tuple, list))
- and child in node_or_sequence
- ):
- return node_or_sequence
-
- msg = "Could not find %s in %s's children"
- raise exceptions.AstroidError(msg % (repr(child), repr(self)))
-
- def locate_child(self, child):
- """Find the field of this node that contains the given child.
-
- :param child: The child node to search fields for.
- :type child: NodeNG
-
- :returns: A tuple of the name of the field that contains the child,
- and the sequence or node that contains the child node.
- :rtype: tuple(str, iterable(NodeNG) or NodeNG)
-
- :raises AstroidError: If no field could be found that contains
- the given child.
- """
- for field in self._astroid_fields:
- node_or_sequence = getattr(self, field)
- # /!\ compiler.ast Nodes have an __iter__ walking over child nodes
- if child is node_or_sequence:
- return field, child
- if (
- isinstance(node_or_sequence, (tuple, list))
- and child in node_or_sequence
- ):
- return field, node_or_sequence
- msg = "Could not find %s in %s's children"
- raise exceptions.AstroidError(msg % (repr(child), repr(self)))
-
- # FIXME : should we merge child_sequence and locate_child ? locate_child
- # is only used in are_exclusive, child_sequence one time in pylint.
-
- def next_sibling(self):
- """The next sibling statement node.
-
- :returns: The next sibling statement node.
- :rtype: NodeNG or None
- """
- return self.parent.next_sibling()
-
- def previous_sibling(self):
- """The previous sibling statement.
-
- :returns: The previous sibling statement node.
- :rtype: NodeNG or None
- """
- return self.parent.previous_sibling()
-
- # these are lazy because they're relatively expensive to compute for every
- # single node, and they rarely get looked at
-
- @decorators.cachedproperty
- def fromlineno(self):
- """The first line that this node appears on in the source code.
-
- :type: int or None
- """
- if self.lineno is None:
- return self._fixed_source_line()
-
- return self.lineno
-
- @decorators.cachedproperty
- def tolineno(self):
- """The last line that this node appears on in the source code.
-
- :type: int or None
- """
- if not self._astroid_fields:
- # can't have children
- lastchild = None
- else:
- lastchild = self.last_child()
- if lastchild is None:
- return self.fromlineno
-
- return lastchild.tolineno
-
- def _fixed_source_line(self):
- """Attempt to find the line that this node appears on.
-
- We need this method since not all nodes have :attr:`lineno` set.
-
- :returns: The line number of this node,
- or None if this could not be determined.
- :rtype: int or None
- """
- line = self.lineno
- _node = self
- try:
- while line is None:
- _node = next(_node.get_children())
- line = _node.lineno
- except StopIteration:
- _node = self.parent
- while _node and line is None:
- line = _node.lineno
- _node = _node.parent
- return line
-
- def block_range(self, lineno):
- """Get a range from the given line number to where this node ends.
-
- :param lineno: The line number to start the range at.
- :type lineno: int
-
- :returns: The range of line numbers that this node belongs to,
- starting at the given line number.
- :rtype: tuple(int, int or None)
- """
- return lineno, self.tolineno
-
- def set_local(self, name, stmt):
- """Define that the given name is declared in the given statement node.
-
- This definition is stored on the parent scope node.
-
- .. seealso:: :meth:`scope`
-
- :param name: The name that is being defined.
- :type name: str
-
- :param stmt: The statement that defines the given name.
- :type stmt: NodeNG
- """
- self.parent.set_local(name, stmt)
-
- def nodes_of_class(self, klass, skip_klass=None):
- """Get the nodes (including this one or below) of the given types.
-
- :param klass: The types of node to search for.
- :type klass: builtins.type or tuple(builtins.type)
-
- :param skip_klass: The types of node to ignore. This is useful to ignore
- subclasses of :attr:`klass`.
- :type skip_klass: builtins.type or tuple(builtins.type)
-
- :returns: The node of the given types.
- :rtype: iterable(NodeNG)
- """
- if isinstance(self, klass):
- yield self
-
- if skip_klass is None:
- for child_node in self.get_children():
- yield from child_node.nodes_of_class(klass, skip_klass)
-
- return
-
- for child_node in self.get_children():
- if isinstance(child_node, skip_klass):
- continue
- yield from child_node.nodes_of_class(klass, skip_klass)
-
- @decorators.cached
- def _get_assign_nodes(self):
- return []
-
- def _get_name_nodes(self):
- for child_node in self.get_children():
- yield from child_node._get_name_nodes()
-
- def _get_return_nodes_skip_functions(self):
- yield from ()
-
- def _get_yield_nodes_skip_lambdas(self):
- yield from ()
-
- def _infer_name(self, frame, name):
- # overridden for ImportFrom, Import, Global, TryExcept and Arguments
- pass
-
- def _infer(self, context=None):
- """we don't know how to resolve a statement by default"""
- # this method is overridden by most concrete classes
- raise exceptions.InferenceError(
- "No inference function for {node!r}.", node=self, context=context
- )
-
- def inferred(self):
- """Get a list of the inferred values.
-
- .. seealso:: :ref:`inference`
-
- :returns: The inferred values.
- :rtype: list
- """
- return list(self.infer())
-
- def instantiate_class(self):
- """Instantiate an instance of the defined class.
-
- .. note::
-
- On anything other than a :class:`ClassDef` this will return self.
-
- :returns: An instance of the defined class.
- :rtype: object
- """
- return self
-
- def has_base(self, node):
- """Check if this node inherits from the given type.
-
- :param node: The node defining the base to look for.
- Usually this is a :class:`Name` node.
- :type node: NodeNG
- """
- return False
-
- def callable(self):
- """Whether this node defines something that is callable.
-
- :returns: True if this defines something that is callable,
- False otherwise.
- :rtype: bool
- """
- return False
-
- def eq(self, value):
- return False
-
- def as_string(self):
- """Get the source code that this node represents.
-
- :returns: The source code.
- :rtype: str
- """
- return as_string.to_code(self)
-
- def repr_tree(
- self,
- ids=False,
- include_linenos=False,
- ast_state=False,
- indent=" ",
- max_depth=0,
- max_width=80,
- ):
- """Get a string representation of the AST from this node.
-
- :param ids: If true, includes the ids with the node type names.
- :type ids: bool
-
- :param include_linenos: If true, includes the line numbers and
- column offsets.
- :type include_linenos: bool
-
- :param ast_state: If true, includes information derived from
- the whole AST like local and global variables.
- :type ast_state: bool
-
- :param indent: A string to use to indent the output string.
- :type indent: str
-
- :param max_depth: If set to a positive integer, won't return
- nodes deeper than max_depth in the string.
- :type max_depth: int
-
- :param max_width: Attempt to format the output string to stay
- within this number of characters, but can exceed it under some
- circumstances. Only positive integer values are valid, the default is 80.
- :type max_width: int
-
- :returns: The string representation of the AST.
- :rtype: str
- """
- # pylint: disable=too-many-statements
- @_singledispatch
- def _repr_tree(node, result, done, cur_indent="", depth=1):
- """Outputs a representation of a non-tuple/list, non-node that's
- contained within an AST, including strings.
- """
- lines = pprint.pformat(
- node, width=max(max_width - len(cur_indent), 1)
- ).splitlines(True)
- result.append(lines[0])
- result.extend([cur_indent + line for line in lines[1:]])
- return len(lines) != 1
-
- # pylint: disable=unused-variable; doesn't understand singledispatch
- @_repr_tree.register(tuple)
- @_repr_tree.register(list)
- def _repr_seq(node, result, done, cur_indent="", depth=1):
- """Outputs a representation of a sequence that's contained within an AST."""
- cur_indent += indent
- result.append("[")
- if not node:
- broken = False
- elif len(node) == 1:
- broken = _repr_tree(node[0], result, done, cur_indent, depth)
- elif len(node) == 2:
- broken = _repr_tree(node[0], result, done, cur_indent, depth)
- if not broken:
- result.append(", ")
- else:
- result.append(",\n")
- result.append(cur_indent)
- broken = _repr_tree(node[1], result, done, cur_indent, depth) or broken
- else:
- result.append("\n")
- result.append(cur_indent)
- for child in node[:-1]:
- _repr_tree(child, result, done, cur_indent, depth)
- result.append(",\n")
- result.append(cur_indent)
- _repr_tree(node[-1], result, done, cur_indent, depth)
- broken = True
- result.append("]")
- return broken
-
- # pylint: disable=unused-variable; doesn't understand singledispatch
- @_repr_tree.register(NodeNG)
- def _repr_node(node, result, done, cur_indent="", depth=1):
- """Outputs a strings representation of an astroid node."""
- if node in done:
- result.append(
- indent
- + " max_depth:
- result.append("...")
- return False
- depth += 1
- cur_indent += indent
- if ids:
- result.append("%s<0x%x>(\n" % (type(node).__name__, id(node)))
- else:
- result.append("%s(" % type(node).__name__)
- fields = []
- if include_linenos:
- fields.extend(("lineno", "col_offset"))
- fields.extend(node._other_fields)
- fields.extend(node._astroid_fields)
- if ast_state:
- fields.extend(node._other_other_fields)
- if not fields:
- broken = False
- elif len(fields) == 1:
- result.append("%s=" % fields[0])
- broken = _repr_tree(
- getattr(node, fields[0]), result, done, cur_indent, depth
- )
- else:
- result.append("\n")
- result.append(cur_indent)
- for field in fields[:-1]:
- result.append("%s=" % field)
- _repr_tree(getattr(node, field), result, done, cur_indent, depth)
- result.append(",\n")
- result.append(cur_indent)
- result.append("%s=" % fields[-1])
- _repr_tree(getattr(node, fields[-1]), result, done, cur_indent, depth)
- broken = True
- result.append(")")
- return broken
-
- result = []
- _repr_tree(self, result, set())
- return "".join(result)
-
- def bool_value(self):
- """Determine the boolean value of this node.
-
- The boolean value of a node can have three
- possible values:
-
- * False: For instance, empty data structures,
- False, empty strings, instances which return
- explicitly False from the __nonzero__ / __bool__
- method.
- * True: Most of constructs are True by default:
- classes, functions, modules etc
- * Uninferable: The inference engine is uncertain of the
- node's value.
-
- :returns: The boolean value of this node.
- :rtype: bool or Uninferable
- """
- return util.Uninferable
-
- def op_precedence(self):
- # Look up by class name or default to highest precedence
- return OP_PRECEDENCE.get(self.__class__.__name__, len(OP_PRECEDENCE))
-
- def op_left_associative(self):
- # Everything is left associative except `**` and IfExp
- return True
-
-
-class Statement(NodeNG):
- """Statement node adding a few attributes"""
-
- is_statement = True
- """Whether this node indicates a statement.
-
- :type: bool
- """
-
- def next_sibling(self):
- """The next sibling statement node.
-
- :returns: The next sibling statement node.
- :rtype: NodeNG or None
- """
- stmts = self.parent.child_sequence(self)
- index = stmts.index(self)
- try:
- return stmts[index + 1]
- except IndexError:
- pass
-
- def previous_sibling(self):
- """The previous sibling statement.
-
- :returns: The previous sibling statement node.
- :rtype: NodeNG or None
- """
- stmts = self.parent.child_sequence(self)
- index = stmts.index(self)
- if index >= 1:
- return stmts[index - 1]
- return None
-
-
-class _BaseContainer(
- mixins.ParentAssignTypeMixin, NodeNG, bases.Instance, metaclass=abc.ABCMeta
-):
- """Base class for Set, FrozenSet, Tuple and List."""
-
- _astroid_fields = ("elts",)
-
- def __init__(self, lineno=None, col_offset=None, parent=None):
- """
- :param lineno: The line that this node appears on in the source code.
- :type lineno: int or None
-
- :param col_offset: The column that this node appears on in the
- source code.
- :type col_offset: int or None
-
- :param parent: The parent node in the syntax tree.
- :type parent: NodeNG or None
- """
- self.elts = []
- """The elements in the node.
-
- :type: list(NodeNG)
- """
-
- super(_BaseContainer, self).__init__(lineno, col_offset, parent)
-
- def postinit(self, elts):
- """Do some setup after initialisation.
-
- :param elts: The list of elements the that node contains.
- :type elts: list(NodeNG)
- """
- self.elts = elts
-
- @classmethod
- def from_elements(cls, elts=None):
- """Create a node of this type from the given list of elements.
-
- :param elts: The list of elements that the node should contain.
- :type elts: list(NodeNG)
-
- :returns: A new node containing the given elements.
- :rtype: NodeNG
- """
- node = cls()
- if elts is None:
- node.elts = []
- else:
- node.elts = [const_factory(e) if _is_const(e) else e for e in elts]
- return node
-
- def itered(self):
- """An iterator over the elements this node contains.
-
- :returns: The contents of this node.
- :rtype: iterable(NodeNG)
- """
- return self.elts
-
- def bool_value(self):
- """Determine the boolean value of this node.
-
- :returns: The boolean value of this node.
- :rtype: bool or Uninferable
- """
- return bool(self.elts)
-
- @abc.abstractmethod
- def pytype(self):
- """Get the name of the type that this node represents.
-
- :returns: The name of the type.
- :rtype: str
- """
-
- def get_children(self):
- yield from self.elts
-
-
-class LookupMixIn:
- """Mixin to look up a name in the right scope."""
-
- @lru_cache(maxsize=None)
- def lookup(self, name):
- """Lookup where the given variable is assigned.
-
- The lookup starts from self's scope. If self is not a frame itself
- and the name is found in the inner frame locals, statements will be
- filtered to remove ignorable statements according to self's location.
-
- :param name: The name of the variable to find assignments for.
- :type name: str
-
- :returns: The scope node and the list of assignments associated to the
- given name according to the scope where it has been found (locals,
- globals or builtin).
- :rtype: tuple(str, list(NodeNG))
- """
- return self.scope().scope_lookup(self, name)
-
- def ilookup(self, name):
- """Lookup the inferred values of the given variable.
-
- :param name: The variable name to find values for.
- :type name: str
-
- :returns: The inferred values of the statements returned from
- :meth:`lookup`.
- :rtype: iterable
- """
- frame, stmts = self.lookup(name)
- context = contextmod.InferenceContext()
- return bases._infer_stmts(stmts, context, frame)
-
- def _get_filtered_node_statements(self, nodes):
- statements = [(node, node.statement()) for node in nodes]
- # Next we check if we have ExceptHandlers that are parent
- # of the underlying variable, in which case the last one survives
- if len(statements) > 1 and all(
- isinstance(stmt, ExceptHandler) for _, stmt in statements
- ):
- statements = [
- (node, stmt) for node, stmt in statements if stmt.parent_of(self)
- ]
- return statements
-
- def _filter_stmts(self, stmts, frame, offset):
- """Filter the given list of statements to remove ignorable statements.
-
- If self is not a frame itself and the name is found in the inner
- frame locals, statements will be filtered to remove ignorable
- statements according to self's location.
-
- :param stmts: The statements to filter.
- :type stmts: list(NodeNG)
-
- :param frame: The frame that all of the given statements belong to.
- :type frame: NodeNG
-
- :param offset: The line offset to filter statements up to.
- :type offset: int
-
- :returns: The filtered statements.
- :rtype: list(NodeNG)
- """
- # if offset == -1, my actual frame is not the inner frame but its parent
- #
- # class A(B): pass
- #
- # we need this to resolve B correctly
- if offset == -1:
- myframe = self.frame().parent.frame()
- else:
- myframe = self.frame()
- # If the frame of this node is the same as the statement
- # of this node, then the node is part of a class or
- # a function definition and the frame of this node should be the
- # the upper frame, not the frame of the definition.
- # For more information why this is important,
- # see Pylint issue #295.
- # For example, for 'b', the statement is the same
- # as the frame / scope:
- #
- # def test(b=1):
- # ...
-
- if self.statement() is myframe and myframe.parent:
- myframe = myframe.parent.frame()
- mystmt = self.statement()
- # line filtering if we are in the same frame
- #
- # take care node may be missing lineno information (this is the case for
- # nodes inserted for living objects)
- if myframe is frame and mystmt.fromlineno is not None:
- assert mystmt.fromlineno is not None, mystmt
- mylineno = mystmt.fromlineno + offset
- else:
- # disabling lineno filtering
- mylineno = 0
-
- _stmts = []
- _stmt_parents = []
- statements = self._get_filtered_node_statements(stmts)
-
- for node, stmt in statements:
- # line filtering is on and we have reached our location, break
- if stmt.fromlineno > mylineno > 0:
- break
- # Ignore decorators with the same name as the
- # decorated function
- # Fixes issue #375
- if mystmt is stmt and is_from_decorator(self):
- continue
- assert hasattr(node, "assign_type"), (
- node,
- node.scope(),
- node.scope().locals,
- )
- assign_type = node.assign_type()
- if node.has_base(self):
- break
-
- _stmts, done = assign_type._get_filtered_stmts(self, node, _stmts, mystmt)
- if done:
- break
-
- optional_assign = assign_type.optional_assign
- if optional_assign and assign_type.parent_of(self):
- # we are inside a loop, loop var assignment is hiding previous
- # assignment
- _stmts = [node]
- _stmt_parents = [stmt.parent]
- continue
-
- if isinstance(assign_type, NamedExpr):
- _stmts = [node]
- continue
-
- # XXX comment various branches below!!!
- try:
- pindex = _stmt_parents.index(stmt.parent)
- except ValueError:
- pass
- else:
- # we got a parent index, this means the currently visited node
- # is at the same block level as a previously visited node
- if _stmts[pindex].assign_type().parent_of(assign_type):
- # both statements are not at the same block level
- continue
- # if currently visited node is following previously considered
- # assignment and both are not exclusive, we can drop the
- # previous one. For instance in the following code ::
- #
- # if a:
- # x = 1
- # else:
- # x = 2
- # print x
- #
- # we can't remove neither x = 1 nor x = 2 when looking for 'x'
- # of 'print x'; while in the following ::
- #
- # x = 1
- # x = 2
- # print x
- #
- # we can remove x = 1 when we see x = 2
- #
- # moreover, on loop assignment types, assignment won't
- # necessarily be done if the loop has no iteration, so we don't
- # want to clear previous assignments if any (hence the test on
- # optional_assign)
- if not (optional_assign or are_exclusive(_stmts[pindex], node)):
- if (
- # In case of partial function node, if the statement is different
- # from the origin function then it can be deleted otherwise it should
- # remain to be able to correctly infer the call to origin function.
- not node.is_function
- or node.qname() != "PartialFunction"
- or node.name != _stmts[pindex].name
- ):
- del _stmt_parents[pindex]
- del _stmts[pindex]
- if isinstance(node, AssignName):
- if not optional_assign and stmt.parent is mystmt.parent:
- _stmts = []
- _stmt_parents = []
- elif isinstance(node, DelName):
- _stmts = []
- _stmt_parents = []
- continue
- if not are_exclusive(self, node):
- _stmts.append(node)
- _stmt_parents.append(stmt.parent)
- return _stmts
-
-
-# Name classes
-
-
-class AssignName(
- mixins.NoChildrenMixin, LookupMixIn, mixins.ParentAssignTypeMixin, NodeNG
-):
- """Variation of :class:`ast.Assign` representing assignment to a name.
-
- An :class:`AssignName` is the name of something that is assigned to.
- This includes variables defined in a function signature or in a loop.
-
- >>> node = astroid.extract_node('variable = range(10)')
- >>> node
-
- >>> list(node.get_children())
- [, ]
- >>> list(node.get_children())[0].as_string()
- 'variable'
- """
-
- _other_fields = ("name",)
-
- def __init__(self, name=None, lineno=None, col_offset=None, parent=None):
- """
- :param name: The name that is assigned to.
- :type name: str or None
-
- :param lineno: The line that this node appears on in the source code.
- :type lineno: int or None
-
- :param col_offset: The column that this node appears on in the
- source code.
- :type col_offset: int or None
-
- :param parent: The parent node in the syntax tree.
- :type parent: NodeNG or None
- """
- self.name = name
- """The name that is assigned to.
-
- :type: str or None
- """
-
- super(AssignName, self).__init__(lineno, col_offset, parent)
-
-
-class DelName(
- mixins.NoChildrenMixin, LookupMixIn, mixins.ParentAssignTypeMixin, NodeNG
-):
- """Variation of :class:`ast.Delete` representing deletion of a name.
-
- A :class:`DelName` is the name of something that is deleted.
-
- >>> node = astroid.extract_node("del variable #@")
- >>> list(node.get_children())
- []
- >>> list(node.get_children())[0].as_string()
- 'variable'
- """
-
- _other_fields = ("name",)
-
- def __init__(self, name=None, lineno=None, col_offset=None, parent=None):
- """
- :param name: The name that is being deleted.
- :type name: str or None
-
- :param lineno: The line that this node appears on in the source code.
- :type lineno: int or None
-
- :param col_offset: The column that this node appears on in the
- source code.
- :type col_offset: int or None
-
- :param parent: The parent node in the syntax tree.
- :type parent: NodeNG or None
- """
- self.name = name
- """The name that is being deleted.
-
- :type: str or None
- """
-
- super(DelName, self).__init__(lineno, col_offset, parent)
-
-
-class Name(mixins.NoChildrenMixin, LookupMixIn, NodeNG):
- """Class representing an :class:`ast.Name` node.
-
- A :class:`Name` node is something that is named, but not covered by
- :class:`AssignName` or :class:`DelName`.
-
- >>> node = astroid.extract_node('range(10)')
- >>> node
-