Saravanan666/pypi-org huggingface dataset:
Package: blobmodel
blobmodelThis package provides realizations of advecting and dissipating blobs in up to two dimensions.All blob parameters can be choosen freely, and multiple blob shapes are implemented. Originally, the model is developed for studying the scrape-off layer of fusion experiments, but it can be applicable to many 1d or 2d systems. See theblobmodel documentationfor further details.Examples for one and two dimensions are shown below:1D2DInstallationThe package is published to PyPI and can be installed withpipinstallblobmodelIf you want the development version you must first clone the repo to your local machine,
then install the project in development mode:gitclonehttps://github.com/uit-cosmo/blobmodel.gitcdblobmodel
python-mpipinstall-e.UsageCreate a grid on which the blobs are discretized using theModelclass. Themake_realization()method computes the output as an xarray dataset which can also be written out as anetcdffile if the argumentfile_nameis specified. A simple example is shown below:fromblobmodelimportModel,show_modelbm=Model(Nx=200,Ny=100,Lx=10,Ly=10,dt=0.1,T=20,blob_shape='gauss',num_blobs=100)ds=bm.make_realization(file_name="example.nc")The data can be shown as an animation using theshow_modelfunction:show_model(ds)You can specify the blob parameters with a BlobFactory class. The DefaultBlobFactory class has some of the most common distribution functions implemented. An example would look like this:fromblobmodelimportModel,DefaultBlobFactory# use DefaultBlobFactory to define distribution functions of random variablesbf=DefaultBlobFactory(A_dist="exp",wx_dist="uniform",vx_dist="deg",vy_dist="normal")# pass on bf when creating the Modeltmp=Model(Nx=100,Ny=1,Lx=10,Ly=0,dt=1,T=1000,blob_shape="exp",t_drain=2,periodic_y=False,num_blobs=10000,blob_factory=bf,)Alternatively, you can specify all blob parameters exactly as you want by writing your own class which inherits from BlobFactory. Seeexamples/custom_blobfactory.pyas an example or take a look at theblobmodel documentation.ContributingFeel free to raise issues about anything. Contributions through pull requests are also very welcome. Please take a look at ourContributor guidefor further details.
Package: blob-mounting-helper-utility
Blob mapping utilityWhen your code needs to access many mapped blobs as a mounted folder, the utility to make translation between blob urls and filepaths easier was made.
It can be configured using the configuration json file.You can also use this utility to download and uploads the blobs to/from the local file system without having to worry about the filepaths.Configuration file example:{"blob_mounting_configurations":[{"storage_account_name":"examplestagingstrgacc","storage_account_url":"https://examplestagingstrgacc.blob.core.windows.net/","container_name":"example-container-raw","mount_point":"/mnt/example-container-raw"}]}How to usefromblob_mounting_helper_utilityimportBlobMappingUtilityjson_config_file="blob_mapping_config.json"# read the file into a dictionarywithopen(json_config_file)asjson_file:config=json.load(json_file)["blob_mounting_configurations"]# create the utility objectblob_mapping_utility=BlobMappingUtility(config)filepath1="/mnt/example-container-raw/cool_picture.pngblob_url=blob_mapping_utility.get_url_from_mounted_filepath(filepath1)# -> https://examplestagingstrgacc.blob.core.windows.net/example-container-raw/cool_picture.pngfilepath2=get_mounted_filepath_from_url(blob_url)# -> /mnt/example-container-raw/cool_picture.pngAlso, if you were to pass the azure storage account key you can download and upload the blob to a local file path:fromblob_mounting_helper_utilityimportBlobMappingUtilityjson_config_file="blob_mapping_config.json"# read the file into a dictionarywithopen(json_config_file)asjson_file:config=json.load(json_file)["blob_mounting_configurations"]azure_storage_account_key="example_key"# create the utility objectblob_mapping_utility=BlobMappingUtility(config,azure_storage_account_key)url="https://examplestagingstrgacc.blob.core.windows.net/example-container-raw/cool_picture.png"blob_mapping_utility.download_blob(url)# -> Downloads the blob to the local file path "/mnt/example-container-raw/cool_picture.png"local_filepath="/mnt/example-container-raw/cool_picture.png"do_something_to_file(local_filepath)blob_mapping_utility.upload_blob(local_filepath)# -> Uploads the file to the blob urlblob_mapping_utility.cleanup_files()# cleans both downloaded and uploaded files from the local file system
Package: bloboluni
bloboluni: Azure blob storage wrapperbloboluniis a simple python module for interacting with Azure blob storage.Installationpip install bloboluniUsagefrombloboluniimportBlobStoragefrommymodelsimportPerson,Professionif__name__=="__main__":alex=Person("Alex",27,Profession("Developer","A developer"))# Create a storage clientstorage=BlobStorage(connectionstring="...",container="mycontainer")# Store some datastorage.upsert(key="Alex",alex)# Read some datasam=storage.get(key="Sam")# Returns instance of Person or None# Delete some datastorage.delete(key="Sam")bloboluniprovides storage clients using several different serialization implementations.
Currently, these are:BlobStorageJsonBlobStorageJsonPickleBlobStorage
Package: blobopera
Blob Opera ToolkitDescriptionUnofficial toolkit to convert MusicXML files intoBlob Operascores with
real lyrics, loosely inspired byOverlappingElvis/blob-opera-midi.DocumentationFullcommand documentation.Generatedmodule documentation.SamplesAdeste Fideles(source,information)Symphony No. 9 (Beethoven)(source,information)Ave Maria (Schubert)(source,information)O Magnum Mysterium (Brian Schmidt)(contributed sample)Ave Verum Corpus (Mozart)(contributed sample)Cum Sancto Spiritu - Gloria (Vivaldi)(contributed sample):book:Want to contribute a new sample? Clickhere!UsageCreate a score file:
UseMuseScoreor similar to create a four-part score
(soprano, alto, tenor and bass) with a single line of lyrics and export it
toMusicXML. You can download MusicXML files from MuseScore
by usingthis tool.Install the tool:pipinstallbloboperaConvert the score file:bloboperarecordingimportinput.musicxmloutput.binary(Take a look at the command-line options)Upload the recording:bloboperarecordinguploadoutput.binaryVisit the generated link with your browser.RoadmapPublish the packageAdd language-specific phoneme translatorsImprove the phoneme relocation logicWrite granular unit testsExtend the documentationContributingClone this repository:$gitclonehttps://github.com/0x2b3bfa0/python-blobopera$cdpython-bloboperaInstall the dependencies withpoetry:$poetryinstallRun the command-line tool:$poetryrunbloboperaRun the module tests:$poetryrunpoeall
Package: blobrl
ï»¿BlobRL : Reinforcement Learning library with PytorchBlobRl is a modular library for reinforcement learning which works on pytorch.InstallationPytorchFor installingpytorchfollowQuick Start Locallyfor your config.BlobRLInstall blobrlto use it:pipinstallblobrlto use it on notebook:pipinstallblobrl[notebook]to help development:pipinstallblobrl[dev]Get StartedInitialize environmentimportgymenv=gym.make("CartPole-v1")Initialize agentfromblobrl.agentsimportAgentRandomaction_space=env.action_spaceobservation_space=env.observation_spaceagent=AgentRandom(observation_space=observation_space,action_space=action_space)TrainCreate TrainerfromblobrlimportTrainertrainer=Trainer(environment=env,agent=agent,log_dir="./logs")Start training:trainer.train(max_episode=100,nb_evaluation=4,render=True)Watch metricsVisualize training and evaluation metrics:tensorboard--logdirlogsEnvironmentsWe will use GYM environments for moments.WatchTODOfor environments in coming.AgentsAgent implemented:AgentConstant, this agent choice one random action on start and will take her all next timeAgentRandom, this agent choice one random action each timeDQN, Deep Q Learning (Mnihet al.,2013)DoubleDQN, (van Hasseltet al.,2016)DuelingDQN, (Wanget al.,2016)CategoricalDQN, (Bellamareet al.,2017)ExamplesYou can find all exampleshereJupyter exempleColab exempleResultsYou can see moreresultsand analysis
Package: blobstash
# BlobStash Python Client[![Travis](https://img.shields.io/travis/tsileo/blobstash-python-docstore.svg?maxAge=2592000)](https://travis-ci.org/tsileo/blobstash-python)&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/v/blobstash-docstore.svg)](https://pypi.python.org/pypi/blobstash)&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/pyversions/blobstash-docstore.svg)](https://pypi.python.org/pypi/blobstash)&nbsp; &nbsp; [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://blobstash-python-docstore.a4.io/)&nbsp; &nbsp;[![License](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/tsileo/blobstash-python/master/LICENSE)Client for [BlobStash](https://github.com/tsileo/blobstash) JSON document store.See the [documentation](https://blobstash-python-docstore.a4.io/) for more details.## Examples```python>>> from blobstash.docstore import DocStoreClient, Path, Q>>> client = DocStoreClient(api_key='123')>>> col = client.my_collection>>> col<blobstash.docstore.Collection name='my_collection'>>>> # Insert data>>> k = col.insert({'key': 10, 'k1': True, 'k2': None, 'l': [1, 2, 'c']})>>> k<blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>>>> # Get a single document>>> col.get_by_id(k){'_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>,'k1': True,'k2': None,'key': 10,'l': [1, 2, 'c']}>>> col.get_by_id('14d854f6e9ee37a9cd8c1ffc'){'_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>,'k1': True,'k2': None,'key': 10,'l': [1, 2, 'c']}# Native Python query using Q>>> for doc in col.query(Q['key'] == 10):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> for doc in col.query(Q['key'] > 10):...     print(doc)>>> for doc in col.query():...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> for doc in col.query(Q['l'].contains(1)):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> for doc in col.query(Q['l'][0] == 1):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> # Raw Lua query>>> # 1. in shortcut mode>>> for doc in col.query("doc.k1 == true and doc.key ~= nil"):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> # 2. full Lua script>>> from blobstash.docstore.query import LuaScript>>> script = LuaScript("""... return function(doc)...   if doc.key == 10 then...     return true...   end...   return false... end... """)>>> for doc in col.query(script):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}```## LICENSEMIT
Package: blobstash-base
# BlobStash Python Base[![Travis](https://img.shields.io/travis/tsileo/blobstash-python-base.svg?maxAge=2592000)](https://travis-ci.org/tsileo/blobstash-python-base)
&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/v/blobstash-base.svg)](https://pypi.python.org/pypi/blobstash-base)
&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/pyversions/blobstash-base.svg)](https://pypi.python.org/pypi/blobstash-base)
&nbsp; &nbsp;[![License](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/tsileo/blobstash-python-base/master/LICENSE)This package contains tools to interact with [BlobStash](https://github.com/tsileo/blobstash).Not useful as is, you should install the package for the API you need:[blobstash-python-docstore](https://github.com/tsileo/blobstash-python-docstore)[blobstash-python-filetree](https://github.com/tsileo/blobstash-python-filetree)## LICENSEMIT
Package: blobstash-docstore
# BlobStash Python DocStore[![Travis](https://img.shields.io/travis/tsileo/blobstash-python-docstore.svg?maxAge=2592000)](https://travis-ci.org/tsileo/blobstash-python-docstore)&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/v/blobstash-docstore.svg)](https://pypi.python.org/pypi/blobstash-docstore)&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/pyversions/blobstash-docstore.svg)](https://pypi.python.org/pypi/blobstash-docstore)&nbsp; &nbsp; [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://blobstash-python-docstore.a4.io/)&nbsp; &nbsp;[![License](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/tsileo/blobstash-python-docstore/master/LICENSE)Client for [BlobStash](https://github.com/tsileo/blobstash) JSON document store.See the [documentation](https://blobstash-python-docstore.a4.io/) for more details.## Examples```python>>> from blobstash.docstore import DocStoreClient, Path, Q>>> client = DocStoreClient(api_key='123')>>> col = client.my_collection>>> col<blobstash.docstore.Collection name='my_collection'>>>> # Insert data>>> k = col.insert({'key': 10, 'k1': True, 'k2': None, 'l': [1, 2, 'c']})>>> k<blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>>>> # Get a single document>>> col.get_by_id(k){'_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>,'k1': True,'k2': None,'key': 10,'l': [1, 2, 'c']}>>> col.get_by_id('14d854f6e9ee37a9cd8c1ffc'){'_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>,'k1': True,'k2': None,'key': 10,'l': [1, 2, 'c']}# Native Python query using Q>>> for doc in col.query(Q['key'] == 10):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> for doc in col.query(Q['key'] > 10):...     print(doc)>>> for doc in col.query():...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> for doc in col.query(Q['l'].contains(1)):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> for doc in col.query(Q['l'][0] == 1):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> # Raw Lua query>>> # 1. in shortcut mode>>> for doc in col.query("doc.k1 == true and doc.key ~= nil"):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}>>> # 2. full Lua script>>> from blobstash.docstore.query import LuaScript>>> script = LuaScript("""... return function(doc)...   if doc.key == 10 then...     return true...   end...   return false... end... """)>>> for doc in col.query(script):...     print(doc){'k1': True, 'k2': None, 'key': 10, 'l': [1, 2, 'c'], '_id': <blobstash.docstore.ID _id='14d854f6e9ee37a9cd8c1ffc'>}```## LICENSEMIT
Package: blobstash-filetree
# BlobStash Python FileTree[![Travis](https://img.shields.io/travis/tsileo/blobstash-python-filetree.svg)](https://travis-ci.org/tsileo/blobstash-python-filetree)
&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/v/blobstash-filetree.svg)](https://pypi.python.org/pypi/blobstash-filetree)
&nbsp; &nbsp; [![PyPI](https://img.shields.io/pypi/pyversions/blobstash-filetree.svg)](https://pypi.python.org/pypi/blobstash-filetree)
&nbsp; &nbsp; [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://blobstash-python-filetree.a4.io/)
&nbsp; &nbsp;[![License](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/tsileo/blobstash-python-filetree/master/LICENSE)Client for [BlobStash](https://github.com/tsileo/blobstash) FileTree API.See the [documentation](https://blobstash-python-filetree.a4.io/) for more details.
Package: blobuploader
blobuploader is a command-line client for uploading to the [blobber] server.Installation============Run `pip install -r requirements.txt` to install Python prerequisites.Run `python setup.py install` to install the modules and command-line tools.Configuration=============You will need to provide an authentication file containing a username and password matching those you specified in your blobber server config.The file contents should look like:````blobber_username = 'username'blobber_password = 'password'````Usage=====Run `blobberc.py -u *URL* -a *auth file* -b *branch name* *path to file*` to upload a file to the blobber server at *URL*.*auth file* should be the path to the file containing the username/password you've previously configured. *branch name* is a tag to indicate which branch this blob belongs to. Note that blobber has a hardcoded [whitelist] of file types that are acceptable, as well as a [whitelist] of allowed IP addresses.[blobber]: https://github.com/catlee/blobber[whitelist]: https://github.com/catlee/blobber/blob/master/blobber/config.py#L6
Package: blob-utils
File management utils for the curator core project.Quick start1. Add “blob_utils” to your INSTALLED_APPS settingINSTALLED_APPS=[...'blob_utils',]TestsSince GridFS cannot be mocked, this set of test has to be run on a live database. The following steps guide you through
the process:Setup and start a MongoDB instanceSet MONGODB_URI in tests/test_settings.pyRun the tests withpython runtests.py
Package: blobxfer
blobxferblobxferis an advanced data movement tool and library for Azure Storage
Blob and Files. Withblobxferyou can copy your files into or out of Azure
Storage with the CLI or integrate theblobxferdata movement library into
your own Python scripts.Major FeaturesCommand-line interface (CLI) providing data movement capability to and
from Azure Blob and File StorageStandalone library for integration with scripts or other Python packagesHigh-performance design with asynchronous transfers and disk I/OSupports ingress, egress and synchronization of entire directories,
containers and file sharesYAML configuration driven execution supportFine-grained resume support including resuming a broken operation
within a file or objectVectored IO supportstripemode allows striping a single file across multiple blobs (even
to multiple storage accounts) to break through single blob or fileshare
throughput limitsreplicamode allows replication of a file across multiple destinations
including to multiple storage accountsSynchronous copy with cross-mode (object transform) replication supportLeverages server-side copies by defaultArbitrary URL copy supportClient-side encryption supportSupport all Azure Blob types and Azure Files for both upload and downloadAdvanced skip options for rsync-like operationsStore/restore POSIX filemode and uid/gidSupport reading/pipe fromstdinincluding to page blob destinationsSupport reading from blob and file share snapshots for downloading and
synchronous copySupport for setting access tier on objects for uploading and synchronous
copyConfigurable one-shot block upload supportConfigurable chunk size for both upload and downloadAutomatic block size selection for block blob uploadingAutomatic uploading of VHD/VHDX files as page blobsInclude and exclude filtering supportRsync-like delete supportNo clobber support in either directionAutomatic content type taggingSupport for setting the Cache Control property of blobs and filesFile logging supportSupport for HTTP proxiesInstallationThere are three ways to installblobxfer:blobxferPython package fromPyPIPre-built binaries available underReleasesDocker images are available for both Linux and Windows platforms on theMicrosoft Container RegistryPlease refer to theinstallation guidefor more information on how to installblobxfer.DocumentationPlease refer to theblobxferdocumentationfor more details and usage information.Change LogPlease see theChange Logfor project history.SupportThis project is community supported and not officially supported by Microsoft.
There is no defined SLA for addressing features, issues, and bugs which are
exclusively serviced via GitHub issues. For tools officially supported by
Microsoft please refer to thisdocumentation.Please see this project'sCode of ConductandContributingguidelines.
Package: bloby
blobyPackage that performs blob detection on 3D TIF StacksSytem RequirementsThe recommended way to use this package is to installDocker.
Docker is currently available on OS X El Capitan 10.11 and newer macOS releases, the following Ubuntu versions: Zesty 17.04
(LTS), Yakkety 16.10, Xenial 16.04 (LTS), Trusty 14.04 (LTS), and Windows 10.Software Dependencies (with version numbers)The only software dependency needed if using the recommended method is Docker. The following dependencies are included in the Docker Image.Python depedencies:colorama --- 0.3.9scikit_image --- 0.13.1scipy --- 1.0.0numpy --- 1.13.1requests --- 2.18.4intern --- 0.9.4tifffile --- 0.12.1tqdm --- 4.19.5matplotlib --- 2.1.0progressbar2 --- 3.34.3scikit_learn --- 0.19.1pyfiglet --- 0.7.5Versions tested onWe have tested the Docker image and build on macOS High Sierra (on MacBook Pro with 2.9 GHz Intel Core i7 and 16 GB RAM) and Ubuntu Xenial 16.04.3 LTS.Installation GuideOnce Docker is installed on your machine, pull thesrivathsapv/blobyimage from Docker Hubhereas follows:docker pull srivathsapv/blobyIt will typically take around 3 minutes to pull the entire Docker image.DemoInstructions to run on dataCreate a.docker-envfile and add yourBOSS_TOKENvalue as follows. This is needed to upload the detected centroids to BOSS
for visualizationBOSS_TOKEN=<your_boss_token>In order to use the functionality built into this Docker image, you need to run the Docker image:docker run -p 3000:3000 --env-file .docker-env srivathsapv/blobyThis should print a link to the terminal console that looks like this:http://0.0.0.0:3000/?token=SOME_TOKENGo to this link in your browser by copying and pasting it.Next, click onPackage Usage.ipynb. Once the notebook opens, you can run all cells by clicking on 'Cell' and then 'Run All'.The expected run time for this demo is < 10 seconds.Expected OutputYou should see a message showing the successful upload to BOSS with a URL!Congrats, you've succesfully runbloby!Other resources:Blob detection algorithm pseudocodeDev docs
Package: blochify
Blochify ToolsFor more information on Blochify…InstallationTo install the latest stable version of Blochify, you can usepipin a terminal:pipinstall-UblochifyLicensingBlochify isBSD 3-Clause Licensed:Copyright (c) 2021-2022, BRAIN-LINK UG and authors of Blochify.
All rights reserved.Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.