FeeManager.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


Trading.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


group.sol:43:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function DSGroup(
    ^ (Relevant source part starts here and spans across multiple lines).


Owned.sol:13:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function Owned() {
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:59:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function PermissionGroups() public {
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:371:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function TestToken(string _name, string _symbol, uint _decimals) public {
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:404:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function KyberWhiteList(address _admin, ERC20Clone _kgtToken) public {
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:470:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function FeeBurner(address _admin, BurnableTokenClone kncToken, address _kyberNetwork) public {
    ^ (Relevant source part starts here and spans across multiple lines).


ConversionRates.sol:30:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function VolumeImbalanceRecorder(address _admin) public {
    ^ (Relevant source part starts here and spans across multiple lines).


ConversionRates.sol:258:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function ConversionRates(address _admin) public VolumeImbalanceRecorder(_admin)
    ^ (Relevant source part starts here and spans across multiple lines).


Exchange.sol:20:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


Exchange.sol:3928:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function ZRXToken() {
    ^ (Relevant source part starts here and spans across multiple lines).


WrapperLock.sol:32:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function WrapperLock(
    ^ (Relevant source part starts here and spans across multiple lines).


WrapperLockEth.sol:33:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function WrapperLockEth(string _name, string _symbol, uint _decimals, address _proxyEfx, address _proxyV2) Ownable() {
    ^ (Relevant source part starts here and spans across multiple lines).


EthfinexAdapter.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


KyberNetwork.sol:22:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function KyberNetwork(address _admin) public {
    ^ (Relevant source part starts here and spans across multiple lines).


ExpectedRate.sol:12:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function ExpectedRate(KyberNetwork _kyberNetwork, address _admin) public {
    ^ (Relevant source part starts here and spans across multiple lines).


FundFactory.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


FundRanking.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


KyberNetworkProxy.sol:34:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function KyberNetworkProxy(address _admin) public {
    ^ (Relevant source part starts here and spans across multiple lines).


KyberReserve.sol:15:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function KyberReserve(address _kyberNetwork, ConversionRatesInterface _ratesContract, address _admin) public {
    ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:105:9: Warning: Use of the "var" keyword is deprecated.
        var offer = offers[id];
        ^-------^


MatchingMarket.sol:116:9: Warning: Use of the "var" keyword is deprecated.
        var id = uint256(id_);
        ^----^


MatchingMarket.sol:303:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function ExpiringMarket(uint64 _close_time)
    ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:357:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function MatchingMarket(uint64 close_time) ExpiringMarket(close_time) public {
    ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:407:9: Warning: Use of the "var" keyword is deprecated.
        var fn = matchingEnabled ? _offeru : super.offer;
        ^----^


MatchingMarket.sol:457:9: Warning: Use of the "var" keyword is deprecated.
        var fn = matchingEnabled ? _buys : super.buy;
        ^----^


MatchingMarket.sol:677:17: Warning: Use of the "var" keyword is deprecated.
                var baux = rmul(pay_amt * 10 ** 9, rdiv(offers[offerId].pay_amt, offers[offerId].buy_amt)) / 10 ** 9;
                ^------^


MatchingMarket.sol:713:9: Warning: Use of the "var" keyword is deprecated.
        var offerId = getBestOffer(buy_gem, pay_gem);           //Get best offer for the token pair
        ^---------^


MatchingMarket.sol:726:9: Warning: Use of the "var" keyword is deprecated.
        var offerId = getBestOffer(buy_gem, pay_gem);           //Get best offer for the token pair
        ^---------^


MockFeeManager.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


SanityRates.sol:9:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function SanityRates(address _admin) public {
    ^ (Relevant source part starts here and spans across multiple lines).


Version.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


ZeroExV2Adapter.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.
pragma experimental ABIEncoderV2;
^-------------------------------^


group.sol:92:9: Warning: This declaration shadows an existing declaration.
        address  target,
        ^-------------^
group.sol:61:5: The shadowed declaration is here:
    function target(uint id) constant returns (address) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:93:9: Warning: This declaration shadows an existing declaration.
        bytes    calldata,
        ^---------------^
group.sol:64:5: The shadowed declaration is here:
    function calldata(uint id) constant returns (bytes) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:94:9: Warning: This declaration shadows an existing declaration.
        uint     value
        ^------------^
group.sol:67:5: The shadowed declaration is here:
    function value(uint id) constant returns (uint) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:141:9: Warning: This declaration shadows an existing declaration.
        uint  memberCount,
        ^---------------^
group.sol:57:5: The shadowed declaration is here:
    function memberCount() constant returns (uint) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:149:9: Warning: This declaration shadows an existing declaration.
        uint     confirmations,
        ^--------------------^
group.sol:71:5: The shadowed declaration is here:
    function confirmations(uint id) constant returns (uint) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:150:9: Warning: This declaration shadows an existing declaration.
        uint     deadline,
        ^---------------^
group.sol:74:5: The shadowed declaration is here:
    function deadline(uint id) constant returns (uint) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:151:9: Warning: This declaration shadows an existing declaration.
        bool     triggered,
        ^----------------^
group.sol:77:5: The shadowed declaration is here:
    function triggered(uint id) constant returns (bool) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:152:9: Warning: This declaration shadows an existing declaration.
        address  target,
        ^-------------^
group.sol:61:5: The shadowed declaration is here:
    function target(uint id) constant returns (address) {
    ^ (Relevant source part starts here and spans across multiple lines).



group.sol:153:9: Warning: This declaration shadows an existing declaration.
        uint     value
        ^------------^
group.sol:67:5: The shadowed declaration is here:
    function value(uint id) constant returns (uint) {
    ^ (Relevant source part starts here and spans across multiple lines).



KyberPriceFeed.sol:110:9: Warning: This declaration shadows an existing declaration.
        uint[] memory prices = new uint[](_assets.length);
        ^------------------^
KyberPriceFeed.sol:28:5: The shadowed declaration is here:
    mapping (address => uint) public prices;
    ^-------------------------------------^



Registry.sol:284:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Asset asset = assetInformation[_asset];
        ^---------^


Registry.sol:311:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Exchange exchange = exchangeInformation[_adapter];
        ^---------------^


Registry.sol:419:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Exchange exchange = exchangeInformation[_adapter];
        ^---------------^


Registry.sol:426:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Exchange exchange = exchangeInformation[_adapter];
        ^---------------^


Trading.sol:323:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        OpenMakeOrder order = exchangesToOpenMakeOrders[ofExchange][ofAsset];
        ^-----------------^


CanonicalRegistrar.sol:149:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Asset asset = assetInformation[ofAsset];
        ^---------^


CanonicalRegistrar.sol:174:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Exchange exchange = exchangeInformation[ofExchange];
        ^---------------^


CanonicalRegistrar.sol:260:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Exchange exchange = exchangeInformation[ofExchange];
        ^---------------^


SimplePriceFeed.sol:87:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Data data = assetsToPrices[ofAsset];
        ^-------^


math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function add(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function mul(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function sub(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function add(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function mul(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function sub(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


Participation.sol:139:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Request request = requests[msg.sender];
        ^-------------^


FundFactory.sol:234:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Hub.Routes routes = managersToRoutes[msg.sender];
        ^---------------^


TestingPriceFeed.sol:52:9: Warning: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
        Data data = assetsToPrices[ofAsset];
        ^-------^


math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function add(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function mul(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function sub(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function add(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function mul(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name
    function sub(uint x, uint y) internal pure returns (uint z) {
    ^ (Relevant source part starts here and spans across multiple lines).


Accounting.i.sol:17:5: Warning: Functions in interfaces should be declared external.
    function calcGav() public returns (uint gav);
    ^-------------------------------------------^


Accounting.i.sol:18:5: Warning: Functions in interfaces should be declared external.
    function calcNav(uint gav, uint unclaimedFees) pure returns (uint);
    ^-----------------------------------------------------------------^


Accounting.i.sol:19:5: Warning: Functions in interfaces should be declared external.
    function valuePerShare(uint totalValue, uint numShares) public view returns (uint);
    ^---------------------------------------------------------------------------------^


Accounting.i.sol:20:5: Warning: Functions in interfaces should be declared external.
    function performCalculations() public returns (
    ^ (Relevant source part starts here and spans across multiple lines).


Accounting.i.sol:29:5: Warning: Functions in interfaces should be declared external.
    function calcGavPerShareNetManagementFee() public returns (uint);
    ^---------------------------------------------------------------^


ERC20.i.sol:9:3: Warning: Functions in interfaces should be declared external.
  function totalSupply() public view returns (uint256);
  ^---------------------------------------------------^


ERC20.i.sol:11:3: Warning: Functions in interfaces should be declared external.
  function balanceOf(address _who) public view returns (uint256);
  ^-------------------------------------------------------------^


ERC20.i.sol:13:3: Warning: Functions in interfaces should be declared external.
  function allowance(address _owner, address _spender)
  ^ (Relevant source part starts here and spans across multiple lines).


ERC20.i.sol:16:3: Warning: Functions in interfaces should be declared external.
  function transfer(address _to, uint256 _value) public returns (bool);
  ^-------------------------------------------------------------------^


ERC20.i.sol:18:3: Warning: Functions in interfaces should be declared external.
  function approve(address _spender, uint256 _value) public returns (bool);
  ^-----------------------------------------------------------------------^


ERC20.i.sol:20:3: Warning: Functions in interfaces should be declared external.
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
  ^--------------------------------------------------------------------------------------^


PriceSource.i.sol:11:5: Warning: Functions in interfaces should be declared external.
    function hasValidPrice(address) public view returns (bool);
    ^---------------------------------------------------------^


PriceSource.i.sol:12:5: Warning: Functions in interfaces should be declared external.
    function hasValidPrices(address[]) public view returns (bool);
    ^------------------------------------------------------------^


PriceSource.i.sol:15:5: Warning: Functions in interfaces should be declared external.
    function getPrice(address _asset) public view returns (uint price, uint timestamp);
    ^---------------------------------------------------------------------------------^


PriceSource.i.sol:16:5: Warning: Functions in interfaces should be declared external.
    function getPrices(address[] _assets) public view returns (uint[] prices, uint[] timestamps);
    ^-------------------------------------------------------------------------------------------^


PriceSource.i.sol:19:5: Warning: Functions in interfaces should be declared external.
    function getPriceInfo(address _asset) view returns (uint price, uint decimals);
    ^-----------------------------------------------------------------------------^


PriceSource.i.sol:20:5: Warning: Functions in interfaces should be declared external.
    function getInvertedPriceInfo(address ofAsset) view returns (uint price, uint decimals);
    ^--------------------------------------------------------------------------------------^


PriceSource.i.sol:22:5: Warning: Functions in interfaces should be declared external.
    function getReferencePriceInfo(address _base, address _quote) public view returns (uint referencePrice, uint decimal);
    ^--------------------------------------------------------------------------------------------------------------------^


PriceSource.i.sol:23:5: Warning: Functions in interfaces should be declared external.
    function getOrderPriceInfo(address sellAsset, address buyAsset, uint sellQuantity, uint buyQuantity) public view returns (uint orderPrice);
    ^-----------------------------------------------------------------------------------------------------------------------------------------^


PriceSource.i.sol:24:5: Warning: Functions in interfaces should be declared external.
    function existsPriceOnAssetPair(address sellAsset, address buyAsset) public view returns (bool isExistent);
    ^---------------------------------------------------------------------------------------------------------^


PriceSource.i.sol:25:5: Warning: Functions in interfaces should be declared external.
    function convertQuantity(
    ^ (Relevant source part starts here and spans across multiple lines).


Fee.i.sol:6:5: Warning: Functions in interfaces should be declared external.
    function feeAmount() public view returns (uint);
    ^----------------------------------------------^


Shares.i.sol:5:5: Warning: Functions in interfaces should be declared external.
    function createFor(address who, uint amount);
    ^-------------------------------------------^


Shares.i.sol:6:5: Warning: Functions in interfaces should be declared external.
    function destroyFor(address who, uint amount);
    ^--------------------------------------------^


Registry.sol:131:28: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        bytes32 nameHash = keccak256(_name);
                           ^--------------^


Registry.sol:131:28: Warning: The provided argument of type string memory is not implicitly convertible to expected type bytes memory.
        bytes32 nameHash = keccak256(_name);
                           ^--------------^


Registry.sol:146:29: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        fundNameHashToOwner[keccak256(_name)] = _owner;
                            ^--------------^


Registry.sol:146:29: Warning: The provided argument of type string calldata is not implicitly convertible to expected type bytes memory.
        fundNameHashToOwner[keccak256(_name)] = _owner;
                            ^--------------^


Trading.i.sol:16:5: Warning: Functions in interfaces should be declared external.
    function callOnExchange(
    ^ (Relevant source part starts here and spans across multiple lines).


Trading.i.sol:27:5: Warning: Functions in interfaces should be declared external.
    function addOpenMakeOrder(
    ^ (Relevant source part starts here and spans across multiple lines).


Trading.i.sol:35:5: Warning: Functions in interfaces should be declared external.
    function removeOpenMakeOrder(
    ^ (Relevant source part starts here and spans across multiple lines).


Vault.sol:22:9: Warning: Invoking events without "emit" prefix is deprecated.
        NewInstance(_hub, vault);
        ^----------------------^


Trading.sol:134:40: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        bytes4 methodSelector = bytes4(keccak256(methodSignature));
                                       ^------------------------^


Trading.sol:134:40: Warning: The provided argument of type string memory is not implicitly convertible to expected type bytes memory.
        bytes4 methodSelector = bytes4(keccak256(methodSignature));
                                       ^------------------------^


Accounting.sol:176:9: Warning: Different number of components on the left hand side (5) than on the right hand side (6).
        (gav, feesInDenomination, feesInShares, nav, ) = performCalculations();
        ^--------------------------------------------------------------------^


note.sol:37:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);
        ^---------------------------------------------------------^


thing.sol:27:23: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        return bytes4(keccak256(s));
                      ^----------^


thing.sol:27:23: Warning: The provided argument of type string memory is not implicitly convertible to expected type bytes memory.
        return bytes4(keccak256(s));
                      ^----------^


UpdatableFeed.i.sol:7:5: Warning: Functions in interfaces should be declared external.
    function getLastUpdateId() public view returns (uint);
    ^----------------------------------------------------^


SimplePriceFeed.sol:138:27: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        emit PriceUpdated(keccak256(ofAssets, newPrices));
                          ^----------------------------^


group.sol:103:9: Warning: Invoking events without "emit" prefix is deprecated.
        Proposed(id, calldata);
        ^--------------------^


group.sol:112:9: Warning: Invoking events without "emit" prefix is deprecated.
        Confirmed(id, msg.sender);
        ^-----------------------^


group.sol:121:9: Warning: Invoking events without "emit" prefix is deprecated.
        Triggered(id);
        ^-----------^


CanonicalPriceFeed.sol:155:9: Warning: Invoking events without "emit" prefix is deprecated.
        PriceUpdate(ofAssets, newPrices);
        ^------------------------------^


KyberDependencies.sol:19:5: Warning: Functions in interfaces should be declared external.
    function trade(
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:31:5: Warning: Functions in interfaces should be declared external.
    function getConversionRate(ERC20Clone src, ERC20Clone dest, uint srcQty, uint blockNumber) public view returns(uint);
    ^-------------------------------------------------------------------------------------------------------------------^


KyberDependencies.sol:36:5: Warning: Functions in interfaces should be declared external.
    function maxGasPrice() public view returns(uint);
    ^-----------------------------------------------^


KyberDependencies.sol:37:5: Warning: Functions in interfaces should be declared external.
    function getUserCapInWei(address user) public view returns(uint);
    ^---------------------------------------------------------------^


KyberDependencies.sol:38:5: Warning: Functions in interfaces should be declared external.
    function getUserCapInTokenWei(address user, ERC20Clone token) public view returns(uint);
    ^--------------------------------------------------------------------------------------^


KyberDependencies.sol:39:5: Warning: Functions in interfaces should be declared external.
    function enabled() public view returns(bool);
    ^-------------------------------------------^


KyberDependencies.sol:40:5: Warning: Functions in interfaces should be declared external.
    function info(bytes32 id) public view returns(uint);
    ^--------------------------------------------------^


KyberDependencies.sol:42:5: Warning: Functions in interfaces should be declared external.
    function getExpectedRate(ERC20Clone src, ERC20Clone dest, uint srcQty) public view
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:45:5: Warning: Functions in interfaces should be declared external.
    function tradeWithHint(address trader, ERC20Clone src, uint srcAmount, ERC20Clone dest, address destAddress,
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:94:9: Warning: Invoking events without "emit" prefix is deprecated.
        TransferAdminPending(pendingAdmin);
        ^--------------------------------^


KyberDependencies.sol:104:9: Warning: Invoking events without "emit" prefix is deprecated.
        TransferAdminPending(newAdmin);
        ^----------------------------^


KyberDependencies.sol:105:9: Warning: Invoking events without "emit" prefix is deprecated.
        AdminClaimed(newAdmin, admin);
        ^---------------------------^


KyberDependencies.sol:116:9: Warning: Invoking events without "emit" prefix is deprecated.
        AdminClaimed(pendingAdmin, admin);
        ^-------------------------------^


KyberDependencies.sol:127:9: Warning: Invoking events without "emit" prefix is deprecated.
        AlerterAdded(newAlerter, true);
        ^----------------------------^


KyberDependencies.sol:140:17: Warning: Invoking events without "emit" prefix is deprecated.
                AlerterAdded(alerter, false);
                ^--------------------------^


KyberDependencies.sol:152:9: Warning: Invoking events without "emit" prefix is deprecated.
        OperatorAdded(newOperator, true);
        ^------------------------------^


KyberDependencies.sol:165:17: Warning: Invoking events without "emit" prefix is deprecated.
                OperatorAdded(operator, false);
                ^----------------------------^


KyberDependencies.sol:188:9: Warning: Invoking events without "emit" prefix is deprecated.
        TokenWithdraw(token, amount, sendTo);
        ^----------------------------------^


KyberDependencies.sol:198:9: Warning: Invoking events without "emit" prefix is deprecated.
        EtherWithdraw(amount, sendTo);
        ^---------------------------^


KyberDependencies.sol:330:5: Warning: Functions in interfaces should be declared external.
    function getExpectedRate(ERC20Clone src, ERC20Clone dest, uint srcQty) public view
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:335:5: Warning: Functions in interfaces should be declared external.
    function handleFees (uint tradeWeiAmount, address reserve, address wallet) public returns(bool);
    ^----------------------------------------------------------------------------------------------^


KyberDependencies.sol:340:5: Warning: Functions in interfaces should be declared external.
    function recordImbalance(
    ^ (Relevant source part starts here and spans across multiple lines).


KyberDependencies.sol:348:5: Warning: Functions in interfaces should be declared external.
    function getRate(ERC20Clone token, uint currentBlockNumber, bool buy, uint qty) public view returns(uint);
    ^--------------------------------------------------------------------------------------------------------^


KyberDependencies.sol:352:5: Warning: Functions in interfaces should be declared external.
    function getSanityRate(ERC20Clone src, ERC20Clone dest) public view returns(uint);
    ^--------------------------------------------------------------------------------^


KyberDependencies.sol:384:9: Warning: Invoking events without "emit" prefix is deprecated.
        Burn(msg.sender, _value);
        ^----------------------^


KyberDependencies.sol:385:9: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(msg.sender, address(0x0), _value);
        ^----------------------------------------^


KyberDependencies.sol:420:9: Warning: Invoking events without "emit" prefix is deprecated.
        UserCategorySet(user, category);
        ^-----------------------------^


KyberDependencies.sol:427:9: Warning: Invoking events without "emit" prefix is deprecated.
        CategoryCapSet(category, sgdCap);
        ^------------------------------^


KyberDependencies.sol:434:9: Warning: Invoking events without "emit" prefix is deprecated.
        SgdToWeiRateSet(_sgdToWeiRate);
        ^----------------------------^


KyberDependencies.sol:450:5: Warning: Functions in interfaces should be declared external.
    function transferFrom(address _from, address _to, uint _value) public returns (bool);
    ^-----------------------------------------------------------------------------------^


KyberDependencies.sol:451:5: Warning: Functions in interfaces should be declared external.
    function burnFrom(address _from, uint256 _value) public returns (bool);
    ^---------------------------------------------------------------------^


KyberDependencies.sol:485:9: Warning: Invoking events without "emit" prefix is deprecated.
        ReserveDataSet(reserve, feesInBps, kncWallet);
        ^-------------------------------------------^


KyberDependencies.sol:492:9: Warning: Invoking events without "emit" prefix is deprecated.
        WalletFeesSet(wallet, feesInBps);
        ^------------------------------^


KyberDependencies.sol:499:9: Warning: Invoking events without "emit" prefix is deprecated.
        TaxFeesSet(_taxFeeBps);
        ^--------------------^


KyberDependencies.sol:506:9: Warning: Invoking events without "emit" prefix is deprecated.
        TaxWalletSet(_taxWallet);
        ^----------------------^


KyberDependencies.sol:531:13: Warning: Invoking events without "emit" prefix is deprecated.
            AssignFeeToWallet(reserve, wallet, walletFee);
            ^-------------------------------------------^


KyberDependencies.sol:535:13: Warning: Invoking events without "emit" prefix is deprecated.
            AssignBurnFees(reserve, feeToBurn);
            ^--------------------------------^


KyberDependencies.sol:558:17: Warning: Invoking events without "emit" prefix is deprecated.
                SendTaxFee(reserve, msg.sender, taxWallet, taxToSend);
                ^---------------------------------------------------^


KyberDependencies.sol:566:9: Warning: Invoking events without "emit" prefix is deprecated.
        BurnAssignedFees(reserve, msg.sender, (burnAmount - 1));
        ^-----------------------------------------------------^


KyberDependencies.sol:579:9: Warning: Invoking events without "emit" prefix is deprecated.
        SendWalletFees(wallet, reserve, msg.sender);
        ^-----------------------------------------^


Weth.sol:21:9: Warning: Invoking events without "emit" prefix is deprecated.
        Deposit(msg.sender, msg.value);
        ^----------------------------^


Weth.sol:27:9: Warning: Invoking events without "emit" prefix is deprecated.
        Withdrawal(msg.sender, wad);
        ^-------------------------^


Weth.sol:31:16: Warning: Using contract member "balance" inherited from the address type is deprecated. Convert the contract to "address" type to access the member, for example use "address(contract).balance" instead.
        return this.balance;
               ^----------^


Weth.sol:36:9: Warning: Invoking events without "emit" prefix is deprecated.
        Approval(msg.sender, guy, wad);
        ^----------------------------^


Weth.sol:58:9: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(src, dst, wad);
        ^---------------------^


Exchange.sol:3913:13: Warning: Invoking events without "emit" prefix is deprecated.
            Transfer(_from, _to, _value);
            ^--------------------------^


WrapperDependencies.sol:76:5: Warning: Invoking events without "emit" prefix is deprecated.
    Transfer(msg.sender, _to, _value);
    ^-------------------------------^


WrapperLock.sol:81:38: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            require(isValidSignature(keccak256(msg.sender, address(this), signatureValidUntilBlock), v, r, s));
                                     ^------------------------------------------------------------^


WrapperLock.sol:125:9: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(_from, _to, _value);
        ^--------------------------^


WrapperLock.sol:149:13: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            keccak256("\x19Ethereum Signed Message:\n32", hash),
            ^-------------------------------------------------^


WrapperLock.sol:162:16: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        return keccak256(_sender, _wrapper, _validTill);
               ^--------------------------------------^


WrapperLockEth.sol:69:38: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            require(isValidSignature(keccak256(msg.sender, address(this), signatureValidUntilBlock), v, r, s));
                                     ^------------------------------------------------------------^


WrapperLockEth.sol:98:9: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(_from, _to, _value);
        ^--------------------------^


WrapperLockEth.sol:121:13: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            keccak256("\x19Ethereum Signed Message:\n32", hash),
            ^-------------------------------------------------^


WrapperLockEth.sol:134:16: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        return keccak256(_sender, _wrapper, _validTill);
               ^--------------------------------------^


KyberNetwork.sol:34:9: Warning: Invoking events without "emit" prefix is deprecated.
        EtherReceival(msg.sender, msg.value);
        ^----------------------------------^


KyberNetwork.sol:95:13: Warning: Invoking events without "emit" prefix is deprecated.
            AddReserveToNetwork(reserve, true);
            ^--------------------------------^


KyberNetwork.sol:103:21: Warning: Invoking events without "emit" prefix is deprecated.
                    AddReserveToNetwork(reserve, false);
                    ^---------------------------------^


KyberNetwork.sol:127:13: Warning: Invoking events without "emit" prefix is deprecated.
            ListReservePairs(reserve, ETH_TOKEN_ADDRESS, token, add);
            ^------------------------------------------------------^


KyberNetwork.sol:138:13: Warning: Invoking events without "emit" prefix is deprecated.
            ListReservePairs(reserve, token, ETH_TOKEN_ADDRESS, add);
            ^------------------------------------------------------^


KyberNetwork.sol:191:9: Warning: Invoking events without "emit" prefix is deprecated.
        KyberProxySet(kyberNetworkProxyContract, msg.sender);
        ^--------------------------------------------------^


KyberNetwork.sol:426:9: Warning: Invoking events without "emit" prefix is deprecated.
        KyberTrade(tradeInput.trader, tradeInput.src, actualSrcAmount, tradeInput.destAddress, tradeInput.dest,
        ^ (Relevant source part starts here and spans across multiple lines).


ExpectedRate.sol:24:9: Warning: Invoking events without "emit" prefix is deprecated.
        QuantityFactorSet(newFactor, quantityFactor, msg.sender);
        ^------------------------------------------------------^


ExpectedRate.sol:33:9: Warning: Invoking events without "emit" prefix is deprecated.
        MinSlippageFactorSet(bps, worstCaseRateFactorInBps, msg.sender);
        ^-------------------------------------------------------------^


Participation.i.sol:40:5: Warning: Functions in interfaces should be declared external.
    function hasRequest(address) view returns (bool);
    ^-----------------------------------------------^


Participation.i.sol:44:5: Warning: Functions in interfaces should be declared external.
    function redeemWithConstraints(uint shareQuantity, address[] requestedAssets) public;
    ^-----------------------------------------------------------------------------------^


KyberNetworkProxy.sol:7:5: Warning: Functions in interfaces should be declared external.
    function maxGasPrice() public view returns(uint);
    ^-----------------------------------------------^


KyberNetworkProxy.sol:8:5: Warning: Functions in interfaces should be declared external.
    function getUserCapInWei(address user) public view returns(uint);
    ^---------------------------------------------------------------^


KyberNetworkProxy.sol:9:5: Warning: Functions in interfaces should be declared external.
    function getUserCapInTokenWei(address user, ERC20Clone token) public view returns(uint);
    ^--------------------------------------------------------------------------------------^


KyberNetworkProxy.sol:10:5: Warning: Functions in interfaces should be declared external.
    function enabled() public view returns(bool);
    ^-------------------------------------------^


KyberNetworkProxy.sol:11:5: Warning: Functions in interfaces should be declared external.
    function info(bytes32 id) public view returns(uint);
    ^--------------------------------------------------^


KyberNetworkProxy.sol:13:5: Warning: Functions in interfaces should be declared external.
    function getExpectedRate(ERC20Clone src, ERC20Clone dest, uint srcQty) public view
    ^ (Relevant source part starts here and spans across multiple lines).


KyberNetworkProxy.sol:16:5: Warning: Functions in interfaces should be declared external.
    function tradeWithHint(ERC20Clone src, uint srcAmount, ERC20Clone dest, address destAddress, uint maxDestAmount,
    ^ (Relevant source part starts here and spans across multiple lines).


KyberNetworkProxy.sol:23:5: Warning: Functions in interfaces should be declared external.
    function swapTokenToToken(ERC20Clone src, uint srcAmount, ERC20Clone dest, uint minConversionRate) public returns(uint);
    ^----------------------------------------------------------------------------------------------------------------------^


KyberNetworkProxy.sol:24:5: Warning: Functions in interfaces should be declared external.
    function swapEtherToToken(ERC20Clone token, uint minConversionRate) public payable returns(uint);
    ^-----------------------------------------------------------------------------------------------^


KyberNetworkProxy.sol:25:5: Warning: Functions in interfaces should be declared external.
    function swapTokenToEther(ERC20Clone token, uint srcAmount, uint minConversionRate) public returns(uint);
    ^-------------------------------------------------------------------------------------------------------^


KyberNetworkProxy.sol:213:9: Warning: Invoking events without "emit" prefix is deprecated.
        ExecuteTrade(msg.sender, src, dest, tradeOutcome.userDeltaSrcAmount, tradeOutcome.userDeltaDestAmount);
        ^----------------------------------------------------------------------------------------------------^


KyberNetworkProxy.sol:223:9: Warning: Invoking events without "emit" prefix is deprecated.
        KyberNetworkSet(_kyberNetworkContract, kyberNetworkContract);
        ^----------------------------------------------------------^


KyberPriceFeed.sol:64:9: Warning: Invoking events without "emit" prefix is deprecated.
        PriceUpdate(assets, newPrices);
        ^----------------------------^


KyberReserve.sol:28:9: Warning: Invoking events without "emit" prefix is deprecated.
        DepositToken(ETH_TOKEN_ADDRESS, msg.value);
        ^----------------------------------------^


KyberReserve.sol:64:9: Warning: Invoking events without "emit" prefix is deprecated.
        TradeEnabled(true);
        ^----------------^


KyberReserve.sol:71:9: Warning: Invoking events without "emit" prefix is deprecated.
        TradeEnabled(false);
        ^-----------------^


KyberReserve.sol:79:35: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        approvedWithdrawAddresses[keccak256(token, addr)] = approve;
                                  ^--------------------^


KyberReserve.sol:80:9: Warning: Invoking events without "emit" prefix is deprecated.
        WithdrawAddressApproved(token, addr, approve);
        ^-------------------------------------------^


KyberReserve.sol:94:9: Warning: Invoking events without "emit" prefix is deprecated.
        NewTokenWallet(token, wallet);
        ^---------------------------^


KyberReserve.sol:100:43: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        require(approvedWithdrawAddresses[keccak256(token, destination)]);
                                          ^---------------------------^


KyberReserve.sol:108:9: Warning: Invoking events without "emit" prefix is deprecated.
        WithdrawFunds(token, amount, destination);
        ^---------------------------------------^


KyberReserve.sol:130:9: Warning: Invoking events without "emit" prefix is deprecated.
        SetContractAddresses(kyberNetwork, conversionRatesContract, sanityRatesContract);
        ^------------------------------------------------------------------------------^


KyberReserve.sol:138:20: Warning: Using contract member "balance" inherited from the address type is deprecated. Convert the contract to "address" type to access the member, for example use "address(contract).balance" instead.
            return this.balance;
                   ^----------^


KyberReserve.sol:252:9: Warning: Invoking events without "emit" prefix is deprecated.
        TradeExecute(msg.sender, srcToken, srcAmount, destToken, destAmount, destAddress);
        ^-------------------------------------------------------------------------------^


ManagementFee.sol:23:127: Warning: Using "years" as a unit denomination is deprecated.
            uint preDilutionFeeShares = mul(mul(shares.totalSupply(), managementFeeRate[msg.sender]) / DIVISOR, timePassed) / 1 years;
                                                                                                                              ^-----^


MatchingMarket.sol:119:13: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            keccak256(offers[id].pay_gem, offers[id].buy_gem),
            ^-----------------------------------------------^


MatchingMarket.sol:117:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogBump(
        ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:155:13: Warning: Invoking events without "emit" prefix is deprecated.
            LogItemUpdate(id);
            ^---------------^


MatchingMarket.sol:158:17: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
                keccak256(offer.pay_gem, offer.buy_gem),
                ^-------------------------------------^


MatchingMarket.sol:156:13: Warning: Invoking events without "emit" prefix is deprecated.
            LogTake(
            ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:167:13: Warning: Invoking events without "emit" prefix is deprecated.
            LogTrade(quantity, offer.pay_gem, spend, offer.buy_gem);
            ^-----------------------------------------------------^


MatchingMarket.sol:189:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogItemUpdate(id);
        ^---------------^


MatchingMarket.sol:192:13: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            keccak256(offer.pay_gem, offer.buy_gem),
            ^-------------------------------------^


MatchingMarket.sol:190:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogKill(
        ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:249:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogItemUpdate(id);
        ^---------------^


MatchingMarket.sol:252:13: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
            keccak256(pay_gem, buy_gem),
            ^-------------------------^


MatchingMarket.sol:250:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogMake(
        ^ (Relevant source part starts here and spans across multiple lines).


MatchingMarket.sol:353:23: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        require(_menu[keccak256(buy_gem, pay_gem)] || _menu[keccak256(pay_gem, buy_gem)]);
                      ^-------------------------^


MatchingMarket.sol:353:61: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        require(_menu[keccak256(buy_gem, pay_gem)] || _menu[keccak256(pay_gem, buy_gem)]);
                                                            ^-------------------------^


MatchingMarket.sol:492:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogInsert(msg.sender, id);
        ^-----------------------^


MatchingMarket.sol:504:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogDelete(msg.sender, id);
        ^-----------------------^


MatchingMarket.sol:523:15: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        _menu[keccak256(baseToken, quoteToken)] = true;
              ^------------------------------^


MatchingMarket.sol:524:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogAddTokenPairWhitelist(baseToken, quoteToken);
        ^---------------------------------------------^


MatchingMarket.sol:542:22: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        delete _menu[keccak256(baseToken, quoteToken)];
                     ^------------------------------^


MatchingMarket.sol:543:22: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        delete _menu[keccak256(quoteToken, baseToken)];
                     ^------------------------------^


MatchingMarket.sol:544:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogRemTokenPairWhitelist(baseToken, quoteToken);
        ^---------------------------------------------^


MatchingMarket.sol:556:23: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        return (_menu[keccak256(baseToken, quoteToken)] || _menu[keccak256(quoteToken, baseToken)]);
                      ^------------------------------^


MatchingMarket.sol:556:66: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.
        return (_menu[keccak256(baseToken, quoteToken)] || _menu[keccak256(quoteToken, baseToken)]);
                                                                 ^------------------------------^


MatchingMarket.sol:574:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogMinSell(pay_gem, dust);
        ^-----------------------^


MatchingMarket.sol:592:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogBuyEnabled(buyEnabled);
        ^-----------------------^


MatchingMarket.sol:605:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogMatchingEnabled(matchingEnabled);
        ^---------------------------------^


MatchingMarket.sol:904:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogUnsortedOffer(id);
        ^------------------^


MatchingMarket.sol:959:9: Warning: Invoking events without "emit" prefix is deprecated.
        LogSortedOffer(id);
        ^----------------^


TestingPriceFeed.sol:44:9: Warning: Invoking events without "emit" prefix is deprecated.
        PriceUpdate(_assets, _prices);
        ^---------------------------^


Accounting.i.sol:18:5: Warning: No visibility specified. Defaulting to "public". In interfaces it defaults to external.
    function calcNav(uint gav, uint unclaimedFees) pure returns (uint);
    ^-----------------------------------------------------------------^


PriceSource.i.sol:19:5: Warning: No visibility specified. Defaulting to "public". In interfaces it defaults to external.
    function getPriceInfo(address _asset) view returns (uint price, uint decimals);
    ^-----------------------------------------------------------------------------^


PriceSource.i.sol:20:5: Warning: No visibility specified. Defaulting to "public". In interfaces it defaults to external.
    function getInvertedPriceInfo(address ofAsset) view returns (uint price, uint decimals);
    ^--------------------------------------------------------------------------------------^


Hub.sol:38:5: Warning: No visibility specified. Defaulting to "public". 
    constructor(address _manager, string _name) {
    ^ (Relevant source part starts here and spans across multiple lines).


Spoke.sol:22:5: Warning: No visibility specified. Defaulting to "public". 
    constructor(address _hub) {
    ^ (Relevant source part starts here and spans across multiple lines).


Shares.i.sol:5:5: Warning: No visibility specified. Defaulting to "public". In interfaces it defaults to external.
    function createFor(address who, uint amount);
    ^-------------------------------------------^


Shares.i.sol:6:5: Warning: No visibility specified. Defaulting to "public". In interfaces it defaults to external.
    function destroyFor(address who, uint amount);
    ^--------------------------------------------^


Shares.sol:13:5: Warning: No visibility specified. Defaulting to "public". 
    constructor(address _hub) Spoke(_hub) {
    ^ (Relevant source part starts here and spans across multiple lines).


Shares.sol:27:23: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function transfer(address to, uint amount) public returns (bool) {
                      ^--------^


Shares.sol:27:35: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function transfer(address to, uint amount) public returns (bool) {
                                  ^---------^


Shares.sol:32:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        address from,
        ^----------^


Shares.sol:33:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        address to,
        ^--------^


Shares.sol:34:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        uint amount
        ^---------^


Shares.sol:42:22: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function approve(address spender, uint amount) public returns (bool) {
                     ^-------------^


Shares.sol:42:39: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function approve(address spender, uint amount) public returns (bool) {
                                      ^---------^


Shares.sol:47:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        address spender,
        ^-------------^


Shares.sol:48:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        uint amount
        ^---------^


Shares.sol:57:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        address spender,
        ^-------------^


Shares.sol:58:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        uint amount
        ^---------^


Registry.sol:103:5: Warning: No visibility specified. Defaulting to "public". 
    constructor(address _postDeployOwner) {
    ^ (Relevant source part starts here and spans across multiple lines).


Vault.sol:11:5: Warning: No visibility specified. Defaulting to "public". 
    constructor(address _hub) Spoke(_hub) {}
    ^--------------------------------------^


PolicyManager.sol:22:5: Warning: No visibility specified. Defaulting to "public". 
    constructor (address _hub) Spoke(_hub) {}
    ^---------------------------------------^


ExchangeAdapter.sol:102:9: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
        address targetExchange,
        ^--------------------^


Warning: There are more than 256 warnings. Ignoring the rest.
