 import Foundation
 import CoreLocation
 import AdSupport
+import CryptoSwift
 
 class TrackingManager: NSObject {
   static let shared = TrackingManager()

        let minDuration: String = nonlinear.element?.value(ofAttribute: "minSuggestedDuration")
      else { return }
      eventPayload["ad_format"] = "\(placement)_nonlinear_\(hPos == "center" ? "banner" : "corner")"
      eventPayload["creative_url"] = resourceURL
      eventPayload["ad_ts"] = minDuration.toTimeInterval
      vast.nonlinear.track(event: event)
    }

    return ASIdentifierManager.shared().advertisingIdentifier.uuidString
  }
}

extension Array {
  func sample() -> Element {
    let index = Int(arc4random_uniform(UInt32(self.count)))
    return self[index]
  }
}

extension String {
  func index(from: Int) -> Index {
    return self.index(startIndex, offsetBy: from)
  }
  
  func substring(from: Int) -> String {
    let fromIndex = index(from: from)
    return substring(from: fromIndex)
  }
  
  func substring(to: Int) -> String {
    let toIndex = index(from: to)
    return substring(to: toIndex)
  }
  
  func substring(with r: Range<Int>) -> String {
    let startIndex = index(from: r.lowerBound)
    let endIndex = index(from: r.upperBound)
    return substring(with: startIndex..<endIndex)
  }
}
