From d859f287d520d56fa209e6e9278c3f2b2653a591 Mon Sep 17 00:00:00 2001
From: Dennis Eichhorn
Date: Sat, 19 Feb 2022 13:57:39 +0100
Subject: [PATCH] fix name
---
Account/Account.php | 6 +-
Account/AccountManager.php | 6 +-
Account/AccountStatus.php | 6 +-
Account/AccountType.php | 6 +-
Account/Group.php | 6 +-
Account/GroupStatus.php | 6 +-
Account/NullAccount.php | 6 +-
Account/NullGroup.php | 6 +-
Account/PermissionAbstract.php | 6 +-
Account/PermissionHandlingTrait.php | 6 +-
Account/PermissionOwner.php | 6 +-
Account/PermissionType.php | 6 +-
Ai/NeuralNetwork/Neuron.php | 6 +-
Ai/Ocr/BasicOcr.php | 6 +-
Ai/Ocr/Tesseract/TesseractOcr.php | 26 +--
Algorithm/Clustering/Kmeans.php | 6 +-
Algorithm/Clustering/Point.php | 6 +-
Algorithm/Clustering/PointInterface.php | 6 +-
Algorithm/CoinMatching/MinimumCoinProblem.php | 6 +-
Algorithm/Graph/DependencyResolver.php | 6 +-
Algorithm/JobScheduling/Job.php | 6 +-
Algorithm/JobScheduling/JobInterface.php | 6 +-
Algorithm/JobScheduling/Weighted.php | 6 +-
Algorithm/Knapsack/Backpack.php | 6 +-
Algorithm/Knapsack/BackpackInterface.php | 6 +-
Algorithm/Knapsack/Bounded.php | 6 +-
Algorithm/Knapsack/Continuous.php | 6 +-
Algorithm/Knapsack/Item.php | 6 +-
Algorithm/Knapsack/ItemInterface.php | 6 +-
Algorithm/Maze/MazeGenerator.php | 6 +-
Algorithm/PathFinding/AStar.php | 6 +-
Algorithm/PathFinding/AStarNode.php | 6 +-
Algorithm/PathFinding/Grid.php | 6 +-
Algorithm/PathFinding/Heuristic.php | 6 +-
Algorithm/PathFinding/HeuristicType.php | 6 +-
Algorithm/PathFinding/JumpPointNode.php | 6 +-
Algorithm/PathFinding/JumpPointSearch.php | 6 +-
Algorithm/PathFinding/MovementType.php | 6 +-
Algorithm/PathFinding/Node.php | 6 +-
Algorithm/PathFinding/NullJumpPointNode.php | 6 +-
Algorithm/PathFinding/NullNode.php | 6 +-
Algorithm/PathFinding/Path.php | 6 +-
Algorithm/PathFinding/PathFinderInterface.php | 6 +-
Algorithm/Sort/BitonicSort.php | 6 +-
Algorithm/Sort/BubbleSort.php | 6 +-
Algorithm/Sort/BucketSort.php | 6 +-
Algorithm/Sort/CocktailShakerSort.php | 6 +-
Algorithm/Sort/CombSort.php | 6 +-
Algorithm/Sort/CycleSort.php | 6 +-
Algorithm/Sort/GnomeSort.php | 6 +-
Algorithm/Sort/HeapSort.php | 6 +-
Algorithm/Sort/InsertionSort.php | 6 +-
Algorithm/Sort/IntroSort.php | 6 +-
Algorithm/Sort/MergeSort.php | 6 +-
Algorithm/Sort/OddEvenSort.php | 6 +-
Algorithm/Sort/PancakeSort.php | 6 +-
Algorithm/Sort/QuickSort.php | 6 +-
Algorithm/Sort/SelectionSort.php | 6 +-
Algorithm/Sort/ShellSort.php | 6 +-
Algorithm/Sort/SortInterface.php | 6 +-
Algorithm/Sort/SortOrder.php | 6 +-
Algorithm/Sort/SortableInterface.php | 6 +-
Algorithm/Sort/StoogeSort.php | 6 +-
Algorithm/Sort/TimSort.php | 6 +-
Application/ApplicationAbstract.php | 6 +-
Application/ApplicationInfo.php | 6 +-
Application/ApplicationManager.php | 6 +-
Application/ApplicationStatus.php | 6 +-
Application/InstallerAbstract.php | 6 +-
Application/StatusAbstract.php | 6 +-
Application/UninstallerAbstract.php | 6 +-
Application/infoLayout.json | 0
Asset/AssetManager.php | 6 +-
Asset/AssetType.php | 6 +-
Auth/Auth.php | 6 +-
Auth/LoginReturnType.php | 6 +-
AutoloadException.php | 6 +-
Autoloader.php | 6 +-
Business/Finance/Depreciation.php | 6 +-
Business/Finance/FinanceFormulas.php | 6 +-
Business/Finance/Loan.php | 6 +-
Business/Finance/Lorenzkurve.php | 6 +-
Business/Finance/StockBonds.php | 6 +-
.../Marketing/ArticleCorrelationAffinity.php | 6 +-
Business/Marketing/CustomerValue.php | 6 +-
Business/Marketing/Metrics.php | 6 +-
Business/Marketing/NetPromoterScore.php | 6 +-
Business/Marketing/PageRank.php | 6 +-
Business/Programming/Metrics.php | 6 +-
Business/Sales/MarketShareEstimation.php | 6 +-
CODE_OF_CONDUCT.md | 0
CONTRIBUTING.md | 4 +-
Config/OptionsInterface.php | 6 +-
Config/OptionsTrait.php | 6 +-
Config/SettingsInterface.php | 6 +-
Contract/ArrayableInterface.php | 6 +-
Contract/RenderableInterface.php | 6 +-
Contract/StreamInterface.php | 6 +-
DataStorage/Cache/CachePool.php | 6 +-
DataStorage/Cache/CacheStatus.php | 6 +-
DataStorage/Cache/CacheType.php | 6 +-
.../Cache/Connection/CacheValueType.php | 6 +-
.../Cache/Connection/ConnectionAbstract.php | 6 +-
.../Cache/Connection/ConnectionFactory.php | 6 +-
.../Cache/Connection/ConnectionInterface.php | 6 +-
DataStorage/Cache/Connection/FileCache.php | 6 +-
DataStorage/Cache/Connection/MemCached.php | 6 +-
DataStorage/Cache/Connection/NullCache.php | 6 +-
DataStorage/Cache/Connection/RedisCache.php | 6 +-
.../InvalidConnectionConfigException.php | 6 +-
DataStorage/Cookie/CookieJar.php | 6 +-
DataStorage/DataMapperInterface.php | 6 +-
.../DataStorageConnectionInterface.php | 6 +-
DataStorage/DataStoragePoolInterface.php | 6 +-
DataStorage/Database/BuilderAbstract.php | 6 +-
.../Connection/ConnectionAbstract.php | 6 +-
.../Database/Connection/ConnectionFactory.php | 6 +-
.../Connection/ConnectionInterface.php | 6 +-
.../Database/Connection/MysqlConnection.php | 6 +-
.../Database/Connection/NullConnection.php | 6 +-
DataStorage/Database/Connection/NullPDO.php | 6 +-
.../Connection/PostgresConnection.php | 6 +-
.../Database/Connection/SQLiteConnection.php | 6 +-
.../Connection/SqlServerConnection.php | 6 +-
DataStorage/Database/DatabasePool.php | 6 +-
DataStorage/Database/DatabaseStatus.php | 6 +-
DataStorage/Database/DatabaseType.php | 6 +-
.../InvalidConnectionConfigException.php | 6 +-
.../InvalidDatabaseTypeException.php | 6 +-
.../Exception/InvalidMapperException.php | 6 +-
DataStorage/Database/GrammarAbstract.php | 6 +-
.../Database/Mapper/DataMapperAbstract.php | 6 +-
.../Database/Mapper/DataMapperFactory.php | 6 +-
DataStorage/Database/Mapper/DeleteMapper.php | 6 +-
DataStorage/Database/Mapper/MapperType.php | 6 +-
DataStorage/Database/Mapper/ReadMapper.php | 8 +-
DataStorage/Database/Mapper/UpdateMapper.php | 6 +-
DataStorage/Database/Mapper/WriteMapper.php | 6 +-
DataStorage/Database/Query/Builder.php | 6 +-
DataStorage/Database/Query/Column.php | 6 +-
DataStorage/Database/Query/Count.php | 6 +-
DataStorage/Database/Query/Expression.php | 6 +-
DataStorage/Database/Query/From.php | 6 +-
.../Database/Query/Grammar/Grammar.php | 8 +-
.../Query/Grammar/GrammarInterface.php | 6 +-
.../Database/Query/Grammar/MysqlGrammar.php | 6 +-
.../Database/Query/Grammar/OracleGrammar.php | 6 +-
.../Query/Grammar/PostgresGrammar.php | 6 +-
.../Database/Query/Grammar/SQLiteGrammar.php | 6 +-
.../Query/Grammar/SqlServerGrammar.php | 6 +-
DataStorage/Database/Query/Into.php | 6 +-
DataStorage/Database/Query/JoinType.php | 6 +-
DataStorage/Database/Query/OrderType.php | 6 +-
DataStorage/Database/Query/Parameter.php | 6 +-
DataStorage/Database/Query/QueryType.php | 6 +-
DataStorage/Database/Query/Select.php | 6 +-
DataStorage/Database/Query/Where.php | 6 +-
DataStorage/Database/RelationType.php | 6 +-
DataStorage/Database/Schema/Builder.php | 6 +-
DataStorage/Database/Schema/Field.php | 6 +-
.../Database/Schema/Grammar/Grammar.php | 6 +-
.../Schema/Grammar/GrammarInterface.php | 6 +-
.../Database/Schema/Grammar/MysqlGrammar.php | 6 +-
.../Database/Schema/Grammar/OracleGrammar.php | 6 +-
.../Schema/Grammar/PostgresGrammar.php | 6 +-
.../Database/Schema/Grammar/SQLiteGrammar.php | 6 +-
.../Schema/Grammar/SqlServerGrammar.php | 6 +-
DataStorage/Database/Schema/QueryType.php | 6 +-
DataStorage/Database/Schema/Table.php | 6 +-
DataStorage/Database/SchemaMapper.php | 6 +-
DataStorage/Database/tableDefinition.json | 0
DataStorage/LockException.php | 6 +-
DataStorage/Session/FileSession.php | 6 +-
DataStorage/Session/FileSessionHandler.php | 6 +-
DataStorage/Session/HttpSession.php | 6 +-
DataStorage/Session/README.md | 0
DataStorage/Session/SessionInterface.php | 6 +-
Dispatcher/Dispatcher.php | 6 +-
Dispatcher/DispatcherInterface.php | 6 +-
Event/EventManager.php | 6 +-
Image/Kernel.php | 128 +++++++++++++
Image/Skew.php | 168 ++++++++++++++++++
Image/Thresholding.php | 37 ++--
LICENSE.txt | 0
Localization/Defaults/City.php | 6 +-
Localization/Defaults/CityMapper.php | 6 +-
Localization/Defaults/Country.php | 6 +-
Localization/Defaults/CountryMapper.php | 6 +-
Localization/Defaults/Currency.php | 6 +-
Localization/Defaults/CurrencyMapper.php | 6 +-
Localization/Defaults/Definitions/de_DE.json | 0
Localization/Defaults/Definitions/en_US.json | 0
Localization/Defaults/Definitions/it_IT.json | 0
Localization/Defaults/Iban.php | 6 +-
Localization/Defaults/IbanMapper.php | 6 +-
Localization/Defaults/Language.php | 6 +-
Localization/Defaults/LanguageMapper.php | 6 +-
Localization/Defaults/NullCity.php | 6 +-
Localization/Defaults/NullCountry.php | 6 +-
Localization/Defaults/NullCurrency.php | 6 +-
Localization/Defaults/NullIban.php | 6 +-
Localization/Defaults/NullLanguage.php | 6 +-
Localization/ISO3166CharEnum.php | 6 +-
Localization/ISO3166NameEnum.php | 6 +-
Localization/ISO3166NumEnum.php | 6 +-
Localization/ISO3166TwoEnum.php | 6 +-
Localization/ISO4217CharEnum.php | 6 +-
Localization/ISO4217DecimalEnum.php | 6 +-
Localization/ISO4217Enum.php | 6 +-
Localization/ISO4217NumEnum.php | 6 +-
Localization/ISO4217SubUnitEnum.php | 6 +-
Localization/ISO4217SymbolEnum.php | 6 +-
Localization/ISO639Enum.php | 6 +-
Localization/ISO639x1Enum.php | 6 +-
Localization/ISO639x2Enum.php | 6 +-
Localization/ISO8601EnumArray.php | 6 +-
Localization/L11nManager.php | 6 +-
Localization/LegalEntityType.php | 6 +-
Localization/Localization.php | 6 +-
Localization/Maps/svg/ad.svg | 0
Localization/Maps/svg/ae.svg | 0
Localization/Maps/svg/af.svg | 0
Localization/Maps/svg/africa.svg | 0
Localization/Maps/svg/ag.svg | 0
Localization/Maps/svg/ai.svg | 0
Localization/Maps/svg/al.svg | 0
Localization/Maps/svg/am.svg | 0
Localization/Maps/svg/ao.svg | 0
Localization/Maps/svg/ar.svg | 0
Localization/Maps/svg/at.svg | 0
Localization/Maps/svg/au.svg | 0
Localization/Maps/svg/aw.svg | 0
Localization/Maps/svg/az.svg | 0
Localization/Maps/svg/ba.svg | 0
Localization/Maps/svg/bb.svg | 0
Localization/Maps/svg/bd.svg | 0
Localization/Maps/svg/be.svg | 0
Localization/Maps/svg/bf.svg | 0
Localization/Maps/svg/bg.svg | 0
Localization/Maps/svg/bh.svg | 0
Localization/Maps/svg/bi.svg | 0
Localization/Maps/svg/bj.svg | 0
Localization/Maps/svg/bm.svg | 0
Localization/Maps/svg/bn.svg | 0
Localization/Maps/svg/bo.svg | 0
Localization/Maps/svg/br.svg | 0
Localization/Maps/svg/bs.svg | 0
Localization/Maps/svg/bt.svg | 0
Localization/Maps/svg/bw.svg | 0
Localization/Maps/svg/by.svg | 0
Localization/Maps/svg/bz.svg | 0
Localization/Maps/svg/ca.svg | 0
Localization/Maps/svg/cd.svg | 0
Localization/Maps/svg/cf.svg | 0
Localization/Maps/svg/cg.svg | 0
Localization/Maps/svg/ch.svg | 0
Localization/Maps/svg/ci.svg | 0
Localization/Maps/svg/cl.svg | 0
Localization/Maps/svg/cm.svg | 0
Localization/Maps/svg/cn.svg | 0
Localization/Maps/svg/co.svg | 0
Localization/Maps/svg/cr.svg | 0
Localization/Maps/svg/cu.svg | 0
Localization/Maps/svg/cv.svg | 0
Localization/Maps/svg/cw.svg | 0
Localization/Maps/svg/cy.svg | 0
Localization/Maps/svg/cz.svg | 0
Localization/Maps/svg/de.svg | 0
Localization/Maps/svg/dj.svg | 0
Localization/Maps/svg/dk.svg | 0
Localization/Maps/svg/dm.svg | 0
Localization/Maps/svg/do.svg | 0
Localization/Maps/svg/dz.svg | 0
Localization/Maps/svg/ec.svg | 0
Localization/Maps/svg/ee.svg | 0
Localization/Maps/svg/eg.svg | 0
Localization/Maps/svg/eh.svg | 0
Localization/Maps/svg/er.svg | 0
Localization/Maps/svg/es.svg | 0
Localization/Maps/svg/et.svg | 0
Localization/Maps/svg/europe.svg | 0
Localization/Maps/svg/fi.svg | 0
Localization/Maps/svg/fj.svg | 0
Localization/Maps/svg/fk.svg | 0
Localization/Maps/svg/fo.svg | 0
Localization/Maps/svg/fr.svg | 0
Localization/Maps/svg/ga.svg | 0
Localization/Maps/svg/gb.svg | 0
Localization/Maps/svg/gd.svg | 0
Localization/Maps/svg/ge.svg | 0
Localization/Maps/svg/gh.svg | 0
Localization/Maps/svg/gl.svg | 0
Localization/Maps/svg/gm.svg | 0
Localization/Maps/svg/gn.svg | 0
Localization/Maps/svg/gq.svg | 0
Localization/Maps/svg/gr.svg | 0
Localization/Maps/svg/gt.svg | 0
Localization/Maps/svg/gw.svg | 0
Localization/Maps/svg/gy.svg | 0
Localization/Maps/svg/hk.svg | 0
Localization/Maps/svg/hn.svg | 0
Localization/Maps/svg/hr.svg | 0
Localization/Maps/svg/ht.svg | 0
Localization/Maps/svg/hu.svg | 0
Localization/Maps/svg/id.svg | 0
Localization/Maps/svg/ie.svg | 0
Localization/Maps/svg/il.svg | 0
Localization/Maps/svg/in.svg | 0
Localization/Maps/svg/iq.svg | 0
Localization/Maps/svg/ir.svg | 0
Localization/Maps/svg/is.svg | 0
Localization/Maps/svg/it.svg | 0
Localization/Maps/svg/jm.svg | 0
Localization/Maps/svg/jo.svg | 0
Localization/Maps/svg/jp.svg | 0
Localization/Maps/svg/ke.svg | 0
Localization/Maps/svg/kg.svg | 0
Localization/Maps/svg/kh.svg | 0
Localization/Maps/svg/km.svg | 0
Localization/Maps/svg/kn.svg | 0
Localization/Maps/svg/kp.svg | 0
Localization/Maps/svg/kr.svg | 0
Localization/Maps/svg/kw.svg | 0
Localization/Maps/svg/ky.svg | 0
Localization/Maps/svg/kz.svg | 0
Localization/Maps/svg/la.svg | 0
Localization/Maps/svg/lb.svg | 0
Localization/Maps/svg/lc.svg | 0
Localization/Maps/svg/li.svg | 0
Localization/Maps/svg/lk.svg | 0
Localization/Maps/svg/lr.svg | 0
Localization/Maps/svg/ls.svg | 0
Localization/Maps/svg/lt.svg | 0
Localization/Maps/svg/lu.svg | 0
Localization/Maps/svg/lv.svg | 0
Localization/Maps/svg/ly.svg | 0
Localization/Maps/svg/ma.svg | 0
Localization/Maps/svg/md.svg | 0
Localization/Maps/svg/me.svg | 0
Localization/Maps/svg/mf.svg | 0
Localization/Maps/svg/mg.svg | 0
Localization/Maps/svg/mk.svg | 0
Localization/Maps/svg/ml.svg | 0
Localization/Maps/svg/mm.svg | 0
Localization/Maps/svg/mn.svg | 0
Localization/Maps/svg/mr.svg | 0
Localization/Maps/svg/ms.svg | 0
Localization/Maps/svg/mt.svg | 0
Localization/Maps/svg/mu.svg | 0
Localization/Maps/svg/mv.svg | 0
Localization/Maps/svg/mw.svg | 0
Localization/Maps/svg/mx.svg | 0
Localization/Maps/svg/my.svg | 0
Localization/Maps/svg/mz.svg | 0
Localization/Maps/svg/na.svg | 0
Localization/Maps/svg/nc.svg | 0
Localization/Maps/svg/ne.svg | 0
Localization/Maps/svg/ng.svg | 0
Localization/Maps/svg/ni.svg | 0
Localization/Maps/svg/nl.svg | 0
Localization/Maps/svg/no.svg | 0
Localization/Maps/svg/north-america.svg | 0
Localization/Maps/svg/np.svg | 0
Localization/Maps/svg/nr.svg | 0
Localization/Maps/svg/nz.svg | 0
Localization/Maps/svg/om.svg | 0
Localization/Maps/svg/pa.svg | 0
Localization/Maps/svg/pe.svg | 0
Localization/Maps/svg/pf.svg | 0
Localization/Maps/svg/pg.svg | 0
Localization/Maps/svg/ph.svg | 0
Localization/Maps/svg/pk.svg | 0
Localization/Maps/svg/pl.svg | 0
Localization/Maps/svg/pn.svg | 0
Localization/Maps/svg/pr.svg | 0
Localization/Maps/svg/ps.svg | 0
Localization/Maps/svg/pt.svg | 0
Localization/Maps/svg/py.svg | 0
Localization/Maps/svg/qa.svg | 0
Localization/Maps/svg/ro.svg | 0
Localization/Maps/svg/rs.svg | 0
Localization/Maps/svg/ru.svg | 0
Localization/Maps/svg/rw.svg | 0
Localization/Maps/svg/sa.svg | 0
Localization/Maps/svg/sb.svg | 0
Localization/Maps/svg/sc.svg | 0
Localization/Maps/svg/sd.svg | 0
Localization/Maps/svg/se.svg | 0
Localization/Maps/svg/sg.svg | 0
Localization/Maps/svg/si.svg | 0
Localization/Maps/svg/simplemaps_license.png | Bin
Localization/Maps/svg/sk.svg | 0
Localization/Maps/svg/sl.svg | 0
Localization/Maps/svg/sn.svg | 0
Localization/Maps/svg/so.svg | 0
Localization/Maps/svg/sr.svg | 0
Localization/Maps/svg/ss.svg | 0
Localization/Maps/svg/st.svg | 0
Localization/Maps/svg/sv.svg | 0
Localization/Maps/svg/sx.svg | 0
Localization/Maps/svg/sy.svg | 0
Localization/Maps/svg/sz.svg | 0
Localization/Maps/svg/tc.svg | 0
Localization/Maps/svg/td.svg | 0
Localization/Maps/svg/tg.svg | 0
Localization/Maps/svg/th.svg | 0
Localization/Maps/svg/tj.svg | 0
Localization/Maps/svg/tl.svg | 0
Localization/Maps/svg/tm.svg | 0
Localization/Maps/svg/tn.svg | 0
Localization/Maps/svg/to.svg | 0
Localization/Maps/svg/tr.svg | 0
Localization/Maps/svg/tt.svg | 0
Localization/Maps/svg/tw.svg | 0
Localization/Maps/svg/tz.svg | 0
Localization/Maps/svg/ua.svg | 0
Localization/Maps/svg/ug.svg | 0
Localization/Maps/svg/us.svg | 0
Localization/Maps/svg/uy.svg | 0
Localization/Maps/svg/uz.svg | 0
Localization/Maps/svg/vc.svg | 0
Localization/Maps/svg/ve.svg | 0
Localization/Maps/svg/vg.svg | 0
Localization/Maps/svg/vi.svg | 0
Localization/Maps/svg/vn.svg | 0
Localization/Maps/svg/vu.svg | 0
Localization/Maps/svg/world-pacific.svg | 0
Localization/Maps/svg/world.svg | 0
Localization/Maps/svg/ye.svg | 0
Localization/Maps/svg/za.svg | 0
Localization/Maps/svg/zm.svg | 0
Localization/Maps/svg/zw.svg | 0
Localization/Money.php | 6 +-
Localization/NullLocalization.php | 6 +-
Localization/PhoneEnum.php | 6 +-
Localization/TimeZoneEnumArray.php | 6 +-
Log/FileLogger.php | 6 +-
Log/LogLevel.php | 6 +-
Log/LoggerInterface.php | 6 +-
Math/Exception/ZeroDivisionException.php | 6 +-
Math/Functions/Beta.php | 6 +-
Math/Functions/Fibonacci.php | 6 +-
Math/Functions/Functions.php | 6 +-
Math/Functions/Gamma.php | 6 +-
Math/Geometry/ConvexHull/MonotoneChain.php | 6 +-
Math/Geometry/Shape/D2/Circle.php | 6 +-
Math/Geometry/Shape/D2/D2ShapeInterface.php | 6 +-
Math/Geometry/Shape/D2/Ellipse.php | 6 +-
Math/Geometry/Shape/D2/Polygon.php | 6 +-
Math/Geometry/Shape/D2/Quadrilateral.php | 6 +-
Math/Geometry/Shape/D2/Rectangle.php | 6 +-
Math/Geometry/Shape/D2/Trapezoid.php | 6 +-
Math/Geometry/Shape/D2/Triangle.php | 6 +-
Math/Geometry/Shape/D3/Cone.php | 6 +-
Math/Geometry/Shape/D3/Cuboid.php | 6 +-
Math/Geometry/Shape/D3/Cylinder.php | 6 +-
Math/Geometry/Shape/D3/D3ShapeInterface.php | 6 +-
Math/Geometry/Shape/D3/Prism.php | 6 +-
Math/Geometry/Shape/D3/RectangularPyramid.php | 6 +-
Math/Geometry/Shape/D3/Sphere.php | 6 +-
Math/Geometry/Shape/D3/Tetrahedron.php | 6 +-
Math/Geometry/Shape/ShapeInterface.php | 6 +-
Math/Matrix/CholeskyDecomposition.php | 6 +-
Math/Matrix/EigenvalueDecomposition.php | 6 +-
.../Exception/InvalidDimensionException.php | 6 +-
Math/Matrix/IdentityMatrix.php | 6 +-
Math/Matrix/LUDecomposition.php | 6 +-
Math/Matrix/Matrix.php | 6 +-
Math/Matrix/QRDecomposition.php | 6 +-
Math/Matrix/Vector.php | 6 +-
Math/Matrix/copyright.png | Bin
Math/Number/Complex.php | 6 +-
Math/Number/Integer.php | 6 +-
Math/Number/Natural.php | 6 +-
Math/Number/NumberType.php | 6 +-
Math/Number/Numbers.php | 6 +-
Math/Number/OperationInterface.php | 6 +-
Math/Number/Prime.php | 6 +-
Math/Numerics/Integration.php | 6 +-
.../CubicSplineInterpolation.php | 6 +-
.../Numerics/Interpolation/DerivativeType.php | 6 +-
.../Interpolation/InterpolationInterface.php | 6 +-
.../Interpolation/LagrangeInterpolation.php | 6 +-
.../Interpolation/LinearInterpolation.php | 6 +-
Math/Parser/Evaluator.php | 6 +-
Math/Statistic/Average.php | 6 +-
Math/Statistic/Basic.php | 6 +-
Math/Statistic/Correlation.php | 6 +-
Math/Statistic/Forecast/Error.php | 6 +-
Math/Statistic/Forecast/Forecasts.php | 6 +-
.../Regression/LevelLevelRegression.php | 6 +-
.../Regression/LevelLogRegression.php | 6 +-
.../Regression/LogLevelRegression.php | 6 +-
.../Forecast/Regression/LogLogRegression.php | 6 +-
.../Regression/MultipleLinearRegression.php | 6 +-
.../Regression/PolynomialRegression.php | 6 +-
.../Regression/RegressionAbstract.php | 6 +-
Math/Statistic/MeasureOfDispersion.php | 6 +-
.../Distribution/BernoulliDistribution.php | 6 +-
.../Distribution/BetaDistribution.php | 6 +-
.../Distribution/BinomialDistribution.php | 6 +-
.../Distribution/CauchyDistribution.php | 6 +-
.../Distribution/ChiSquaredDistribution.php | 6 +-
.../Distribution/ExponentialDistribution.php | 6 +-
.../Stochastic/Distribution/FDistribution.php | 6 +-
.../Distribution/GammaDistribution.php | 6 +-
.../Distribution/GeometricDistribution.php | 6 +-
.../HypergeometricDistribution.php | 6 +-
.../Distribution/LaplaceDistribution.php | 6 +-
.../Distribution/LogDistribution.php | 6 +-
.../Distribution/LogNormalDistribution.php | 6 +-
.../Distribution/LogisticDistribution.php | 6 +-
.../Distribution/NormalDistribution.php | 6 +-
.../Distribution/ParetoDistribution.php | 6 +-
.../Distribution/PoissonDistribution.php | 6 +-
.../Stochastic/Distribution/TDistribution.php | 6 +-
.../UniformDistributionContinuous.php | 6 +-
.../UniformDistributionDiscrete.php | 6 +-
.../Distribution/WeibullDistribution.php | 6 +-
Math/Stochastic/Distribution/ZTesting.php | 6 +-
Math/Stochastic/NaiveBayesClassifier.php | 6 +-
Math/Topology/Metrics2D.php | 6 +-
Math/Topology/MetricsND.php | 6 +-
Message/Console/ConsoleHeader.php | 6 +-
Message/Console/ConsoleRequest.php | 6 +-
Message/Console/ConsoleResponse.php | 6 +-
Message/HeaderAbstract.php | 6 +-
Message/Http/BrowserType.php | 6 +-
Message/Http/HttpHeader.php | 6 +-
Message/Http/HttpRequest.php | 6 +-
Message/Http/HttpResponse.php | 6 +-
Message/Http/OSType.php | 6 +-
Message/Http/RequestMethod.php | 6 +-
Message/Http/RequestStatus.php | 6 +-
Message/Http/RequestStatusCode.php | 6 +-
Message/Http/Rest.php | 6 +-
Message/Mail/DispositionType.php | 6 +-
Message/Mail/DsnNotificationType.php | 6 +-
Message/Mail/Email.php | 6 +-
Message/Mail/EncodingType.php | 6 +-
Message/Mail/EncryptionType.php | 6 +-
Message/Mail/HeaderContext.php | 6 +-
Message/Mail/ICALMethodType.php | 6 +-
Message/Mail/Imap.php | 6 +-
Message/Mail/MailBoxInterface.php | 6 +-
Message/Mail/MailHandler.php | 6 +-
Message/Mail/MessageInterface.php | 6 +-
Message/Mail/Pop3.php | 6 +-
Message/Mail/SMTPAuthType.php | 6 +-
Message/Mail/Smtp.php | 6 +-
Message/Mail/SmtpTransactionPattern.php | 6 +-
Message/Mail/SubmitType.php | 6 +-
Message/MessageInterface.php | 6 +-
Message/NotificationLevel.php | 6 +-
Message/RequestAbstract.php | 6 +-
Message/ResponseAbstract.php | 6 +-
Message/Socket/PacketManager.php | 6 +-
Message/Socket/PacketType.php | 6 +-
Message/Socket/SocketHeader.php | 6 +-
Message/Socket/SocketRequest.php | 6 +-
Message/Socket/SocketResponse.php | 6 +-
Message/UploadedFileInterface.php | 6 +-
Model/Html/FormElementGenerator.php | 6 +-
Model/Html/Head.php | 6 +-
Model/Html/Meta.php | 8 +-
Model/Message/Dom.php | 6 +-
Model/Message/DomAction.php | 6 +-
Model/Message/DynamicList.php | 4 +-
Model/Message/FormValidation.php | 6 +-
Model/Message/Notify.php | 6 +-
Model/Message/NotifyType.php | 6 +-
Model/Message/Redirect.php | 6 +-
Model/Message/Reload.php | 6 +-
Module/ConsoleInterface.php | 6 +-
Module/Exception/InvalidModuleException.php | 6 +-
Module/Exception/InvalidThemeException.php | 6 +-
Module/InstallerAbstract.php | 6 +-
Module/ModuleAbstract.php | 6 +-
Module/ModuleInfo.php | 6 +-
Module/ModuleManager.php | 6 +-
Module/ModuleStatus.php | 6 +-
Module/NullModule.php | 6 +-
Module/PackageManager.php | 6 +-
Module/SocketInterface.php | 6 +-
Module/StatusAbstract.php | 6 +-
Module/UninstallerAbstract.php | 6 +-
Module/UpdaterAbstract.php | 6 +-
Module/WebInterface.php | 6 +-
Module/infoLayout.json | 0
Preloader.php | 6 +-
README.md | 24 +--
Router/RouteVerb.php | 6 +-
Router/RouterInterface.php | 6 +-
Router/SocketRouter.php | 6 +-
Router/WebRouter.php | 6 +-
Security/PhpCode.php | 6 +-
Socket/Client/Client.php | 6 +-
Socket/Client/ClientConnection.php | 6 +-
Socket/Client/NullClientConnection.php | 6 +-
Socket/Server/ClientManager.php | 6 +-
Socket/Server/Server.php | 6 +-
Socket/SocketAbstract.php | 6 +-
Socket/SocketInterface.php | 6 +-
Stdlib/Base/Address.php | 6 +-
Stdlib/Base/AddressType.php | 6 +-
Stdlib/Base/Enum.php | 6 +-
Stdlib/Base/EnumArray.php | 6 +-
Stdlib/Base/Exception/InvalidEnumName.php | 6 +-
Stdlib/Base/Exception/InvalidEnumValue.php | 6 +-
Stdlib/Base/FloatInt.php | 6 +-
Stdlib/Base/Heap.php | 6 +-
Stdlib/Base/Iban.php | 6 +-
Stdlib/Base/Location.php | 6 +-
Stdlib/Base/NullLocation.php | 6 +-
Stdlib/Base/PhoneType.php | 6 +-
Stdlib/Base/SmartDateTime.php | 6 +-
Stdlib/Graph/Edge.php | 6 +-
Stdlib/Graph/Graph.php | 6 +-
Stdlib/Graph/Node.php | 6 +-
Stdlib/Map/KeyType.php | 6 +-
Stdlib/Map/MultiMap.php | 6 +-
Stdlib/Map/OrderType.php | 6 +-
Stdlib/Queue/PriorityMode.php | 6 +-
Stdlib/Queue/PriorityQueue.php | 6 +-
System/CharsetType.php | 6 +-
System/File/ContainerInterface.php | 6 +-
System/File/ContentPutMode.php | 6 +-
System/File/DirectoryInterface.php | 6 +-
System/File/ExtensionType.php | 6 +-
System/File/FileInterface.php | 6 +-
System/File/FileUtils.php | 6 +-
System/File/Ftp/Directory.php | 6 +-
System/File/Ftp/File.php | 6 +-
System/File/Ftp/FileAbstract.php | 6 +-
System/File/Ftp/FtpContainerInterface.php | 6 +-
System/File/Ftp/FtpStorage.php | 6 +-
System/File/Local/Directory.php | 6 +-
System/File/Local/File.php | 6 +-
System/File/Local/FileAbstract.php | 6 +-
System/File/Local/LocalContainerInterface.php | 6 +-
System/File/Local/LocalStorage.php | 6 +-
System/File/PathException.php | 6 +-
System/File/PermissionException.php | 6 +-
System/File/Storage.php | 6 +-
System/File/StorageAbstract.php | 6 +-
System/MimeType.php | 6 +-
System/OperatingSystem.php | 6 +-
System/Search/StringSearch.php | 6 +-
System/SystemType.php | 6 +-
System/SystemUtils.php | 6 +-
UnhandledHandler.php | 6 +-
Uri/Argument.php | 6 +-
Uri/HttpUri.php | 6 +-
Uri/InvalidUriException.php | 6 +-
Uri/UriFactory.php | 6 +-
Uri/UriInterface.php | 6 +-
Uri/UriScheme.php | 6 +-
Utils/ArrayUtils.php | 6 +-
Utils/Barcode/Aztec.php | 6 +-
Utils/Barcode/C128Abstract.php | 6 +-
Utils/Barcode/C128a.php | 6 +-
Utils/Barcode/C128b.php | 6 +-
Utils/Barcode/C128c.php | 6 +-
Utils/Barcode/C25.php | 6 +-
Utils/Barcode/C39.php | 6 +-
Utils/Barcode/Codebar.php | 6 +-
Utils/Barcode/Datamatrix.php | 6 +-
Utils/Barcode/HIBCC.php | 6 +-
Utils/Barcode/OrientationType.php | 6 +-
Utils/Barcode/QR.php | 6 +-
Utils/ColorUtils.php | 6 +-
Utils/Compression/CompressionInterface.php | 6 +-
Utils/Compression/LZW.php | 6 +-
Utils/Converter/AngleType.php | 6 +-
Utils/Converter/AreaType.php | 6 +-
Utils/Converter/Currency.php | 6 +-
Utils/Converter/EnergyPowerType.php | 6 +-
Utils/Converter/File.php | 6 +-
Utils/Converter/FileSizeType.php | 6 +-
Utils/Converter/Ip.php | 6 +-
Utils/Converter/LengthType.php | 6 +-
Utils/Converter/Measurement.php | 6 +-
Utils/Converter/Numeric.php | 6 +-
Utils/Converter/PressureType.php | 6 +-
Utils/Converter/SpeedType.php | 6 +-
Utils/Converter/TemperatureType.php | 6 +-
Utils/Converter/TimeType.php | 6 +-
Utils/Converter/VolumeType.php | 6 +-
Utils/Converter/WeightType.php | 6 +-
Utils/Encoding/Caesar.php | 6 +-
Utils/Encoding/EncodingInterface.php | 6 +-
Utils/Encoding/Gray.php | 6 +-
Utils/Encoding/Huffman/Dictionary.php | 6 +-
Utils/Encoding/Huffman/Huffman.php | 6 +-
Utils/Encoding/XorEncoding.php | 6 +-
Utils/Git/Author.php | 6 +-
Utils/Git/Branch.php | 6 +-
Utils/Git/Commit.php | 6 +-
Utils/Git/Git.php | 6 +-
Utils/Git/NullCommit.php | 6 +-
Utils/Git/Repository.php | 8 +-
Utils/Git/Tag.php | 6 +-
Utils/IO/Csv/CsvInterface.php | 6 +-
Utils/IO/Csv/CsvSettings.php | 6 +-
Utils/IO/ExchangeInterface.php | 6 +-
Utils/IO/IODatabaseMapper.php | 6 +-
Utils/IO/Json/InvalidJsonException.php | 6 +-
Utils/IO/Json/JsonInterface.php | 6 +-
Utils/IO/Pdf/PdfInterface.php | 6 +-
.../Spreadsheet/SpreadsheetDatabaseMapper.php | 6 +-
Utils/IO/Spreadsheet/SpreadsheetInterface.php | 6 +-
Utils/IO/Zip/ArchiveInterface.php | 6 +-
Utils/IO/Zip/Gz.php | 6 +-
Utils/IO/Zip/Tar.php | 6 +-
Utils/IO/Zip/TarGz.php | 6 +-
Utils/IO/Zip/Zip.php | 6 +-
Utils/ImageUtils.php | 31 +++-
Utils/MbStringUtils.php | 6 +-
Utils/NumericUtils.php | 30 +++-
Utils/Parser/Markdown/License.txt | 0
Utils/Parser/Markdown/Markdown.php | 6 +-
Utils/Parser/Php/ArrayParser.php | 6 +-
Utils/Permutation.php | 6 +-
Utils/RnG/ArrayRandomize.php | 6 +-
Utils/RnG/DateTime.php | 6 +-
Utils/RnG/DistributionType.php | 6 +-
Utils/RnG/Email.php | 6 +-
Utils/RnG/File.php | 6 +-
Utils/RnG/LinearCongruentialGenerator.php | 6 +-
Utils/RnG/Name.php | 6 +-
Utils/RnG/Phone.php | 6 +-
Utils/RnG/StringUtils.php | 6 +-
Utils/RnG/Text.php | 6 +-
Utils/StringCompare.php | 6 +-
Utils/StringUtils.php | 6 +-
Utils/TaskSchedule/Cron.php | 6 +-
Utils/TaskSchedule/CronJob.php | 6 +-
Utils/TaskSchedule/Interval.php | 6 +-
Utils/TaskSchedule/NullCronJob.php | 6 +-
Utils/TaskSchedule/NullSchedule.php | 6 +-
Utils/TaskSchedule/Schedule.php | 6 +-
Utils/TaskSchedule/SchedulerAbstract.php | 6 +-
Utils/TaskSchedule/SchedulerFactory.php | 6 +-
Utils/TaskSchedule/TaskAbstract.php | 6 +-
Utils/TaskSchedule/TaskFactory.php | 6 +-
Utils/TaskSchedule/TaskScheduler.php | 6 +-
Utils/TestUtils.php | 6 +-
Validation/Base/DateTime.php | 6 +-
Validation/Base/Json.php | 6 +-
Validation/Finance/BIC.php | 6 +-
Validation/Finance/CreditCard.php | 6 +-
Validation/Finance/Iban.php | 6 +-
Validation/Finance/IbanEnum.php | 6 +-
Validation/Finance/IbanErrorType.php | 6 +-
Validation/Network/Email.php | 6 +-
Validation/Network/Hostname.php | 6 +-
Validation/Network/Ip.php | 6 +-
Validation/Validator.php | 6 +-
Validation/ValidatorAbstract.php | 6 +-
Validation/ValidatorInterface.php | 6 +-
Version/Version.php | 6 +-
Views/PaginationView.php | 6 +-
Views/View.php | 6 +-
Views/ViewAbstract.php | 6 +-
composer.json | 4 +-
composer.lock | 0
preload.php | 4 +-
tests/Account/AccountManagerTest.php | 4 +-
tests/Account/AccountStatusTest.php | 4 +-
tests/Account/AccountTest.php | 4 +-
tests/Account/AccountTypeTest.php | 4 +-
tests/Account/GroupStatusTest.php | 4 +-
tests/Account/GroupTest.php | 4 +-
tests/Account/NullAccountTest.php | 4 +-
tests/Account/NullGroupTest.php | 4 +-
tests/Account/PermissionAbstractTest.php | 4 +-
tests/Account/PermissionTypeTest.php | 4 +-
tests/Ai/Ocr/BasicOcrTest.php | 4 +-
tests/Ai/Ocr/Tesseract/TesseractOcrTest.php | 143 +++++++++++++++
tests/Ai/Ocr/Tesseract/actual.txt | 23 +++
tests/Ai/Ocr/Tesseract/basic.txt | 16 ++
tests/Ai/Ocr/Tesseract/img1.png | Bin 0 -> 955631 bytes
.../sharpening_thresholding_rotating.png | Bin 0 -> 741928 bytes
.../sharpening_thresholding_rotating.txt | 7 +
tests/Ai/Ocr/Tesseract/thresholding.png | Bin 0 -> 30141 bytes
tests/Ai/Ocr/Tesseract/thresholding.txt | 30 ++++
.../Ocr/Tesseract/thresholding_rotating.png | Bin 0 -> 406232 bytes
.../Ocr/Tesseract/thresholding_rotating.txt | 25 +++
tests/Ai/Ocr/t10k-images-idx3-ubyte | Bin
tests/Ai/Ocr/t10k-labels-idx1-ubyte | Bin
tests/Ai/Ocr/train-images-idx3-ubyte | Bin
tests/Ai/Ocr/train-labels-idx1-ubyte | Bin
tests/Algorithm/Clustering/KmeansTest.php | 4 +-
tests/Algorithm/Clustering/PointTest.php | 4 +-
.../CoinMatching/MinimumCoinProblemTest.php | 4 +-
tests/Algorithm/JobScheduling/JobTest.php | 4 +-
.../Algorithm/JobScheduling/WeightedTest.php | 4 +-
tests/Algorithm/Knapsack/BackpackTest.php | 4 +-
tests/Algorithm/Knapsack/BoundedTest.php | 4 +-
tests/Algorithm/Knapsack/ContinuousTest.php | 4 +-
tests/Algorithm/Knapsack/ItemTest.php | 4 +-
tests/Algorithm/Maze/MazeGeneratorTest.php | 4 +-
tests/Algorithm/PathFinding/AStarNodeTest.php | 4 +-
tests/Algorithm/PathFinding/AStarTest.php | 4 +-
tests/Algorithm/PathFinding/GridTest.php | 4 +-
tests/Algorithm/PathFinding/HeuristicTest.php | 4 +-
.../PathFinding/JumpPointNodeTest.php | 4 +-
.../PathFinding/JumpPointSearchTest.php | 4 +-
tests/Algorithm/PathFinding/NodeTest.php | 4 +-
tests/Algorithm/PathFinding/PathTest.php | 4 +-
tests/Algorithm/Sort/BitonicSortTest.php | 4 +-
tests/Algorithm/Sort/BubbleSortTest.php | 4 +-
tests/Algorithm/Sort/BucketSortTest.php | 4 +-
.../Algorithm/Sort/CocktailShakerSortTest.php | 4 +-
tests/Algorithm/Sort/CombSortTest.php | 4 +-
tests/Algorithm/Sort/CycleSortTest.php | 4 +-
tests/Algorithm/Sort/GnomeSortTest.php | 4 +-
tests/Algorithm/Sort/HeapSortTest.php | 4 +-
tests/Algorithm/Sort/InsertionSortTest.php | 4 +-
tests/Algorithm/Sort/IntroSortTest.php | 4 +-
tests/Algorithm/Sort/MergeSortTest.php | 4 +-
tests/Algorithm/Sort/NumericElement.php | 4 +-
tests/Algorithm/Sort/OddEvenSortTest.php | 4 +-
tests/Algorithm/Sort/PancakeSortTest.php | 4 +-
tests/Algorithm/Sort/QuickSortTest.php | 4 +-
tests/Algorithm/Sort/SelectionSortTest.php | 4 +-
tests/Algorithm/Sort/ShellSortTest.php | 4 +-
tests/Algorithm/Sort/StoogeSortTest.php | 4 +-
tests/Algorithm/Sort/TimSortTest.php | 4 +-
tests/Application/ApplicationAbstractTest.php | 4 +-
tests/Application/ApplicationInfoTest.php | 4 +-
tests/Application/ApplicationManagerTest.php | 4 +-
tests/Application/InstallerAbstractTest.php | 4 +-
tests/Application/StatusAbstractTest.php | 4 +-
.../Admin/Install/Application/Hooks.php | 4 +-
.../Admin/Install/Application/Routes.php | 4 +-
tests/Application/Testapp/Admin/Installer.php | 6 +-
tests/Application/Testapp/Admin/Status.php | 6 +-
.../Application/Testapp/Admin/Uninstaller.php | 6 +-
.../Testapp/Controller/Controller.php | 6 +-
.../Testapp/Themes/Default/css/styles.css | 0
tests/Application/Testapp/info.json | 2 +-
tests/Application/UninstallerAbstractTest.php | 4 +-
tests/Application/info-test.json | 2 +-
tests/Asset/AssetManagerTest.php | 4 +-
tests/Asset/AssetTypeTest.php | 4 +-
tests/Auth/AuthTest.php | 4 +-
tests/Auth/LoginReturnTypeTest.php | 4 +-
tests/AutoloadExceptionTest.php | 4 +-
tests/Autoloader.php | 6 +-
tests/AutoloaderTest.php | 4 +-
tests/Business/Finance/DepreciationTest.php | 4 +-
.../Business/Finance/FinanceFormulasTest.php | 4 +-
tests/Business/Finance/LoanTest.php | 4 +-
tests/Business/Finance/LorenzkurveTest.php | 4 +-
tests/Business/Finance/StockBondsTest.php | 4 +-
.../ArticleCorrelationAffinityTest.php | 4 +-
.../Business/Marketing/CustomerValueTest.php | 4 +-
tests/Business/Marketing/MetricsTest.php | 4 +-
.../Marketing/NetPromoterScoreTest.php | 4 +-
tests/Business/Marketing/PageRankTest.php | 4 +-
tests/Business/Programming/MetricsTest.php | 4 +-
.../Sales/MarketShareEstimationTest.php | 4 +-
tests/Config/OptionsTraitTest.php | 4 +-
tests/DataStorage/Cache/CachePoolTest.php | 4 +-
tests/DataStorage/Cache/CacheStatusTest.php | 4 +-
tests/DataStorage/Cache/CacheTypeTest.php | 4 +-
.../Cache/Connection/CacheValueTypeTest.php | 4 +-
.../Connection/ConnectionFactoryTest.php | 4 +-
.../Connection/FileCacheJsonSerializable.php | 4 +-
.../Connection/FileCacheSerializable.php | 4 +-
.../Cache/Connection/FileCacheTest.php | 4 +-
.../Cache/Connection/MemCachedTest.php | 4 +-
.../Cache/Connection/NullCacheTest.php | 4 +-
.../Cache/Connection/RedisCacheTest.php | 4 +-
.../InvalidConnectionConfigExceptionTest.php | 4 +-
tests/DataStorage/Cookie/CookieJarTest.php | 4 +-
.../Connection/ConnectionFactoryTest.php | 4 +-
.../Connection/MysqlConnectionTest.php | 4 +-
.../Connection/NullConnectionTest.php | 4 +-
.../Connection/PostgresConnectionTest.php | 4 +-
.../Connection/SQLiteConnectionTest.php | 4 +-
.../Connection/SqlServerConnectionTest.php | 4 +-
.../Database/DataMapperAbstractTest.php | 4 +-
.../DataStorage/Database/DatabasePoolTest.php | 4 +-
.../Database/DatabaseStatusTest.php | 4 +-
.../DataStorage/Database/DatabaseTypeTest.php | 4 +-
.../InvalidConnectionConfigExceptionTest.php | 4 +-
.../InvalidDatabaseTypeExceptionTest.php | 4 +-
.../Exception/InvalidMapperExceptionTest.php | 4 +-
.../Database/Query/BuilderTest.php | 4 +-
.../DataStorage/Database/Query/ColumnTest.php | 4 +-
.../DataStorage/Database/Query/CountTest.php | 4 +-
.../Database/Query/ExpressionTest.php | 4 +-
tests/DataStorage/Database/Query/FromTest.php | 4 +-
.../Database/Query/Grammar/GrammarTest.php | 4 +-
.../Query/Grammar/MysqlGrammarTest.php | 4 +-
.../Query/Grammar/OracleGrammarTest.php | 4 +-
.../Query/Grammar/PostgresGrammarTest.php | 4 +-
.../Query/Grammar/SQLiteGrammarTest.php | 4 +-
.../Query/Grammar/SqlServerGrammarTest.php | 4 +-
tests/DataStorage/Database/Query/IntoTest.php | 4 +-
.../Database/Query/JoinTypeTest.php | 4 +-
.../Database/Query/QueryTypeTest.php | 4 +-
.../DataStorage/Database/Query/SelectTest.php | 4 +-
.../DataStorage/Database/Query/WhereTest.php | 4 +-
.../DataStorage/Database/RelationTypeTest.php | 4 +-
.../Database/Schema/BuilderTest.php | 4 +-
.../Database/Schema/Grammar/GrammarTest.php | 4 +-
.../Schema/Grammar/MysqlGrammarTest.php | 4 +-
.../Schema/Grammar/OracleGrammarTest.php | 4 +-
.../Schema/Grammar/PostgresGrammarTest.php | 4 +-
.../Schema/Grammar/SQLiteGrammarTest.php | 4 +-
.../Schema/Grammar/SqlServerGrammarTest.php | 4 +-
.../Database/Schema/Grammar/testSchema.json | 0
.../Database/Schema/QueryTypeTest.php | 4 +-
.../DataStorage/Database/SchemaMapperTest.php | 4 +-
.../Database/TestModel/BaseModel.php | 4 +-
.../Database/TestModel/BaseModelMapper.php | 4 +-
.../Database/TestModel/BelongsToModel.php | 4 +-
.../TestModel/BelongsToModelMapper.php | 4 +-
.../Database/TestModel/Conditional.php | 4 +-
.../Database/TestModel/ConditionalMapper.php | 6 +-
.../TestModel/ManyToManyDirectModel.php | 4 +-
.../TestModel/ManyToManyDirectModelMapper.php | 4 +-
.../Database/TestModel/ManyToManyRelModel.php | 4 +-
.../TestModel/ManyToManyRelModelMapper.php | 4 +-
.../Database/TestModel/NullBaseModel.php | 4 +-
.../Database/TestModel/NullBelongsToModel.php | 4 +-
.../TestModel/NullManyToManyDirectModel.php | 4 +-
.../TestModel/NullManyToManyRelModel.php | 4 +-
.../Database/TestModel/NullOwnsOneModel.php | 4 +-
.../Database/TestModel/OwnsOneModel.php | 4 +-
.../Database/TestModel/OwnsOneModelMapper.php | 4 +-
tests/DataStorage/LockExceptionTest.php | 4 +-
.../Session/FileSessionHandlerTest.php | 4 +-
tests/DataStorage/Session/FileSessionTest.php | 4 +-
tests/DataStorage/Session/HttpSessionTest.php | 4 +-
tests/Dispatcher/DispatcherTest.php | 4 +-
tests/Dispatcher/TestController.php | 4 +-
tests/Event/EventManagerTest.php | 4 +-
tests/Event/events.php | 0
tests/ExtensionTest.php | 4 +-
tests/Image/KernelTest.php | 36 ++++
tests/Image/SkewTest.php | 40 +++++
tests/Image/ThresholdingTest.php | 8 +-
.../{test_img1.png => binary_tilted.png} | Bin
tests/Image/test_binary_untilted.png | Bin 0 -> 409248 bytes
tests/Image/test_img1_blur.png | Bin 0 -> 728551 bytes
tests/Image/test_img1_emboss.png | Bin 0 -> 1487567 bytes
.../Image/test_img1_integral_thresholding.png | Bin 0 -> 30536 bytes
tests/Image/test_img1_sharpen.png | Bin 0 -> 1585854 bytes
...pg => test_img2_integral_thresholding.jpg} | Bin
.../Localization/Defaults/CityMapperTest.php | 4 +-
tests/Localization/Defaults/CityTest.php | 4 +-
.../Defaults/CountryMapperTest.php | 4 +-
tests/Localization/Defaults/CountryTest.php | 4 +-
.../Defaults/CurrencyMapperTest.php | 4 +-
tests/Localization/Defaults/CurrencyTest.php | 4 +-
.../Localization/Defaults/IbanMapperTest.php | 4 +-
tests/Localization/Defaults/IbanTest.php | 4 +-
.../Defaults/LanguageMapperTest.php | 4 +-
tests/Localization/Defaults/LanguageTest.php | 4 +-
tests/Localization/ISO3166CharEnumTest.php | 4 +-
tests/Localization/ISO3166NameEnumTest.php | 4 +-
tests/Localization/ISO3166NumEnumTest.php | 4 +-
tests/Localization/ISO3166TwoEnumTest.php | 4 +-
tests/Localization/ISO4217CharEnumTest.php | 4 +-
tests/Localization/ISO4217DecimalEnumTest.php | 4 +-
tests/Localization/ISO4217EnumTest.php | 4 +-
tests/Localization/ISO4217NumEnumTest.php | 4 +-
tests/Localization/ISO4217SubUnitEnumTest.php | 4 +-
tests/Localization/ISO4217SymbolEnumTest.php | 4 +-
tests/Localization/ISO639EnumTest.php | 4 +-
tests/Localization/ISO639x1EnumTest.php | 4 +-
tests/Localization/ISO639x2EnumTest.php | 4 +-
tests/Localization/ISO8601EnumArrayTest.php | 4 +-
tests/Localization/L11nManagerTest.php | 4 +-
tests/Localization/LocalizationTest.php | 4 +-
tests/Localization/MoneyTest.php | 4 +-
tests/Localization/PhoneEnumTest.php | 4 +-
tests/Localization/TimeZoneEnumArrayTest.php | 4 +-
tests/Localization/langTestFile.php | 0
tests/Log/FileLoggerTest.php | 4 +-
tests/Log/LogLevelTest.php | 4 +-
.../Exception/ZeroDevisionExceptionTest.php | 4 +-
tests/Math/Functions/BetaTest.php | 4 +-
tests/Math/Functions/FibonacciTest.php | 4 +-
tests/Math/Functions/FunctionsTest.php | 4 +-
tests/Math/Functions/GammaTest.php | 4 +-
.../Geometry/ConvexHull/MonotoneChainTest.php | 4 +-
tests/Math/Geometry/Shape/D2/CircleTest.php | 4 +-
tests/Math/Geometry/Shape/D2/EllipseTest.php | 4 +-
tests/Math/Geometry/Shape/D2/PolygonTest.php | 4 +-
.../Geometry/Shape/D2/QuadrilateralTest.php | 4 +-
.../Math/Geometry/Shape/D2/RectangleTest.php | 4 +-
.../Math/Geometry/Shape/D2/TrapezoidTest.php | 4 +-
tests/Math/Geometry/Shape/D2/TriangleTest.php | 4 +-
tests/Math/Geometry/Shape/D3/ConeTest.php | 4 +-
tests/Math/Geometry/Shape/D3/CuboidTest.php | 4 +-
tests/Math/Geometry/Shape/D3/CylinderTest.php | 4 +-
tests/Math/Geometry/Shape/D3/PrismTest.php | 4 +-
.../Shape/D3/RectangularPyramidTest.php | 4 +-
tests/Math/Geometry/Shape/D3/SphereTest.php | 4 +-
.../Geometry/Shape/D3/TetrahedronTest.php | 4 +-
.../Math/Matrix/CholeskyDecompositionTest.php | 4 +-
.../Matrix/EigenvalueDecompositionTest.php | 4 +-
.../InvalidDimensionExceptionTest.php | 4 +-
tests/Math/Matrix/IdentityMatrixTest.php | 4 +-
tests/Math/Matrix/LUDecompositionTest.php | 4 +-
tests/Math/Matrix/MatrixTest.php | 4 +-
tests/Math/Matrix/QRDecompositionTest.php | 4 +-
tests/Math/Matrix/VectorTest.php | 4 +-
tests/Math/Number/ComplexTest.php | 4 +-
tests/Math/Number/IntegerTest.php | 4 +-
tests/Math/Number/NaturalTest.php | 4 +-
tests/Math/Number/NumberTypeTest.php | 4 +-
tests/Math/Number/NumbersTest.php | 4 +-
tests/Math/Number/PrimeTest.php | 4 +-
tests/Math/Numerics/IntegrationTest.php | 4 +-
.../CubicSplineInterpolationTest.php | 4 +-
.../LagrangeInterpolationTest.php | 4 +-
.../Interpolation/LinearInterpolationTest.php | 4 +-
tests/Math/Parser/EvaluatorTest.php | 4 +-
tests/Math/Statistic/AverageTest.php | 4 +-
tests/Math/Statistic/BasicTest.php | 4 +-
tests/Math/Statistic/CorrelationTest.php | 4 +-
tests/Math/Statistic/Forecast/ErrorTest.php | 4 +-
.../Math/Statistic/Forecast/ForecastsTest.php | 4 +-
.../Regression/LevelLevelRegressionTest.php | 4 +-
.../Regression/LevelLogRegressionTest.php | 4 +-
.../Regression/LogLevelRegressionTest.php | 4 +-
.../Regression/LogLogRegressionTest.php | 4 +-
.../Regression/PolynomialRegressionTest.php | 4 +-
.../Statistic/MeasureOfDispersionTest.php | 4 +-
.../BernoulliDistributionTest.php | 4 +-
.../Distribution/BetaDistributionTest.php | 4 +-
.../Distribution/BinomialDistributionTest.php | 4 +-
.../Distribution/CauchyDistributionTest.php | 4 +-
.../ChiSquaredDistributionTest.php | 4 +-
.../ExponentialDistributionTest.php | 4 +-
.../Distribution/FDistributionTest.php | 4 +-
.../Distribution/GammaDistributionTest.php | 4 +-
.../GeometricDistributionTest.php | 4 +-
.../HypergeometricDistributionTest.php | 4 +-
.../Distribution/LaplaceDistributionTest.php | 4 +-
.../Distribution/LogDistributionTest.php | 4 +-
.../LogNormalDistributionTest.php | 4 +-
.../Distribution/LogisticDistributionTest.php | 4 +-
.../Distribution/NormalDistributionTest.php | 4 +-
.../Distribution/ParetoDistributionTest.php | 4 +-
.../Distribution/PoissonDistributionTest.php | 4 +-
.../Distribution/TDistributionTest.php | 4 +-
.../UniformDistributionContinuousTest.php | 4 +-
.../UniformDistributionDiscreteTest.php | 4 +-
.../Distribution/WeibullDistributionTest.php | 4 +-
.../Stochastic/Distribution/ZTestTest.php | 4 +-
.../Stochastic/NaiveBayesClassifierTest.php | 4 +-
tests/Math/Topology/Metrics2DTest.php | 4 +-
tests/Math/Topology/MetricsNDTest.php | 4 +-
tests/Message/Console/ConsoleHeaderTest.php | 4 +-
tests/Message/Console/ConsoleRequestTest.php | 4 +-
tests/Message/Console/ConsoleResponseTest.php | 4 +-
tests/Message/HeaderAbstractTest.php | 4 +-
tests/Message/Http/BrowserTypeTest.php | 4 +-
tests/Message/Http/HttpHeaderTest.php | 4 +-
tests/Message/Http/HttpRequestBrowser.php | 0
tests/Message/Http/HttpRequestLanguage.php | 0
tests/Message/Http/HttpRequestLocale.php | 0
tests/Message/Http/HttpRequestMobile.php | 0
tests/Message/Http/HttpRequestOS.php | 0
tests/Message/Http/HttpRequestTest.php | 4 +-
tests/Message/Http/HttpResponseTest.php | 4 +-
tests/Message/Http/OSTypeTest.php | 4 +-
tests/Message/Http/RequestMethodTest.php | 4 +-
tests/Message/Http/RequestStatusCodeTest.php | 4 +-
tests/Message/Http/RequestStatusTest.php | 4 +-
tests/Message/Http/RestTest.php | 4 +-
tests/Message/Mail/EmailTest.php | 60 +++----
tests/Message/Mail/ImapTest.php | 4 +-
tests/Message/Mail/MailHandlerMailTrait.php | 100 +++++------
.../Message/Mail/MailHandlerSendmailTrait.php | 100 +++++------
tests/Message/Mail/MailHandlerSmtpTrait.php | 100 +++++------
tests/Message/Mail/MailHandlerTest.php | 10 +-
tests/Message/Mail/Pop3Test.php | 4 +-
tests/Message/Mail/files/logo.png | Bin
tests/Message/Mail/files/utf8.html | 2 +-
tests/Message/RequestAbstractTest.php | 4 +-
tests/Message/ResponseAbstractTest.php | 4 +-
tests/Message/Socket/HeaderTest.php | 4 +-
tests/Message/Socket/PacketManagerTest.php | 4 +-
tests/Message/Socket/PacketTypeTest.php | 4 +-
tests/Message/Socket/RequestTest.php | 4 +-
tests/Message/Socket/ResponseTest.php | 4 +-
tests/Model/Html/FormElementGeneratorTest.php | 4 +-
tests/Model/Html/HeadTest.php | 8 +-
tests/Model/Html/MetaTest.php | 8 +-
tests/Model/Message/DomActionTest.php | 4 +-
tests/Model/Message/DomTest.php | 4 +-
tests/Model/Message/FormValidationTest.php | 4 +-
tests/Model/Message/NotifyTest.php | 4 +-
tests/Model/Message/NotifyTypeTest.php | 4 +-
tests/Model/Message/RedirectTest.php | 4 +-
tests/Model/Message/ReloadTest.php | 4 +-
.../Exception/InvalidModuleExceptionTest.php | 4 +-
.../Exception/InvalidThemeExceptionTest.php | 4 +-
tests/Module/InstallerAbstractTest.php | 4 +-
tests/Module/ModuleAbstractTest.php | 4 +-
tests/Module/ModuleInfoTest.php | 4 +-
tests/Module/ModuleManagerTest.php | 4 +-
tests/Module/NullModuleTest.php | 4 +-
tests/Module/PackageManagerTest.php | 4 +-
tests/Module/StatusAbstractTest.php | 4 +-
.../Test/Theme/Mytheme/Lang/en.lang.php | 4 +-
tests/Module/Testmodule/Admin/Installer.php | 6 +-
.../Moduletestapplication/index.tpl.php | 0
.../Moduletestapplication/info.json | 2 +-
tests/Module/Testmodule/info.json | 2 +-
tests/Module/UninstallerAbstractTest.php | 4 +-
tests/Module/info-test.json | 2 +-
tests/Module/testModulePackage/Remove/me.md | 0
tests/Module/testModulePackage/Replace.md | 0
tests/Module/testModulePackage/toCopy/a.md | 0
.../Module/testModulePackage/toCopy/sub/b.txt | 0
tests/Module/testModulePackage/toMove/a.md | 0
.../Module/testModulePackage/toMove/sub/b.txt | 0
tests/Module/testPackage/info.json | 0
tests/Module/testPackage/package.cert | 0
.../testSubPackage/externalCopy.md | 0
.../testPackage/testSubPackage/logo.png | Bin
.../testPackage/testSubPackage/run.batch | 0
.../Module/testPackage/testSubPackage/run.sh | 0
.../testPackage/testSubPackage/test.txt | 0
tests/Preload0.php | 6 +-
tests/PreloadTest/Preload1.php | 6 +-
tests/PreloadTest/Sub/Preload2.php | 6 +-
tests/PreloadTest/Sub/Preload3.php | 6 +-
tests/PreloaderTest.php | 4 +-
tests/Router/RouteVerbTest.php | 4 +-
tests/Router/SocketRouterTest.php | 4 +-
tests/Router/WebRouterTest.php | 4 +-
tests/Router/socketRouterTestFile.php | 0
.../Router/socketRouterTestFilePermission.php | 0
tests/Router/webRouteTestCsrf.php | 0
tests/Router/webRouterTestFile.php | 0
tests/Router/webRouterTestFilePermission.php | 0
tests/Security/PhpCodeTest.php | 4 +-
tests/Security/Sample/hasDeprecated.php | 0
tests/Security/Sample/hasUnicode.php | 0
tests/Security/Sample/noDeprecated.php | 0
tests/Security/Sample/noUnicode.php | 0
tests/Socket/Client/ClientConnectionTest.php | 4 +-
tests/Socket/Client/ClientTest.php | 4 +-
tests/Socket/Client/ClientTestHelper.php | 4 +-
.../Client/NullClientConnectionTest.php | 4 +-
tests/Socket/Server/ClientManagerTest.php | 4 +-
tests/Socket/Server/ServerTest.php | 4 +-
tests/Socket/Server/ServerTestHelper.php | 4 +-
tests/Stdlib/Base/AddressTest.php | 4 +-
tests/Stdlib/Base/AddressTypeTest.php | 4 +-
tests/Stdlib/Base/EnumArrayDemo.php | 4 +-
tests/Stdlib/Base/EnumArrayTest.php | 4 +-
tests/Stdlib/Base/EnumDemo.php | 4 +-
tests/Stdlib/Base/EnumTest.php | 4 +-
.../Base/Exception/InvalidEnumNameTest.php | 4 +-
.../Base/Exception/InvalidEnumValueTest.php | 4 +-
tests/Stdlib/Base/HeapItem.php | 4 +-
tests/Stdlib/Base/HeapTest.php | 4 +-
tests/Stdlib/Base/IbanTest.php | 4 +-
tests/Stdlib/Base/LocationTest.php | 4 +-
tests/Stdlib/Base/NullLocationTest.php | 4 +-
tests/Stdlib/Base/PhoneTypeTest.php | 4 +-
tests/Stdlib/Base/SmartDateTimeTest.php | 4 +-
tests/Stdlib/Graph/BinaryTreeTest.php | 4 +-
tests/Stdlib/Graph/EdgeTest.php | 4 +-
tests/Stdlib/Graph/GraphTest.php | 4 +-
tests/Stdlib/Graph/NodeTest.php | 4 +-
tests/Stdlib/Graph/TreeTest.php | 4 +-
tests/Stdlib/Map/KeyTypeTest.php | 4 +-
tests/Stdlib/Map/MultiMapTest.php | 4 +-
tests/Stdlib/Map/OrderTypeTest.php | 4 +-
tests/Stdlib/Queue/PriorityModeTest.php | 4 +-
tests/Stdlib/Queue/PriorityQueueTest.php | 4 +-
tests/System/CharsetTypeTest.php | 4 +-
tests/System/File/ContentPutModeTest.php | 4 +-
tests/System/File/ExtensionTypeTest.php | 4 +-
tests/System/File/FileUtilsTest.php | 4 +-
tests/System/File/Ftp/DirectoryTest.php | 6 +-
tests/System/File/Ftp/FileTest.php | 6 +-
tests/System/File/Ftp/FtpStorageTest.php | 4 +-
.../File/Ftp/dirtest/sub/path/test3.txt | 0
tests/System/File/Ftp/dirtest/sub/test2.txt | 0
tests/System/File/Ftp/dirtest/sub/test4.md | 0
tests/System/File/Ftp/dirtest/test.txt | 0
tests/System/File/Local/DirectoryTest.php | 4 +-
tests/System/File/Local/FileTest.php | 4 +-
tests/System/File/Local/LocalStorageTest.php | 4 +-
tests/System/File/PathExceptionTest.php | 4 +-
tests/System/File/PermissionExceptionTest.php | 4 +-
tests/System/File/StorageTest.php | 4 +-
tests/System/File/Windows-1252.txt | 0
tests/System/MimeTypeTest.php | 4 +-
tests/System/OperatingSystemTest.php | 4 +-
tests/System/Search/StringSearchTest.php | 4 +-
tests/System/SystemTypeTest.php | 4 +-
tests/System/SystemUtilsTest.php | 4 +-
tests/TestLoad.php | 6 +-
tests/TestLoad2.php | 6 +-
tests/TestLoad3.php | 6 +-
tests/TestLoad4.php | 6 +-
tests/UnhandledHandlerTest.php | 4 +-
tests/Uri/ArgumentTest.php | 4 +-
tests/Uri/HttpUriTest.php | 4 +-
tests/Uri/InvalidUriExceptionTest.php | 4 +-
tests/Uri/UriFactoryTest.php | 4 +-
tests/Uri/UriSchemeTest.php | 4 +-
tests/Utils/ArrayUtilsTest.php | 4 +-
tests/Utils/Barcode/AztecTest.php | 4 +-
tests/Utils/Barcode/C128AbstractTest.php | 4 +-
tests/Utils/Barcode/C128aTest.php | 4 +-
tests/Utils/Barcode/C128bTest.php | 4 +-
tests/Utils/Barcode/C128cTest.php | 4 +-
tests/Utils/Barcode/C25Test.php | 4 +-
tests/Utils/Barcode/C39Test.php | 4 +-
tests/Utils/Barcode/CodebarTest.php | 4 +-
tests/Utils/Barcode/DatamatrixTest.php | 4 +-
tests/Utils/Barcode/HIBCCTest.php | 4 +-
tests/Utils/Barcode/OrientationTypeTest.php | 4 +-
tests/Utils/Barcode/QRTest.php | 4 +-
tests/Utils/ColorUtilsTest.php | 4 +-
tests/Utils/Compression/LZWTest.php | 4 +-
tests/Utils/Converter/AngleTypeTest.php | 4 +-
tests/Utils/Converter/AreaTypeTest.php | 4 +-
tests/Utils/Converter/CurrencyTest.php | 4 +-
tests/Utils/Converter/EnergyPowerTypeTest.php | 4 +-
tests/Utils/Converter/FileSizeTypeTest.php | 4 +-
tests/Utils/Converter/FileTest.php | 4 +-
tests/Utils/Converter/IpTest.php | 4 +-
tests/Utils/Converter/LengthTypeTest.php | 4 +-
tests/Utils/Converter/MeasurementTest.php | 4 +-
tests/Utils/Converter/NumericTest.php | 4 +-
tests/Utils/Converter/PressureTypeTest.php | 4 +-
tests/Utils/Converter/SpeedTypeTest.php | 4 +-
tests/Utils/Converter/TemperatureTypeTest.php | 4 +-
tests/Utils/Converter/TimeTypeTest.php | 4 +-
tests/Utils/Converter/VolumeTypeTest.php | 4 +-
tests/Utils/Converter/WeightTypeTest.php | 4 +-
tests/Utils/Encoding/CaesarTest.php | 4 +-
tests/Utils/Encoding/GrayTest.php | 4 +-
.../Utils/Encoding/Huffman/DictionaryTest.php | 4 +-
tests/Utils/Encoding/Huffman/HuffmanTest.php | 4 +-
tests/Utils/Encoding/XorEncodingTest.php | 4 +-
tests/Utils/Excel/ExcelTest.php | 4 +-
tests/Utils/Git/AuthorTest.php | 4 +-
tests/Utils/Git/BranchTest.php | 4 +-
tests/Utils/Git/CommitTest.php | 4 +-
tests/Utils/Git/GitTest.php | 4 +-
tests/Utils/Git/RepositoryTest.php | 4 +-
tests/Utils/Git/TagTest.php | 4 +-
tests/Utils/IO/Csv/CsvSettingsTest.php | 4 +-
tests/Utils/IO/Csv/colon.csv | 0
tests/Utils/IO/Csv/comma.csv | 0
tests/Utils/IO/Csv/pipe.csv | 0
tests/Utils/IO/Csv/semicolon.csv | 0
tests/Utils/IO/IODatabaseMapperTest.php | 4 +-
.../IO/Json/InvalidJsonExceptionTest.php | 4 +-
.../SpreadsheetDatabaseMapperTest.php | 4 +-
tests/Utils/IO/Spreadsheet/backup.db | Bin
tests/Utils/IO/Spreadsheet/insert.ods | Bin
tests/Utils/IO/Spreadsheet/insert.xls | Bin
tests/Utils/IO/Spreadsheet/insert.xlsx | Bin
tests/Utils/IO/Spreadsheet/update.ods | Bin
tests/Utils/IO/Spreadsheet/update.xls | Bin
tests/Utils/IO/Spreadsheet/update.xlsx | Bin
tests/Utils/IO/Zip/GzTest.php | 4 +-
tests/Utils/IO/Zip/TarGzTest.php | 4 +-
tests/Utils/IO/Zip/TarTest.php | 4 +-
tests/Utils/IO/Zip/ZipTest.php | 4 +-
tests/Utils/IO/Zip/invalidpack.tar.gz.tmp | 0
tests/Utils/IO/Zip/invalidunpack.tmp | 0
tests/Utils/ImageUtilsTest.php | 4 +-
tests/Utils/MbStringUtilsTest.php | 4 +-
tests/Utils/NumericUtilsTest.php | 4 +-
tests/Utils/PDF/PdfTest.php | 4 +-
tests/Utils/Parser/Markdown/MarkdownTest.php | 4 +-
.../Parser/Markdown/data/aesthetic_table.html | 0
.../Parser/Markdown/data/aesthetic_table.md | 0
.../Parser/Markdown/data/aligned_table.html | 0
.../Parser/Markdown/data/aligned_table.md | 0
.../Parser/Markdown/data/atx_heading.html | 0
.../Utils/Parser/Markdown/data/atx_heading.md | 0
.../Parser/Markdown/data/automatic_link.html | 0
.../Parser/Markdown/data/automatic_link.md | 0
.../Parser/Markdown/data/code_block.html | 0
.../Utils/Parser/Markdown/data/code_block.md | 0
.../Utils/Parser/Markdown/data/code_span.html | 0
tests/Utils/Parser/Markdown/data/code_span.md | 0
.../Markdown/data/compound_blockquote.html | 0
.../Markdown/data/compound_blockquote.md | 0
.../Markdown/data/compound_emphasis.html | 0
.../Parser/Markdown/data/compound_emphasis.md | 0
.../Parser/Markdown/data/compound_list.html | 0
.../Parser/Markdown/data/compound_list.md | 0
.../Markdown/data/deeply_nested_list.html | 0
.../Markdown/data/deeply_nested_list.md | 0
.../Utils/Parser/Markdown/data/em_strong.html | 0
tests/Utils/Parser/Markdown/data/em_strong.md | 0
tests/Utils/Parser/Markdown/data/email.html | 0
tests/Utils/Parser/Markdown/data/email.md | 0
.../Utils/Parser/Markdown/data/emphasis.html | 0
tests/Utils/Parser/Markdown/data/emphasis.md | 0
.../Utils/Parser/Markdown/data/escaping.html | 0
tests/Utils/Parser/Markdown/data/escaping.md | 0
.../Markdown/data/fenced_code_block.html | 0
.../Parser/Markdown/data/fenced_code_block.md | 0
.../Parser/Markdown/data/horizontal_rule.html | 0
.../Parser/Markdown/data/horizontal_rule.md | 0
.../Parser/Markdown/data/image_reference.html | 0
.../Parser/Markdown/data/image_reference.md | 0
.../Parser/Markdown/data/image_title.html | 0
.../Utils/Parser/Markdown/data/image_title.md | 0
.../Markdown/data/implicit_reference.html | 0
.../Markdown/data/implicit_reference.md | 0
.../Parser/Markdown/data/inline_link.html | 0
.../Utils/Parser/Markdown/data/inline_link.md | 0
.../Markdown/data/inline_link_title.html | 0
.../Parser/Markdown/data/inline_link_title.md | 0
.../Parser/Markdown/data/inline_title.html | 0
.../Parser/Markdown/data/inline_title.md | 0
.../Parser/Markdown/data/lazy_blockquote.html | 0
.../Parser/Markdown/data/lazy_blockquote.md | 0
.../Utils/Parser/Markdown/data/lazy_list.html | 0
tests/Utils/Parser/Markdown/data/lazy_list.md | 0
.../Parser/Markdown/data/line_break.html | 0
.../Utils/Parser/Markdown/data/line_break.md | 0
.../data/multiline_list_paragraph.html | 0
.../Markdown/data/multiline_list_paragraph.md | 0
.../Parser/Markdown/data/ordered_list.html | 0
.../Parser/Markdown/data/ordered_list.md | 0
.../Parser/Markdown/data/paragraph_list.html | 0
.../Parser/Markdown/data/paragraph_list.md | 0
.../Parser/Markdown/data/reference_title.html | 0
.../Parser/Markdown/data/reference_title.md | 0
.../Markdown/data/separated_nested_list.html | 0
.../Markdown/data/separated_nested_list.md | 0
.../Parser/Markdown/data/setext_header.html | 0
.../Parser/Markdown/data/setext_header.md | 0
.../Markdown/data/simple_blockquote.html | 0
.../Parser/Markdown/data/simple_blockquote.md | 0
.../Parser/Markdown/data/simple_table.html | 0
.../Parser/Markdown/data/simple_table.md | 0
.../Markdown/data/sparse_dense_list.html | 0
.../Parser/Markdown/data/sparse_dense_list.md | 0
.../Parser/Markdown/data/sparse_list.html | 0
.../Utils/Parser/Markdown/data/sparse_list.md | 0
.../Markdown/data/special_characters.html | 0
.../Markdown/data/special_characters.md | 0
.../Parser/Markdown/data/strikethrough.html | 0
.../Parser/Markdown/data/strikethrough.md | 0
.../Utils/Parser/Markdown/data/strong_em.html | 0
tests/Utils/Parser/Markdown/data/strong_em.md | 0
.../data/tab-indented_code_block.html | 0
.../Markdown/data/tab-indented_code_block.md | 0
.../Markdown/data/table_inline_markdown.html | 0
.../Markdown/data/table_inline_markdown.md | 0
.../Parser/Markdown/data/text_reference.html | 0
.../Parser/Markdown/data/text_reference.md | 0
.../Parser/Markdown/data/unordered_list.html | 0
.../Parser/Markdown/data/unordered_list.md | 0
.../Parser/Markdown/data/untidy_table.html | 0
.../Parser/Markdown/data/untidy_table.md | 0
.../Parser/Markdown/data/url_autolinking.html | 0
.../Parser/Markdown/data/url_autolinking.md | 0
.../Parser/Markdown/data/whitespace.html | 0
.../Utils/Parser/Markdown/data/whitespace.md | 0
.../Markdown/data/xss_attribute_encoding.html | 0
.../Markdown/data/xss_attribute_encoding.md | 0
.../Parser/Markdown/data/xss_bad_url.html | 0
.../Utils/Parser/Markdown/data/xss_bad_url.md | 0
tests/Utils/Parser/Php/ArrayParserTest.php | 4 +-
tests/Utils/PermutationTest.php | 4 +-
tests/Utils/RnG/ArrayRandomizeTest.php | 4 +-
tests/Utils/RnG/DateTimeTest.php | 4 +-
tests/Utils/RnG/DistributionTypeTest.php | 4 +-
tests/Utils/RnG/FileTest.php | 4 +-
.../RnG/LinearCongruentialGeneratorTest.php | 4 +-
tests/Utils/RnG/NameTest.php | 4 +-
tests/Utils/RnG/PhoneTest.php | 4 +-
tests/Utils/RnG/StringUtilsTest.php | 4 +-
tests/Utils/RnG/TextTest.php | 4 +-
tests/Utils/StringCompareTest.php | 4 +-
tests/Utils/StringUtilsTest.php | 4 +-
tests/Utils/TaskSchedule/CronJobTest.php | 4 +-
tests/Utils/TaskSchedule/CronTest.php | 4 +-
tests/Utils/TaskSchedule/IntervalTest.php | 4 +-
tests/Utils/TaskSchedule/ScheduleTest.php | 4 +-
.../TaskSchedule/SchedulerAbstractTest.php | 4 +-
.../TaskSchedule/SchedulerFactoryTest.php | 4 +-
tests/Utils/TaskSchedule/TaskAbstractTest.php | 4 +-
tests/Utils/TaskSchedule/TaskFactoryTest.php | 4 +-
.../Utils/TaskSchedule/TaskSchedulerTest.php | 4 +-
tests/Utils/TestUtilsClass.php | 4 +-
tests/Utils/TestUtilsTest.php | 4 +-
tests/Utils/logo.png | Bin
tests/Validation/Base/DateTimeTest.php | 4 +-
tests/Validation/Base/JsonTest.php | 4 +-
tests/Validation/Base/json/additional.json | 2 +-
tests/Validation/Base/json/incomplete.json | 2 +-
tests/Validation/Base/json/invalid.json | 2 +-
tests/Validation/Base/json/template.json | 0
tests/Validation/Base/json/valid.json | 2 +-
tests/Validation/Finance/BICTest.php | 4 +-
tests/Validation/Finance/CreditCardTest.php | 4 +-
tests/Validation/Finance/IbanEnumTest.php | 4 +-
.../Validation/Finance/IbanErrorTypeTest.php | 4 +-
tests/Validation/Finance/IbanTest.php | 4 +-
tests/Validation/Network/EmailTest.php | 4 +-
tests/Validation/Network/HostnameTest.php | 4 +-
tests/Validation/Network/IpTest.php | 4 +-
tests/Validation/ValidatorTest.php | 4 +-
tests/Version/VersionTest.php | 4 +-
tests/Views/PaginationViewTest.php | 4 +-
tests/Views/ViewTest.php | 4 +-
tests/Views/testArray.tpl.php | 4 +-
tests/Views/testReturnTemplate.tpl.php | 4 +-
tests/Views/testTemplate.tpl.php | 0
tests/phpunit_no_coverage.xml | 0
1427 files changed, 3473 insertions(+), 2829 deletions(-)
mode change 100644 => 100755 Account/AccountManager.php
mode change 100644 => 100755 Account/AccountStatus.php
mode change 100644 => 100755 Account/AccountType.php
mode change 100644 => 100755 Account/GroupStatus.php
mode change 100644 => 100755 Account/NullAccount.php
mode change 100644 => 100755 Account/NullGroup.php
mode change 100644 => 100755 Account/PermissionAbstract.php
mode change 100644 => 100755 Account/PermissionOwner.php
mode change 100644 => 100755 Account/PermissionType.php
mode change 100644 => 100755 Algorithm/Clustering/Point.php
mode change 100644 => 100755 Algorithm/Graph/DependencyResolver.php
mode change 100644 => 100755 Algorithm/JobScheduling/Job.php
mode change 100644 => 100755 Algorithm/JobScheduling/JobInterface.php
mode change 100644 => 100755 Algorithm/Knapsack/Backpack.php
mode change 100644 => 100755 Algorithm/Knapsack/BackpackInterface.php
mode change 100644 => 100755 Algorithm/Knapsack/Item.php
mode change 100644 => 100755 Algorithm/Knapsack/ItemInterface.php
mode change 100644 => 100755 Algorithm/PathFinding/AStarNode.php
mode change 100644 => 100755 Algorithm/PathFinding/Grid.php
mode change 100644 => 100755 Algorithm/PathFinding/Heuristic.php
mode change 100644 => 100755 Algorithm/PathFinding/HeuristicType.php
mode change 100644 => 100755 Algorithm/PathFinding/JumpPointNode.php
mode change 100644 => 100755 Algorithm/PathFinding/MovementType.php
mode change 100644 => 100755 Algorithm/PathFinding/Node.php
mode change 100644 => 100755 Algorithm/PathFinding/NullJumpPointNode.php
mode change 100644 => 100755 Algorithm/PathFinding/NullNode.php
mode change 100644 => 100755 Algorithm/PathFinding/PathFinderInterface.php
mode change 100644 => 100755 Algorithm/Sort/BubbleSort.php
mode change 100644 => 100755 Algorithm/Sort/CocktailShakerSort.php
mode change 100644 => 100755 Algorithm/Sort/CycleSort.php
mode change 100644 => 100755 Algorithm/Sort/GnomeSort.php
mode change 100644 => 100755 Algorithm/Sort/HeapSort.php
mode change 100644 => 100755 Algorithm/Sort/InsertionSort.php
mode change 100644 => 100755 Algorithm/Sort/MergeSort.php
mode change 100644 => 100755 Algorithm/Sort/OddEvenSort.php
mode change 100644 => 100755 Algorithm/Sort/PancakeSort.php
mode change 100644 => 100755 Algorithm/Sort/SelectionSort.php
mode change 100644 => 100755 Algorithm/Sort/ShellSort.php
mode change 100644 => 100755 Algorithm/Sort/SortInterface.php
mode change 100644 => 100755 Algorithm/Sort/SortOrder.php
mode change 100644 => 100755 Algorithm/Sort/SortableInterface.php
mode change 100644 => 100755 Algorithm/Sort/StoogeSort.php
mode change 100644 => 100755 Application/infoLayout.json
mode change 100644 => 100755 Asset/AssetManager.php
mode change 100644 => 100755 Asset/AssetType.php
mode change 100644 => 100755 Auth/Auth.php
mode change 100644 => 100755 Auth/LoginReturnType.php
mode change 100644 => 100755 AutoloadException.php
mode change 100644 => 100755 Business/Marketing/NetPromoterScore.php
mode change 100644 => 100755 Business/Marketing/PageRank.php
mode change 100644 => 100755 CODE_OF_CONDUCT.md
mode change 100644 => 100755 CONTRIBUTING.md
mode change 100644 => 100755 Config/OptionsInterface.php
mode change 100644 => 100755 Config/OptionsTrait.php
mode change 100644 => 100755 Config/SettingsInterface.php
mode change 100644 => 100755 Contract/ArrayableInterface.php
mode change 100644 => 100755 Contract/RenderableInterface.php
mode change 100644 => 100755 Contract/StreamInterface.php
mode change 100644 => 100755 DataStorage/Cache/CacheStatus.php
mode change 100644 => 100755 DataStorage/Cache/CacheType.php
mode change 100644 => 100755 DataStorage/Cache/Connection/CacheValueType.php
mode change 100644 => 100755 DataStorage/Cache/Connection/ConnectionAbstract.php
mode change 100644 => 100755 DataStorage/Cache/Connection/ConnectionFactory.php
mode change 100644 => 100755 DataStorage/Cache/Connection/ConnectionInterface.php
mode change 100644 => 100755 DataStorage/Cache/Connection/NullCache.php
mode change 100644 => 100755 DataStorage/Cache/Exception/InvalidConnectionConfigException.php
mode change 100644 => 100755 DataStorage/DataMapperInterface.php
mode change 100644 => 100755 DataStorage/DataStorageConnectionInterface.php
mode change 100644 => 100755 DataStorage/DataStoragePoolInterface.php
mode change 100644 => 100755 DataStorage/Database/BuilderAbstract.php
mode change 100644 => 100755 DataStorage/Database/Connection/ConnectionAbstract.php
mode change 100644 => 100755 DataStorage/Database/Connection/ConnectionFactory.php
mode change 100644 => 100755 DataStorage/Database/Connection/ConnectionInterface.php
mode change 100644 => 100755 DataStorage/Database/Connection/MysqlConnection.php
mode change 100644 => 100755 DataStorage/Database/Connection/NullConnection.php
mode change 100644 => 100755 DataStorage/Database/Connection/NullPDO.php
mode change 100644 => 100755 DataStorage/Database/Connection/PostgresConnection.php
mode change 100644 => 100755 DataStorage/Database/Connection/SQLiteConnection.php
mode change 100644 => 100755 DataStorage/Database/Connection/SqlServerConnection.php
mode change 100644 => 100755 DataStorage/Database/DatabaseStatus.php
mode change 100644 => 100755 DataStorage/Database/DatabaseType.php
mode change 100644 => 100755 DataStorage/Database/Exception/InvalidConnectionConfigException.php
mode change 100644 => 100755 DataStorage/Database/Exception/InvalidDatabaseTypeException.php
mode change 100644 => 100755 DataStorage/Database/Exception/InvalidMapperException.php
mode change 100644 => 100755 DataStorage/Database/Query/Column.php
mode change 100644 => 100755 DataStorage/Database/Query/Count.php
mode change 100644 => 100755 DataStorage/Database/Query/Expression.php
mode change 100644 => 100755 DataStorage/Database/Query/From.php
mode change 100644 => 100755 DataStorage/Database/Query/Grammar/GrammarInterface.php
mode change 100644 => 100755 DataStorage/Database/Query/Grammar/MysqlGrammar.php
mode change 100644 => 100755 DataStorage/Database/Query/Grammar/OracleGrammar.php
mode change 100644 => 100755 DataStorage/Database/Query/Grammar/PostgresGrammar.php
mode change 100644 => 100755 DataStorage/Database/Query/Grammar/SQLiteGrammar.php
mode change 100644 => 100755 DataStorage/Database/Query/Grammar/SqlServerGrammar.php
mode change 100644 => 100755 DataStorage/Database/Query/Into.php
mode change 100644 => 100755 DataStorage/Database/Query/JoinType.php
mode change 100644 => 100755 DataStorage/Database/Query/Parameter.php
mode change 100644 => 100755 DataStorage/Database/Query/QueryType.php
mode change 100644 => 100755 DataStorage/Database/Query/Select.php
mode change 100644 => 100755 DataStorage/Database/Query/Where.php
mode change 100644 => 100755 DataStorage/Database/RelationType.php
mode change 100644 => 100755 DataStorage/Database/Schema/Builder.php
mode change 100644 => 100755 DataStorage/Database/Schema/Field.php
mode change 100644 => 100755 DataStorage/Database/Schema/Grammar/Grammar.php
mode change 100644 => 100755 DataStorage/Database/Schema/Grammar/GrammarInterface.php
mode change 100644 => 100755 DataStorage/Database/Schema/Grammar/OracleGrammar.php
mode change 100644 => 100755 DataStorage/Database/Schema/Grammar/PostgresGrammar.php
mode change 100644 => 100755 DataStorage/Database/Schema/Grammar/SQLiteGrammar.php
mode change 100644 => 100755 DataStorage/Database/Schema/Grammar/SqlServerGrammar.php
mode change 100644 => 100755 DataStorage/Database/Schema/QueryType.php
mode change 100644 => 100755 DataStorage/Database/Schema/Table.php
mode change 100644 => 100755 DataStorage/Database/tableDefinition.json
mode change 100644 => 100755 DataStorage/LockException.php
mode change 100644 => 100755 DataStorage/Session/README.md
mode change 100644 => 100755 DataStorage/Session/SessionInterface.php
mode change 100644 => 100755 Dispatcher/DispatcherInterface.php
create mode 100644 Image/Kernel.php
create mode 100644 Image/Skew.php
mode change 100644 => 100755 LICENSE.txt
mode change 100644 => 100755 Localization/Defaults/City.php
mode change 100644 => 100755 Localization/Defaults/CityMapper.php
mode change 100644 => 100755 Localization/Defaults/Country.php
mode change 100644 => 100755 Localization/Defaults/CountryMapper.php
mode change 100644 => 100755 Localization/Defaults/Currency.php
mode change 100644 => 100755 Localization/Defaults/CurrencyMapper.php
mode change 100644 => 100755 Localization/Defaults/Definitions/de_DE.json
mode change 100644 => 100755 Localization/Defaults/Definitions/en_US.json
mode change 100644 => 100755 Localization/Defaults/Definitions/it_IT.json
mode change 100644 => 100755 Localization/Defaults/Iban.php
mode change 100644 => 100755 Localization/Defaults/IbanMapper.php
mode change 100644 => 100755 Localization/Defaults/Language.php
mode change 100644 => 100755 Localization/Defaults/LanguageMapper.php
mode change 100644 => 100755 Localization/Defaults/NullCity.php
mode change 100644 => 100755 Localization/Defaults/NullCountry.php
mode change 100644 => 100755 Localization/Defaults/NullCurrency.php
mode change 100644 => 100755 Localization/Defaults/NullIban.php
mode change 100644 => 100755 Localization/Defaults/NullLanguage.php
mode change 100644 => 100755 Localization/ISO3166CharEnum.php
mode change 100644 => 100755 Localization/ISO3166NameEnum.php
mode change 100644 => 100755 Localization/ISO3166NumEnum.php
mode change 100644 => 100755 Localization/ISO3166TwoEnum.php
mode change 100644 => 100755 Localization/ISO4217CharEnum.php
mode change 100644 => 100755 Localization/ISO4217DecimalEnum.php
mode change 100644 => 100755 Localization/ISO4217Enum.php
mode change 100644 => 100755 Localization/ISO4217NumEnum.php
mode change 100644 => 100755 Localization/ISO4217SubUnitEnum.php
mode change 100644 => 100755 Localization/ISO4217SymbolEnum.php
mode change 100644 => 100755 Localization/ISO639Enum.php
mode change 100644 => 100755 Localization/ISO639x1Enum.php
mode change 100644 => 100755 Localization/ISO639x2Enum.php
mode change 100644 => 100755 Localization/ISO8601EnumArray.php
mode change 100644 => 100755 Localization/LegalEntityType.php
mode change 100644 => 100755 Localization/Maps/svg/ad.svg
mode change 100644 => 100755 Localization/Maps/svg/ae.svg
mode change 100644 => 100755 Localization/Maps/svg/af.svg
mode change 100644 => 100755 Localization/Maps/svg/africa.svg
mode change 100644 => 100755 Localization/Maps/svg/ag.svg
mode change 100644 => 100755 Localization/Maps/svg/ai.svg
mode change 100644 => 100755 Localization/Maps/svg/al.svg
mode change 100644 => 100755 Localization/Maps/svg/am.svg
mode change 100644 => 100755 Localization/Maps/svg/ao.svg
mode change 100644 => 100755 Localization/Maps/svg/ar.svg
mode change 100644 => 100755 Localization/Maps/svg/at.svg
mode change 100644 => 100755 Localization/Maps/svg/au.svg
mode change 100644 => 100755 Localization/Maps/svg/aw.svg
mode change 100644 => 100755 Localization/Maps/svg/az.svg
mode change 100644 => 100755 Localization/Maps/svg/ba.svg
mode change 100644 => 100755 Localization/Maps/svg/bb.svg
mode change 100644 => 100755 Localization/Maps/svg/bd.svg
mode change 100644 => 100755 Localization/Maps/svg/be.svg
mode change 100644 => 100755 Localization/Maps/svg/bf.svg
mode change 100644 => 100755 Localization/Maps/svg/bg.svg
mode change 100644 => 100755 Localization/Maps/svg/bh.svg
mode change 100644 => 100755 Localization/Maps/svg/bi.svg
mode change 100644 => 100755 Localization/Maps/svg/bj.svg
mode change 100644 => 100755 Localization/Maps/svg/bm.svg
mode change 100644 => 100755 Localization/Maps/svg/bn.svg
mode change 100644 => 100755 Localization/Maps/svg/bo.svg
mode change 100644 => 100755 Localization/Maps/svg/br.svg
mode change 100644 => 100755 Localization/Maps/svg/bs.svg
mode change 100644 => 100755 Localization/Maps/svg/bt.svg
mode change 100644 => 100755 Localization/Maps/svg/bw.svg
mode change 100644 => 100755 Localization/Maps/svg/by.svg
mode change 100644 => 100755 Localization/Maps/svg/bz.svg
mode change 100644 => 100755 Localization/Maps/svg/ca.svg
mode change 100644 => 100755 Localization/Maps/svg/cd.svg
mode change 100644 => 100755 Localization/Maps/svg/cf.svg
mode change 100644 => 100755 Localization/Maps/svg/cg.svg
mode change 100644 => 100755 Localization/Maps/svg/ch.svg
mode change 100644 => 100755 Localization/Maps/svg/ci.svg
mode change 100644 => 100755 Localization/Maps/svg/cl.svg
mode change 100644 => 100755 Localization/Maps/svg/cm.svg
mode change 100644 => 100755 Localization/Maps/svg/cn.svg
mode change 100644 => 100755 Localization/Maps/svg/co.svg
mode change 100644 => 100755 Localization/Maps/svg/cr.svg
mode change 100644 => 100755 Localization/Maps/svg/cu.svg
mode change 100644 => 100755 Localization/Maps/svg/cv.svg
mode change 100644 => 100755 Localization/Maps/svg/cw.svg
mode change 100644 => 100755 Localization/Maps/svg/cy.svg
mode change 100644 => 100755 Localization/Maps/svg/cz.svg
mode change 100644 => 100755 Localization/Maps/svg/de.svg
mode change 100644 => 100755 Localization/Maps/svg/dj.svg
mode change 100644 => 100755 Localization/Maps/svg/dk.svg
mode change 100644 => 100755 Localization/Maps/svg/dm.svg
mode change 100644 => 100755 Localization/Maps/svg/do.svg
mode change 100644 => 100755 Localization/Maps/svg/dz.svg
mode change 100644 => 100755 Localization/Maps/svg/ec.svg
mode change 100644 => 100755 Localization/Maps/svg/ee.svg
mode change 100644 => 100755 Localization/Maps/svg/eg.svg
mode change 100644 => 100755 Localization/Maps/svg/eh.svg
mode change 100644 => 100755 Localization/Maps/svg/er.svg
mode change 100644 => 100755 Localization/Maps/svg/es.svg
mode change 100644 => 100755 Localization/Maps/svg/et.svg
mode change 100644 => 100755 Localization/Maps/svg/europe.svg
mode change 100644 => 100755 Localization/Maps/svg/fi.svg
mode change 100644 => 100755 Localization/Maps/svg/fj.svg
mode change 100644 => 100755 Localization/Maps/svg/fk.svg
mode change 100644 => 100755 Localization/Maps/svg/fo.svg
mode change 100644 => 100755 Localization/Maps/svg/fr.svg
mode change 100644 => 100755 Localization/Maps/svg/ga.svg
mode change 100644 => 100755 Localization/Maps/svg/gb.svg
mode change 100644 => 100755 Localization/Maps/svg/gd.svg
mode change 100644 => 100755 Localization/Maps/svg/ge.svg
mode change 100644 => 100755 Localization/Maps/svg/gh.svg
mode change 100644 => 100755 Localization/Maps/svg/gl.svg
mode change 100644 => 100755 Localization/Maps/svg/gm.svg
mode change 100644 => 100755 Localization/Maps/svg/gn.svg
mode change 100644 => 100755 Localization/Maps/svg/gq.svg
mode change 100644 => 100755 Localization/Maps/svg/gr.svg
mode change 100644 => 100755 Localization/Maps/svg/gt.svg
mode change 100644 => 100755 Localization/Maps/svg/gw.svg
mode change 100644 => 100755 Localization/Maps/svg/gy.svg
mode change 100644 => 100755 Localization/Maps/svg/hk.svg
mode change 100644 => 100755 Localization/Maps/svg/hn.svg
mode change 100644 => 100755 Localization/Maps/svg/hr.svg
mode change 100644 => 100755 Localization/Maps/svg/ht.svg
mode change 100644 => 100755 Localization/Maps/svg/hu.svg
mode change 100644 => 100755 Localization/Maps/svg/id.svg
mode change 100644 => 100755 Localization/Maps/svg/ie.svg
mode change 100644 => 100755 Localization/Maps/svg/il.svg
mode change 100644 => 100755 Localization/Maps/svg/in.svg
mode change 100644 => 100755 Localization/Maps/svg/iq.svg
mode change 100644 => 100755 Localization/Maps/svg/ir.svg
mode change 100644 => 100755 Localization/Maps/svg/is.svg
mode change 100644 => 100755 Localization/Maps/svg/it.svg
mode change 100644 => 100755 Localization/Maps/svg/jm.svg
mode change 100644 => 100755 Localization/Maps/svg/jo.svg
mode change 100644 => 100755 Localization/Maps/svg/jp.svg
mode change 100644 => 100755 Localization/Maps/svg/ke.svg
mode change 100644 => 100755 Localization/Maps/svg/kg.svg
mode change 100644 => 100755 Localization/Maps/svg/kh.svg
mode change 100644 => 100755 Localization/Maps/svg/km.svg
mode change 100644 => 100755 Localization/Maps/svg/kn.svg
mode change 100644 => 100755 Localization/Maps/svg/kp.svg
mode change 100644 => 100755 Localization/Maps/svg/kr.svg
mode change 100644 => 100755 Localization/Maps/svg/kw.svg
mode change 100644 => 100755 Localization/Maps/svg/ky.svg
mode change 100644 => 100755 Localization/Maps/svg/kz.svg
mode change 100644 => 100755 Localization/Maps/svg/la.svg
mode change 100644 => 100755 Localization/Maps/svg/lb.svg
mode change 100644 => 100755 Localization/Maps/svg/lc.svg
mode change 100644 => 100755 Localization/Maps/svg/li.svg
mode change 100644 => 100755 Localization/Maps/svg/lk.svg
mode change 100644 => 100755 Localization/Maps/svg/lr.svg
mode change 100644 => 100755 Localization/Maps/svg/ls.svg
mode change 100644 => 100755 Localization/Maps/svg/lt.svg
mode change 100644 => 100755 Localization/Maps/svg/lu.svg
mode change 100644 => 100755 Localization/Maps/svg/lv.svg
mode change 100644 => 100755 Localization/Maps/svg/ly.svg
mode change 100644 => 100755 Localization/Maps/svg/ma.svg
mode change 100644 => 100755 Localization/Maps/svg/md.svg
mode change 100644 => 100755 Localization/Maps/svg/me.svg
mode change 100644 => 100755 Localization/Maps/svg/mf.svg
mode change 100644 => 100755 Localization/Maps/svg/mg.svg
mode change 100644 => 100755 Localization/Maps/svg/mk.svg
mode change 100644 => 100755 Localization/Maps/svg/ml.svg
mode change 100644 => 100755 Localization/Maps/svg/mm.svg
mode change 100644 => 100755 Localization/Maps/svg/mn.svg
mode change 100644 => 100755 Localization/Maps/svg/mr.svg
mode change 100644 => 100755 Localization/Maps/svg/ms.svg
mode change 100644 => 100755 Localization/Maps/svg/mt.svg
mode change 100644 => 100755 Localization/Maps/svg/mu.svg
mode change 100644 => 100755 Localization/Maps/svg/mv.svg
mode change 100644 => 100755 Localization/Maps/svg/mw.svg
mode change 100644 => 100755 Localization/Maps/svg/mx.svg
mode change 100644 => 100755 Localization/Maps/svg/my.svg
mode change 100644 => 100755 Localization/Maps/svg/mz.svg
mode change 100644 => 100755 Localization/Maps/svg/na.svg
mode change 100644 => 100755 Localization/Maps/svg/nc.svg
mode change 100644 => 100755 Localization/Maps/svg/ne.svg
mode change 100644 => 100755 Localization/Maps/svg/ng.svg
mode change 100644 => 100755 Localization/Maps/svg/ni.svg
mode change 100644 => 100755 Localization/Maps/svg/nl.svg
mode change 100644 => 100755 Localization/Maps/svg/no.svg
mode change 100644 => 100755 Localization/Maps/svg/north-america.svg
mode change 100644 => 100755 Localization/Maps/svg/np.svg
mode change 100644 => 100755 Localization/Maps/svg/nr.svg
mode change 100644 => 100755 Localization/Maps/svg/nz.svg
mode change 100644 => 100755 Localization/Maps/svg/om.svg
mode change 100644 => 100755 Localization/Maps/svg/pa.svg
mode change 100644 => 100755 Localization/Maps/svg/pe.svg
mode change 100644 => 100755 Localization/Maps/svg/pf.svg
mode change 100644 => 100755 Localization/Maps/svg/pg.svg
mode change 100644 => 100755 Localization/Maps/svg/ph.svg
mode change 100644 => 100755 Localization/Maps/svg/pk.svg
mode change 100644 => 100755 Localization/Maps/svg/pl.svg
mode change 100644 => 100755 Localization/Maps/svg/pn.svg
mode change 100644 => 100755 Localization/Maps/svg/pr.svg
mode change 100644 => 100755 Localization/Maps/svg/ps.svg
mode change 100644 => 100755 Localization/Maps/svg/pt.svg
mode change 100644 => 100755 Localization/Maps/svg/py.svg
mode change 100644 => 100755 Localization/Maps/svg/qa.svg
mode change 100644 => 100755 Localization/Maps/svg/ro.svg
mode change 100644 => 100755 Localization/Maps/svg/rs.svg
mode change 100644 => 100755 Localization/Maps/svg/ru.svg
mode change 100644 => 100755 Localization/Maps/svg/rw.svg
mode change 100644 => 100755 Localization/Maps/svg/sa.svg
mode change 100644 => 100755 Localization/Maps/svg/sb.svg
mode change 100644 => 100755 Localization/Maps/svg/sc.svg
mode change 100644 => 100755 Localization/Maps/svg/sd.svg
mode change 100644 => 100755 Localization/Maps/svg/se.svg
mode change 100644 => 100755 Localization/Maps/svg/sg.svg
mode change 100644 => 100755 Localization/Maps/svg/si.svg
mode change 100644 => 100755 Localization/Maps/svg/simplemaps_license.png
mode change 100644 => 100755 Localization/Maps/svg/sk.svg
mode change 100644 => 100755 Localization/Maps/svg/sl.svg
mode change 100644 => 100755 Localization/Maps/svg/sn.svg
mode change 100644 => 100755 Localization/Maps/svg/so.svg
mode change 100644 => 100755 Localization/Maps/svg/sr.svg
mode change 100644 => 100755 Localization/Maps/svg/ss.svg
mode change 100644 => 100755 Localization/Maps/svg/st.svg
mode change 100644 => 100755 Localization/Maps/svg/sv.svg
mode change 100644 => 100755 Localization/Maps/svg/sx.svg
mode change 100644 => 100755 Localization/Maps/svg/sy.svg
mode change 100644 => 100755 Localization/Maps/svg/sz.svg
mode change 100644 => 100755 Localization/Maps/svg/tc.svg
mode change 100644 => 100755 Localization/Maps/svg/td.svg
mode change 100644 => 100755 Localization/Maps/svg/tg.svg
mode change 100644 => 100755 Localization/Maps/svg/th.svg
mode change 100644 => 100755 Localization/Maps/svg/tj.svg
mode change 100644 => 100755 Localization/Maps/svg/tl.svg
mode change 100644 => 100755 Localization/Maps/svg/tm.svg
mode change 100644 => 100755 Localization/Maps/svg/tn.svg
mode change 100644 => 100755 Localization/Maps/svg/to.svg
mode change 100644 => 100755 Localization/Maps/svg/tr.svg
mode change 100644 => 100755 Localization/Maps/svg/tt.svg
mode change 100644 => 100755 Localization/Maps/svg/tw.svg
mode change 100644 => 100755 Localization/Maps/svg/tz.svg
mode change 100644 => 100755 Localization/Maps/svg/ua.svg
mode change 100644 => 100755 Localization/Maps/svg/ug.svg
mode change 100644 => 100755 Localization/Maps/svg/us.svg
mode change 100644 => 100755 Localization/Maps/svg/uy.svg
mode change 100644 => 100755 Localization/Maps/svg/uz.svg
mode change 100644 => 100755 Localization/Maps/svg/vc.svg
mode change 100644 => 100755 Localization/Maps/svg/ve.svg
mode change 100644 => 100755 Localization/Maps/svg/vg.svg
mode change 100644 => 100755 Localization/Maps/svg/vi.svg
mode change 100644 => 100755 Localization/Maps/svg/vn.svg
mode change 100644 => 100755 Localization/Maps/svg/vu.svg
mode change 100644 => 100755 Localization/Maps/svg/world-pacific.svg
mode change 100644 => 100755 Localization/Maps/svg/world.svg
mode change 100644 => 100755 Localization/Maps/svg/ye.svg
mode change 100644 => 100755 Localization/Maps/svg/za.svg
mode change 100644 => 100755 Localization/Maps/svg/zm.svg
mode change 100644 => 100755 Localization/Maps/svg/zw.svg
mode change 100644 => 100755 Localization/Money.php
mode change 100644 => 100755 Localization/NullLocalization.php
mode change 100644 => 100755 Localization/PhoneEnum.php
mode change 100644 => 100755 Localization/TimeZoneEnumArray.php
mode change 100644 => 100755 Log/LogLevel.php
mode change 100644 => 100755 Log/LoggerInterface.php
mode change 100644 => 100755 Math/Exception/ZeroDivisionException.php
mode change 100644 => 100755 Math/Geometry/Shape/D2/D2ShapeInterface.php
mode change 100644 => 100755 Math/Geometry/Shape/D2/Trapezoid.php
mode change 100644 => 100755 Math/Geometry/Shape/D3/Cuboid.php
mode change 100644 => 100755 Math/Geometry/Shape/D3/Cylinder.php
mode change 100644 => 100755 Math/Geometry/Shape/D3/D3ShapeInterface.php
mode change 100644 => 100755 Math/Geometry/Shape/D3/Prism.php
mode change 100644 => 100755 Math/Geometry/Shape/ShapeInterface.php
mode change 100644 => 100755 Math/Matrix/Exception/InvalidDimensionException.php
mode change 100644 => 100755 Math/Matrix/IdentityMatrix.php
mode change 100644 => 100755 Math/Matrix/QRDecomposition.php
mode change 100644 => 100755 Math/Matrix/Vector.php
mode change 100644 => 100755 Math/Matrix/copyright.png
mode change 100644 => 100755 Math/Number/Natural.php
mode change 100644 => 100755 Math/Number/NumberType.php
mode change 100644 => 100755 Math/Number/OperationInterface.php
mode change 100644 => 100755 Math/Numerics/Integration.php
mode change 100644 => 100755 Math/Numerics/Interpolation/DerivativeType.php
mode change 100644 => 100755 Math/Numerics/Interpolation/InterpolationInterface.php
mode change 100644 => 100755 Math/Numerics/Interpolation/LagrangeInterpolation.php
mode change 100644 => 100755 Math/Statistic/Correlation.php
mode change 100644 => 100755 Math/Statistic/Forecast/Forecasts.php
mode change 100644 => 100755 Math/Statistic/Forecast/Regression/LevelLevelRegression.php
mode change 100644 => 100755 Math/Statistic/Forecast/Regression/MultipleLinearRegression.php
mode change 100644 => 100755 Message/HeaderAbstract.php
mode change 100644 => 100755 Message/Http/BrowserType.php
mode change 100644 => 100755 Message/Http/OSType.php
mode change 100644 => 100755 Message/Http/RequestMethod.php
mode change 100644 => 100755 Message/Http/RequestStatus.php
mode change 100644 => 100755 Message/Http/RequestStatusCode.php
mode change 100644 => 100755 Message/Mail/DispositionType.php
mode change 100644 => 100755 Message/Mail/DsnNotificationType.php
mode change 100644 => 100755 Message/Mail/EncodingType.php
mode change 100644 => 100755 Message/Mail/EncryptionType.php
mode change 100644 => 100755 Message/Mail/HeaderContext.php
mode change 100644 => 100755 Message/Mail/ICALMethodType.php
mode change 100644 => 100755 Message/Mail/MailBoxInterface.php
mode change 100644 => 100755 Message/Mail/MessageInterface.php
mode change 100644 => 100755 Message/Mail/SMTPAuthType.php
mode change 100644 => 100755 Message/Mail/SmtpTransactionPattern.php
mode change 100644 => 100755 Message/Mail/SubmitType.php
mode change 100644 => 100755 Message/MessageInterface.php
mode change 100644 => 100755 Message/NotificationLevel.php
mode change 100644 => 100755 Message/ResponseAbstract.php
mode change 100644 => 100755 Message/Socket/PacketManager.php
mode change 100644 => 100755 Message/Socket/PacketType.php
mode change 100644 => 100755 Message/Socket/SocketRequest.php
mode change 100644 => 100755 Message/UploadedFileInterface.php
mode change 100644 => 100755 Model/Html/FormElementGenerator.php
mode change 100644 => 100755 Model/Html/Head.php
mode change 100644 => 100755 Model/Message/DomAction.php
mode change 100644 => 100755 Model/Message/DynamicList.php
mode change 100644 => 100755 Model/Message/NotifyType.php
mode change 100644 => 100755 Module/ConsoleInterface.php
mode change 100644 => 100755 Module/Exception/InvalidModuleException.php
mode change 100644 => 100755 Module/Exception/InvalidThemeException.php
mode change 100644 => 100755 Module/ModuleStatus.php
mode change 100644 => 100755 Module/NullModule.php
mode change 100644 => 100755 Module/SocketInterface.php
mode change 100644 => 100755 Module/UpdaterAbstract.php
mode change 100644 => 100755 Module/WebInterface.php
mode change 100644 => 100755 Module/infoLayout.json
mode change 100644 => 100755 README.md
mode change 100644 => 100755 Router/RouteVerb.php
mode change 100644 => 100755 Router/RouterInterface.php
mode change 100644 => 100755 Socket/Client/ClientConnection.php
mode change 100644 => 100755 Socket/Client/NullClientConnection.php
mode change 100644 => 100755 Socket/Server/ClientManager.php
mode change 100644 => 100755 Socket/SocketInterface.php
mode change 100644 => 100755 Stdlib/Base/Address.php
mode change 100644 => 100755 Stdlib/Base/AddressType.php
mode change 100644 => 100755 Stdlib/Base/Exception/InvalidEnumName.php
mode change 100644 => 100755 Stdlib/Base/Exception/InvalidEnumValue.php
mode change 100644 => 100755 Stdlib/Base/NullLocation.php
mode change 100644 => 100755 Stdlib/Base/PhoneType.php
mode change 100644 => 100755 Stdlib/Graph/Edge.php
mode change 100644 => 100755 Stdlib/Graph/Node.php
mode change 100644 => 100755 Stdlib/Map/KeyType.php
mode change 100644 => 100755 Stdlib/Map/OrderType.php
mode change 100644 => 100755 Stdlib/Queue/PriorityMode.php
mode change 100644 => 100755 System/CharsetType.php
mode change 100644 => 100755 System/File/ContainerInterface.php
mode change 100644 => 100755 System/File/ContentPutMode.php
mode change 100644 => 100755 System/File/DirectoryInterface.php
mode change 100644 => 100755 System/File/ExtensionType.php
mode change 100644 => 100755 System/File/FileInterface.php
mode change 100644 => 100755 System/File/Ftp/FtpContainerInterface.php
mode change 100644 => 100755 System/File/Local/LocalContainerInterface.php
mode change 100644 => 100755 System/File/PathException.php
mode change 100644 => 100755 System/File/PermissionException.php
mode change 100644 => 100755 System/File/StorageAbstract.php
mode change 100644 => 100755 System/SystemType.php
mode change 100644 => 100755 Uri/InvalidUriException.php
mode change 100644 => 100755 Uri/UriScheme.php
mode change 100644 => 100755 Utils/Barcode/Aztec.php
mode change 100644 => 100755 Utils/Barcode/C128b.php
mode change 100644 => 100755 Utils/Barcode/Datamatrix.php
mode change 100644 => 100755 Utils/Barcode/HIBCC.php
mode change 100644 => 100755 Utils/Barcode/OrientationType.php
mode change 100644 => 100755 Utils/Barcode/QR.php
mode change 100644 => 100755 Utils/ColorUtils.php
mode change 100644 => 100755 Utils/Compression/CompressionInterface.php
mode change 100644 => 100755 Utils/Converter/AngleType.php
mode change 100644 => 100755 Utils/Converter/AreaType.php
mode change 100644 => 100755 Utils/Converter/EnergyPowerType.php
mode change 100644 => 100755 Utils/Converter/FileSizeType.php
mode change 100644 => 100755 Utils/Converter/LengthType.php
mode change 100644 => 100755 Utils/Converter/Measurement.php
mode change 100644 => 100755 Utils/Converter/PressureType.php
mode change 100644 => 100755 Utils/Converter/SpeedType.php
mode change 100644 => 100755 Utils/Converter/TemperatureType.php
mode change 100644 => 100755 Utils/Converter/TimeType.php
mode change 100644 => 100755 Utils/Converter/VolumeType.php
mode change 100644 => 100755 Utils/Converter/WeightType.php
mode change 100644 => 100755 Utils/Encoding/Caesar.php
mode change 100644 => 100755 Utils/Encoding/EncodingInterface.php
mode change 100644 => 100755 Utils/Encoding/Gray.php
mode change 100644 => 100755 Utils/Encoding/XorEncoding.php
mode change 100644 => 100755 Utils/Git/Author.php
mode change 100644 => 100755 Utils/Git/Branch.php
mode change 100644 => 100755 Utils/Git/Commit.php
mode change 100644 => 100755 Utils/Git/NullCommit.php
mode change 100644 => 100755 Utils/Git/Tag.php
mode change 100644 => 100755 Utils/IO/Csv/CsvInterface.php
mode change 100644 => 100755 Utils/IO/ExchangeInterface.php
mode change 100644 => 100755 Utils/IO/IODatabaseMapper.php
mode change 100644 => 100755 Utils/IO/Json/InvalidJsonException.php
mode change 100644 => 100755 Utils/IO/Json/JsonInterface.php
mode change 100644 => 100755 Utils/IO/Pdf/PdfInterface.php
mode change 100644 => 100755 Utils/IO/Spreadsheet/SpreadsheetInterface.php
mode change 100644 => 100755 Utils/IO/Zip/ArchiveInterface.php
mode change 100644 => 100755 Utils/NumericUtils.php
mode change 100644 => 100755 Utils/Parser/Markdown/License.txt
mode change 100644 => 100755 Utils/RnG/DistributionType.php
mode change 100644 => 100755 Utils/RnG/LinearCongruentialGenerator.php
mode change 100644 => 100755 Utils/TaskSchedule/NullCronJob.php
mode change 100644 => 100755 Utils/TaskSchedule/NullSchedule.php
mode change 100644 => 100755 Utils/TaskSchedule/Schedule.php
mode change 100644 => 100755 Utils/TaskSchedule/SchedulerFactory.php
mode change 100644 => 100755 Utils/TaskSchedule/TaskAbstract.php
mode change 100644 => 100755 Utils/TaskSchedule/TaskFactory.php
mode change 100644 => 100755 Utils/TestUtils.php
mode change 100644 => 100755 Validation/Finance/IbanEnum.php
mode change 100644 => 100755 Validation/Finance/IbanErrorType.php
mode change 100644 => 100755 Validation/ValidatorAbstract.php
mode change 100644 => 100755 Validation/ValidatorInterface.php
mode change 100644 => 100755 Views/PaginationView.php
mode change 100644 => 100755 composer.json
mode change 100644 => 100755 composer.lock
mode change 100644 => 100755 preload.php
create mode 100644 tests/Ai/Ocr/Tesseract/TesseractOcrTest.php
create mode 100644 tests/Ai/Ocr/Tesseract/actual.txt
create mode 100644 tests/Ai/Ocr/Tesseract/basic.txt
create mode 100644 tests/Ai/Ocr/Tesseract/img1.png
create mode 100644 tests/Ai/Ocr/Tesseract/sharpening_thresholding_rotating.png
create mode 100644 tests/Ai/Ocr/Tesseract/sharpening_thresholding_rotating.txt
create mode 100644 tests/Ai/Ocr/Tesseract/thresholding.png
create mode 100644 tests/Ai/Ocr/Tesseract/thresholding.txt
create mode 100644 tests/Ai/Ocr/Tesseract/thresholding_rotating.png
create mode 100644 tests/Ai/Ocr/Tesseract/thresholding_rotating.txt
mode change 100644 => 100755 tests/Ai/Ocr/t10k-images-idx3-ubyte
mode change 100644 => 100755 tests/Ai/Ocr/t10k-labels-idx1-ubyte
mode change 100644 => 100755 tests/Ai/Ocr/train-images-idx3-ubyte
mode change 100644 => 100755 tests/Ai/Ocr/train-labels-idx1-ubyte
mode change 100644 => 100755 tests/Application/Testapp/Themes/Default/css/styles.css
mode change 100644 => 100755 tests/Application/Testapp/info.json
mode change 100644 => 100755 tests/Application/info-test.json
mode change 100644 => 100755 tests/DataStorage/Cache/Connection/FileCacheSerializable.php
mode change 100644 => 100755 tests/DataStorage/Database/Schema/Grammar/testSchema.json
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/BaseModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/BaseModelMapper.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/BelongsToModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/BelongsToModelMapper.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/Conditional.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/ConditionalMapper.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/ManyToManyDirectModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/ManyToManyDirectModelMapper.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/ManyToManyRelModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/ManyToManyRelModelMapper.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/NullBaseModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/NullBelongsToModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/NullManyToManyDirectModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/NullManyToManyRelModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/NullOwnsOneModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/OwnsOneModel.php
mode change 100644 => 100755 tests/DataStorage/Database/TestModel/OwnsOneModelMapper.php
mode change 100644 => 100755 tests/Dispatcher/TestController.php
mode change 100644 => 100755 tests/Event/events.php
create mode 100644 tests/Image/KernelTest.php
create mode 100644 tests/Image/SkewTest.php
rename tests/Image/{test_img1.png => binary_tilted.png} (100%)
create mode 100644 tests/Image/test_binary_untilted.png
create mode 100644 tests/Image/test_img1_blur.png
create mode 100644 tests/Image/test_img1_emboss.png
create mode 100644 tests/Image/test_img1_integral_thresholding.png
create mode 100644 tests/Image/test_img1_sharpen.png
rename tests/Image/{test_img2.jpg => test_img2_integral_thresholding.jpg} (100%)
mode change 100644 => 100755 tests/Localization/langTestFile.php
mode change 100644 => 100755 tests/Message/Http/HttpRequestBrowser.php
mode change 100644 => 100755 tests/Message/Http/HttpRequestLanguage.php
mode change 100644 => 100755 tests/Message/Http/HttpRequestLocale.php
mode change 100644 => 100755 tests/Message/Http/HttpRequestMobile.php
mode change 100644 => 100755 tests/Message/Http/HttpRequestOS.php
mode change 100644 => 100755 tests/Message/Mail/files/logo.png
mode change 100644 => 100755 tests/Message/Mail/files/utf8.html
mode change 100644 => 100755 tests/Module/Testmodule/Admin/Installer.php
mode change 100644 => 100755 tests/Module/Testmodule/Application/Moduletestapplication/index.tpl.php
mode change 100644 => 100755 tests/Module/Testmodule/Application/Moduletestapplication/info.json
mode change 100644 => 100755 tests/Module/Testmodule/info.json
mode change 100644 => 100755 tests/Module/info-test.json
mode change 100644 => 100755 tests/Module/testModulePackage/Remove/me.md
mode change 100644 => 100755 tests/Module/testModulePackage/Replace.md
mode change 100644 => 100755 tests/Module/testModulePackage/toCopy/a.md
mode change 100644 => 100755 tests/Module/testModulePackage/toCopy/sub/b.txt
mode change 100644 => 100755 tests/Module/testModulePackage/toMove/a.md
mode change 100644 => 100755 tests/Module/testModulePackage/toMove/sub/b.txt
mode change 100644 => 100755 tests/Module/testPackage/info.json
mode change 100644 => 100755 tests/Module/testPackage/package.cert
mode change 100644 => 100755 tests/Module/testPackage/testSubPackage/externalCopy.md
mode change 100644 => 100755 tests/Module/testPackage/testSubPackage/logo.png
mode change 100644 => 100755 tests/Module/testPackage/testSubPackage/run.batch
mode change 100644 => 100755 tests/Module/testPackage/testSubPackage/run.sh
mode change 100644 => 100755 tests/Module/testPackage/testSubPackage/test.txt
mode change 100644 => 100755 tests/Preload0.php
mode change 100644 => 100755 tests/PreloadTest/Preload1.php
mode change 100644 => 100755 tests/PreloadTest/Sub/Preload2.php
mode change 100644 => 100755 tests/PreloadTest/Sub/Preload3.php
mode change 100644 => 100755 tests/Router/socketRouterTestFile.php
mode change 100644 => 100755 tests/Router/socketRouterTestFilePermission.php
mode change 100644 => 100755 tests/Router/webRouteTestCsrf.php
mode change 100644 => 100755 tests/Router/webRouterTestFile.php
mode change 100644 => 100755 tests/Router/webRouterTestFilePermission.php
mode change 100644 => 100755 tests/Security/Sample/hasDeprecated.php
mode change 100644 => 100755 tests/Security/Sample/hasUnicode.php
mode change 100644 => 100755 tests/Security/Sample/noDeprecated.php
mode change 100644 => 100755 tests/Security/Sample/noUnicode.php
mode change 100644 => 100755 tests/Socket/Client/ClientTestHelper.php
mode change 100644 => 100755 tests/Stdlib/Base/EnumArrayDemo.php
mode change 100644 => 100755 tests/Stdlib/Base/HeapItem.php
mode change 100644 => 100755 tests/System/File/Ftp/dirtest/sub/path/test3.txt
mode change 100644 => 100755 tests/System/File/Ftp/dirtest/sub/test2.txt
mode change 100644 => 100755 tests/System/File/Ftp/dirtest/sub/test4.md
mode change 100644 => 100755 tests/System/File/Ftp/dirtest/test.txt
mode change 100644 => 100755 tests/System/File/Windows-1252.txt
mode change 100644 => 100755 tests/TestLoad.php
mode change 100644 => 100755 tests/TestLoad2.php
mode change 100644 => 100755 tests/TestLoad3.php
mode change 100644 => 100755 tests/TestLoad4.php
mode change 100644 => 100755 tests/Utils/IO/Csv/colon.csv
mode change 100644 => 100755 tests/Utils/IO/Csv/comma.csv
mode change 100644 => 100755 tests/Utils/IO/Csv/pipe.csv
mode change 100644 => 100755 tests/Utils/IO/Csv/semicolon.csv
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/backup.db
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/insert.ods
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/insert.xls
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/insert.xlsx
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/update.ods
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/update.xls
mode change 100644 => 100755 tests/Utils/IO/Spreadsheet/update.xlsx
mode change 100644 => 100755 tests/Utils/IO/Zip/invalidpack.tar.gz.tmp
mode change 100644 => 100755 tests/Utils/IO/Zip/invalidunpack.tmp
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/aesthetic_table.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/aesthetic_table.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/aligned_table.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/aligned_table.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/atx_heading.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/atx_heading.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/automatic_link.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/automatic_link.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/code_block.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/code_block.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/code_span.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/code_span.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/compound_blockquote.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/compound_blockquote.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/compound_emphasis.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/compound_emphasis.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/compound_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/compound_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/deeply_nested_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/deeply_nested_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/em_strong.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/em_strong.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/email.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/email.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/emphasis.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/emphasis.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/escaping.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/escaping.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/fenced_code_block.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/fenced_code_block.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/horizontal_rule.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/horizontal_rule.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/image_reference.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/image_reference.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/image_title.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/image_title.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/implicit_reference.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/implicit_reference.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/inline_link.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/inline_link.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/inline_link_title.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/inline_link_title.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/inline_title.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/inline_title.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/lazy_blockquote.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/lazy_blockquote.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/lazy_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/lazy_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/line_break.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/line_break.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/multiline_list_paragraph.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/multiline_list_paragraph.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/ordered_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/ordered_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/paragraph_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/paragraph_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/reference_title.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/reference_title.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/separated_nested_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/separated_nested_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/setext_header.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/setext_header.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/simple_blockquote.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/simple_blockquote.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/simple_table.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/simple_table.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/sparse_dense_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/sparse_dense_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/sparse_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/sparse_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/special_characters.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/special_characters.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/strikethrough.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/strikethrough.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/strong_em.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/strong_em.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/tab-indented_code_block.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/tab-indented_code_block.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/table_inline_markdown.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/table_inline_markdown.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/text_reference.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/text_reference.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/unordered_list.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/unordered_list.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/untidy_table.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/untidy_table.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/url_autolinking.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/url_autolinking.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/whitespace.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/whitespace.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/xss_attribute_encoding.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/xss_attribute_encoding.md
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/xss_bad_url.html
mode change 100644 => 100755 tests/Utils/Parser/Markdown/data/xss_bad_url.md
mode change 100644 => 100755 tests/Utils/TestUtilsClass.php
mode change 100644 => 100755 tests/Utils/logo.png
mode change 100644 => 100755 tests/Validation/Base/json/additional.json
mode change 100644 => 100755 tests/Validation/Base/json/incomplete.json
mode change 100644 => 100755 tests/Validation/Base/json/invalid.json
mode change 100644 => 100755 tests/Validation/Base/json/template.json
mode change 100644 => 100755 tests/Validation/Base/json/valid.json
mode change 100644 => 100755 tests/Views/testArray.tpl.php
mode change 100644 => 100755 tests/Views/testTemplate.tpl.php
mode change 100644 => 100755 tests/phpunit_no_coverage.xml
diff --git a/Account/Account.php b/Account/Account.php
index 0ca2c57ca..9c1cdb35d 100644
--- a/Account/Account.php
+++ b/Account/Account.php
@@ -1,6 +1,6 @@
path) . ' '
+ . ' '
. $cmd;
} else {
$cmd = \escapeshellarg(self::$bin)
- . ' -C ' . \escapeshellarg($this->path) . ' '
+ . ' '
. $cmd;
}
@@ -84,7 +84,7 @@ final class TesseractOcr
2 => ['pipe', 'w'],
];
- $resource = \proc_open($cmd, $desc, $pipes, $this->path, null);
+ $resource = \proc_open($cmd, $desc, $pipes, null, null);
if ($resource === false) {
throw new \Exception();
@@ -170,15 +170,17 @@ final class TesseractOcr
$this->run(
$image . ' '
. ($temp = \tempnam(\sys_get_temp_dir(), 'ocr_'))
- . '--psm ' . $psm . ' '
- . '--oem ' . $oem . ' '
- . '-l ' . \implode('+', $languages)
+ . ' --psm ' . $psm
+ . ' --oem ' . $oem
+ . ' -l ' . \implode('+', $languages)
);
- $parsed = \file_get_contents($temp);
+ $parsed = \file_get_contents($temp . '.txt');
+
+ // @todo: auto flip image if x% of text are garbage words?
\unlink($temp);
- return $parsed;
+ return \trim($parsed);
}
}
diff --git a/Algorithm/Clustering/Kmeans.php b/Algorithm/Clustering/Kmeans.php
index b5322afcb..9fcd3b42b 100644
--- a/Algorithm/Clustering/Kmeans.php
+++ b/Algorithm/Clustering/Kmeans.php
@@ -1,6 +1,6 @@
db->con->prepare($query->toSql());
+ $sth = $this->db->con->prepare($a = $query->toSql());
if ($sth !== false) {
$sth->execute();
$results = $sth->fetchAll(\PDO::FETCH_ASSOC);
diff --git a/DataStorage/Database/Mapper/UpdateMapper.php b/DataStorage/Database/Mapper/UpdateMapper.php
index 922842d2d..5c595260f 100644
--- a/DataStorage/Database/Mapper/UpdateMapper.php
+++ b/DataStorage/Database/Mapper/UpdateMapper.php
@@ -1,6 +1,6 @@
toSql(), ';') . ')';
}
- if (isset($element['value'])) {
+ if (isset($element['value']) && (!empty($element['value']) || !\is_array($element['value']))) {
$expression .= ' ' . \strtoupper($element['operator']) . ' ' . $this->compileValue($query, $element['value']);
} elseif ($element['value'] === null && !($element['column'] instanceof Builder)) {
$operator = $element['operator'] === '=' ? 'IS' : 'IS NOT';
diff --git a/DataStorage/Database/Query/Grammar/GrammarInterface.php b/DataStorage/Database/Query/Grammar/GrammarInterface.php
old mode 100644
new mode 100755
index 7aab44589..0ff2cff14
--- a/DataStorage/Database/Query/Grammar/GrammarInterface.php
+++ b/DataStorage/Database/Query/Grammar/GrammarInterface.php
@@ -1,6 +1,6 @@
= 0; --$i) {
+ for ($j = $dim[1] - 1; $j >= 0; --$j) {
+ $newPixel = 0;
+
+ for ($ki = $kDim[0] - 1; $ki >= 0; --$ki) {
+ for ($kj = $kDim[1] - 1; $kj >= 0; --$kj) {
+ $newPixel += $kernel[$ki][$kj] * \imagecolorat($im,
+ \min(\max($i + $ki - $kWidthRadius, 0), $dim[0] - 1),
+ \min(\max($j + $kj - $kHeightRadius, 0), $dim[1] - 1)
+ );
+ }
+ }
+
+ \imagesetpixel($im, $i, $j, (int) $newPixel);
+ }
+ }
+ }
+
+ if (\strripos($outPath, 'png') !== false) {
+ \imagepng($im, $outPath);
+ } elseif (\strripos($outPath, 'jpg') !== false || \strripos($outPath, 'jpeg') !== false) {
+ \imagejpeg($im, $outPath);
+ } else {
+ \imagegif($im, $outPath);
+ }
+
+ \imagedestroy($im);
+ }
+}
diff --git a/Image/Skew.php b/Image/Skew.php
new file mode 100644
index 000000000..7b9b33dd6
--- /dev/null
+++ b/Image/Skew.php
@@ -0,0 +1,168 @@
+ $avg ? $hist[$j] : 0;
+ }
+
+ $score = \array_sum($hist);
+ if ($bestScore < $score) {
+ $bestScore = $score;
+ $bestDegree = $i;
+ }
+ }
+
+ $im = \imagerotate($im, $bestDegree, 1);
+
+ // https://stackoverflow.com/questions/29981083/rotating-a-bit-matrix
+
+ if (\strripos($outPath, 'png') !== false) {
+ \imagepng($im, $outPath);
+ } elseif (\strripos($outPath, 'jpg') !== false || \strripos($outPath, 'jpeg') !== false) {
+ \imagejpeg($im, $outPath);
+ } else {
+ \imagegif($im, $outPath);
+ }
+
+ \imagedestroy($im);
+ }
+
+ public static function rotatePixelMatrix(array $pixel, array $dim, int $deg) : array
+ {
+ $rad = \deg2rad($deg);
+
+ $sin = \sin(-$rad);
+ $cos = \cos(-$rad);
+
+ $rotated = [[]];
+
+ for ($i = 0; $i < $dim[0]; ++$i) {
+ $cY = $i - $dim[1] / 2.0; // center
+
+ for ($j = 0; $j < $dim[1]; ++$j) {
+ $cX = $j - $dim[0] / 2.0; // center
+
+ $x = $cos * $cX + $sin * $cY + $dim[0] / 2.0;
+ $y = -$sin * $cX + $cos * $cY + $dim[1] / 2.0;
+
+ $rotated[$i][$j] = self::getNearestValue($pixel, $dim, $x, $y);
+ }
+ }
+
+ return $rotated;
+ }
+
+ private static function getNearestValue(array $pixel, array $dim, float $x, float $y) : int
+ {
+ $xLow = \min((int) $x, $dim[0] - 1);
+ $xHigh = \min((int) \ceil($x), $dim[0] - 1);
+
+ $yLow = \min((int) $y, $dim[1] - 1);
+ $yHigh = \min((int) \ceil($y), $dim[1] - 1);
+
+ $points = [
+ [$xLow, $yLow],
+ [$xLow, $yHigh],
+ [$xHigh, $yLow],
+ [$xHigh, $yHigh],
+ ];
+
+ $minDistance = \PHP_FLOAT_MAX;
+ $minValue = 0;
+
+ foreach ($points as $point) {
+ $distance = ($point[0] - $x) * ($point[0] - $x) + ($point[1] - $y) * ($point[1] - $y);
+
+ if ($distance < $minDistance) {
+ $minDistance = $distance;
+
+ $minValue = $point[0] >= 0 && $point[0] < $dim[0] && $point[1] >= 0 && $point[1] < $dim[1]
+ ? $pixel[$point[1]][$point[0]]
+ : 0;
+ }
+ }
+
+ return $minValue;
+ }
+}
diff --git a/Image/Thresholding.php b/Image/Thresholding.php
index 3c15ae1aa..ce30c16e0 100644
--- a/Image/Thresholding.php
+++ b/Image/Thresholding.php
@@ -1,6 +1,6 @@
> 16) & 0xFF;
- $sG = ($rgb >> 8) & 0xFF;
- $sB = $rgb & 0xFF;
-
- $vR = $sR / 255;
- $vG = $sG / 255;
- $vB = $sB / 255;
-
- $lR = $vR <= 0.04045 ? $vR / 12.92 : \pow((($vR + 0.055) / 1.055), 2.4);
- $lG = $vG <= 0.04045 ? $vG / 12.92 : \pow((($vG + 0.055) / 1.055), 2.4);
- $lB = $vB <= 0.04045 ? $vB / 12.92 : \pow((($vB + 0.055) / 1.055), 2.4);
-
- $y = 0.2126 * $lR + 0.7152 * $lG + 0.0722 * $lB;
- $lStar = $y <= 216 / 24389 ? $y * 24389 / 27 : \pow($y,(1 / 3)) * 116 - 16;
-
- return $lStar / 100;
- }
}
diff --git a/LICENSE.txt b/LICENSE.txt
old mode 100644
new mode 100755
diff --git a/Localization/Defaults/City.php b/Localization/Defaults/City.php
old mode 100644
new mode 100755
index 751a0e630..a60cc94e3
--- a/Localization/Defaults/City.php
+++ b/Localization/Defaults/City.php
@@ -1,6 +1,6 @@
diff --git a/Math/Matrix/QRDecomposition.php b/Math/Matrix/QRDecomposition.php
old mode 100644
new mode 100755
index 118540ef1..afc8c8dad
--- a/Math/Matrix/QRDecomposition.php
+++ b/Math/Matrix/QRDecomposition.php
@@ -1,6 +1,6 @@
author) ? '' : '')
. (!empty($this->description) ? '' : '')
. (!empty($this->charset) ? '' : '')
- . ''
+ . ''
. $this->renderProperty()
. $this->renderItemprop()
. $this->renderName();
diff --git a/Model/Message/Dom.php b/Model/Message/Dom.php
index b317707a7..577ef5bed 100644
--- a/Model/Message/Dom.php
+++ b/Model/Message/Dom.php
@@ -1,6 +1,6 @@

-The phpOMS framework is primarily developed for the Orange Management application which is a modular web application for small to mid sized companies that need CRM, ERP, Intranet and/or CMS functionalities and much more. The framework is also used in some other tools and websites which compliment the Orange Management web application and provides the necessary php functionality.
+The phpOMS framework is primarily developed for the Karaka application which is a modular web application for small to mid sized companies that need CRM, ERP, Intranet and/or CMS functionalities and much more. The framework is also used in some other tools and websites which compliment the Karaka web application and provides the necessary php functionality.
With Orange-Management you have one partner who can provide all the tools and software solutions you are used to at fair and reasonable prices even for small organizations and companies/startups. Our solutions can be used independently from each other or fully integrated with other solutions we provide. By choosing Orange-Management as your partner you'll be able to adjust your software based on the changes in your requirements without worrying about integration and workflow optimization.
## Table of content
-- [Orange-Management](#orange-management)
+- [Orange-Management](#karaka)
- [Table of content](#table-of-content)
- [Installation](#installation)
- [Requirements](#requirements)
@@ -41,23 +41,23 @@ Please note if you are only interested in using the framework without the web ap
After installing the requirements and configuring the web server for the correct path navigate to https://your_url.com/Install and follow the installation process. Afterwards you will be redirected to the installed backend.
-For more detailed information please checkout the [Installation Guide](https://orange-management.org/dev/guide?page=setup/installation).
+For more detailed information please checkout the [Installation Guide](https://karaka.app/dev/guide?page=setup/installation).
#### Developer
-https://github.com/Orange-Management/Developer-Guide/blob/develop/general/setup.md
+https://github.comkaraka-management/Developer-Guide/blob/develop/general/setup.md
## Philosophy
We believe software should support a business in it's daily tasks and growth in a very efficient way without frustration. In order to achieve this we constantly take feedback from our customers and expand and improve our software solutions.
-Since we believe in our software and transparent business model you can live test parts of our application and it's modules in our demo application at https://orange-management.app (user: admin, pass: orange) without any registration or inquiry. This can be done even during the development phase.
+Since we believe in our software and transparent business model you can live test parts of our application and it's modules in our demo application at https://karaka.app (user: admin, pass: orange) without any registration or inquiry. This can be done even during the development phase.
## Development Status
-Currently Orange Management is still developing the first Alpha version. As soon as we have a running Beta version we are allowing external testers to use our software and a selected amount of inhouse developed modules. The **phpOMS** framework is the component which is developed the furthest and already provides a large amount of functionality which is required by the whole project.
+Currently Karaka is still developing the first Alpha version. As soon as we have a running Beta version we are allowing external testers to use our software and a selected amount of inhouse developed modules. The **phpOMS** framework is the component which is developed the furthest and already provides a large amount of functionality which is required by the whole project.
-General updates can be found in our info section at https://orange-management.org/info and developer updates can be found in our developer section at https://orange-management.org/dev. In our developer section you can also check out the automatically generated reports such as code coverage, code style, static analysis etc. as well as our code style guide lines and developer documentation.
+General updates can be found in our info section at https://karaka.app/info and developer updates can be found in our developer section at https://karaka.app/dev. In our developer section you can also check out the automatically generated reports such as code coverage, code style, static analysis etc. as well as our code style guide lines and developer documentation.

@@ -105,12 +105,12 @@ Orange-Management has a very open culture and we always welcome new people who s
* Artist and/or Frontend
* DevOps
-Check out https://orange-management.org/career and our developer section https://orange-management.org/dev for more information.
+Check out https://karaka.app/career and our developer section https://karaka.app/dev for more information.
## Misc
* Languages: PHP, JS, HTML, CSS
-* Website: [https://orange-management.org](https://orange-management.org)
-* Demo: [https://orange-management.app](https://orange-management.app) (user: admin, pass: orange)
-* Dev: [https://orange-management.org/dev](https://orange-management.org/dev)
-* Contact: dennis@orange-management.email
+* Website: [https://karaka.app](https://karaka.app)
+* Demo: [https://karaka.app](https://karaka.app) (user: admin, pass: orange)
+* Dev: [https://karaka.app/dev](https://karaka.app/dev)
+* Contact: dennis@karaka.email
diff --git a/Router/RouteVerb.php b/Router/RouteVerb.php
old mode 100644
new mode 100755
index 9a49d416b..b4aced61a
--- a/Router/RouteVerb.php
+++ b/Router/RouteVerb.php
@@ -1,6 +1,6 @@
diff --git a/System/File/ExtensionType.php b/System/File/ExtensionType.php
old mode 100644
new mode 100755
index 6d6ba6517..85d7a5b39
--- a/System/File/ExtensionType.php
+++ b/System/File/ExtensionType.php
@@ -1,6 +1,6 @@
path) . ' '
diff --git a/Utils/Git/Tag.php b/Utils/Git/Tag.php
old mode 100644
new mode 100755
index dce91b909..e24251b6c
--- a/Utils/Git/Tag.php
+++ b/Utils/Git/Tag.php
@@ -1,6 +1,6 @@
> 16) & 0xFF;
+ $sG = ($rgb >> 8) & 0xFF;
+ $sB = $rgb & 0xFF;
+
+ return self::lightnessFromRgb($sR, $sG, $sB);
+ }
+
+ public static function lightnessFromRgb(int $r, int $g, int $b) : float
+ {
+ $vR = $r / 255;
+ $vG = $g / 255;
+ $vB = $b / 255;
+
+ $lR = $vR <= 0.04045 ? $vR / 12.92 : \pow((($vR + 0.055) / 1.055), 2.4);
+ $lG = $vG <= 0.04045 ? $vG / 12.92 : \pow((($vG + 0.055) / 1.055), 2.4);
+ $lB = $vB <= 0.04045 ? $vB / 12.92 : \pow((($vB + 0.055) / 1.055), 2.4);
+
+ $y = 0.2126 * $lR + 0.7152 * $lG + 0.0722 * $lB;
+ $lStar = $y <= 216 / 24389 ? $y * 24389 / 27 : \pow($y,(1 / 3)) * 116 - 16;
+
+ return $lStar / 100;
+ }
}
diff --git a/Utils/MbStringUtils.php b/Utils/MbStringUtils.php
index e3c05db0d..8be2746b6 100644
--- a/Utils/MbStringUtils.php
+++ b/Utils/MbStringUtils.php
@@ -1,6 +1,6 @@
= 32 || $b < -32) {
+ $m = (int) ($b / 32);
+ $b = $b - ($m * 32);
}
- return ($a >> $b) & ~(1 << (8 * \PHP_INT_SIZE - 1) >> ($b - 1));
+ if ($b < 0) {
+ $b = 32 + $b;
+ }
+
+ if ($b == 0) {
+ return (($a >> 1) & 0x7fffffff) * 2 + (($a >> $b) & 1);
+ }
+
+ if ($a < 0) {
+ $a = ($a >> 1);
+ $a &= 0x7fffffff;
+ $a |= 0x40000000;
+ $a = ($a >> ($b - 1));
+ } else {
+ $a = ($a >> $b);
+ }
+
+ return $a;
}
}
diff --git a/Utils/Parser/Markdown/License.txt b/Utils/Parser/Markdown/License.txt
old mode 100644
new mode 100755
diff --git a/Utils/Parser/Markdown/Markdown.php b/Utils/Parser/Markdown/Markdown.php
index 8d214f6d4..78850d6c6 100644
--- a/Utils/Parser/Markdown/Markdown.php
+++ b/Utils/Parser/Markdown/Markdown.php
@@ -1,6 +1,6 @@
parseImage(__DIR__ . '/img1.png');
+ \similar_text(\file_get_contents(__DIR__ . '/actual.txt'), $parsed, $m1);
+ \similar_text($parsed, \file_get_contents(__DIR__ . '/actual.txt'), $m2);
+
+ \file_put_contents(__DIR__ . '/basic.txt', $parsed);
+ $this->outputTest('No Preprocessing', $m1, $m2);
+
+ self::assertGreaterThan(0.5, $m1);
+ self::assertGreaterThan(0.5, $m2);
+ }
+
+ /**
+ * @covers phpOMS\Ai\Ocr\Tesseract\TesseractOcr
+ * @group framework
+ */
+ public function testOcrWithThresholding() : void
+ {
+ $ocr = new TesseractOcr();
+
+ \copy(__DIR__ . '/img1.png', __DIR__ . '/thresholding.png');
+
+ // preprocessing
+ Thresholding::integralThresholding(__DIR__ . '/thresholding.png', __DIR__ . '/thresholding.png');
+ $parsed = $ocr->parseImage(__DIR__ . '/thresholding.png');
+ \similar_text(\file_get_contents(__DIR__ . '/actual.txt'), $parsed, $m1);
+ \similar_text($parsed, \file_get_contents(__DIR__ . '/actual.txt'), $m2);
+
+ \file_put_contents(__DIR__ . '/thresholding.txt', $parsed);
+ $this->outputTest('Thresholding', $m1, $m2);
+
+ self::assertGreaterThan(0.75, $m1);
+ self::assertGreaterThan(0.75, $m2);
+ }
+
+ /**
+ * @covers phpOMS\Ai\Ocr\Tesseract\TesseractOcr
+ * @group framework
+ */
+ public function testOcrWithThresholdingRotating() : void
+ {
+ $ocr = new TesseractOcr();
+
+ \copy(__DIR__ . '/img1.png', __DIR__ . '/thresholding_rotating.png');
+
+ // preprocessing
+ Thresholding::integralThresholding(__DIR__ . '/thresholding_rotating.png', __DIR__ . '/thresholding_rotating.png');
+ Skew::autoRotate(
+ __DIR__ . '/thresholding_rotating.png',
+ __DIR__ . '/thresholding_rotating.png',
+ 10,
+ [150, 75],
+ [1700, 900]
+ );
+
+ $parsed = $ocr->parseImage(__DIR__ . '/thresholding_rotating.png');
+ \similar_text(\file_get_contents(__DIR__ . '/actual.txt'), $parsed, $m1);
+ \similar_text($parsed, \file_get_contents(__DIR__ . '/actual.txt'), $m2);
+
+ \file_put_contents(__DIR__ . '/thresholding_rotating.txt', $parsed);
+ $this->outputTest('Thresholding + Rotating', $m1, $m2);
+
+ self::assertGreaterThan(0.9, $m1);
+ self::assertGreaterThan(0.9, $m2);
+ }
+
+ /**
+ * @covers phpOMS\Ai\Ocr\Tesseract\TesseractOcr
+ * @group framework
+ */
+ public function testOcrWithSharpeningThresholdingRotating() : void
+ {
+ $ocr = new TesseractOcr();
+
+ \copy(__DIR__ . '/img1.png', __DIR__ . '/sharpening_thresholding_rotating.png');
+
+ // preprocessing
+ Kernel::convolve(__DIR__ . '/sharpening_thresholding_rotating.png', __DIR__ . '/sharpening_thresholding_rotating.png', Kernel::KERNEL_SHARPEN);
+ Thresholding::integralThresholding(__DIR__ . '/sharpening_thresholding_rotating.png', __DIR__ . '/sharpening_thresholding_rotating.png');
+ Skew::autoRotate(
+ __DIR__ . '/sharpening_thresholding_rotating.png',
+ __DIR__ . '/sharpening_thresholding_rotating.png',
+ 10,
+ [150, 75],
+ [1700, 900]
+ );
+
+ $parsed = $ocr->parseImage(__DIR__ . '/sharpening_thresholding_rotating.png');
+ \similar_text(\file_get_contents(__DIR__ . '/actual.txt'), $parsed, $m1);
+ \similar_text($parsed, \file_get_contents(__DIR__ . '/actual.txt'), $m2);
+
+ \file_put_contents(__DIR__ . '/sharpening_thresholding_rotating.txt', $parsed);
+ $this->outputTest('Sharpening + Thresholding + Rotating', $m1, $m2);
+
+ self::assertGreaterThan(0.9, $m1);
+ self::assertGreaterThan(0.9, $m2);
+ }
+}
diff --git a/tests/Ai/Ocr/Tesseract/actual.txt b/tests/Ai/Ocr/Tesseract/actual.txt
new file mode 100644
index 000000000..4a93ee4e3
--- /dev/null
+++ b/tests/Ai/Ocr/Tesseract/actual.txt
@@ -0,0 +1,23 @@
+What is Image Filtering in the Spatial Domain?
+
+Filtering is a technique for modifying or enhancing an image. For example, you can filter an image to emphasize certain
+features or remove other features. Image processing operations implemented with filtering include smoothing, sharpening,
+and edge enhancement.
+
+Filtering is a neighborhood operation, in which the value of any given pixel in the output image is determined by applying
+some algorithm to the values of the pixels in the neighborhood of the corresponding input pixel. A pixel's neighborhood is
+some set of pixels defined by their locations relative to that pixel. (SeeNeighborhood or Block Processing: An Overview for
+a general discussion of neighborhood operations.) Linear filtering is filtering in which the value of an output pixel is a linear
+combination of the values of the pixels in the input pixel's neighborhood.
+
+Convolution
+Linear filtering of an image is accomplished through an operation called convolution. Convolution is a neighborhood
+operation in which each output pixel is the weighted sum of neighboring input pixels. The matrix of wehights is called the
+convolution kernal, also known as the filter. A convolution kernel is a correlation kernel that has been rotated 180 degrees.
+
+For example, suppose the image is
+
+A = [17 24 1 8 15
+23 5 7 14 16
+4 6 13 20 22
+10 12 19 21 3
\ No newline at end of file
diff --git a/tests/Ai/Ocr/Tesseract/basic.txt b/tests/Ai/Ocr/Tesseract/basic.txt
new file mode 100644
index 000000000..80b44e1e6
--- /dev/null
+++ b/tests/Ai/Ocr/Tesseract/basic.txt
@@ -0,0 +1,16 @@
+, you Can filter an image to emphasize certain
+inted with filtering include smoothing, sharpening,
+
+pixel in the output image is determined by applying
+€ corresponding input pixel. A pixel's neighborhood is
+eeNeighborhood or Block Processing: An Overview for
+
+§ filtering in which the value of an output pixel is a linear
+od.
+
+alled convolution. Convolution is a neighborhood
+boring input pixels. The matrix of weights is called the
+‘4 Correlation kernel that has been rotated 12
+
+
+
\ No newline at end of file
diff --git a/tests/Ai/Ocr/Tesseract/img1.png b/tests/Ai/Ocr/Tesseract/img1.png
new file mode 100644
index 0000000000000000000000000000000000000000..01fd9e9082b9b31155a9d919b4c43e7ff161eb09
GIT binary patch
literal 955631
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