From 8e67fc35916b6c6927069f7f8cdcee41fef98c88 Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 23 Aug 2012 11:14:37 -0400 Subject: [PATCH 01/26] first part of rebase --- src/Cassette.MSBuild/UrlPlaceholderWrapper.cs | 5 ++++ .../ConstantHtmlRenderer.cs | 2 +- .../MSBuild/UrlPlaceholderWrapper.cs | 2 +- src/Cassette.UnitTests/UrlGenerator.cs | 6 ++-- .../VirtualDirectoryPrepender.cs | 6 ++-- src/Cassette.UnitTests/Web/RouteInstaller.cs | 2 +- src/Cassette/ConstantHtmlRenderer.cs | 6 ++-- src/Cassette/IUrlModifier.cs | 9 +++++- src/Cassette/Manifests/CachedBundleContent.cs | 2 +- src/Cassette/UrlGenerator.cs | 10 +++---- src/Cassette/VirtualDirectoryPrepender.cs | 10 ++++++- src/Website/CassetteConfiguration.cs | 29 +++++++++++++++++++ src/Website/Web.config | 2 +- 13 files changed, 70 insertions(+), 21 deletions(-) diff --git a/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs b/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs index e6482b95..2a55dd32 100644 --- a/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs +++ b/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs @@ -6,5 +6,10 @@ public string Modify(string url) { return "" + url + ""; } + + public string PostCacheModify(string url) + { + return Modify(url); + } } } \ No newline at end of file diff --git a/src/Cassette.UnitTests/ConstantHtmlRenderer.cs b/src/Cassette.UnitTests/ConstantHtmlRenderer.cs index aa633279..9fffe036 100644 --- a/src/Cassette.UnitTests/ConstantHtmlRenderer.cs +++ b/src/Cassette.UnitTests/ConstantHtmlRenderer.cs @@ -22,7 +22,7 @@ static IUrlModifier UrlModifierThatPrependsRoot() { var urlModifier = new Mock(); urlModifier - .Setup(m => m.Modify(It.IsAny())) + .Setup(m => m.PreCacheModify(It.IsAny())) .Returns(s => "/root/" + s); return urlModifier.Object; } diff --git a/src/Cassette.UnitTests/MSBuild/UrlPlaceholderWrapper.cs b/src/Cassette.UnitTests/MSBuild/UrlPlaceholderWrapper.cs index 802bbca1..4623c9d3 100644 --- a/src/Cassette.UnitTests/MSBuild/UrlPlaceholderWrapper.cs +++ b/src/Cassette.UnitTests/MSBuild/UrlPlaceholderWrapper.cs @@ -9,7 +9,7 @@ public class UrlPlaceholderWrapper_Tests public void ModifyWrapsUrlWithPlaceholder() { var modifier = new UrlPlaceholderWrapper(); - modifier.Modify("example/url").ShouldEqual("example/url"); + modifier.PreCacheModify("example/url").ShouldEqual("example/url"); } } } \ No newline at end of file diff --git a/src/Cassette.UnitTests/UrlGenerator.cs b/src/Cassette.UnitTests/UrlGenerator.cs index 1e3ddc8b..78742299 100644 --- a/src/Cassette.UnitTests/UrlGenerator.cs +++ b/src/Cassette.UnitTests/UrlGenerator.cs @@ -15,7 +15,7 @@ public abstract class UrlGenerator_Tests protected UrlGenerator_Tests() { - UrlModifier.Setup(m => m.Modify(It.IsAny())) + UrlModifier.Setup(m => m.PreCacheModify(It.IsAny())) .Returns(url => url); var container = new Mock>(); @@ -40,7 +40,7 @@ public void CreateBundleUrlCallsBundleUrlProperty() public void UrlModifierModifyIsCalled() { UrlGenerator.CreateBundleUrl(StubScriptBundle("~/test")); - UrlModifier.Verify(m => m.Modify("_cassette/scriptbundle/test_010203")); + UrlModifier.Verify(m => m.PreCacheModify("_cassette/scriptbundle/test_010203")); } [Fact] @@ -87,7 +87,7 @@ public void UrlModifierModifyIsCalled() UrlGenerator.CreateAssetUrl(asset.Object); - UrlModifier.Verify(m => m.Modify(It.IsAny())); + UrlModifier.Verify(m => m.PreCacheModify(It.IsAny())); } [Fact] diff --git a/src/Cassette.UnitTests/VirtualDirectoryPrepender.cs b/src/Cassette.UnitTests/VirtualDirectoryPrepender.cs index 22d21e73..727b8356 100644 --- a/src/Cassette.UnitTests/VirtualDirectoryPrepender.cs +++ b/src/Cassette.UnitTests/VirtualDirectoryPrepender.cs @@ -9,7 +9,7 @@ public class VirtualDirectoryPrepender_Tests public void GivenVirtualDirectoryIsJustSlash_WhenModifyUrl_ThenSlashPrependsUrl() { var modifier = new VirtualDirectoryPrepender("/"); - var url = modifier.Modify("/test"); + var url = modifier.PreCacheModify("/test"); url.ShouldEqual("/test"); } @@ -17,7 +17,7 @@ public void GivenVirtualDirectoryIsJustSlash_WhenModifyUrl_ThenSlashPrependsUrl( public void GivenVirtualDirectoryIsJustSlash_WhenModifyRelativeUrl_ThenSlashPrependsUrl() { var modifier = new VirtualDirectoryPrepender("/"); - var url = modifier.Modify("test"); + var url = modifier.PreCacheModify("test"); url.ShouldEqual("/test"); } @@ -25,7 +25,7 @@ public void GivenVirtualDirectoryIsJustSlash_WhenModifyRelativeUrl_ThenSlashPrep public void GivenVirtualDirectoryIsSlashAndDirectoryName_WhenModifyUrl_ThenSlashDirectoryNamePrependsUrl() { var modifier = new VirtualDirectoryPrepender("/base"); - var url = modifier.Modify("/test"); + var url = modifier.PreCacheModify("/test"); url.ShouldEqual("/base/test"); } } diff --git a/src/Cassette.UnitTests/Web/RouteInstaller.cs b/src/Cassette.UnitTests/Web/RouteInstaller.cs index 47a8c484..bc9f6e19 100644 --- a/src/Cassette.UnitTests/Web/RouteInstaller.cs +++ b/src/Cassette.UnitTests/Web/RouteInstaller.cs @@ -17,7 +17,7 @@ public abstract class RouteInstaller_Tests public RouteInstaller_Tests() { - urlModifier.Setup(m => m.Modify(It.IsAny())) + urlModifier.Setup(m => m.PreCacheModify(It.IsAny())) .Returns(url => url); var container = new Mock>(); diff --git a/src/Cassette/ConstantHtmlRenderer.cs b/src/Cassette/ConstantHtmlRenderer.cs index f4f16406..bf46b7f8 100644 --- a/src/Cassette/ConstantHtmlRenderer.cs +++ b/src/Cassette/ConstantHtmlRenderer.cs @@ -17,9 +17,9 @@ public ConstantHtmlRenderer(string html, IUrlModifier urlModifier) public string Render(T bundle) { return Regex.Replace( - html, - "(.*?)", - match => urlModifier.Modify(match.Groups[1].Value) + html, + "([^\"]+_cassette[^\"]+)", + match => urlModifier.PostCacheModify(match.Captures[0].Value) ); } } diff --git a/src/Cassette/IUrlModifier.cs b/src/Cassette/IUrlModifier.cs index ad772038..cad30a22 100644 --- a/src/Cassette/IUrlModifier.cs +++ b/src/Cassette/IUrlModifier.cs @@ -10,6 +10,13 @@ public interface IUrlModifier /// /// The URL to modify. /// The modified URL. - string Modify(string url); + string PreCacheModify(string url); + + /// + /// Modifies a URL only during rendering for a page to ensure that specific url is not cached + /// + /// The URL to modify. + /// The modified URL. + string PostCacheModify(string url); } } diff --git a/src/Cassette/Manifests/CachedBundleContent.cs b/src/Cassette/Manifests/CachedBundleContent.cs index 0f134755..b06184d5 100644 --- a/src/Cassette/Manifests/CachedBundleContent.cs +++ b/src/Cassette/Manifests/CachedBundleContent.cs @@ -29,7 +29,7 @@ byte[] TransformUrls(byte[] bytes, IUrlModifier urlModifier) var output = Regex.Replace( input, "(.*?)", - match => urlModifier.Modify(match.Groups[1].Value) + match => urlModifier.PreCacheModify(match.Groups[1].Value) ); return Encoding.UTF8.GetBytes(output); } diff --git a/src/Cassette/UrlGenerator.cs b/src/Cassette/UrlGenerator.cs index e5dfabbf..7bd1d736 100644 --- a/src/Cassette/UrlGenerator.cs +++ b/src/Cassette/UrlGenerator.cs @@ -17,12 +17,12 @@ public UrlGenerator(IUrlModifier urlModifier, string routePrefix) public string CreateBundleUrl(Bundle bundle) { var url = routePrefix + "/" + bundle.Url; - return urlModifier.Modify(url); + return urlModifier.PreCacheModify(url); } public string CreateAssetUrl(IAsset asset) { - return urlModifier.Modify( + return urlModifier.PreCacheModify( String.Format( "{0}/asset/{1}?{2}", routePrefix, @@ -43,8 +43,8 @@ public string CreateRawFileUrl(string filename, string hash) var dotIndex = filename.LastIndexOf('.'); var name = filename.Substring(0, dotIndex); var extension = filename.Substring(dotIndex + 1); - - return urlModifier.Modify( + + return urlModifier.PreCacheModify( String.Format( "{0}/file/{1}_{2}.{3}", routePrefix, @@ -52,7 +52,7 @@ public string CreateRawFileUrl(string filename, string hash) hash, extension ) - ); + ); } // TODO: move RoutePrefix to settings? diff --git a/src/Cassette/VirtualDirectoryPrepender.cs b/src/Cassette/VirtualDirectoryPrepender.cs index ad52a75d..8ce2572a 100644 --- a/src/Cassette/VirtualDirectoryPrepender.cs +++ b/src/Cassette/VirtualDirectoryPrepender.cs @@ -30,9 +30,17 @@ public VirtualDirectoryPrepender(string virtualDirectory) /// /// Prepends the virtual directory to the beginning of the application relative URL path. /// - public string Modify(string url) + public string PreCacheModify(string url) { return virtualDirectory + url.TrimStart('/'); } + + /// + /// Exists just to satisfy interface requirements. Just calls modify. + /// + public string PostCacheModify(string url) + { + return PreCacheModify(url); + } } } diff --git a/src/Website/CassetteConfiguration.cs b/src/Website/CassetteConfiguration.cs index db000e53..50e50d86 100644 --- a/src/Website/CassetteConfiguration.cs +++ b/src/Website/CassetteConfiguration.cs @@ -1,3 +1,4 @@ +using Cassette; using Cassette.Configuration; using Cassette.Scripts; using Cassette.Stylesheets; @@ -8,6 +9,8 @@ public class CassetteConfiguration : ICassetteConfiguration { public void Configure(BundleCollection bundles, CassetteSettings settings) { + settings.IsHtmlRewritingEnabled = false; + settings.UrlModifier = new StaticDomainUrlModifier(settings.UrlModifier); bundles.Add("assets/styles"); bundles.Add("assets/iestyles", b => b.Condition = "IE"); @@ -22,4 +25,30 @@ public void Configure(BundleCollection bundles, CassetteSettings settings) ); } } + + public class StaticDomainUrlModifier : IUrlModifier + { + private readonly IUrlModifier baseModifier; + + public StaticDomainUrlModifier(IUrlModifier baseModifier) + { + this.baseModifier = baseModifier; + } + + /// + /// Exists just to satisfy interface requirements. Just calls modify of another IUrlModifier. + /// + public string PreCacheModify(string url) + { + return baseModifier.PreCacheModify(url); + } + + /// + /// Prepends the static domain to the beginning of the server relative URL path. + /// + public string PostCacheModify(string url) + { + return "//" + "www.google.com/" + baseModifier.PreCacheModify(url); + } + } } \ No newline at end of file diff --git a/src/Website/Web.config b/src/Website/Web.config index 8afc111a..e4e5b4e5 100644 --- a/src/Website/Web.config +++ b/src/Website/Web.config @@ -8,7 +8,7 @@ - + From 33c7ca8bb8579f457e50bfef37b632699531a1b2 Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 8 Aug 2012 19:41:31 -0400 Subject: [PATCH 02/26] Cache Individual Bundles Use the bundles dictionary in cassette settings to cache bundles. Only process ones that have changed rather than all bundles everytime a file is changed. --- .../Configuration/BundleCollection.cs | 54 ++++++++++++++++++- .../BundleContainerFactoryBase.cs | 29 ++++++++-- .../Configuration/CassetteSettings.cs | 2 + 3 files changed, 80 insertions(+), 5 deletions(-) diff --git a/src/Cassette/Configuration/BundleCollection.cs b/src/Cassette/Configuration/BundleCollection.cs index a8f3e5b5..974eb025 100644 --- a/src/Cassette/Configuration/BundleCollection.cs +++ b/src/Cassette/Configuration/BundleCollection.cs @@ -9,7 +9,7 @@ namespace Cassette.Configuration /// /// A collection of asset bundles. /// - public class BundleCollection : IEnumerable + public class BundleCollection : IList { readonly CassetteSettings settings; readonly List bundles = new List(); @@ -112,5 +112,57 @@ internal void Remove(Bundle bundle) { bundles.Remove(bundle); } + + public int IndexOf(Bundle item) + { + return bundles.IndexOf(item); + } + + public void Insert(int index, Bundle item) + { + bundles.Insert(index, item); + } + + public void RemoveAt(int index) + { + bundles.RemoveAt(index); + } + + public Bundle this[int index] + { + get { return bundles[index]; } + set { bundles[index] = value; } + } + + + public void Clear() + { + bundles.Clear(); + } + + public bool Contains(Bundle item) + { + return bundles.Contains(item); + } + + public void CopyTo(Bundle[] array, int arrayIndex) + { + bundles.CopyTo(array, arrayIndex); + } + + public int Count + { + get { return bundles.Count; } + } + + public bool IsReadOnly + { + get { throw new NotImplementedException(); } + } + + bool ICollection.Remove(Bundle item) + { + return bundles.Remove(item); + } } } \ No newline at end of file diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index a0a0ab5f..f01f1606 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using Cassette.BundleProcessing; namespace Cassette.Configuration { @@ -14,13 +15,33 @@ protected BundleContainerFactoryBase(CassetteSettings settings) public abstract IBundleContainer CreateBundleContainer(); - protected void ProcessAllBundles(IEnumerable bundles) + protected void ProcessAllBundles(IList bundles) { + var hasher = new AssignHash(); Trace.Source.TraceInformation("Processing bundles..."); - foreach (var bundle in bundles) + for (var i = 0; i < bundles.Count; i++) { - Trace.Source.TraceInformation("Processing {0} {1}", bundle.GetType().Name, bundle.Path); - bundle.Process(settings); + Trace.Source.TraceInformation("Processing {0} {1}", bundles[i].GetType().Name, bundles[i].Path); + if (settings.IsDebuggingEnabled) + { + hasher.Process(bundles[i], settings); + var bundleUrl = bundles[i].Url; + if (CassetteSettings.bundles.ContainsKey(bundleUrl)) + { + Bundle tempBundle; + CassetteSettings.bundles.TryGetValue(bundleUrl, out tempBundle); + bundles[i] = tempBundle; + } + else + { + bundles[i].Process(settings); + CassetteSettings.bundles.Add(bundleUrl, bundles[i]); + } + } + else + { + bundles[i].Process(settings); + } } Trace.Source.TraceInformation("Bundle processing completed."); } diff --git a/src/Cassette/Configuration/CassetteSettings.cs b/src/Cassette/Configuration/CassetteSettings.cs index ed616362..3ef7b980 100644 --- a/src/Cassette/Configuration/CassetteSettings.cs +++ b/src/Cassette/Configuration/CassetteSettings.cs @@ -26,6 +26,8 @@ public class CassetteSettings { typeof(StylesheetBundle), new StylesheetPipeline() }, { typeof(HtmlTemplateBundle), new HtmlTemplatePipeline() }, }; + + static public Dictionary bundles = new Dictionary(); public CassetteSettings(string cacheVersion) { From 9e8805df4d3ad3da9c86814404b56eb7f0aed439 Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 23 Aug 2012 11:17:02 -0400 Subject: [PATCH 03/26] CDN 2 --- src/Cassette.MSBuild/UrlPlaceholderWrapper.cs | 4 +- .../ConstantHtmlRenderer.cs | 6 +- src/Cassette/ConstantHtmlRenderer.cs | 2 +- src/Website/CassetteConfiguration.cs | 4 +- xunit-xe.xml | 144 ++++++++++++++++++ 5 files changed, 152 insertions(+), 8 deletions(-) create mode 100644 xunit-xe.xml diff --git a/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs b/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs index 2a55dd32..a39ca038 100644 --- a/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs +++ b/src/Cassette.MSBuild/UrlPlaceholderWrapper.cs @@ -2,14 +2,14 @@ namespace Cassette.MSBuild { class UrlPlaceholderWrapper : IUrlModifier { - public string Modify(string url) + public string PreCacheModify(string url) { return "" + url + ""; } public string PostCacheModify(string url) { - return Modify(url); + return PreCacheModify(url); } } } \ No newline at end of file diff --git a/src/Cassette.UnitTests/ConstantHtmlRenderer.cs b/src/Cassette.UnitTests/ConstantHtmlRenderer.cs index 9fffe036..fd73eb52 100644 --- a/src/Cassette.UnitTests/ConstantHtmlRenderer.cs +++ b/src/Cassette.UnitTests/ConstantHtmlRenderer.cs @@ -10,19 +10,19 @@ public class ConstantHtmlRenderer_Tests public void RenderModifiesUrlsWrappedWithPlaceholder() { var urlModifier = UrlModifierThatPrependsRoot(); - var html = "some/url1 some/url2 other stuff"; + var html = "\"_cassette/some/url1\" \"_cassette/some/url2\" other stuff"; var renderer = new ConstantHtmlRenderer(html, urlModifier); var output = renderer.Render(new TestableBundle("~")); - output.ShouldEqual("/root/some/url1 /root/some/url2 other stuff"); + output.ShouldEqual("\"/root/_cassette/some/url1\" \"/root/_cassette/some/url2\" other stuff"); } static IUrlModifier UrlModifierThatPrependsRoot() { var urlModifier = new Mock(); urlModifier - .Setup(m => m.PreCacheModify(It.IsAny())) + .Setup(m => m.PostCacheModify(It.IsAny())) .Returns(s => "/root/" + s); return urlModifier.Object; } diff --git a/src/Cassette/ConstantHtmlRenderer.cs b/src/Cassette/ConstantHtmlRenderer.cs index bf46b7f8..a13da4ec 100644 --- a/src/Cassette/ConstantHtmlRenderer.cs +++ b/src/Cassette/ConstantHtmlRenderer.cs @@ -18,7 +18,7 @@ public string Render(T bundle) { return Regex.Replace( html, - "([^\"]+_cassette[^\"]+)", + "([^\"]*_cassette[^\"]*)", match => urlModifier.PostCacheModify(match.Captures[0].Value) ); } diff --git a/src/Website/CassetteConfiguration.cs b/src/Website/CassetteConfiguration.cs index 50e50d86..5c7661e1 100644 --- a/src/Website/CassetteConfiguration.cs +++ b/src/Website/CassetteConfiguration.cs @@ -1,5 +1,5 @@ using Cassette; -using Cassette.Configuration; +using Cassette.Configuration; using Cassette.Scripts; using Cassette.Stylesheets; @@ -48,7 +48,7 @@ public string PreCacheModify(string url) /// public string PostCacheModify(string url) { - return "//" + "www.google.com/" + baseModifier.PreCacheModify(url); + return "//" + "www.google.com" + url; } } } \ No newline at end of file diff --git a/xunit-xe.xml b/xunit-xe.xml new file mode 100644 index 00000000..91636af3 --- /dev/null +++ b/xunit-xe.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + \ No newline at end of file From 1621e1affdbe709a1734d00a1f89c900a2848c7f Mon Sep 17 00:00:00 2001 From: David Durst Date: Tue, 14 Aug 2012 11:11:51 -0400 Subject: [PATCH 04/26] Part of the way to disk caching --- src/Cassette.Web/AssetRequestHandler.cs | 2 +- src/Cassette/AssetBase.cs | 20 ++ src/Cassette/AssetReference.cs | 4 + src/Cassette/AssetReferenceType.cs | 5 + src/Cassette/BundleContainer.cs | 2 +- .../CachedConcatenatedAsset.cs | 26 ++ .../BundleProcessing/ConcatenatedAsset.cs | 3 +- src/Cassette/Cassette.csproj | 5 + src/Cassette/CassetteApplicationContainer.cs | 2 +- .../BundleContainerFactoryBase.cs | 95 +++++- .../Configuration/CassetteSettings.cs | 5 + .../Configuration/DiskBackedBundleCache.cs | 205 ++++++++++++ src/Cassette/HtmlAttributeDictionary.cs | 295 +++++++++--------- .../HtmlTemplates/HtmlTemplateBundle.cs | 1 + src/Cassette/IAsset.cs | 3 + src/Cassette/IBundleHtmlRenderer.cs | 1 + src/Cassette/Manifests/CachedBundleContent.cs | 2 + src/Cassette/Scripts/ExternalScriptBundle.cs | 4 + src/Cassette/Scripts/InlineScriptBundle.cs | 2 + src/Cassette/Scripts/PageDataScriptBundle.cs | 1 + src/Cassette/Scripts/ScriptBundle.cs | 2 + .../Stylesheets/ExternalStylesheetBundle.cs | 3 + .../MicrosoftStyleSheetMinifier.cs | 2 + src/Cassette/Stylesheets/StylesheetBundle.cs | 7 +- .../Stylesheets/StylesheetPipeline.cs | 3 + src/Cassette/Utilities/HashedSets.cs | 54 ++-- src/Website/CassetteConfiguration.cs | 4 + src/Website/Web.config | 2 +- src/Website/assets/iestyles/iestyles.css | 2 +- src/Website/assets/styles/home.css | 4 +- src/packages/protobuf-net.dll | Bin 0 -> 159232 bytes src/packages/protobuf-net.pdb | Bin 0 -> 544256 bytes 32 files changed, 584 insertions(+), 182 deletions(-) create mode 100644 src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs create mode 100644 src/Cassette/Configuration/DiskBackedBundleCache.cs create mode 100644 src/packages/protobuf-net.dll create mode 100644 src/packages/protobuf-net.pdb diff --git a/src/Cassette.Web/AssetRequestHandler.cs b/src/Cassette.Web/AssetRequestHandler.cs index 7d309ec6..d6f7512c 100644 --- a/src/Cassette.Web/AssetRequestHandler.cs +++ b/src/Cassette.Web/AssetRequestHandler.cs @@ -57,7 +57,7 @@ void SendAsset(HttpRequestBase request, HttpResponseBase response, Bundle bundle { using (var stream = asset.OpenStream()) { - stream.CopyTo(response.OutputStream); + stream.CopyTo(response.OutputStream); } } } diff --git a/src/Cassette/AssetBase.cs b/src/Cassette/AssetBase.cs index f834585a..7b96738d 100644 --- a/src/Cassette/AssetBase.cs +++ b/src/Cassette/AssetBase.cs @@ -2,12 +2,15 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Text; using Cassette.IO; namespace Cassette { public abstract class AssetBase : IAsset { + public byte[] postProcessingByteArray = null; + readonly List transformers = new List(); public abstract void Accept(IBundleVisitor visitor); @@ -22,6 +25,10 @@ public Stream OpenStream() // Passing an already created stream to the transformers would make deciding who has to // close the stream confusing. Using a Func instead allows a transformer to // choose when to create the stream and also then close it. + if (postProcessingByteArray != null) + { + return new MemoryStream(postProcessingByteArray); + } var createStream = transformers.Aggregate>( OpenStreamCore, (current, transformer) => transformer.Transform(current, this) @@ -29,6 +36,19 @@ public Stream OpenStream() return createStream(); } + public void PreparePostProcessingStream() + { + if (postProcessingByteArray != null) + { + return; + } + var postProcessingStream = transformers.Aggregate>( + OpenStreamCore, + (current, transformer) => transformer.Transform(current, this))(); + postProcessingByteArray = new byte[postProcessingStream.Length]; + postProcessingStream.Read(postProcessingByteArray, 0, (int) postProcessingStream.Length); + } + protected abstract Stream OpenStreamCore(); public abstract IFile SourceFile { get; } diff --git a/src/Cassette/AssetReference.cs b/src/Cassette/AssetReference.cs index af01b4ed..f1ae92ce 100644 --- a/src/Cassette/AssetReference.cs +++ b/src/Cassette/AssetReference.cs @@ -3,6 +3,7 @@ namespace Cassette { + [ProtoBuf.ProtoContract] public class AssetReference { public AssetReference(string path, IAsset sourceAsset, int sourceLineNumber, AssetReferenceType type) @@ -39,11 +40,13 @@ static void ValidatePath(string path, AssetReferenceType type) /// /// Path to an asset or bundle. /// + [ProtoBuf.ProtoMember(1)] public string Path { get; private set; } /// /// The type of reference. /// + [ProtoBuf.ProtoMember(2)] public AssetReferenceType Type { get; private set; } /// @@ -54,6 +57,7 @@ static void ValidatePath(string path, AssetReferenceType type) /// /// The line number in the asset file that made this reference. /// + [ProtoBuf.ProtoMember(3)] public int SourceLineNumber { get; private set; } } } diff --git a/src/Cassette/AssetReferenceType.cs b/src/Cassette/AssetReferenceType.cs index 528a1e77..1399f27e 100644 --- a/src/Cassette/AssetReferenceType.cs +++ b/src/Cassette/AssetReferenceType.cs @@ -1,22 +1,27 @@ namespace Cassette { + [ProtoBuf.ProtoContract] public enum AssetReferenceType { /// /// A reference to an asset in the same bundle as the referencing asset. /// + [ProtoBuf.ProtoEnum] SameBundle, /// /// A reference to an asset in another bundle, or to an entire other bundle itself. /// + [ProtoBuf.ProtoEnum] DifferentBundle, /// /// For example, a reference to an image from a CSS file. /// + [ProtoBuf.ProtoEnum] RawFilename, /// /// A direct reference to a URL. /// + [ProtoBuf.ProtoEnum] Url } } diff --git a/src/Cassette/BundleContainer.cs b/src/Cassette/BundleContainer.cs index ed92eb07..4c66bf4a 100644 --- a/src/Cassette/BundleContainer.cs +++ b/src/Cassette/BundleContainer.cs @@ -132,7 +132,7 @@ void ValidateAssetReferences() { var collector = new BundleReferenceCollector(AssetReferenceType.DifferentBundle); foreach (var bundle in Bundles) - { + { bundle.Accept(collector); } var notFound = from reference in collector.CollectedReferences diff --git a/src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs b/src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs new file mode 100644 index 00000000..4f3749c8 --- /dev/null +++ b/src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cassette.IO; +using Cassette.Utilities; + +namespace Cassette.BundleProcessing +{ + class CachedConcatenatedAsset : ConcatenatedAsset + { + readonly IFile file; + + public CachedConcatenatedAsset(IFile file, FileAsset fileAsset) + : base(new IAsset[] {fileAsset}) + { + this.file = file; + } + + public override IO.IFile SourceFile + { + get { return file; } + } + } +} diff --git a/src/Cassette/BundleProcessing/ConcatenatedAsset.cs b/src/Cassette/BundleProcessing/ConcatenatedAsset.cs index 96e43c7d..eafd5566 100644 --- a/src/Cassette/BundleProcessing/ConcatenatedAsset.cs +++ b/src/Cassette/BundleProcessing/ConcatenatedAsset.cs @@ -19,6 +19,7 @@ public ConcatenatedAsset(IEnumerable children) hash = stream.ComputeSHA1Hash(); } + public override void Accept(IBundleVisitor visitor) { foreach (var child in children) @@ -56,7 +57,7 @@ protected override Stream OpenStreamCore() { var newStream = new MemoryStream(); stream.Position = 0; - stream.CopyTo(newStream); + stream.CopyTo(newStream); newStream.Position = 0; return newStream; } diff --git a/src/Cassette/Cassette.csproj b/src/Cassette/Cassette.csproj index 10fea1f6..460ccd17 100644 --- a/src/Cassette/Cassette.csproj +++ b/src/Cassette/Cassette.csproj @@ -63,6 +63,9 @@ ..\packages\Newtonsoft.Json.4.0.8\lib\net35\Newtonsoft.Json.dll ..\packages\Newtonsoft.Json.4.0.8\lib\net40\Newtonsoft.Json.dll + + ..\packages\protobuf-net.dll + @@ -75,8 +78,10 @@ SharedAssemblyInfo.cs + + diff --git a/src/Cassette/CassetteApplicationContainer.cs b/src/Cassette/CassetteApplicationContainer.cs index d699ae5b..05e239c7 100644 --- a/src/Cassette/CassetteApplicationContainer.cs +++ b/src/Cassette/CassetteApplicationContainer.cs @@ -140,7 +140,7 @@ T CreateApplication() catch { creationFailed = true; - throw; + throw; } } diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index f01f1606..796a81e9 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -1,6 +1,15 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; +<<<<<<< HEAD using Cassette.BundleProcessing; +======= +using System.Reflection; +using Cassette.BundleProcessing; +using Cassette.HtmlTemplates; +using Cassette.Scripts; +using Cassette.Stylesheets; +>>>>>>> Part of the way to caching on disk namespace Cassette.Configuration { @@ -15,6 +24,7 @@ protected BundleContainerFactoryBase(CassetteSettings settings) public abstract IBundleContainer CreateBundleContainer(); +<<<<<<< HEAD protected void ProcessAllBundles(IList bundles) { var hasher = new AssignHash(); @@ -41,6 +51,89 @@ protected void ProcessAllBundles(IList bundles) else { bundles[i].Process(settings); +======= + protected T ProcessSingleBundle(T bundle, AssignHash hasher) + where T : Bundle + { + Trace.Source.TraceInformation("Processing {0} {1}", bundle.GetType().Name, bundle.Path); + bool loadedFromCache = false; + if (settings.IsDebuggingEnabled || true) + { + hasher.Process(bundle, settings); + CassetteSettings.bundles.Settings = settings; + var bundleKey = CassetteSettings.bundles.GetCachebleString(bundle.Url); + if (CassetteSettings.bundles.ContainsKey(bundleKey, bundle)) + { + bundle = CassetteSettings.bundles.GetBundle(bundleKey, bundle); + loadedFromCache = true; + } + else + { + bundle.Process(settings); + CassetteSettings.bundles.AddBundle(bundleKey, bundle); + } + } + else + { + bundle.Process(settings); + } + return bundle; + } + + protected void ProcessAllBundles(IList bundles) + { + Trace.Source.TraceInformation("Processing bundles..."); + if (!settings.IsDebuggingEnabled) + { + foreach (var bundle in bundles) + { + bundle.Process(settings); + } + } + else + { + var hasher = new AssignHash(); + for (var i = 0; i < bundles.Count; i++) + { + var type = bundles[i].GetType(); + if (type == typeof(HtmlTemplateBundle)) + { + bundles[i] = ProcessSingleBundle((HtmlTemplateBundle)bundles[i], hasher); + } + else if (type == typeof(ScriptBundle)) + { + bundles[i] = ProcessSingleBundle((ScriptBundle)bundles[i], hasher); + } + else if (type == typeof(StylesheetBundle)) + { + bundles[i] = ProcessSingleBundle((StylesheetBundle)bundles[i], hasher); + } + else if (type == typeof(ExternalScriptBundle)) + { + bundles[i] = ProcessSingleBundle((ExternalScriptBundle)bundles[i], hasher); + } + else if (type == typeof(ExternalStylesheetBundle)) + { + bundles[i] = ProcessSingleBundle((ExternalStylesheetBundle)bundles[i], hasher); + } + else if (type == typeof(InlineScriptBundle)) + { + bundles[i] = ProcessSingleBundle((InlineScriptBundle)bundles[i], hasher); + } + else if (type == typeof(PageDataScriptBundle)) + { + bundles[i] = ProcessSingleBundle((PageDataScriptBundle)bundles[i], hasher); + } + + if (settings.IsDebuggingEnabled && typeof(StylesheetBundle).IsAssignableFrom(bundles[i].GetType())) + { + ((StylesheetBundle)bundles[i]).Renderer = new DebugStylesheetHtmlRenderer(settings.UrlGenerator); + } + else if (settings.IsDebuggingEnabled && typeof(ScriptBundle).IsAssignableFrom(bundles[i].GetType())) + { + ((ScriptBundle)bundles[i]).Renderer = new DebugScriptBundleHtmlRenderer(settings.UrlGenerator); + } +>>>>>>> Part of the way to caching on disk } } Trace.Source.TraceInformation("Bundle processing completed."); diff --git a/src/Cassette/Configuration/CassetteSettings.cs b/src/Cassette/Configuration/CassetteSettings.cs index 3ef7b980..0b7e2ede 100644 --- a/src/Cassette/Configuration/CassetteSettings.cs +++ b/src/Cassette/Configuration/CassetteSettings.cs @@ -27,8 +27,13 @@ public class CassetteSettings { typeof(HtmlTemplateBundle), new HtmlTemplatePipeline() }, }; +<<<<<<< HEAD static public Dictionary bundles = new Dictionary(); +======= + public static DiskBackedBundleCache bundles = new DiskBackedBundleCache(); + +>>>>>>> Part of the way to caching on disk public CassetteSettings(string cacheVersion) { Version = cacheVersion; diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs new file mode 100644 index 00000000..b49bf112 --- /dev/null +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -0,0 +1,205 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cassette.BundleProcessing; +using Cassette.IO; +using Cassette.Manifests; +using Cassette.Scripts; +using Cassette.Stylesheets; +using Cassette.Utilities; + +namespace Cassette.Configuration +{ + public class DiskBackedBundleCache + { + const string CACHE_DIRECTORY = @"C:\DiskCachedBundles\"; + Dictionary _bundles; + Dictionary _locks; + public CassetteSettings Settings { get; set; } + + /// + /// Creates the directory if needed. + /// + public DiskBackedBundleCache() + { + if (!Directory.Exists(CACHE_DIRECTORY)) + { + Directory.CreateDirectory(CACHE_DIRECTORY); + } + _bundles = new Dictionary(); + _locks = new Dictionary(); + } + + + /// + /// Adds it to the cache if not in there, will not overwrite already existing + /// + /// A descendent of Bundle + /// + /// + public void AddBundle(string key, T value) + where T : Bundle + { + if (!_bundles.ContainsKey(key)) + { + _bundles.Add(key, value); + AddToDisk(key, value); + } + } + + public T GetBundle(string key, T dehydratedBundle) + where T : Bundle + { + if (!ContainsKey(key, dehydratedBundle)) + { + return null; + } + return (T)_bundles[key]; + } + + public bool ContainsKey(string key, T dehydratedBundle) + where T : Bundle + { + if (_bundles.ContainsKey(key)) + { + return true; + } + var returnValue = GetFromDisk(key, dehydratedBundle); + if (returnValue) + { + _bundles.Add(key, dehydratedBundle); + } + return returnValue; + } + + public bool Remove(string key) + { + if (!File.Exists(CACHE_DIRECTORY + key)) + { + return false; + } + _bundles.Remove(key); + File.Delete(CACHE_DIRECTORY + key); + return true; + } + + /// + /// Turns the bundleUrl into a string that is still a unique hash but + /// is also able to be used a file name. + /// + /// the original bundleUrl + /// the new, cachebale string + public string GetCachebleString(string bundleUrl) + { + return bundleUrl.Remove(0, bundleUrl.LastIndexOf('/')); + } + + /// + /// Caches the given bundle on disk. Note: assumes this is done after processing + /// + /// The key of the file + /// The cached bundle. + private void AddToDisk(string key, Bundle dehydratedBundle) + { + if (!_locks.ContainsKey(key)) + { + _locks.Add(key, new object()); + } + //lock (_locks[key]) + { + foreach (var asset in dehydratedBundle.Assets) + { + var systemAbsoluteFilename = CACHE_DIRECTORY + key + + Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_"); + using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) + { + ((AssetBase)asset).PreparePostProcessingStream(); + var postProcessingByteArray = ((AssetBase)asset).postProcessingByteArray; + file.Write(postProcessingByteArray, 0, postProcessingByteArray.Length); + using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Create)) + { + var refHolderList = new List(); + foreach (var assetReference in asset.References) + { + refHolderList.Add(new ReferenceHolder + { + path = assetReference.Path, + lineNumber = assetReference.SourceLineNumber, + }); + } + ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); + } + } + } + } + } + + /// + /// Gets the given bundle from the disk. + /// + /// The bundles key, which is also the file name + /// The bundle that has been has been cached in a file. + private bool GetFromDisk(string key, T dehydratedBundle) + where T : Bundle + { + /* + if (!_locks.ContainsKey(key)) + { + _locks.Add(key, new object()); + }*/ + var retValue = true; + var hydratedAssetList = new List(); + foreach (var asset in dehydratedBundle.Assets) + { + var systemAbsoluteFilename = CACHE_DIRECTORY + key + + Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_"); + if (!File.Exists(systemAbsoluteFilename)) + { + retValue = false; + continue; + } + if (File.GetLastAccessTime(systemAbsoluteFilename).Date != DateTime.Today) + { + File.Delete(CACHE_DIRECTORY + key); + retValue = false; + continue; + } + var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), + new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), + systemAbsoluteFilename); + var fileAsset = new FileAsset(file, dehydratedBundle); + //hydratedAssetList.Add(new CachedConcatenatedAsset(file, fileAsset)); + + using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) + { + var refHolderList = ProtoBuf.Serializer.Deserialize>(referencesForFile); + foreach (var refHolder in refHolderList) + { + fileAsset.AddReference(refHolder.path, refHolder.lineNumber); + } + } + hydratedAssetList.Add(fileAsset); + //asset.postProcessingStream = ProtoBuf.Serializer.Deserialize(file); + } + if (hydratedAssetList.Count == dehydratedBundle.Assets.Count) + { + dehydratedBundle.Assets.Clear(); + foreach (var asset in hydratedAssetList) + { + dehydratedBundle.Assets.Add(asset); + } + } + return retValue; + } + + [ProtoBuf.ProtoContract] + private class ReferenceHolder + { + [ProtoBuf.ProtoMember(1)] public string path; + [ProtoBuf.ProtoMember(2)] public int lineNumber; + } + } +} diff --git a/src/Cassette/HtmlAttributeDictionary.cs b/src/Cassette/HtmlAttributeDictionary.cs index 73b9ce1d..ed2d2671 100644 --- a/src/Cassette/HtmlAttributeDictionary.cs +++ b/src/Cassette/HtmlAttributeDictionary.cs @@ -1,39 +1,41 @@ -using System; +using System; using System.Collections.Generic; -using System.ComponentModel; +using System.ComponentModel; using System.Text; using Cassette.Utilities; -namespace Cassette -{ - /// - /// Contains a collection of html attribute name/value pairs. - /// - public class HtmlAttributeDictionary : IEnumerable> - { - readonly Dictionary attributeStorage = new Dictionary(StringComparer.OrdinalIgnoreCase); - - /// - /// Add an object to the using the object property names as the attribute name - /// and the property values as the attribute Values. - /// - /// Underscores in the object property name will be converted to dashes. - /// - /// - /// - /// var attributes = new HtmlAttributeDictionary().Add( new { data_val_required = "contrived example", @class = "cssx" } ); - /// - /// - /// An object that contains the HTML attributes. - /// The attributes are retrieved through reflection by examining the properties of the object. - /// The object is typically created by using object initializer syntax. - /// This dictionary. - public HtmlAttributeDictionary Add(object values) - { - if (values == null) return this; - +namespace Cassette +{ + /// + /// Contains a collection of html attribute name/value pairs. + /// + [ProtoBuf.ProtoContract] + public class HtmlAttributeDictionary : IEnumerable> + { + [ProtoBuf.ProtoMember(1)] + readonly Dictionary attributeStorage = new Dictionary(StringComparer.OrdinalIgnoreCase); + + /// + /// Add an object to the using the object property names as the attribute name + /// and the property values as the attribute Values. + /// + /// Underscores in the object property name will be converted to dashes. + /// + /// + /// + /// var attributes = new HtmlAttributeDictionary().Add( new { data_val_required = "contrived example", @class = "cssx" } ); + /// + /// + /// An object that contains the HTML attributes. + /// The attributes are retrieved through reflection by examining the properties of the object. + /// The object is typically created by using object initializer syntax. + /// This dictionary. + public HtmlAttributeDictionary Add(object values) + { + if (values == null) return this; + AddForEachPropertyOfObject(values); - return this; + return this; } void AddForEachPropertyOfObject(object values) @@ -47,96 +49,101 @@ void AddForEachPropertyOfObject(object values) } } - /// - /// Add an attribute to the that has a blank value. - /// - /// The attribute name to add. - /// This dictionary. - /// Thrown if name is invalid. - public HtmlAttributeDictionary Add(string name) - { - return Add(name, null); - } - - /// - /// Add an attribute name and value to the . - /// - /// The attribute name to add. - /// The attribute value to add. - /// This dictionary. - /// Thrown if name is invalid. - public HtmlAttributeDictionary Add(string name, object value) - { - RequireAttributeName(name); - - attributeStorage.Add(SanitizeName(name), SanitizeValue(value)); - - return this; - } - - /// - /// Determines whether the containes the specified attribute name. - /// - /// The attribute name. - /// True if found. - /// Thrown if name is invalid. - public bool ContainsAttribute(string name) - { - RequireAttributeName(name); - - return attributeStorage.ContainsKey(SanitizeName(name)); - } - - /// - /// Removes the attribute with the specified name from the . - /// - /// The attribute name. - /// True if an attribute was removed. - /// Thrown if name is invalid. - public bool Remove(string name) - { - RequireAttributeName(name); - - return attributeStorage.Remove(SanitizeName(name)); - } - - public string this[string name] - { - get + public HtmlAttributeDictionary Add(KeyValuePair value) + { + return Add(value.Key, value.Value); + } + + /// + /// Add an attribute to the that has a blank value. + /// + /// The attribute name to add. + /// This dictionary. + /// Thrown if name is invalid. + public HtmlAttributeDictionary Add(string name) + { + return Add(name, null); + } + + /// + /// Add an attribute name and value to the . + /// + /// The attribute name to add. + /// The attribute value to add. + /// This dictionary. + /// Thrown if name is invalid. + public HtmlAttributeDictionary Add(string name, object value) + { + RequireAttributeName(name); + + attributeStorage.Add(SanitizeName(name), SanitizeValue(value)); + + return this; + } + + /// + /// Determines whether the containes the specified attribute name. + /// + /// The attribute name. + /// True if found. + /// Thrown if name is invalid. + public bool ContainsAttribute(string name) + { + RequireAttributeName(name); + + return attributeStorage.ContainsKey(SanitizeName(name)); + } + + /// + /// Removes the attribute with the specified name from the . + /// + /// The attribute name. + /// True if an attribute was removed. + /// Thrown if name is invalid. + public bool Remove(string name) + { + RequireAttributeName(name); + + return attributeStorage.Remove(SanitizeName(name)); + } + + public string this[string name] + { + get { RequireAttributeName(name); - return attributeStorage[SanitizeName(name)]; - } - set + return attributeStorage[SanitizeName(name)]; + } + set { - RequireAttributeName(name); - attributeStorage[SanitizeName(name)] = SanitizeValue(value); - } + RequireAttributeName(name); + attributeStorage[SanitizeName(name)] = SanitizeValue(value); + } } void RequireAttributeName(string name) { if (name.IsNullOrWhiteSpace()) throw new ArgumentException("Attribute name is required.", "name"); - } - - /// - /// Gets the number of attribute name/value pairs in the . - /// - public int Count - { - get { return attributeStorage.Count; } - } - - /// - /// Generates an Html attributes string (with a leading space). - /// The attribute name will be the dictionary key and the attribute value will be the dictionary value. - /// - internal string CombinedAttributes - { + } + + /// + /// Gets the number of attribute name/value pairs in the . + /// + public int Count + { + get { return attributeStorage.Count; } + } + + /// + /// Generates an Html attributes string (with a leading space). + /// The attribute name will be the dictionary key and the attribute value will be the dictionary value. + /// + internal string CombinedAttributes + { get { - if (attributeStorage.Count == 0) + if (attributeStorage.Count == 0) return string.Empty; return BuildAttributesString(); @@ -165,44 +172,44 @@ void AppendAttribute(StringBuilder builder, KeyValuePair attribu } } - /// - /// Returns an enumerator that iterates through the . - /// - /// The enumerator. - public IEnumerator> GetEnumerator() - { - return attributeStorage.GetEnumerator(); - } - - /// - /// Returns an enumerator that iterates through the . - /// - /// The enumerator. - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return attributeStorage.GetEnumerator(); - } - - string SanitizeName(string name) - { - // XHTML requires lowercase attribute names - // W3C recommends lowercase attribute names in the HTML 4 recommendation. - return name.Trim().ToLowerInvariant(); - } - - string SanitizeValue(object value) - { - if (value == null) - return null; - - // Values should be supplied already escaped - // But if a quote makes its way in, be a good citizen and escape it. - return EscapeDoubleQuotes(value.ToString()); + /// + /// Returns an enumerator that iterates through the . + /// + /// The enumerator. + public IEnumerator> GetEnumerator() + { + return attributeStorage.GetEnumerator(); + } + + /// + /// Returns an enumerator that iterates through the . + /// + /// The enumerator. + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return attributeStorage.GetEnumerator(); + } + + string SanitizeName(string name) + { + // XHTML requires lowercase attribute names + // W3C recommends lowercase attribute names in the HTML 4 recommendation. + return name.Trim().ToLowerInvariant(); + } + + string SanitizeValue(object value) + { + if (value == null) + return null; + + // Values should be supplied already escaped + // But if a quote makes its way in, be a good citizen and escape it. + return EscapeDoubleQuotes(value.ToString()); } string EscapeDoubleQuotes(string value) { return value.Replace("\"", """); } - } + } } \ No newline at end of file diff --git a/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs b/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs index 62accfc9..cb8cdb4a 100644 --- a/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs +++ b/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs @@ -5,6 +5,7 @@ namespace Cassette.HtmlTemplates { + [ProtoBuf.ProtoContract] public class HtmlTemplateBundle : Bundle { public HtmlTemplateBundle(string applicationRelativePath) diff --git a/src/Cassette/IAsset.cs b/src/Cassette/IAsset.cs index 2c13a06b..6f122145 100644 --- a/src/Cassette/IAsset.cs +++ b/src/Cassette/IAsset.cs @@ -4,16 +4,19 @@ namespace Cassette { + [ProtoBuf.ProtoContract] public interface IAsset { /// /// Gets the hash of the original asset contents, before any transformations are applied. /// + [ProtoBuf.ProtoMember(1)] byte[] Hash { get; } /// /// Gets the file containing the source of this asset. /// + [ProtoBuf.ProtoMember(2)] IFile SourceFile { get; } /// diff --git a/src/Cassette/IBundleHtmlRenderer.cs b/src/Cassette/IBundleHtmlRenderer.cs index ef198f2a..a942551b 100644 --- a/src/Cassette/IBundleHtmlRenderer.cs +++ b/src/Cassette/IBundleHtmlRenderer.cs @@ -4,6 +4,7 @@ /// Creates the HTML required to reference a bundle in a page. /// /// The type of . + [ProtoBuf.ProtoContract] public interface IBundleHtmlRenderer where T : Bundle { diff --git a/src/Cassette/Manifests/CachedBundleContent.cs b/src/Cassette/Manifests/CachedBundleContent.cs index b06184d5..a8c81d16 100644 --- a/src/Cassette/Manifests/CachedBundleContent.cs +++ b/src/Cassette/Manifests/CachedBundleContent.cs @@ -9,8 +9,10 @@ namespace Cassette.Manifests { + [ProtoBuf.ProtoContract] class CachedBundleContent : IAsset { + [ProtoBuf.ProtoMember(1)] readonly byte[] content; readonly IEnumerable originalAssets; diff --git a/src/Cassette/Scripts/ExternalScriptBundle.cs b/src/Cassette/Scripts/ExternalScriptBundle.cs index cd27ea20..fb4e5b7f 100644 --- a/src/Cassette/Scripts/ExternalScriptBundle.cs +++ b/src/Cassette/Scripts/ExternalScriptBundle.cs @@ -8,10 +8,14 @@ namespace Cassette.Scripts { + [ProtoBuf.ProtoContract] class ExternalScriptBundle : ScriptBundle, IExternalBundle, IBundleHtmlRenderer { + [ProtoBuf.ProtoMember(1)] readonly string url; + [ProtoBuf.ProtoMember(2)] readonly string fallbackCondition; + [ProtoBuf.ProtoMember(3)] bool isDebuggingEnabled; public ExternalScriptBundle(string url) diff --git a/src/Cassette/Scripts/InlineScriptBundle.cs b/src/Cassette/Scripts/InlineScriptBundle.cs index b4a18c42..477fe41d 100644 --- a/src/Cassette/Scripts/InlineScriptBundle.cs +++ b/src/Cassette/Scripts/InlineScriptBundle.cs @@ -3,8 +3,10 @@ namespace Cassette.Scripts { + [ProtoBuf.ProtoContract] class InlineScriptBundle : ScriptBundle { + [ProtoBuf.ProtoMember(1)] readonly string scriptContent; public InlineScriptBundle(string scriptContent) diff --git a/src/Cassette/Scripts/PageDataScriptBundle.cs b/src/Cassette/Scripts/PageDataScriptBundle.cs index 6cab270e..b7e28012 100644 --- a/src/Cassette/Scripts/PageDataScriptBundle.cs +++ b/src/Cassette/Scripts/PageDataScriptBundle.cs @@ -7,6 +7,7 @@ namespace Cassette.Scripts { + [ProtoBuf.ProtoContract] class PageDataScriptBundle : InlineScriptBundle { public PageDataScriptBundle(string globalVariable, object data) diff --git a/src/Cassette/Scripts/ScriptBundle.cs b/src/Cassette/Scripts/ScriptBundle.cs index 0bbab77b..b201dcba 100644 --- a/src/Cassette/Scripts/ScriptBundle.cs +++ b/src/Cassette/Scripts/ScriptBundle.cs @@ -5,6 +5,7 @@ namespace Cassette.Scripts { + [ProtoBuf.ProtoContract] public class ScriptBundle : Bundle { public ScriptBundle(string applicationRelativePath) @@ -21,6 +22,7 @@ protected ScriptBundle() /// The Internet Explorer specific condition used control if the script should be loaded using an HTML conditional comment. /// For example, "lt IE 9". /// + [ProtoBuf.ProtoMember(1)] public string Condition { get; set; } public IBundleProcessor Processor { get; set; } diff --git a/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs b/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs index b8a376ab..12f3516d 100644 --- a/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs +++ b/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs @@ -7,9 +7,12 @@ namespace Cassette.Stylesheets { + [ProtoBuf.ProtoContract] class ExternalStylesheetBundle : StylesheetBundle, IExternalBundle, IBundleHtmlRenderer { + [ProtoBuf.ProtoMember(1)] readonly string url; + [ProtoBuf.ProtoMember(2)] bool isDebuggingEnabled; public ExternalStylesheetBundle(string url) diff --git a/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs b/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs index 47eaa328..9d00a434 100644 --- a/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs +++ b/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs @@ -5,6 +5,7 @@ namespace Cassette.Stylesheets { + [ProtoBuf.ProtoContract] public class MicrosoftStylesheetMinifier : IAssetTransformer { public MicrosoftStylesheetMinifier() @@ -17,6 +18,7 @@ public MicrosoftStylesheetMinifier(CssSettings cssSettings) this.cssSettings = cssSettings; } + [ProtoBuf.ProtoMember(1)] readonly CssSettings cssSettings; public Func Transform(Func openSourceStream, IAsset asset) diff --git a/src/Cassette/Stylesheets/StylesheetBundle.cs b/src/Cassette/Stylesheets/StylesheetBundle.cs index c08bdf81..4b5aae17 100644 --- a/src/Cassette/Stylesheets/StylesheetBundle.cs +++ b/src/Cassette/Stylesheets/StylesheetBundle.cs @@ -5,6 +5,7 @@ namespace Cassette.Stylesheets { + [ProtoBuf.ProtoContract(SkipConstructor = true)] public class StylesheetBundle : Bundle { public StylesheetBundle(string applicationRelativePath) @@ -16,12 +17,14 @@ public StylesheetBundle(string applicationRelativePath) /// /// The value of the media attribute for this stylesheet's link element. For example, print. /// + [ProtoBuf.ProtoMember(1)] public string Media { get; set; } /// /// The Internet Explorer specific condition used control if the stylesheet should be loaded using an HTML conditional comment. /// For example, "lt IE 9". /// + [ProtoBuf.ProtoMember(2)] public string Condition { get; set; } public IBundleProcessor Processor { get; set; } @@ -37,7 +40,7 @@ internal override string Render() { return Renderer.Render(this); } - + internal override BundleManifest CreateBundleManifest(bool includeProcessedBundleContent) { var builder = new StylesheetBundleManifestBuilder { IncludeContent = includeProcessedBundleContent }; @@ -48,5 +51,5 @@ protected override string UrlBundleTypeArgument { get { return "stylesheetbundle"; } } - } + } } \ No newline at end of file diff --git a/src/Cassette/Stylesheets/StylesheetPipeline.cs b/src/Cassette/Stylesheets/StylesheetPipeline.cs index bce3c4e0..1e63866f 100644 --- a/src/Cassette/Stylesheets/StylesheetPipeline.cs +++ b/src/Cassette/Stylesheets/StylesheetPipeline.cs @@ -4,6 +4,7 @@ namespace Cassette.Stylesheets { + [ProtoBuf.ProtoContract] public class StylesheetPipeline : MutablePipeline { public StylesheetPipeline() @@ -11,9 +12,11 @@ public StylesheetPipeline() StylesheetMinifier = new MicrosoftStylesheetMinifier(); } + [ProtoBuf.ProtoMember(1)] public IAssetTransformer StylesheetMinifier { get; set; } // TODO: Delete this property + [ProtoBuf.ProtoMember(2)] public bool ConvertImageUrlsToDataUris { get; set; } protected override IEnumerable> CreatePipeline(StylesheetBundle bundle, CassetteSettings settings) diff --git a/src/Cassette/Utilities/HashedSets.cs b/src/Cassette/Utilities/HashedSets.cs index 2bc620b7..c1bd3a00 100644 --- a/src/Cassette/Utilities/HashedSets.cs +++ b/src/Cassette/Utilities/HashedSets.cs @@ -1,35 +1,35 @@ using System.Collections.Generic; #if NET35 using Iesi.Collections.Generic; -#endif - -namespace Cassette.Utilities -{ - -#if !NET35 - // Redirect for 4.0 to native - class HashedSet : HashSet - { +#endif + +namespace Cassette.Utilities +{ + +#if !NET35 + // Redirect for 4.0 to native + class HashedSet : HashSet + { public HashedSet() - {} - - public HashedSet(IEnumerable initialValues) - : base(initialValues) {} - } - - // Redirect to Native implementation - class HashedCompareSet : HashSet { - public HashedCompareSet(IEnumerable initialValues, IEqualityComparer comparer) - : base(initialValues, comparer) {} - } + {} + + public HashedSet(IEnumerable initialValues) + : base(initialValues) {} + } + + // Redirect to Native implementation + class HashedCompareSet : HashSet { + public HashedCompareSet(IEnumerable initialValues, IEqualityComparer comparer) + : base(initialValues, comparer) {} + } #else - sealed class HashedCompareSet : DictionarySet - { - public HashedCompareSet(ICollection initialValues, IEqualityComparer comparer) + sealed class HashedCompareSet : DictionarySet + { + public HashedCompareSet(ICollection initialValues, IEqualityComparer comparer) { InternalDictionary = new Dictionary(comparer); - AddAll(initialValues); - } - } -#endif + AddAll(initialValues); + } + } +#endif } \ No newline at end of file diff --git a/src/Website/CassetteConfiguration.cs b/src/Website/CassetteConfiguration.cs index 5c7661e1..4fd3bd82 100644 --- a/src/Website/CassetteConfiguration.cs +++ b/src/Website/CassetteConfiguration.cs @@ -48,7 +48,11 @@ public string PreCacheModify(string url) /// public string PostCacheModify(string url) { +<<<<<<< HEAD return "//" + "www.google.com" + url; +======= + return baseModifier.PreCacheModify(url); +>>>>>>> Part of the way to caching on disk } } } \ No newline at end of file diff --git a/src/Website/Web.config b/src/Website/Web.config index e4e5b4e5..be12f92a 100644 --- a/src/Website/Web.config +++ b/src/Website/Web.config @@ -8,7 +8,7 @@ - + diff --git a/src/Website/assets/iestyles/iestyles.css b/src/Website/assets/iestyles/iestyles.css index 8f8de5fa..b94490f2 100644 --- a/src/Website/assets/iestyles/iestyles.css +++ b/src/Website/assets/iestyles/iestyles.css @@ -8,4 +8,4 @@ a { span.gitforked-bubble a { display: inline; /* Fixes issue with alignment of gitforked button caused by the style above*/ -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Website/assets/styles/home.css b/src/Website/assets/styles/home.css index 399c5808..47d47b59 100644 --- a/src/Website/assets/styles/home.css +++ b/src/Website/assets/styles/home.css @@ -7,7 +7,7 @@ } .banner h1 { - padding: 0.6em 0 0 0; + padding: 0.6em 0 0 0; } .banner p { @@ -24,7 +24,7 @@ .banner .share-links { top: 24px; } - + .banner .share-links p { font-size: 1.1em; } diff --git a/src/packages/protobuf-net.dll b/src/packages/protobuf-net.dll new file mode 100644 index 0000000000000000000000000000000000000000..99bbb956f8063bb9342a834e04e4846f8d9abe95 GIT binary patch literal 159232 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⩔jmnkF4Nq@*1kn3Rs&@i|#90o46N3=udFy=frf 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 Date: Tue, 14 Aug 2012 14:59:42 -0400 Subject: [PATCH 05/26] mostly working caching --- src/Cassette/AssetReference.cs | 3 +- .../BundleContainerFactoryBase.cs | 38 +------------------ .../Configuration/CassetteSettings.cs | 7 +--- .../Configuration/DiskBackedBundleCache.cs | 17 ++++++--- src/Website/CassetteConfiguration.cs | 4 -- 5 files changed, 16 insertions(+), 53 deletions(-) diff --git a/src/Cassette/AssetReference.cs b/src/Cassette/AssetReference.cs index f1ae92ce..fb071ae8 100644 --- a/src/Cassette/AssetReference.cs +++ b/src/Cassette/AssetReference.cs @@ -46,7 +46,6 @@ static void ValidatePath(string path, AssetReferenceType type) ///

/// The type of reference. /// - [ProtoBuf.ProtoMember(2)] public AssetReferenceType Type { get; private set; } /// @@ -57,7 +56,7 @@ static void ValidatePath(string path, AssetReferenceType type) /// /// The line number in the asset file that made this reference. /// - [ProtoBuf.ProtoMember(3)] + [ProtoBuf.ProtoMember(2)] public int SourceLineNumber { get; private set; } } } diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index 796a81e9..bc9a1e55 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -1,15 +1,9 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -<<<<<<< HEAD -using Cassette.BundleProcessing; -======= -using System.Reflection; using Cassette.BundleProcessing; using Cassette.HtmlTemplates; using Cassette.Scripts; using Cassette.Stylesheets; ->>>>>>> Part of the way to caching on disk namespace Cassette.Configuration { @@ -24,34 +18,7 @@ protected BundleContainerFactoryBase(CassetteSettings settings) public abstract IBundleContainer CreateBundleContainer(); -<<<<<<< HEAD - protected void ProcessAllBundles(IList bundles) - { - var hasher = new AssignHash(); - Trace.Source.TraceInformation("Processing bundles..."); - for (var i = 0; i < bundles.Count; i++) - { - Trace.Source.TraceInformation("Processing {0} {1}", bundles[i].GetType().Name, bundles[i].Path); - if (settings.IsDebuggingEnabled) - { - hasher.Process(bundles[i], settings); - var bundleUrl = bundles[i].Url; - if (CassetteSettings.bundles.ContainsKey(bundleUrl)) - { - Bundle tempBundle; - CassetteSettings.bundles.TryGetValue(bundleUrl, out tempBundle); - bundles[i] = tempBundle; - } - else - { - bundles[i].Process(settings); - CassetteSettings.bundles.Add(bundleUrl, bundles[i]); - } - } - else - { - bundles[i].Process(settings); -======= + protected T ProcessSingleBundle(T bundle, AssignHash hasher) where T : Bundle { @@ -133,7 +100,6 @@ protected void ProcessAllBundles(IList bundles) { ((ScriptBundle)bundles[i]).Renderer = new DebugScriptBundleHtmlRenderer(settings.UrlGenerator); } ->>>>>>> Part of the way to caching on disk } } Trace.Source.TraceInformation("Bundle processing completed."); diff --git a/src/Cassette/Configuration/CassetteSettings.cs b/src/Cassette/Configuration/CassetteSettings.cs index 0b7e2ede..f30d16bf 100644 --- a/src/Cassette/Configuration/CassetteSettings.cs +++ b/src/Cassette/Configuration/CassetteSettings.cs @@ -27,13 +27,10 @@ public class CassetteSettings { typeof(HtmlTemplateBundle), new HtmlTemplatePipeline() }, }; -<<<<<<< HEAD - static public Dictionary bundles = new Dictionary(); - -======= public static DiskBackedBundleCache bundles = new DiskBackedBundleCache(); + + public Bundle uncachedFileAssets = null; ->>>>>>> Part of the way to caching on disk public CassetteSettings(string cacheVersion) { Version = cacheVersion; diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index b49bf112..36ef0537 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -113,7 +113,7 @@ private void AddToDisk(string key, Bundle dehydratedBundle) foreach (var asset in dehydratedBundle.Assets) { var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_"); + Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_").Replace("?", "_"); using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) { ((AssetBase)asset).PreparePostProcessingStream(); @@ -128,6 +128,7 @@ private void AddToDisk(string key, Bundle dehydratedBundle) { path = assetReference.Path, lineNumber = assetReference.SourceLineNumber, + assetReferenceType = assetReference.Type }); } ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); @@ -155,7 +156,7 @@ private bool GetFromDisk(string key, T dehydratedBundle) foreach (var asset in dehydratedBundle.Assets) { var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_"); + Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_").Replace("?", "_"); if (!File.Exists(systemAbsoluteFilename)) { retValue = false; @@ -166,21 +167,24 @@ private bool GetFromDisk(string key, T dehydratedBundle) File.Delete(CACHE_DIRECTORY + key); retValue = false; continue; - } + } var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), systemAbsoluteFilename); var fileAsset = new FileAsset(file, dehydratedBundle); //hydratedAssetList.Add(new CachedConcatenatedAsset(file, fileAsset)); - + //if (Settings) using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) { var refHolderList = ProtoBuf.Serializer.Deserialize>(referencesForFile); foreach (var refHolder in refHolderList) { - fileAsset.AddReference(refHolder.path, refHolder.lineNumber); + if (refHolder.assetReferenceType == AssetReferenceType.RawFilename) + { + fileAsset.AddRawFileReference(refHolder.path); + } } - } + } hydratedAssetList.Add(fileAsset); //asset.postProcessingStream = ProtoBuf.Serializer.Deserialize(file); } @@ -200,6 +204,7 @@ private class ReferenceHolder { [ProtoBuf.ProtoMember(1)] public string path; [ProtoBuf.ProtoMember(2)] public int lineNumber; + [ProtoBuf.ProtoMember(3)] public AssetReferenceType assetReferenceType; } } } diff --git a/src/Website/CassetteConfiguration.cs b/src/Website/CassetteConfiguration.cs index 4fd3bd82..836d3d83 100644 --- a/src/Website/CassetteConfiguration.cs +++ b/src/Website/CassetteConfiguration.cs @@ -48,11 +48,7 @@ public string PreCacheModify(string url) /// public string PostCacheModify(string url) { -<<<<<<< HEAD - return "//" + "www.google.com" + url; -======= return baseModifier.PreCacheModify(url); ->>>>>>> Part of the way to caching on disk } } } \ No newline at end of file From 77bbc07090318bca5186cf9a32ee6c0c64c2261b Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 15 Aug 2012 11:34:42 -0400 Subject: [PATCH 06/26] not clean, but it works with disk caching --- src/Cassette/AssetReference.cs | 2 +- .../BundleContainerFactoryBase.cs | 5 +- .../Configuration/CassetteSettings.cs | 2 +- .../Configuration/DiskBackedBundleCache.cs | 89 ++++++++++++++++--- 4 files changed, 84 insertions(+), 14 deletions(-) diff --git a/src/Cassette/AssetReference.cs b/src/Cassette/AssetReference.cs index fb071ae8..b577edbf 100644 --- a/src/Cassette/AssetReference.cs +++ b/src/Cassette/AssetReference.cs @@ -41,7 +41,7 @@ static void ValidatePath(string path, AssetReferenceType type) /// Path to an asset or bundle. /// [ProtoBuf.ProtoMember(1)] - public string Path { get; private set; } + public string Path { get; set; } /// /// The type of reference. diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index bc9a1e55..89f8d80b 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -27,7 +27,6 @@ protected T ProcessSingleBundle(T bundle, AssignHash hasher) if (settings.IsDebuggingEnabled || true) { hasher.Process(bundle, settings); - CassetteSettings.bundles.Settings = settings; var bundleKey = CassetteSettings.bundles.GetCachebleString(bundle.Url); if (CassetteSettings.bundles.ContainsKey(bundleKey, bundle)) { @@ -36,8 +35,9 @@ protected T ProcessSingleBundle(T bundle, AssignHash hasher) } else { + var unprocessedAssetPaths = CassetteSettings.bundles.getAssetPaths(bundle); bundle.Process(settings); - CassetteSettings.bundles.AddBundle(bundleKey, bundle); + CassetteSettings.bundles.AddBundle(bundleKey, bundle, unprocessedAssetPaths); } } else @@ -101,6 +101,7 @@ protected void ProcessAllBundles(IList bundles) ((ScriptBundle)bundles[i]).Renderer = new DebugScriptBundleHtmlRenderer(settings.UrlGenerator); } } + CassetteSettings.bundles.FixReferences(bundles); } Trace.Source.TraceInformation("Bundle processing completed."); } diff --git a/src/Cassette/Configuration/CassetteSettings.cs b/src/Cassette/Configuration/CassetteSettings.cs index f30d16bf..816d3c06 100644 --- a/src/Cassette/Configuration/CassetteSettings.cs +++ b/src/Cassette/Configuration/CassetteSettings.cs @@ -29,7 +29,7 @@ public class CassetteSettings public static DiskBackedBundleCache bundles = new DiskBackedBundleCache(); - public Bundle uncachedFileAssets = null; + public static Dictionary uncachedToCachedFiles = new Dictionary(StringComparer.OrdinalIgnoreCase); public CassetteSettings(string cacheVersion) { diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index 36ef0537..bdd7aa8d 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -18,7 +18,6 @@ public class DiskBackedBundleCache const string CACHE_DIRECTORY = @"C:\DiskCachedBundles\"; Dictionary _bundles; Dictionary _locks; - public CassetteSettings Settings { get; set; } /// /// Creates the directory if needed. @@ -40,16 +39,26 @@ public DiskBackedBundleCache() /// A descendent of Bundle /// /// - public void AddBundle(string key, T value) + public void AddBundle(string key, T value, IEnumerable unprocessedAssetPaths) where T : Bundle { if (!_bundles.ContainsKey(key)) { _bundles.Add(key, value); - AddToDisk(key, value); + AddToDisk(key, value, unprocessedAssetPaths); } } + public IEnumerable getAssetPaths(Bundle bundle) + { + var assetPaths = new List(); + foreach (var asset in bundle.Assets) + { + assetPaths.Add(asset.SourceFile.FullPath); + } + return assetPaths; + } + public T GetBundle(string key, T dehydratedBundle) where T : Bundle { @@ -86,6 +95,40 @@ public bool Remove(string key) return true; } + public void FixReferences(IList bundles) + { + foreach (var bundle in bundles) + { + if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(bundle.Path)) + { + CassetteSettings.uncachedToCachedFiles.Add(bundle.Path, bundle.Path); + } + } + foreach(var bundle in bundles) + { + foreach(var asset in bundle.Assets) + { + foreach(var reference in asset.References) + { + if (reference.Type == AssetReferenceType.SameBundle || reference.Type == AssetReferenceType.DifferentBundle) + { + try + { + if (!CassetteSettings.uncachedToCachedFiles.ContainsValue(reference.Path)) + { + reference.Path = CassetteSettings.uncachedToCachedFiles[reference.Path]; + } + } + catch(KeyNotFoundException) + { + throw new Exception(reference.Path + " " + reference.Type + " " + reference.SourceAsset.SourceFile.FullPath); + } + } + } + } + } + } + /// /// Turns the bundleUrl into a string that is still a unique hash but /// is also able to be used a file name. @@ -102,7 +145,7 @@ public string GetCachebleString(string bundleUrl) /// /// The key of the file /// The cached bundle. - private void AddToDisk(string key, Bundle dehydratedBundle) + private void AddToDisk(string key, Bundle dehydratedBundle, IEnumerable unprocessedAssetPaths) { if (!_locks.ContainsKey(key)) { @@ -113,7 +156,9 @@ private void AddToDisk(string key, Bundle dehydratedBundle) foreach (var asset in dehydratedBundle.Assets) { var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_").Replace("?", "_"); + Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); + var relativeFileName = "~" + key + + Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) { ((AssetBase)asset).PreparePostProcessingStream(); @@ -133,7 +178,22 @@ private void AddToDisk(string key, Bundle dehydratedBundle) } ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); } - } + if (asset.GetType() == typeof(ConcatenatedAsset) && !CassetteSettings.uncachedToCachedFiles.ContainsKey(dehydratedBundle.Path)) + { + CassetteSettings.uncachedToCachedFiles.Add(dehydratedBundle.Path, dehydratedBundle.Path); + } + else if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) + { + CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); + } + } + foreach (var assetPath in unprocessedAssetPaths) + { + if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(assetPath)) + { + CassetteSettings.uncachedToCachedFiles.Add(assetPath, dehydratedBundle.Path); + } + } } } } @@ -143,7 +203,7 @@ private void AddToDisk(string key, Bundle dehydratedBundle) /// /// The bundles key, which is also the file name /// The bundle that has been has been cached in a file. - private bool GetFromDisk(string key, T dehydratedBundle) + private bool GetFromDisk(string key, T dehydratedBundle) where T : Bundle { /* @@ -152,11 +212,11 @@ private bool GetFromDisk(string key, T dehydratedBundle) _locks.Add(key, new object()); }*/ var retValue = true; - var hydratedAssetList = new List(); + var hydratedAssetList = new List(); foreach (var asset in dehydratedBundle.Assets) { var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "_").Replace("+", "_").Replace("?", "_"); + Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); if (!File.Exists(systemAbsoluteFilename)) { retValue = false; @@ -168,7 +228,7 @@ private bool GetFromDisk(string key, T dehydratedBundle) retValue = false; continue; } - var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), + var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), systemAbsoluteFilename); var fileAsset = new FileAsset(file, dehydratedBundle); @@ -183,9 +243,18 @@ private bool GetFromDisk(string key, T dehydratedBundle) { fileAsset.AddRawFileReference(refHolder.path); } + else + { + fileAsset.AddReference(refHolder.path, refHolder.lineNumber); + } } } hydratedAssetList.Add(fileAsset); + if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) + { + CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); + } + //asset.postProcessingStream = ProtoBuf.Serializer.Deserialize(file); } if (hydratedAssetList.Count == dehydratedBundle.Assets.Count) From 4eff130d56b2cf37b69557322d45d5470a11c02e Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 15 Aug 2012 12:44:02 -0400 Subject: [PATCH 07/26] some cleanup --- .../BundleContainerFactoryBase.cs | 59 ++----- .../Configuration/DiskBackedBundleCache.cs | 144 ++++++++---------- src/Website/assets/styles/home.css | 2 +- 3 files changed, 71 insertions(+), 134 deletions(-) diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index 89f8d80b..2bf11377 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -19,31 +19,21 @@ protected BundleContainerFactoryBase(CassetteSettings settings) public abstract IBundleContainer CreateBundleContainer(); - protected T ProcessSingleBundle(T bundle, AssignHash hasher) - where T : Bundle + protected Bundle ProcessSingleBundle(Bundle bundle, AssignHash hasher) { Trace.Source.TraceInformation("Processing {0} {1}", bundle.GetType().Name, bundle.Path); - bool loadedFromCache = false; - if (settings.IsDebuggingEnabled || true) + hasher.Process(bundle, settings); + var bundleKey = CassetteSettings.bundles.GetCachebleString(bundle.Url); + if (CassetteSettings.bundles.ContainsKey(bundleKey, bundle)) { - hasher.Process(bundle, settings); - var bundleKey = CassetteSettings.bundles.GetCachebleString(bundle.Url); - if (CassetteSettings.bundles.ContainsKey(bundleKey, bundle)) - { - bundle = CassetteSettings.bundles.GetBundle(bundleKey, bundle); - loadedFromCache = true; - } - else - { - var unprocessedAssetPaths = CassetteSettings.bundles.getAssetPaths(bundle); - bundle.Process(settings); - CassetteSettings.bundles.AddBundle(bundleKey, bundle, unprocessedAssetPaths); - } + bundle = CassetteSettings.bundles.GetBundle(bundleKey, bundle); } else - { + { + var unprocessedAssetPaths = CassetteSettings.bundles.getAssetPaths(bundle); bundle.Process(settings); - } + CassetteSettings.bundles.AddBundle(bundleKey, bundle, unprocessedAssetPaths); + } return bundle; } @@ -62,36 +52,7 @@ protected void ProcessAllBundles(IList bundles) var hasher = new AssignHash(); for (var i = 0; i < bundles.Count; i++) { - var type = bundles[i].GetType(); - if (type == typeof(HtmlTemplateBundle)) - { - bundles[i] = ProcessSingleBundle((HtmlTemplateBundle)bundles[i], hasher); - } - else if (type == typeof(ScriptBundle)) - { - bundles[i] = ProcessSingleBundle((ScriptBundle)bundles[i], hasher); - } - else if (type == typeof(StylesheetBundle)) - { - bundles[i] = ProcessSingleBundle((StylesheetBundle)bundles[i], hasher); - } - else if (type == typeof(ExternalScriptBundle)) - { - bundles[i] = ProcessSingleBundle((ExternalScriptBundle)bundles[i], hasher); - } - else if (type == typeof(ExternalStylesheetBundle)) - { - bundles[i] = ProcessSingleBundle((ExternalStylesheetBundle)bundles[i], hasher); - } - else if (type == typeof(InlineScriptBundle)) - { - bundles[i] = ProcessSingleBundle((InlineScriptBundle)bundles[i], hasher); - } - else if (type == typeof(PageDataScriptBundle)) - { - bundles[i] = ProcessSingleBundle((PageDataScriptBundle)bundles[i], hasher); - } - + bundles[i] = ProcessSingleBundle(bundles[i], hasher); if (settings.IsDebuggingEnabled && typeof(StylesheetBundle).IsAssignableFrom(bundles[i].GetType())) { ((StylesheetBundle)bundles[i]).Renderer = new DebugStylesheetHtmlRenderer(settings.UrlGenerator); diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index bdd7aa8d..b66d37b9 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -17,7 +17,6 @@ public class DiskBackedBundleCache { const string CACHE_DIRECTORY = @"C:\DiskCachedBundles\"; Dictionary _bundles; - Dictionary _locks; /// /// Creates the directory if needed. @@ -29,9 +28,7 @@ public DiskBackedBundleCache() Directory.CreateDirectory(CACHE_DIRECTORY); } _bundles = new Dictionary(); - _locks = new Dictionary(); } - /// /// Adds it to the cache if not in there, will not overwrite already existing @@ -39,8 +36,7 @@ public DiskBackedBundleCache() /// A descendent of Bundle /// /// - public void AddBundle(string key, T value, IEnumerable unprocessedAssetPaths) - where T : Bundle + public void AddBundle(string key, Bundle value, IEnumerable unprocessedAssetPaths) { if (!_bundles.ContainsKey(key)) { @@ -59,42 +55,41 @@ public IEnumerable getAssetPaths(Bundle bundle) return assetPaths; } - public T GetBundle(string key, T dehydratedBundle) - where T : Bundle + public Bundle GetBundle(string key, Bundle bundle) { - if (!ContainsKey(key, dehydratedBundle)) + if (!ContainsKey(key, bundle)) { return null; } - return (T)_bundles[key]; + return _bundles[key]; } - public bool ContainsKey(string key, T dehydratedBundle) - where T : Bundle + /// + /// Check if the cache contains the key on disk or in memory. Load it + /// from disk + /// + /// The key to check + /// + /// + public bool ContainsKey(string key, Bundle bundle) { if (_bundles.ContainsKey(key)) { return true; } - var returnValue = GetFromDisk(key, dehydratedBundle); + var returnValue = GetFromDisk(key, bundle); if (returnValue) { - _bundles.Add(key, dehydratedBundle); + _bundles.Add(key, bundle); } return returnValue; } - - public bool Remove(string key) - { - if (!File.Exists(CACHE_DIRECTORY + key)) - { - return false; - } - _bundles.Remove(key); - File.Delete(CACHE_DIRECTORY + key); - return true; - } - + + /// + /// Scan all references in bundles and make sure that they match the assets + /// that are actually loaded. + /// + /// The bundles to scan. public void FixReferences(IList bundles) { foreach (var bundle in bundles) @@ -145,55 +140,46 @@ public string GetCachebleString(string bundleUrl) /// /// The key of the file /// The cached bundle. - private void AddToDisk(string key, Bundle dehydratedBundle, IEnumerable unprocessedAssetPaths) + private void AddToDisk(string key, Bundle bundle, IEnumerable unprocessedAssetPaths) { - if (!_locks.ContainsKey(key)) - { - _locks.Add(key, new object()); - } - //lock (_locks[key]) + foreach (var asset in bundle.Assets) { - foreach (var asset in dehydratedBundle.Assets) - { - var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); - var relativeFileName = "~" + key + - Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); - using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) - { - ((AssetBase)asset).PreparePostProcessingStream(); - var postProcessingByteArray = ((AssetBase)asset).postProcessingByteArray; - file.Write(postProcessingByteArray, 0, postProcessingByteArray.Length); - using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Create)) + var systemAbsoluteFilename = CACHE_DIRECTORY + key + + Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); + using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) + { + ((AssetBase)asset).PreparePostProcessingStream(); + var postProcessingByteArray = ((AssetBase)asset).postProcessingByteArray; + file.Write(postProcessingByteArray, 0, postProcessingByteArray.Length); + using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Create)) + { + var refHolderList = new List(); + foreach (var assetReference in asset.References) { - var refHolderList = new List(); - foreach (var assetReference in asset.References) + refHolderList.Add(new ReferenceHolder { - refHolderList.Add(new ReferenceHolder - { - path = assetReference.Path, - lineNumber = assetReference.SourceLineNumber, - assetReferenceType = assetReference.Type - }); - } - ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); - } - if (asset.GetType() == typeof(ConcatenatedAsset) && !CassetteSettings.uncachedToCachedFiles.ContainsKey(dehydratedBundle.Path)) - { - CassetteSettings.uncachedToCachedFiles.Add(dehydratedBundle.Path, dehydratedBundle.Path); + path = assetReference.Path, + lineNumber = assetReference.SourceLineNumber, + assetReferenceType = assetReference.Type + }); } - else if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) - { - CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); - } - } - foreach (var assetPath in unprocessedAssetPaths) + ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); + } + if (asset.GetType() == typeof(ConcatenatedAsset) && !CassetteSettings.uncachedToCachedFiles.ContainsKey(bundle.Path)) { - if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(assetPath)) - { - CassetteSettings.uncachedToCachedFiles.Add(assetPath, dehydratedBundle.Path); - } - } + CassetteSettings.uncachedToCachedFiles.Add(bundle.Path, bundle.Path); + } + else if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) + { + CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); + } + } + foreach (var assetPath in unprocessedAssetPaths) + { + if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(assetPath)) + { + CassetteSettings.uncachedToCachedFiles.Add(assetPath, bundle.Path); + } } } } @@ -203,17 +189,11 @@ private void AddToDisk(string key, Bundle dehydratedBundle, IEnumerable /// /// The bundles key, which is also the file name /// The bundle that has been has been cached in a file. - private bool GetFromDisk(string key, T dehydratedBundle) - where T : Bundle + private bool GetFromDisk(string key, Bundle bundle) { - /* - if (!_locks.ContainsKey(key)) - { - _locks.Add(key, new object()); - }*/ var retValue = true; var hydratedAssetList = new List(); - foreach (var asset in dehydratedBundle.Assets) + foreach (var asset in bundle.Assets) { var systemAbsoluteFilename = CACHE_DIRECTORY + key + Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); @@ -231,9 +211,7 @@ private bool GetFromDisk(string key, T dehydratedBundle) var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), systemAbsoluteFilename); - var fileAsset = new FileAsset(file, dehydratedBundle); - //hydratedAssetList.Add(new CachedConcatenatedAsset(file, fileAsset)); - //if (Settings) + var fileAsset = new FileAsset(file, bundle); using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) { var refHolderList = ProtoBuf.Serializer.Deserialize>(referencesForFile); @@ -254,15 +232,13 @@ private bool GetFromDisk(string key, T dehydratedBundle) { CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); } - - //asset.postProcessingStream = ProtoBuf.Serializer.Deserialize(file); } - if (hydratedAssetList.Count == dehydratedBundle.Assets.Count) + if (hydratedAssetList.Count == bundle.Assets.Count) { - dehydratedBundle.Assets.Clear(); + bundle.Assets.Clear(); foreach (var asset in hydratedAssetList) { - dehydratedBundle.Assets.Add(asset); + bundle.Assets.Add(asset); } } return retValue; diff --git a/src/Website/assets/styles/home.css b/src/Website/assets/styles/home.css index 47d47b59..dcca4cf9 100644 --- a/src/Website/assets/styles/home.css +++ b/src/Website/assets/styles/home.css @@ -18,7 +18,7 @@ } .intro { - margin-right: 280px; + margin-right: 280px; } .banner .share-links { From cb9cd8bb92756d8a0fbc35a96f2b965b8dc59864 Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 15 Aug 2012 12:59:34 -0400 Subject: [PATCH 08/26] more cleanup, undoing most of my previous protobufing --- src/Cassette/AssetReference.cs | 3 --- .../CachedConcatenatedAsset.cs | 26 ------------------- src/Cassette/Cassette.csproj | 1 - .../Configuration/DiskBackedBundleCache.cs | 7 ----- .../HtmlTemplates/HtmlTemplateBundle.cs | 1 - src/Cassette/IAsset.cs | 3 --- src/Cassette/IBundleHtmlRenderer.cs | 1 - src/Cassette/Manifests/CachedBundleContent.cs | 2 -- src/Cassette/Scripts/ExternalScriptBundle.cs | 4 --- src/Cassette/Scripts/InlineScriptBundle.cs | 2 -- src/Cassette/Scripts/PageDataScriptBundle.cs | 1 - src/Cassette/Scripts/ScriptBundle.cs | 2 -- .../Stylesheets/ExternalStylesheetBundle.cs | 3 --- .../MicrosoftStyleSheetMinifier.cs | 2 -- src/Cassette/Stylesheets/StylesheetBundle.cs | 3 --- .../Stylesheets/StylesheetPipeline.cs | 3 --- 16 files changed, 64 deletions(-) delete mode 100644 src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs diff --git a/src/Cassette/AssetReference.cs b/src/Cassette/AssetReference.cs index b577edbf..9da812fa 100644 --- a/src/Cassette/AssetReference.cs +++ b/src/Cassette/AssetReference.cs @@ -3,7 +3,6 @@ namespace Cassette { - [ProtoBuf.ProtoContract] public class AssetReference { public AssetReference(string path, IAsset sourceAsset, int sourceLineNumber, AssetReferenceType type) @@ -40,7 +39,6 @@ static void ValidatePath(string path, AssetReferenceType type) /// /// Path to an asset or bundle. /// - [ProtoBuf.ProtoMember(1)] public string Path { get; set; } /// @@ -56,7 +54,6 @@ static void ValidatePath(string path, AssetReferenceType type) /// /// The line number in the asset file that made this reference. /// - [ProtoBuf.ProtoMember(2)] public int SourceLineNumber { get; private set; } } } diff --git a/src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs b/src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs deleted file mode 100644 index 4f3749c8..00000000 --- a/src/Cassette/BundleProcessing/CachedConcatenatedAsset.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using Cassette.IO; -using Cassette.Utilities; - -namespace Cassette.BundleProcessing -{ - class CachedConcatenatedAsset : ConcatenatedAsset - { - readonly IFile file; - - public CachedConcatenatedAsset(IFile file, FileAsset fileAsset) - : base(new IAsset[] {fileAsset}) - { - this.file = file; - } - - public override IO.IFile SourceFile - { - get { return file; } - } - } -} diff --git a/src/Cassette/Cassette.csproj b/src/Cassette/Cassette.csproj index 460ccd17..1c31c736 100644 --- a/src/Cassette/Cassette.csproj +++ b/src/Cassette/Cassette.csproj @@ -78,7 +78,6 @@ SharedAssemblyInfo.cs - diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index b66d37b9..9bd5e184 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -64,13 +64,6 @@ public Bundle GetBundle(string key, Bundle bundle) return _bundles[key]; } - /// - /// Check if the cache contains the key on disk or in memory. Load it - /// from disk - /// - /// The key to check - /// - /// public bool ContainsKey(string key, Bundle bundle) { if (_bundles.ContainsKey(key)) diff --git a/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs b/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs index cb8cdb4a..62accfc9 100644 --- a/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs +++ b/src/Cassette/HtmlTemplates/HtmlTemplateBundle.cs @@ -5,7 +5,6 @@ namespace Cassette.HtmlTemplates { - [ProtoBuf.ProtoContract] public class HtmlTemplateBundle : Bundle { public HtmlTemplateBundle(string applicationRelativePath) diff --git a/src/Cassette/IAsset.cs b/src/Cassette/IAsset.cs index 6f122145..2c13a06b 100644 --- a/src/Cassette/IAsset.cs +++ b/src/Cassette/IAsset.cs @@ -4,19 +4,16 @@ namespace Cassette { - [ProtoBuf.ProtoContract] public interface IAsset { /// /// Gets the hash of the original asset contents, before any transformations are applied. /// - [ProtoBuf.ProtoMember(1)] byte[] Hash { get; } /// /// Gets the file containing the source of this asset. /// - [ProtoBuf.ProtoMember(2)] IFile SourceFile { get; } /// diff --git a/src/Cassette/IBundleHtmlRenderer.cs b/src/Cassette/IBundleHtmlRenderer.cs index a942551b..ef198f2a 100644 --- a/src/Cassette/IBundleHtmlRenderer.cs +++ b/src/Cassette/IBundleHtmlRenderer.cs @@ -4,7 +4,6 @@ /// Creates the HTML required to reference a bundle in a page. /// /// The type of . - [ProtoBuf.ProtoContract] public interface IBundleHtmlRenderer where T : Bundle { diff --git a/src/Cassette/Manifests/CachedBundleContent.cs b/src/Cassette/Manifests/CachedBundleContent.cs index a8c81d16..b06184d5 100644 --- a/src/Cassette/Manifests/CachedBundleContent.cs +++ b/src/Cassette/Manifests/CachedBundleContent.cs @@ -9,10 +9,8 @@ namespace Cassette.Manifests { - [ProtoBuf.ProtoContract] class CachedBundleContent : IAsset { - [ProtoBuf.ProtoMember(1)] readonly byte[] content; readonly IEnumerable originalAssets; diff --git a/src/Cassette/Scripts/ExternalScriptBundle.cs b/src/Cassette/Scripts/ExternalScriptBundle.cs index fb4e5b7f..cd27ea20 100644 --- a/src/Cassette/Scripts/ExternalScriptBundle.cs +++ b/src/Cassette/Scripts/ExternalScriptBundle.cs @@ -8,14 +8,10 @@ namespace Cassette.Scripts { - [ProtoBuf.ProtoContract] class ExternalScriptBundle : ScriptBundle, IExternalBundle, IBundleHtmlRenderer { - [ProtoBuf.ProtoMember(1)] readonly string url; - [ProtoBuf.ProtoMember(2)] readonly string fallbackCondition; - [ProtoBuf.ProtoMember(3)] bool isDebuggingEnabled; public ExternalScriptBundle(string url) diff --git a/src/Cassette/Scripts/InlineScriptBundle.cs b/src/Cassette/Scripts/InlineScriptBundle.cs index 477fe41d..b4a18c42 100644 --- a/src/Cassette/Scripts/InlineScriptBundle.cs +++ b/src/Cassette/Scripts/InlineScriptBundle.cs @@ -3,10 +3,8 @@ namespace Cassette.Scripts { - [ProtoBuf.ProtoContract] class InlineScriptBundle : ScriptBundle { - [ProtoBuf.ProtoMember(1)] readonly string scriptContent; public InlineScriptBundle(string scriptContent) diff --git a/src/Cassette/Scripts/PageDataScriptBundle.cs b/src/Cassette/Scripts/PageDataScriptBundle.cs index b7e28012..6cab270e 100644 --- a/src/Cassette/Scripts/PageDataScriptBundle.cs +++ b/src/Cassette/Scripts/PageDataScriptBundle.cs @@ -7,7 +7,6 @@ namespace Cassette.Scripts { - [ProtoBuf.ProtoContract] class PageDataScriptBundle : InlineScriptBundle { public PageDataScriptBundle(string globalVariable, object data) diff --git a/src/Cassette/Scripts/ScriptBundle.cs b/src/Cassette/Scripts/ScriptBundle.cs index b201dcba..0bbab77b 100644 --- a/src/Cassette/Scripts/ScriptBundle.cs +++ b/src/Cassette/Scripts/ScriptBundle.cs @@ -5,7 +5,6 @@ namespace Cassette.Scripts { - [ProtoBuf.ProtoContract] public class ScriptBundle : Bundle { public ScriptBundle(string applicationRelativePath) @@ -22,7 +21,6 @@ protected ScriptBundle() /// The Internet Explorer specific condition used control if the script should be loaded using an HTML conditional comment. /// For example, "lt IE 9". /// - [ProtoBuf.ProtoMember(1)] public string Condition { get; set; } public IBundleProcessor Processor { get; set; } diff --git a/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs b/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs index 12f3516d..b8a376ab 100644 --- a/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs +++ b/src/Cassette/Stylesheets/ExternalStylesheetBundle.cs @@ -7,12 +7,9 @@ namespace Cassette.Stylesheets { - [ProtoBuf.ProtoContract] class ExternalStylesheetBundle : StylesheetBundle, IExternalBundle, IBundleHtmlRenderer { - [ProtoBuf.ProtoMember(1)] readonly string url; - [ProtoBuf.ProtoMember(2)] bool isDebuggingEnabled; public ExternalStylesheetBundle(string url) diff --git a/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs b/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs index 9d00a434..47eaa328 100644 --- a/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs +++ b/src/Cassette/Stylesheets/MicrosoftStyleSheetMinifier.cs @@ -5,7 +5,6 @@ namespace Cassette.Stylesheets { - [ProtoBuf.ProtoContract] public class MicrosoftStylesheetMinifier : IAssetTransformer { public MicrosoftStylesheetMinifier() @@ -18,7 +17,6 @@ public MicrosoftStylesheetMinifier(CssSettings cssSettings) this.cssSettings = cssSettings; } - [ProtoBuf.ProtoMember(1)] readonly CssSettings cssSettings; public Func Transform(Func openSourceStream, IAsset asset) diff --git a/src/Cassette/Stylesheets/StylesheetBundle.cs b/src/Cassette/Stylesheets/StylesheetBundle.cs index 4b5aae17..cdd6d038 100644 --- a/src/Cassette/Stylesheets/StylesheetBundle.cs +++ b/src/Cassette/Stylesheets/StylesheetBundle.cs @@ -5,7 +5,6 @@ namespace Cassette.Stylesheets { - [ProtoBuf.ProtoContract(SkipConstructor = true)] public class StylesheetBundle : Bundle { public StylesheetBundle(string applicationRelativePath) @@ -17,14 +16,12 @@ public StylesheetBundle(string applicationRelativePath) /// /// The value of the media attribute for this stylesheet's link element. For example, print. /// - [ProtoBuf.ProtoMember(1)] public string Media { get; set; } /// /// The Internet Explorer specific condition used control if the stylesheet should be loaded using an HTML conditional comment. /// For example, "lt IE 9". /// - [ProtoBuf.ProtoMember(2)] public string Condition { get; set; } public IBundleProcessor Processor { get; set; } diff --git a/src/Cassette/Stylesheets/StylesheetPipeline.cs b/src/Cassette/Stylesheets/StylesheetPipeline.cs index 1e63866f..bce3c4e0 100644 --- a/src/Cassette/Stylesheets/StylesheetPipeline.cs +++ b/src/Cassette/Stylesheets/StylesheetPipeline.cs @@ -4,7 +4,6 @@ namespace Cassette.Stylesheets { - [ProtoBuf.ProtoContract] public class StylesheetPipeline : MutablePipeline { public StylesheetPipeline() @@ -12,11 +11,9 @@ public StylesheetPipeline() StylesheetMinifier = new MicrosoftStylesheetMinifier(); } - [ProtoBuf.ProtoMember(1)] public IAssetTransformer StylesheetMinifier { get; set; } // TODO: Delete this property - [ProtoBuf.ProtoMember(2)] public bool ConvertImageUrlsToDataUris { get; set; } protected override IEnumerable> CreatePipeline(StylesheetBundle bundle, CassetteSettings settings) From 2c7ca5bb04dbded913ad771c369667e376736146 Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 15 Aug 2012 16:03:44 -0400 Subject: [PATCH 09/26] fixed bug with templates, haven't solved ryan's bug yet --- .../Cassette.UnitTests.csproj | 1 + src/Cassette/Cassette.csproj | 2 + .../BundleContainerFactoryBase.cs | 18 +- .../Configuration/DiskBackedBundleCache.cs | 154 +++++++----------- src/Cassette/HtmlAttributeDictionary.cs | 2 - src/Cassette/Utilities/StreamExtensions.cs | 2 +- 6 files changed, 69 insertions(+), 110 deletions(-) diff --git a/src/Cassette.UnitTests/Cassette.UnitTests.csproj b/src/Cassette.UnitTests/Cassette.UnitTests.csproj index 88a3e913..b107555c 100644 --- a/src/Cassette.UnitTests/Cassette.UnitTests.csproj +++ b/src/Cassette.UnitTests/Cassette.UnitTests.csproj @@ -115,6 +115,7 @@ + diff --git a/src/Cassette/Cassette.csproj b/src/Cassette/Cassette.csproj index 1c31c736..26e53791 100644 --- a/src/Cassette/Cassette.csproj +++ b/src/Cassette/Cassette.csproj @@ -82,9 +82,11 @@ + + diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index 2bf11377..e214883c 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -19,20 +19,21 @@ protected BundleContainerFactoryBase(CassetteSettings settings) public abstract IBundleContainer CreateBundleContainer(); - protected Bundle ProcessSingleBundle(Bundle bundle, AssignHash hasher) + protected Bundle ProcessSingleBundle(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, + Bundle bundle, AssignHash hasher) { Trace.Source.TraceInformation("Processing {0} {1}", bundle.GetType().Name, bundle.Path); hasher.Process(bundle, settings); - var bundleKey = CassetteSettings.bundles.GetCachebleString(bundle.Url); - if (CassetteSettings.bundles.ContainsKey(bundleKey, bundle)) + var bundleKey = fileHelper.GetCachebleString(bundle.Url); + if (CassetteSettings.bundles.ContainsKey(fileHelper, uncachedToCachedFiles, bundleKey, bundle)) { - bundle = CassetteSettings.bundles.GetBundle(bundleKey, bundle); + bundle = CassetteSettings.bundles.GetBundle(fileHelper, uncachedToCachedFiles, bundleKey, bundle); } else { var unprocessedAssetPaths = CassetteSettings.bundles.getAssetPaths(bundle); bundle.Process(settings); - CassetteSettings.bundles.AddBundle(bundleKey, bundle, unprocessedAssetPaths); + CassetteSettings.bundles.AddBundle(fileHelper, uncachedToCachedFiles, bundleKey, bundle, unprocessedAssetPaths); } return bundle; } @@ -40,8 +41,8 @@ protected Bundle ProcessSingleBundle(Bundle bundle, AssignHash hasher) protected void ProcessAllBundles(IList bundles) { Trace.Source.TraceInformation("Processing bundles..."); - if (!settings.IsDebuggingEnabled) - { + if (!settings.IsDebuggingEnabled) + { foreach (var bundle in bundles) { bundle.Process(settings); @@ -50,9 +51,10 @@ protected void ProcessAllBundles(IList bundles) else { var hasher = new AssignHash(); + var diskBacker = new FileHelper(); for (var i = 0; i < bundles.Count; i++) { - bundles[i] = ProcessSingleBundle(bundles[i], hasher); + bundles[i] = ProcessSingleBundle(diskBacker, CassetteSettings.uncachedToCachedFiles, bundles[i], hasher); if (settings.IsDebuggingEnabled && typeof(StylesheetBundle).IsAssignableFrom(bundles[i].GetType())) { ((StylesheetBundle)bundles[i]).Renderer = new DebugStylesheetHtmlRenderer(settings.UrlGenerator); diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index 9bd5e184..35be2a81 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -17,7 +17,7 @@ public class DiskBackedBundleCache { const string CACHE_DIRECTORY = @"C:\DiskCachedBundles\"; Dictionary _bundles; - + /// /// Creates the directory if needed. /// @@ -29,19 +29,20 @@ public DiskBackedBundleCache() } _bundles = new Dictionary(); } - + /// /// Adds it to the cache if not in there, will not overwrite already existing /// /// A descendent of Bundle /// /// - public void AddBundle(string key, Bundle value, IEnumerable unprocessedAssetPaths) + public void AddBundle(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, + Bundle value, IEnumerable unprocessedAssetPaths) { if (!_bundles.ContainsKey(key)) { _bundles.Add(key, value); - AddToDisk(key, value, unprocessedAssetPaths); + AddToDisk(fileHelper, uncachedToCachedFiles, key, value, unprocessedAssetPaths); } } @@ -55,35 +56,37 @@ public IEnumerable getAssetPaths(Bundle bundle) return assetPaths; } - public Bundle GetBundle(string key, Bundle bundle) + public Bundle GetBundle(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, + Bundle bundle) { - if (!ContainsKey(key, bundle)) + if (!ContainsKey(fileHelper, uncachedToCachedFiles, key, bundle)) { return null; } return _bundles[key]; } - public bool ContainsKey(string key, Bundle bundle) + public bool ContainsKey(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, + Bundle bundle) { if (_bundles.ContainsKey(key)) { return true; } - var returnValue = GetFromDisk(key, bundle); + var returnValue = GetFromDisk(fileHelper, uncachedToCachedFiles, key, bundle); if (returnValue) { _bundles.Add(key, bundle); } return returnValue; } - + /// /// Scan all references in bundles and make sure that they match the assets /// that are actually loaded. /// /// The bundles to scan. - public void FixReferences(IList bundles) + public void FixReferences(IList bundles) { foreach (var bundle in bundles) { @@ -92,13 +95,14 @@ public void FixReferences(IList bundles) CassetteSettings.uncachedToCachedFiles.Add(bundle.Path, bundle.Path); } } - foreach(var bundle in bundles) + foreach (var bundle in bundles) { - foreach(var asset in bundle.Assets) + foreach (var asset in bundle.Assets) { - foreach(var reference in asset.References) + foreach (var reference in asset.References) { - if (reference.Type == AssetReferenceType.SameBundle || reference.Type == AssetReferenceType.DifferentBundle) + if (reference.Type == AssetReferenceType.SameBundle || + reference.Type == AssetReferenceType.DifferentBundle) { try { @@ -107,9 +111,10 @@ public void FixReferences(IList bundles) reference.Path = CassetteSettings.uncachedToCachedFiles[reference.Path]; } } - catch(KeyNotFoundException) + catch (KeyNotFoundException) { - throw new Exception(reference.Path + " " + reference.Type + " " + reference.SourceAsset.SourceFile.FullPath); + throw new Exception(reference.Path + " " + reference.Type + " " + + reference.SourceAsset.SourceFile.FullPath); } } } @@ -117,113 +122,72 @@ public void FixReferences(IList bundles) } } - /// - /// Turns the bundleUrl into a string that is still a unique hash but - /// is also able to be used a file name. - /// - /// the original bundleUrl - /// the new, cachebale string - public string GetCachebleString(string bundleUrl) - { - return bundleUrl.Remove(0, bundleUrl.LastIndexOf('/')); - } + /// /// Caches the given bundle on disk. Note: assumes this is done after processing /// /// The key of the file /// The cached bundle. - private void AddToDisk(string key, Bundle bundle, IEnumerable unprocessedAssetPaths) + void AddToDisk(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, Bundle bundle, + IEnumerable unprocessedAssetPaths) { foreach (var asset in bundle.Assets) { - var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); - using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) + var systemAbsoluteFilename = fileHelper.GetFileName(asset, bundle, CACHE_DIRECTORY); + fileHelper.CreateFileOnDiskFromAsset(bundle, asset, systemAbsoluteFilename); + if (asset.GetType() == typeof(ConcatenatedAsset) && !uncachedToCachedFiles.ContainsKey(bundle.Path)) { - ((AssetBase)asset).PreparePostProcessingStream(); - var postProcessingByteArray = ((AssetBase)asset).postProcessingByteArray; - file.Write(postProcessingByteArray, 0, postProcessingByteArray.Length); - using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Create)) - { - var refHolderList = new List(); - foreach (var assetReference in asset.References) - { - refHolderList.Add(new ReferenceHolder - { - path = assetReference.Path, - lineNumber = assetReference.SourceLineNumber, - assetReferenceType = assetReference.Type - }); - } - ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); - } - if (asset.GetType() == typeof(ConcatenatedAsset) && !CassetteSettings.uncachedToCachedFiles.ContainsKey(bundle.Path)) - { - CassetteSettings.uncachedToCachedFiles.Add(bundle.Path, bundle.Path); - } - else if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) - { - CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); - } + uncachedToCachedFiles.Add(bundle.Path, bundle.Path); } - foreach (var assetPath in unprocessedAssetPaths) + else if (asset.GetType() != typeof(ConcatenatedAsset) && !uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) { - if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(assetPath)) - { - CassetteSettings.uncachedToCachedFiles.Add(assetPath, bundle.Path); - } + uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); + } + } + foreach (var assetPath in unprocessedAssetPaths) + { + if (!uncachedToCachedFiles.ContainsKey(assetPath)) + { + uncachedToCachedFiles.Add(assetPath, bundle.Path); } } } + + /// /// Gets the given bundle from the disk. /// /// The bundles key, which is also the file name /// The bundle that has been has been cached in a file. - private bool GetFromDisk(string key, Bundle bundle) + bool GetFromDisk(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, Bundle bundle) { var retValue = true; - var hydratedAssetList = new List(); + var hydratedAssetList = new List(); foreach (var asset in bundle.Assets) { - var systemAbsoluteFilename = CACHE_DIRECTORY + key + - Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); - if (!File.Exists(systemAbsoluteFilename)) - { + var systemAbsoluteFilename = fileHelper.GetFileName(asset, bundle, CACHE_DIRECTORY); + if (!fileHelper.Exists(systemAbsoluteFilename)) + { retValue = false; - continue; + continue; } - if (File.GetLastAccessTime(systemAbsoluteFilename).Date != DateTime.Today) + if (fileHelper.GetLastAccessTime(systemAbsoluteFilename).Date != DateTime.Today) { - File.Delete(CACHE_DIRECTORY + key); + fileHelper.Delete(systemAbsoluteFilename); retValue = false; continue; - } - var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), - new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), - systemAbsoluteFilename); + } + var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), + new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), + systemAbsoluteFilename); var fileAsset = new FileAsset(file, bundle); - using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) - { - var refHolderList = ProtoBuf.Serializer.Deserialize>(referencesForFile); - foreach (var refHolder in refHolderList) - { - if (refHolder.assetReferenceType == AssetReferenceType.RawFilename) - { - fileAsset.AddRawFileReference(refHolder.path); - } - else - { - fileAsset.AddReference(refHolder.path, refHolder.lineNumber); - } - } - } + fileHelper.GetAssetFromDisk(fileAsset, systemAbsoluteFilename); hydratedAssetList.Add(fileAsset); - if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) + if (!uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) { - CassetteSettings.uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); + uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); } } if (hydratedAssetList.Count == bundle.Assets.Count) @@ -234,15 +198,7 @@ private bool GetFromDisk(string key, Bundle bundle) bundle.Assets.Add(asset); } } - return retValue; - } - - [ProtoBuf.ProtoContract] - private class ReferenceHolder - { - [ProtoBuf.ProtoMember(1)] public string path; - [ProtoBuf.ProtoMember(2)] public int lineNumber; - [ProtoBuf.ProtoMember(3)] public AssetReferenceType assetReferenceType; + return retValue; } } } diff --git a/src/Cassette/HtmlAttributeDictionary.cs b/src/Cassette/HtmlAttributeDictionary.cs index ed2d2671..560919ef 100644 --- a/src/Cassette/HtmlAttributeDictionary.cs +++ b/src/Cassette/HtmlAttributeDictionary.cs @@ -9,10 +9,8 @@ namespace Cassette /// /// Contains a collection of html attribute name/value pairs. /// - [ProtoBuf.ProtoContract] public class HtmlAttributeDictionary : IEnumerable> { - [ProtoBuf.ProtoMember(1)] readonly Dictionary attributeStorage = new Dictionary(StringComparer.OrdinalIgnoreCase); /// diff --git a/src/Cassette/Utilities/StreamExtensions.cs b/src/Cassette/Utilities/StreamExtensions.cs index ea6738c9..80825739 100644 --- a/src/Cassette/Utilities/StreamExtensions.cs +++ b/src/Cassette/Utilities/StreamExtensions.cs @@ -55,7 +55,7 @@ public static IsolatedStorageFileStream OpenFile(this IsolatedStorageFile storag return new IsolatedStorageFileStream(path, mode, access, storage); } - public static bool FileExists(this IsolatedStorageFile storage, string fileName) + public static bool Exists(this IsolatedStorageFile storage, string fileName) { return storage.GetFileNames(fileName).Length > 0; } From f49f2a620b70d65492858a6e834d107c0b13f182 Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 15 Aug 2012 16:04:35 -0400 Subject: [PATCH 10/26] fixed bug with templates, haven't solved ryan's bug yet with actual fixes now --- .../DiskBackedBundleCollection.cs | 22 ++++ src/Cassette/Configuration/FileHelper.cs | 102 ++++++++++++++++++ src/Cassette/Configuration/IFileHelper.cs | 15 +++ 3 files changed, 139 insertions(+) create mode 100644 src/Cassette.UnitTests/Configuration/DiskBackedBundleCollection.cs create mode 100644 src/Cassette/Configuration/FileHelper.cs create mode 100644 src/Cassette/Configuration/IFileHelper.cs diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCollection.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCollection.cs new file mode 100644 index 00000000..309f406b --- /dev/null +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCollection.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Moq; +using Should; +using Xunit; + + +namespace Cassette.Configuration +{ + public class DiskBackedBundleCache_Tests + { + Mock moqDiskBacker; + Mock moqBundle; + public DiskBackedBundleCache_Tests() + { + moqDiskBacker = new Mock(); + //diskBacker.Setup() + } + } +} diff --git a/src/Cassette/Configuration/FileHelper.cs b/src/Cassette/Configuration/FileHelper.cs new file mode 100644 index 00000000..3e58b4e0 --- /dev/null +++ b/src/Cassette/Configuration/FileHelper.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cassette.BundleProcessing; + +namespace Cassette.Configuration +{ + class FileHelper : IFileHelper + { + public void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string systemAbsoluteFilename) + { + using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) + { + ((AssetBase)asset).PreparePostProcessingStream(); + var postProcessingByteArray = ((AssetBase)asset).postProcessingByteArray; + file.Write(postProcessingByteArray, 0, postProcessingByteArray.Length); + using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Create)) + { + var refHolderList = new List(); + foreach (var assetReference in asset.References) + { + refHolderList.Add(new ReferenceHolder + { + path = assetReference.Path, + lineNumber = assetReference.SourceLineNumber, + assetReferenceType = assetReference.Type + }); + } + ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); + } + + } + } + + public void GetAssetFromDisk(FileAsset fileAsset, string systemAbsoluteFilename) + { + using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) + { + var refHolderList = ProtoBuf.Serializer.Deserialize>(referencesForFile); + foreach (var refHolder in refHolderList) + { + if (refHolder.assetReferenceType == AssetReferenceType.RawFilename) + { + fileAsset.AddRawFileReference(refHolder.path); + } + else + { + fileAsset.AddReference(refHolder.path, refHolder.lineNumber); + } + } + } + } + + public bool Exists(string fileName) + { + return File.Exists(fileName); + } + + public DateTime GetLastAccessTime(string filename) + { + return File.GetLastAccessTime(filename); + } + + public void Delete(string fileName) + { + File.Delete(fileName); + } + + /// + /// Turns the bundleUrl into a string that is still a unique hash but + /// is also able to be used a file name. + /// + /// the original bundleUrl + /// the new, cachebale string + public string GetCachebleString(string bundleUrl) + { + return bundleUrl.Remove(0, bundleUrl.LastIndexOf('/') + 1); + } + + public string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory) + { + var assetPath = (asset.GetType() != typeof(ConcatenatedAsset)) + ? GetCachebleString(asset.SourceFile.FullPath) + : GetCachebleString(bundle.Path); + return cacheDirectory + assetPath + + Convert.ToBase64String(asset.Hash).Replace("/", "1").Replace("+", "1").Replace("?", "1"); + } + + [ProtoBuf.ProtoContract] + private class ReferenceHolder + { + [ProtoBuf.ProtoMember(1)] + public string path; + [ProtoBuf.ProtoMember(2)] + public int lineNumber; + [ProtoBuf.ProtoMember(3)] + public AssetReferenceType assetReferenceType; + } + } +} diff --git a/src/Cassette/Configuration/IFileHelper.cs b/src/Cassette/Configuration/IFileHelper.cs new file mode 100644 index 00000000..5695a84b --- /dev/null +++ b/src/Cassette/Configuration/IFileHelper.cs @@ -0,0 +1,15 @@ +using System; + +namespace Cassette.Configuration +{ + public interface IFileHelper + { + void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string systemAbsoluteFilename); + void GetAssetFromDisk(FileAsset fileAsset, string systemAbsoluteFilename); + bool Exists(string fileName); + DateTime GetLastAccessTime(string filename); + void Delete(string fileName); + string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory); + string GetCachebleString(string bundleUrl); + } +} \ No newline at end of file From 144648cf7049599e17a6f7e4e21688cd525cbf2a Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 15 Aug 2012 16:49:06 -0400 Subject: [PATCH 11/26] fixed ryan's problem of cache collision --- .../Configuration/BundleContainerFactoryBase.cs | 4 ++-- src/Cassette/Configuration/FileHelper.cs | 10 +++++++--- src/Cassette/Configuration/IFileHelper.cs | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index e214883c..b27dfdac 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -23,8 +23,8 @@ protected Bundle ProcessSingleBundle(IFileHelper fileHelper, Dictionary Date: Wed, 15 Aug 2012 19:27:50 -0400 Subject: [PATCH 12/26] fixed problem of htmltemplatebundle not having a renderer --- ...BackedBundleCollection.cs => DiskBackedBundleCache.cs} | 0 src/Cassette/Configuration/BundleContainerFactoryBase.cs | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) rename src/Cassette.UnitTests/Configuration/{DiskBackedBundleCollection.cs => DiskBackedBundleCache.cs} (100%) diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCollection.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs similarity index 100% rename from src/Cassette.UnitTests/Configuration/DiskBackedBundleCollection.cs rename to src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index b27dfdac..6db07318 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -55,14 +55,18 @@ protected void ProcessAllBundles(IList bundles) for (var i = 0; i < bundles.Count; i++) { bundles[i] = ProcessSingleBundle(diskBacker, CassetteSettings.uncachedToCachedFiles, bundles[i], hasher); - if (settings.IsDebuggingEnabled && typeof(StylesheetBundle).IsAssignableFrom(bundles[i].GetType())) + if (typeof(StylesheetBundle).IsAssignableFrom(bundles[i].GetType())) { ((StylesheetBundle)bundles[i]).Renderer = new DebugStylesheetHtmlRenderer(settings.UrlGenerator); } - else if (settings.IsDebuggingEnabled && typeof(ScriptBundle).IsAssignableFrom(bundles[i].GetType())) + else if (typeof(ScriptBundle).IsAssignableFrom(bundles[i].GetType())) { ((ScriptBundle)bundles[i]).Renderer = new DebugScriptBundleHtmlRenderer(settings.UrlGenerator); } + else if (typeof(HtmlTemplateBundle).IsAssignableFrom(bundles[i].GetType()) && ((HtmlTemplateBundle)bundles[i]).Renderer == null) + { + ((HtmlTemplateBundle)bundles[i]).Renderer = new RemoteHtmlTemplateBundleRenderer(settings.UrlGenerator); + } } CassetteSettings.bundles.FixReferences(bundles); } From 66a5718a05dce96031f967190be8e1a9aafd4301 Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 16 Aug 2012 16:02:58 -0400 Subject: [PATCH 13/26] added unit tests and made stuff organized into interfaces --- .gitignore | 3 +- .../Cassette.UnitTests.csproj | 2 +- .../Configuration/DiskBackedBundleCache.cs | 22 --------- .../BundleContainerFactoryBase.cs | 2 +- .../Configuration/DiskBackedBundleCache.cs | 48 ++++++++++++------- src/Cassette/Configuration/FileHelper.cs | 2 +- src/Cassette/Configuration/IFileHelper.cs | 2 +- 7 files changed, 36 insertions(+), 45 deletions(-) delete mode 100644 src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs diff --git a/.gitignore b/.gitignore index 1e48e885..a733bafa 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ build/ _ReSharper* App_Bundles/ *.ncrunch* -src/**/*.nuspec \ No newline at end of file +src/**/*.nuspec +src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs \ No newline at end of file diff --git a/src/Cassette.UnitTests/Cassette.UnitTests.csproj b/src/Cassette.UnitTests/Cassette.UnitTests.csproj index b107555c..e34b35c4 100644 --- a/src/Cassette.UnitTests/Cassette.UnitTests.csproj +++ b/src/Cassette.UnitTests/Cassette.UnitTests.csproj @@ -115,7 +115,7 @@ - + diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs deleted file mode 100644 index 309f406b..00000000 --- a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Moq; -using Should; -using Xunit; - - -namespace Cassette.Configuration -{ - public class DiskBackedBundleCache_Tests - { - Mock moqDiskBacker; - Mock moqBundle; - public DiskBackedBundleCache_Tests() - { - moqDiskBacker = new Mock(); - //diskBacker.Setup() - } - } -} diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index 6db07318..a153074b 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -31,7 +31,7 @@ protected Bundle ProcessSingleBundle(IFileHelper fileHelper, Dictionary _bundles; + IDictionary _bundles; /// /// Creates the directory if needed. @@ -36,27 +36,35 @@ public DiskBackedBundleCache() /// A descendent of Bundle /// /// - public void AddBundle(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, + public void AddBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, Bundle value, IEnumerable unprocessedAssetPaths) { if (!_bundles.ContainsKey(key)) { _bundles.Add(key, value); - AddToDisk(fileHelper, uncachedToCachedFiles, key, value, unprocessedAssetPaths); + AddToDisk(fileHelper, uncachedToCachedFiles, value, unprocessedAssetPaths); } } - public IEnumerable getAssetPaths(Bundle bundle) + public IEnumerable GetAssetPaths(Bundle bundle) { var assetPaths = new List(); foreach (var asset in bundle.Assets) { + if (asset is ConcatenatedAsset) + { + continue; + } assetPaths.Add(asset.SourceFile.FullPath); } return assetPaths; } - public Bundle GetBundle(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, + /// + /// Assumes runs before processing, so no concatenated bundles. May throw if it receives + /// a concatenated bundle. + /// + public Bundle GetBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, Bundle bundle) { if (!ContainsKey(fileHelper, uncachedToCachedFiles, key, bundle)) @@ -66,14 +74,18 @@ public Bundle GetBundle(IFileHelper fileHelper, Dictionary uncac return _bundles[key]; } - public bool ContainsKey(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, + /// + /// Assumes runs before processing, so no concatenated bundles. May throw if it receives + /// a concatenated bundle. + /// + public bool ContainsKey(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, Bundle bundle) { if (_bundles.ContainsKey(key)) { return true; } - var returnValue = GetFromDisk(fileHelper, uncachedToCachedFiles, key, bundle); + var returnValue = GetFromDisk(fileHelper, uncachedToCachedFiles, bundle); if (returnValue) { _bundles.Add(key, bundle); @@ -129,7 +141,7 @@ public void FixReferences(IList bundles) /// /// The key of the file /// The cached bundle. - void AddToDisk(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, Bundle bundle, + void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle, IEnumerable unprocessedAssetPaths) { foreach (var asset in bundle.Assets) @@ -157,46 +169,46 @@ void AddToDisk(IFileHelper fileHelper, Dictionary uncachedToCach /// - /// Gets the given bundle from the disk. + /// Gets the given bundle from the disk. Should not take any concatenated assets as should run + /// before the processing the generates those assets. /// /// The bundles key, which is also the file name /// The bundle that has been has been cached in a file. - bool GetFromDisk(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, string key, Bundle bundle) + bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) { - var retValue = true; - var hydratedAssetList = new List(); + var retValue = false; + var assetList = new List(); foreach (var asset in bundle.Assets) { var systemAbsoluteFilename = fileHelper.GetFileName(asset, bundle, CACHE_DIRECTORY); if (!fileHelper.Exists(systemAbsoluteFilename)) { - retValue = false; continue; } if (fileHelper.GetLastAccessTime(systemAbsoluteFilename).Date != DateTime.Today) { fileHelper.Delete(systemAbsoluteFilename); - retValue = false; continue; } var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), systemAbsoluteFilename); var fileAsset = new FileAsset(file, bundle); - fileHelper.GetAssetFromDisk(fileAsset, systemAbsoluteFilename); - hydratedAssetList.Add(fileAsset); + fileHelper.GetAssetReferencesFromDisk(fileAsset, systemAbsoluteFilename); + assetList.Add(fileAsset); if (!uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) { uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); } } - if (hydratedAssetList.Count == bundle.Assets.Count) + if (assetList.Count == bundle.Assets.Count) { bundle.Assets.Clear(); - foreach (var asset in hydratedAssetList) + foreach (var asset in assetList) { bundle.Assets.Add(asset); } + retValue = true; } return retValue; } diff --git a/src/Cassette/Configuration/FileHelper.cs b/src/Cassette/Configuration/FileHelper.cs index 9c3ebadf..2ef6768f 100644 --- a/src/Cassette/Configuration/FileHelper.cs +++ b/src/Cassette/Configuration/FileHelper.cs @@ -34,7 +34,7 @@ public void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string system } } - public void GetAssetFromDisk(FileAsset fileAsset, string systemAbsoluteFilename) + public void GetAssetReferencesFromDisk(FileAsset fileAsset, string systemAbsoluteFilename) { using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) { diff --git a/src/Cassette/Configuration/IFileHelper.cs b/src/Cassette/Configuration/IFileHelper.cs index 7e67b5b9..c6e62b24 100644 --- a/src/Cassette/Configuration/IFileHelper.cs +++ b/src/Cassette/Configuration/IFileHelper.cs @@ -5,7 +5,7 @@ namespace Cassette.Configuration public interface IFileHelper { void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string systemAbsoluteFilename); - void GetAssetFromDisk(FileAsset fileAsset, string systemAbsoluteFilename); + void GetAssetReferencesFromDisk(FileAsset fileAsset, string systemAbsoluteFilename); bool Exists(string fileName); DateTime GetLastAccessTime(string filename); void Delete(string fileName); From eb2f1d60f81be25bb2a174345e1b8e1c7d299584 Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 16 Aug 2012 16:21:39 -0400 Subject: [PATCH 14/26] unignored the diskbackbundlecache tests --- .gitignore | 3 +- .../Configuration/DiskBackedBundleCache.cs | 283 ++++++++++++++++++ 2 files changed, 284 insertions(+), 2 deletions(-) create mode 100644 src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs diff --git a/.gitignore b/.gitignore index a733bafa..1e48e885 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,4 @@ build/ _ReSharper* App_Bundles/ *.ncrunch* -src/**/*.nuspec -src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs \ No newline at end of file +src/**/*.nuspec \ No newline at end of file diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs new file mode 100644 index 00000000..ce7dcf83 --- /dev/null +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs @@ -0,0 +1,283 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using Cassette.BundleProcessing; +using Cassette.IO; +using Moq; +using Should; +using Xunit; + + +namespace Cassette.Configuration +{ + public class DiskBackedBundleCache_Tests + { + + #region Setup and Helper Methods + + Mock fileHelper; + Mock> uncachedToCachedFiles; + IAsset fileAsset, concatenatedAsset; + TestableBundle fileBundle, concatenatedBundle, emptyBundle; + DiskBackedBundleCache diskBackedBundleCache; + List unprocessedAssetPaths; + MethodInfo AddToDiskMethodInfo, GetFromDiskMethodInfo; + + public DiskBackedBundleCache_Tests() + { + fileHelper = new Mock(); + uncachedToCachedFiles = new Mock>(MockBehavior.Strict); + diskBackedBundleCache = new DiskBackedBundleCache(); + unprocessedAssetPaths = new List(); + fileBundle = new TestableBundle("~/file"); + concatenatedBundle = new TestableBundle("~/concatenated"); + emptyBundle = new TestableBundle("~/empty"); + var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); + fileAsset = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", Type.Missing }), fileBundle); + fileBundle.Assets.Add(fileAsset); + concatenatedAsset = new ConcatenatedAsset(new List {fileAsset} ); + concatenatedBundle.Assets.Add(concatenatedAsset); + AddToDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("AddToDisk", BindingFlags.NonPublic | BindingFlags.Instance); + GetFromDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("GetFromDisk", BindingFlags.NonPublic | BindingFlags.Instance); + } + + void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle, + IEnumerable unprocessedAssetPaths) + { + AddToDiskMethodInfo.Invoke(diskBackedBundleCache, new object[] + { fileHelper, uncachedToCachedFiles, bundle, unprocessedAssetPaths }); + } + + bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) + { + return (bool) GetFromDiskMethodInfo.Invoke(diskBackedBundleCache, + new object[] { fileHelper, uncachedToCachedFiles, bundle }); + } + + #endregion + + #region AddBundle + + [Fact] + public void DiskBackedBundleCache_AddBundle_EmptyBundleCachedAndNotCached() + { + fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), + It.IsAny(), It.IsAny())) + .Throws(new Exception("Try to load asset that's not on bundle off disk")); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(true) + .Verifiable(); + unprocessedAssetPaths.Add("wasd"); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); + uncachedToCachedFiles.Verify(d => d.ContainsKey(unprocessedAssetPaths.First()), Times.Once()); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); + uncachedToCachedFiles.Verify(d => d.ContainsKey(unprocessedAssetPaths.First()), Times.Once()); + } + + [Fact] + public void DiskBackedBundleCache_AddBundle_ConcatenatedAsset() + { + fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), + It.IsAny(), It.IsAny())) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.ContainsKey(concatenatedBundle.Path)) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(concatenatedBundle.Path, concatenatedBundle.Path)) + .Verifiable(); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle, unprocessedAssetPaths); + fileHelper.Verify(); + } + + [Fact] + public void DiskBackedBundleCache_AddBundle_FileAsset() + { + fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), + It.IsAny(), It.IsAny())) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.ContainsKey(fileAsset.SourceFile.FullPath)) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(fileAsset.SourceFile.FullPath, fileAsset.SourceFile.FullPath)) + .Verifiable(); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle, unprocessedAssetPaths); + fileHelper.Verify(); + } + + #endregion + + #region GetAssetPaths + + [Fact] + public void DiskBackedBundleCache_GetAssetPaths_EmptyConcatenatedFile() + { + diskBackedBundleCache.GetAssetPaths(emptyBundle).ShouldBeEmpty(); + diskBackedBundleCache.GetAssetPaths(fileBundle).ShouldContain(fileAsset.SourceFile.FullPath); + diskBackedBundleCache.GetAssetPaths(concatenatedBundle).ShouldBeEmpty(); + } + + #endregion + + #region GetBundle + + [Fact] + public void DiskBackedBundleCache_GetBundle_NotPresent() + { + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(false) + .Verifiable(); + diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle).ShouldBeNull(); + fileHelper.Verify(); + } + + [Fact] + public void DiskBackedBundleCache_GetBundle_PresentIfNoAssets() + { + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false) + .Verifiable(); + diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle).ShouldNotBeNull(); + fileHelper.Verify(); + } + + [Fact] + public void DiskBackedBundleCache_GetBundle_PresentWithFileBundle() + { + /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) + .Verifiable();*/ + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true) + .Verifiable(); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today) + .Verifiable(); + fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(fileAsset.SourceFile.FullPath); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())) + .Verifiable(); + //File asset should have same file, but it should not point be the same one, as fileBundle.Assets should have been cleared + Path.GetFileName(diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle) + .Assets.First().SourceFile.FullPath).Trim().ShouldContain(Path.GetFileName(fileAsset.SourceFile.FullPath).Trim()); + fileBundle.Assets.First().ShouldNotBeSameAs(fileAsset); + + fileHelper.Verify(); + uncachedToCachedFiles.Verify(); + } + + [Fact] + public void DiskBackedBundleCache_GetBundle_FailWithConcatenatedBundle() + { + /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) + .Verifiable();*/ + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns("test string"); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + Assert.Throws(() => diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); + } + + #endregion + + #region ContainsKey + /// Will not check if a bundle is present or not present as that is covered with GetBundle testing. + + [Fact] + public void DiskBackedBundleCache_ContainsKey_PresentInMemory() + { + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(fileAsset.SourceFile.FullPath); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + + diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); + + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Throws(new Exception("Did not find bundle that should have been in memory.")); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Throws(new Exception("Did not find bundle that should have been in memory.")); + fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Throws(new Exception("Did not find bundle that should have been in memory.")); + + diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); + } + + [Fact] + public void DiskBackedBundleCache_ContainsKey_FailWithConcatenatedBundle() + { + /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) + .Verifiable();*/ + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns("test string"); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + Assert.Throws(() => diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); + } + #endregion + + #region FixReferences + + [Fact] + public void DiskBackedBundleCache_FixReferences_FileAndEmptyBundles() + { + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(true); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle, unprocessedAssetPaths); + unprocessedAssetPaths.Add("wasd"); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(true); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); + diskBackedBundleCache.FixReferences(new List { fileBundle }); + diskBackedBundleCache.FixReferences(new List { emptyBundle }); + } + + #endregion + + #region AddToDisk + ///just checking unprocessedAssetPath as other code paths checked by AddBundle tests + + [Fact] + public void DiskBackedBundleCache_AddToDisk_UnprocessedAssetPaths() + { + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)))) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)), + It.Is(s => s.Equals(emptyBundle.Path)))) + .Verifiable(); + unprocessedAssetPaths.Add(fileAsset.SourceFile.FullPath); + AddToDisk(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle, unprocessedAssetPaths); + uncachedToCachedFiles.Verify(); + uncachedToCachedFiles.Verify(d => d.Add(It.IsAny(), It.IsAny()), Times.Once()); + } + + #endregion + + #region GetFromDisk + + ///None necessary. All code paths are checked by the GetBundle and ContainsKey test + + #endregion + } +} From 995b5734eb631c87d993a1f4499769826d011c2b Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 16 Aug 2012 18:52:16 -0400 Subject: [PATCH 15/26] moved to json from protobuf --- .../Configuration/BundleContainerFactory.cs | 11 + .../BundleContainerFactoryTestSuite.cs | 2 + .../Configuration/DiskBackedBundleCache.cs | 36 +- src/Cassette/AssetReferenceType.cs | 5 - src/Cassette/Configuration/FileHelper.cs | 15 +- .../lib/net40/Newtonsoft.Json.dll | Bin 354304 -> 374272 bytes .../lib/net40/Newtonsoft.Json.pdb | Bin 960000 -> 1025536 bytes .../lib/net40/Newtonsoft.Json.xml | 959 +++++++++++++----- 8 files changed, 763 insertions(+), 265 deletions(-) diff --git a/src/Cassette.UnitTests/Configuration/BundleContainerFactory.cs b/src/Cassette.UnitTests/Configuration/BundleContainerFactory.cs index 691582e5..b0108c73 100644 --- a/src/Cassette.UnitTests/Configuration/BundleContainerFactory.cs +++ b/src/Cassette.UnitTests/Configuration/BundleContainerFactory.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Xunit; namespace Cassette.Configuration { @@ -8,5 +9,15 @@ internal override IBundleContainerFactory CreateFactory(IEnumerable bund { return new BundleContainerFactory(new BundleCollection(Settings, bundles), Settings); } + + [Fact] + public void GivenHtmlTemplateBundleWithNoAssets_DontCrashOnRender() + { + var bundle = new HtmlTemplates.HtmlTemplateBundle("testPath"); + Settings.IsDebuggingEnabled = true; + var containerFactory = CreateFactory(new[] { bundle }); + var container = containerFactory.CreateBundleContainer(); + bundle.Render(); + } } } \ No newline at end of file diff --git a/src/Cassette.UnitTests/Configuration/BundleContainerFactoryTestSuite.cs b/src/Cassette.UnitTests/Configuration/BundleContainerFactoryTestSuite.cs index f3c4da70..214c9576 100644 --- a/src/Cassette.UnitTests/Configuration/BundleContainerFactoryTestSuite.cs +++ b/src/Cassette.UnitTests/Configuration/BundleContainerFactoryTestSuite.cs @@ -179,5 +179,7 @@ public void GivenAssetWithAdHocUrlReference_WhenCreate_ThenExternalBundleIsCreat externalBundle.WasProcessed.ShouldBeTrue(); } + + } } \ No newline at end of file diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs index ce7dcf83..0726dbc4 100644 --- a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs @@ -63,7 +63,7 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC #region AddBundle [Fact] - public void DiskBackedBundleCache_AddBundle_EmptyBundleCachedAndNotCached() + public void AddBundle_EmptyBundleCachedAndNotCached() { fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), It.IsAny(), It.IsAny())) @@ -79,7 +79,7 @@ public void DiskBackedBundleCache_AddBundle_EmptyBundleCachedAndNotCached() } [Fact] - public void DiskBackedBundleCache_AddBundle_ConcatenatedAsset() + public void AddBundle_ConcatenatedAsset() { fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), It.IsAny(), It.IsAny())) @@ -94,7 +94,7 @@ public void DiskBackedBundleCache_AddBundle_ConcatenatedAsset() } [Fact] - public void DiskBackedBundleCache_AddBundle_FileAsset() + public void AddBundle_FileAsset() { fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), It.IsAny(), It.IsAny())) @@ -113,7 +113,7 @@ public void DiskBackedBundleCache_AddBundle_FileAsset() #region GetAssetPaths [Fact] - public void DiskBackedBundleCache_GetAssetPaths_EmptyConcatenatedFile() + public void GetAssetPaths_EmptyConcatenatedFile() { diskBackedBundleCache.GetAssetPaths(emptyBundle).ShouldBeEmpty(); diskBackedBundleCache.GetAssetPaths(fileBundle).ShouldContain(fileAsset.SourceFile.FullPath); @@ -125,7 +125,7 @@ public void DiskBackedBundleCache_GetAssetPaths_EmptyConcatenatedFile() #region GetBundle [Fact] - public void DiskBackedBundleCache_GetBundle_NotPresent() + public void GetBundle_NotPresent() { fileHelper.Setup(fh => fh.Exists(It.IsAny())) .Returns(false) @@ -135,7 +135,7 @@ public void DiskBackedBundleCache_GetBundle_NotPresent() } [Fact] - public void DiskBackedBundleCache_GetBundle_PresentIfNoAssets() + public void GetBundle_PresentIfNoAssets() { uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) .Returns(false) @@ -145,7 +145,7 @@ public void DiskBackedBundleCache_GetBundle_PresentIfNoAssets() } [Fact] - public void DiskBackedBundleCache_GetBundle_PresentWithFileBundle() + public void GetBundle_PresentWithFileBundle() { /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) .Verifiable();*/ @@ -172,7 +172,7 @@ public void DiskBackedBundleCache_GetBundle_PresentWithFileBundle() } [Fact] - public void DiskBackedBundleCache_GetBundle_FailWithConcatenatedBundle() + public void GetBundle_FailWithConcatenatedBundle() { /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) .Verifiable();*/ @@ -194,7 +194,7 @@ public void DiskBackedBundleCache_GetBundle_FailWithConcatenatedBundle() /// Will not check if a bundle is present or not present as that is covered with GetBundle testing. [Fact] - public void DiskBackedBundleCache_ContainsKey_PresentInMemory() + public void ContainsKey_PresentInMemory() { fileHelper.Setup(fh => fh.Exists(It.IsAny())) .Returns(true); @@ -219,7 +219,7 @@ public void DiskBackedBundleCache_ContainsKey_PresentInMemory() } [Fact] - public void DiskBackedBundleCache_ContainsKey_FailWithConcatenatedBundle() + public void ContainsKey_FailWithConcatenatedBundle() { /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) .Verifiable();*/ @@ -239,7 +239,7 @@ public void DiskBackedBundleCache_ContainsKey_FailWithConcatenatedBundle() #region FixReferences [Fact] - public void DiskBackedBundleCache_FixReferences_FileAndEmptyBundles() + public void FixReferences_FileAndEmptyBundles() { uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) .Returns(true); @@ -258,7 +258,7 @@ public void DiskBackedBundleCache_FixReferences_FileAndEmptyBundles() ///just checking unprocessedAssetPath as other code paths checked by AddBundle tests [Fact] - public void DiskBackedBundleCache_AddToDisk_UnprocessedAssetPaths() + public void AddToDisk_UnprocessedAssetPaths() { uncachedToCachedFiles.Setup(d => d.ContainsKey(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)))) .Returns(false) @@ -271,13 +271,19 @@ public void DiskBackedBundleCache_AddToDisk_UnprocessedAssetPaths() uncachedToCachedFiles.Verify(); uncachedToCachedFiles.Verify(d => d.Add(It.IsAny(), It.IsAny()), Times.Once()); } - + #endregion #region GetFromDisk - - ///None necessary. All code paths are checked by the GetBundle and ContainsKey test + ///Many code paths are checked by the GetBundle and ContainsKey test + + [Fact] + public void GetFromDisk_CheckProperRehydration() + { + + } #endregion + } } diff --git a/src/Cassette/AssetReferenceType.cs b/src/Cassette/AssetReferenceType.cs index 1399f27e..528a1e77 100644 --- a/src/Cassette/AssetReferenceType.cs +++ b/src/Cassette/AssetReferenceType.cs @@ -1,27 +1,22 @@ namespace Cassette { - [ProtoBuf.ProtoContract] public enum AssetReferenceType { /// /// A reference to an asset in the same bundle as the referencing asset. /// - [ProtoBuf.ProtoEnum] SameBundle, /// /// A reference to an asset in another bundle, or to an entire other bundle itself. /// - [ProtoBuf.ProtoEnum] DifferentBundle, /// /// For example, a reference to an image from a CSS file. /// - [ProtoBuf.ProtoEnum] RawFilename, /// /// A direct reference to a URL. /// - [ProtoBuf.ProtoEnum] Url } } diff --git a/src/Cassette/Configuration/FileHelper.cs b/src/Cassette/Configuration/FileHelper.cs index 2ef6768f..25e7683c 100644 --- a/src/Cassette/Configuration/FileHelper.cs +++ b/src/Cassette/Configuration/FileHelper.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using Cassette.BundleProcessing; +using Newtonsoft.Json; namespace Cassette.Configuration { @@ -25,12 +26,12 @@ public void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string system { path = assetReference.Path, lineNumber = assetReference.SourceLineNumber, - assetReferenceType = assetReference.Type + assetReferenceType = assetReference.Type }); } - ProtoBuf.Serializer.Serialize(referencesForFile, refHolderList); + var output = Encoding.Default.GetBytes(JsonConvert.SerializeObject(refHolderList)); + referencesForFile.Write(output, 0, output.Length); } - } } @@ -38,7 +39,9 @@ public void GetAssetReferencesFromDisk(FileAsset fileAsset, string systemAbsolut { using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) { - var refHolderList = ProtoBuf.Serializer.Deserialize>(referencesForFile); + var input = new byte[referencesForFile.Length]; + referencesForFile.Read(input, 0, input.Length); + var refHolderList = JsonConvert.DeserializeObject>(Encoding.Default.GetString(input)); foreach (var refHolder in refHolderList) { if (refHolder.assetReferenceType == AssetReferenceType.RawFilename) @@ -92,14 +95,10 @@ public string GetCachebleHash(string hash) return hash.Replace("/", "1").Replace("+", "1").Replace("?", "1"); } - [ProtoBuf.ProtoContract] private class ReferenceHolder { - [ProtoBuf.ProtoMember(1)] public string path; - [ProtoBuf.ProtoMember(2)] public int lineNumber; - [ProtoBuf.ProtoMember(3)] public AssetReferenceType assetReferenceType; } } diff --git a/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.dll b/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.dll index 09560c1b313cc55579b1aae08d324d1a7e8a1207..9d40769a83e45666d0a5c94cc17db3105cf79cb1 100644 GIT binary patch literal 374272 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

v-V)M2J@h6`#9-_`pc6Xn8>S;>bL=ISJu~b&Sqw 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 diff --git a/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.pdb b/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.pdb index f6a202c216782cabfaf229405b5dc3fd44f0cbd3..7ba6e6da837dfd35048fd6addd488ccb06575763 100644 GIT binary patch literal 1025536 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 z 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 z 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

Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A or a null reference if the next JSON token is null. + A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. @@ -109,19 +121,34 @@ Gets the quotation mark character used to enclose the value of a string. + + + Get or set how time zones are handling when reading JSON. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + - Gets the type of the current Json token. + Gets the type of the current JSON token. - Gets the text value of the current Json token. + Gets the text value of the current JSON token. - Gets The Common Language Runtime (CLR) type for the current Json token. + Gets The Common Language Runtime (CLR) type for the current JSON token. @@ -130,6 +157,11 @@

k7;)1)VHRyq zz4k+00X*-5%+NAK8t;L>K@J|hFn`eN4?*6uIbe`rJAaX?-3_Hd_DMku`f^Eqxr;% z4}T9^wsZ6BckWaB%{%-USt<{Qh`uLQdBFc85Bpv`%W(ZXh*chl2T_mLJP&J!w2hhy z5oI7we8hy{Z^Ul^EW>C%apEH`#5i!)`O?o1{VnBKK)HB`1z|U|R2x zdpDODanl%XcNAFfM{xt_*dm&=_&sIfq_w`it0sFI;7}$`TI<`pYSi;Y@A$6ih2^7F z4`t${wf-6BSep)VC=&;M8FQ^&t4&XH&BHWd;fFEbJm*;6InF-Mbm7yyd+*(rcYN2a zmY?au!|x*h*M{JkE`0Ji`@N#(UoVG5|5Gj=d@lU^vh%vXJ4=~3@VDUX{FLeH=1?XM z3?ew^MsO$-2YwZt)oX_9p^O|`+lM`$Y;$T;6x$?5T=-G6`6c|$@eJOESe(ICp>Nmw z?MxRQz7zP3_+6q4&vfD8FA*0{H}R!p(MObv2cL;LoyPwEGxj^z6TM|WmV?mW{;n)B z;=*@=yApf)*W(f+E_^8Jw-S5q&*0u=`j_tsmuV7h7`&@4WLY7IpI|7cY&yYi|yHUp_XE z&vW7B?b4Q%iGxNCpLx+arfZNxnK)_O{jlg^`CL)zH_FB9*LppBi!4h`xSkLIManse)L+!5Bz3L898=eC;DqG)(yEGQ2k;{l!*g> z3XZKohH)qp2YwZtt0Op+i39%%j=k|bOb=z^z_)^9?>rCVP$mxiDmeDm^Dqu&;=rGR z^U??oW#Yi6g7e`B4rSsbe>#Zu%doOhCQe!lUK+unOq?_xZCo{64`t${@#ypj4rSuN zccKkG8o{AV9QaRg`gaU38)f3acY^cQ2o7c9B>$PXbGRPL$g%q*q36s94rSsb|5<_c z%dkGBOq}FDvm-c^iIe>2?aCSW{fshk^4PSxl&$mkvxi(R9(*X`Fot8aiH-Z|8_Ow{ zQ0~0(ZSbSuz2!WgXW*Wpc03c0a`E6x5x;FdCVjXM-K~=tap6xN~omSmgmS@!^v(PkO`o&G{G8goQ5#c0J}vKi^t=Gfi0dV2pWYC;v^yd;Cmy z{C0cGC-S!R@3rz~8nK69+mW}uOZL5vH6YW4PxCFChkwuC@W5*^i+CugEFYV5_3v># zvHei8>z9KYTY39?_KZ>K7s{nG*)=}klFPVn(M|`>G`~SdjJRnHbGgYKm;+EQUYdX5 zp(^OqK4sIDN_mM97q%R}bl$o9kIo;P?fZ4*~_9T;)T z=A$ZmC8aV`E*|VV%KWnP>Kk+QOBJ=fh#}X08wj1YSDx&*d<-GVO1XIOk>J_y1@i68D?6Iua<>Dp(wE5Zh#_$fu%uc#_~eT=Crj<7otfr4eZ+{H=50qY2TNSL{#n|a zGI8LC(Qfwb47FS5d4I~qgAYb5e+6@pq-#%vsrI)+h!Y=v7YMTBNP3GW5|B7T@!Zs&vweom7cD~O+xp*+z(DSPE2JcEUUHIfTHunC|{H^OfO_z~lYohS)H$C0T zX4@T$vnTNLy$8T#f5eCj--+^}8OC;u4Suhl>5kuG`>(P7dfo9TUwys_d2w%Q-pO(s9I^pzbxyOKV;X*=3IY|XHL z-husdVkdVb8@|+mWtx{^a!0b^4e-}LZ`nK3ghjohtzL30<{oISM@}@~GNeo#*m2mI zoeTPN-O+vI#Qy22dB471+J*(*MQSPCG!Pao31D8oYnOw(D(a>HU}D`J-rftz;Q*Uh)v#rUw6Cia!DS z3)?lluadtXkMY@igkEB}M1%WkaM4z|&YyIjjNf{@zg=uPK1u$jY1BFRvuNv2`nqs5 zpEz%`P1A_QVPkgI@{=taW16st!-3t6xZ1`tO<2U>z@B$(bN`%a!oqgLe^()2Na{!EJ(6ZOzXxp*+h;Mo~0>1)i2f=4-d_D#0v z*B6}E{H=p&!lt}xTU!v}(D{o*8 zPMJ9Ho8Wvjf7h&<_)KtSM{p<;2mTVAw?}X&bI!QEOA?%&Sep(j8)f38b->vX9LmH= ze)AC4oWt}`CJy{2%64u9hca>CJHc6n_31D@l!*iX3C{5m9LmIj4+ZDF5gf|IN&d5Y z)$p=WCQkAnyN^ArK9q@*{AbM_!#R|Rll;fti5;egGI5gs*tadkVMyOo-^Hd(oa8?T z?kt?A@mbE}m@<_3NtrnCpO`;js2ckpICt4I_dFib<*u5|UyyU<6X*Qi7Wh)|P00{G zv{XKE;=`{ZURu6qvi^>_-kF#;!G1%p@%|_B@Y64@mzQbRW_U)`OC0r1phU5sZt4Gu ze9RZIkMPvO^r9c&@B+XZn|b`JCg4td6bI>zm9%hb4%#6`7OEi7mM01#EB0d5B{6Zx4nST zeB#81zXyLO8jtmj`SsWFa&Ij`^b2v~!}o*#f%8NE@Ux)AiH|rCYm1|p-&OtH=P`*9 z7hW6OHJE>~&8_U+Tw=uS*BJbgb8S67c$SkganiVYt>_!%P$mv+Kjzkb%-^^@V`6l+N275a!}9(I2y$C2kFj+_~w#$#kz`i>ZJQJLVr<=m`ykV}lXXsehH?nFOQ z?_gY^jGX+<$#c#zeS;jz#PPB9vzTp-jjhI5@x_iihD;Y8{ucIV-x&E~#~nka3y(QV z_{Qw5hHu6drU{$Ysn&o0i+lqXS=yKBj-T9?@O`vz;P)py(}l-49%Zq7Hnz&bG{PEYpNV+ecfPp90%M zwgt;HVN<)`j=Hw7OcOS(gBBe7@WR64{PEb`j-a zC=)03+d8ztpTd@Koy5AL;F&Hw`Yp%suZ`_|7`wMim?QYUJc?a-)&^gbeb_!|*z7u# z?Q3I&R`5)BJrmQDRnLo#-FU*XIE5JawK3lsTFQ8)3xBBM-yec!y6_l(qMi4m z1G@5Oy72vqzc2*Pbm1}1gfH41SLI*&f@#9S?gMLg+}l{D5o`ONQSQ~Z6>Otjm@a&Z zPp2I}_`B6pmeTimOC2Z^C;7xW>@N=EP$mv+JNnN2ctywf zwSvCA$<7PL+{3Vc<-gt8A(15-x3#eMZ@p9USLF7#!5^Yu*1})^%I1WLn*D-uFW-($ z$!Bej={!4Yu!Ii*$)%#bDHkv4I|zRo#iLw2_+gauGAhYB*6P6=OWRZKyxz9tzYoC& zTwkkvOqU+`Z|JeR0@ULbvsQ$4RXvnTPxAYzPIqqbF=tA`ikkE|CU4O#&-Za$7jKldRFpFi}T0uU85(ls97rQ zL5#T5wS2F`J`&eRg+rM*him!XN35|n?Dd=9r(`4Mh)+A1SczJno=FqX_+MeqiBQ9chaP5sz=?u<*USh;WjE(Z%zS`?s zem=KnVDo$Al#7?ef=*lydQsziwJ%ygf_BPixbZ z{v<|R_-nMyS?BKb{wp+}UDkFb#<@HC$!FKxYkFJMNajkxu@`c~tYrsuGG zF(sN}e5sEFRR4#c?btu`-+c779W*K4&i(}YEw3hYL- zSsTkVV)HkEU+%y%O<2UG$oInzEYpNdefgdBQ(q7#K4MSU!5HQwL-_vs zd&Cps#7{BkxbtzQVQyNd0&3e(CQh0w*ck@e4iB(~4yFr_*c0ut8{=DVta~j+nK-bq z7=JHh&WTzkrVD?l+VcU-)q7=~c)|ltEP$hY#5lLNDaF(`of~aWYW4%lr4#Wc$~b{B znC(Cd2|Y{~9-SC?JD1Qa_gHG3m@Yi#1%bbWwLw?@Ocx%$7I+)OyYgo`@wSfr3Yf;~mm{;^#XaATcEd1*4$2UnF+wnam1?>m$=3yMe-YFO_ z7;MA`dzNv+YX0!@12z$PVDHS_Hy`+Q_pS%=`6qrE_BWN@EW|ZO8RaV}g zei`hSE$DB=dg@XclCM95c~KAZOgpcfeS+!2Ctttjc%GSbPf9V2GI8MRrJi^G|5wlO z=CIjUU6;y$`0;)9_rbfaSB5%FM}OCp`e{(KtE=4Cn^_Fp4cNtl4`AAw+n420IT3TB zoRgSqj<$(fs?c9kehTH(SNftoSss-WHTXld=Nimy|8~n+J~>(ZjAc?;Va=sYF{l1p zE~_7VFKz1OQ8^Lc|GC=q{HOkw%V~kb?z{E+PtDEN_{DOuy!QQ?XxGzNH~g)(tHM^a zE6byDVr+}`+cMS~J=<5XDPqUDc*?~~M%r;`C7iC;_ zxp)}sV!nQ*i`V+T4>96m+-emIj~PLr|DXh zjrk~ljFnNgtDZkNKE_4OnsY;9#KjmFWxIfH4g569#(b1N#;?fVz6tQL^RJ8C5<8fW z^2c}=`M-cSg+6xvkIwd%d?jAzMa)O}V{H6&_1$W`JM{7Mk8f;qV=elRc}WMxzNo{6 zpG?QVyGzVR`D4tAI_zHe6VyS^F+TQu^E)BTOFA&#JgIiN@;A^C7MsUk<|jQED;|-a zlb`+x>SCXUOy7uN9?Bc>J@Q`tnV%$YYoNL}#yps}eH$tAKKE0|n|Ua2#Lwv8o%j6& z<&H*w>RZ@IseZt`q$9=JcU%Wz41PZCX;~3=O_?}|wK3mcfe!tLt?y+q&9U3<+j@cB zbdzHn-^*f}uxY$_+p$Ode8nQ3*k0bxr?sOzl#7QtgpOS|n~vrg2&M^}%5LX0Q1;&9 zQr%-?ny_i#;r3e$%kSmIBi~UL%EZB#5HZ{Kv627cJa+7tSpMjd67z@=7x6yEuwAz% z?qkQ7r|0@h*>@-xFYPs4Xz=jVG)PfS%EU=)^Ov#LP|Eq#g6*p|bWtuI;&PO67Hj&# zQ!L44q+C42+u*&Ed3)?5MKjAMQaLFX?@-+vyo9xV(TBM_9wC^=3kYgcT#`$95UV^8 zCqJjy@(|YhB@cY^&-R3J2GLf;iH{f<`z!~s{x5vJo*o>^#6diZ`mV>izHpMV;889f zVpZtchxK~lweB%fM$R_)SghACW4-3x#rV9`M3Y#|H{vWv~ zia=2gMcWauVrRrSw>JTM3E#BzH(I{QG{^4P1U*r%qmDKIe+);R>pYn0!o!yXf4Sgo z)nCiPbm7y!#xml|8@@No6?F6k(}jmGM_;T#tRVi;V;+x^4$8!V4@a5abIuc3)j!!d z=f`y6;k(g3yAfmFu;1*``6{Lf3!e?FwcD3F+VacXhn~oBcMNrHW0~gpPHcreM80;O ztBqxvuqoEsesmklG-1&{k+1DXx3NqUHua6|M}N8F+$Ph7N8dy{+n#h6p6SA;ezE=N zE#Ik3o^pQbSo519 zlsRY1WNNPk=QPJLrU{Goium$&$={E6@CVUUF3QDAHvIzn?@_gLTyzXSpiG=JF1?>P zc6wDmjiE2NUrD)mXv2sb2hc}F7mkbfaBbIrz)R&MM%*+$T}s^i095FtTs*{^Us9}} zKtG4h{WC}A{42(D%Q=fuZeo>3ua^5l$^*Zz?wX#$lPr3OGxQT9?xCvR-sTVe2>Uh* zz-rRY&Bd>m)pm$g9#hqJUQKzlf4`(moPOopjyXW+ZF49SCyi0BB~DqIrM{tDyu;P@ z*56ijb@3=C&-N|C9xgl2;`=W7M3l6)2{Ga#Muk7^!tWN3j^W%QCPi-XshpIFgIEo1;^UA zO9tD)$_Q62`iPZ2*jMDS5q^Yv4b1~?Tk;@QdBE1fX3lvYommtvF{%R!7Gs3<@hGg7C1VwFc~ zzblbPxkPbjb~@z{mk_5*I~MzC?mH4AF5=Py8h`DZDMvlqt1M4{V5kOjcHf0&UF1&+*0<+qg*`1nP~TeSZ6v9pUjz`n!(++zU_$g z(Tj~3P8|8;o5sdAtKM%9@H4%;?&K&hjCEnhA7H)eWyx8Trfc>CvC1QjeQ#sU%KF5y ztJ(&XiG%nTQ!(PaIgpR=Zs=2p;9)r7`W*J3=p>%A4g})GqoSv0I>U)A_XKBvyH(F=g$Y zmdD`TLZ&;uXYXFc8pz`0y4IM>G{=q~LZ8K)-qQb%v7Pl%J`35%E9yl#b!~egTIyI-e&tQSJ?h*&bNC_qxr@hIsN+V&?5(XjGELaj9xr!bnItGUrU@J*ow9{2T1}KWv)m z!owz`Ot+(d{w>b^w((3CKH1j@{Nn+eBS$@97`de5m91 zOUlT}-*120IfG~7m@a&(tIYxbLC0HTOcx$?jkd9}K0V}Z+NasS6I*)~e-!z5;hFCF zPi)2bA9i#Uw)(WrV`3WPUmJqT(r1*5hp|7(Wp68W>0!F?{fa+61kZHgF}8=#9zeyP zrjJLlcmyPsjTmv!kHLNO2DrqKYqlHQcQB`F>E%`4q?Z_R(YMi-=Wb)0d}R)g=PoYw zW)I9vePgM%CFSC!v0x46Kh~DRc$A9=+m89y8_v_jCtB&i{IB<(@9p-FKK5;d zQl3_;9GH)a*8U-0`J`BD?+raYw*Ol*_*%|^`MvW~R;1_ZZ%UMlhxvWj!+Q-LE`>X* z>Z4q|6}Z-7gTxbUAS zr+ufbtKFC`e3~!sy|Ww7bm8G2k^gH$@Jtsz`Ni71y7Onc@X0SO4#6{B_~aMsS9j;n zbm5a3_JQM(;b@+)8)`|*eB)U!FM7?zH=QO<>JAIg139kXnmB62VV-_ z>(}8?E*|_ScrV^NS|8=&!H0r(?K(Wl#e*+}->$}auz~h`cN?W@!*%id*M1f z%Ee1QdG$Ix%Ee1Q`QEzG<)mCZ_++%t?Vsu7$!cr+5GOu-Gx#TOkWZZW@X_EubKi~W zCr*6$YVhB>K|XQf!)K$P&aOB8anrbjK#X_vSIWhMzXosBXGilW7ccqhs?QDbqOn6K zG2$j)ec!nyUgM`v{?Z#f%Ee2*`po^Nb2yK3@sh8u-!Pg-xp?r^h)0v3H(t7{SxQ>% zi5PL=ufaWc16*RrwX=S~UGq!V*Gr7J$zQKHx3*FHH+0IyOa8j=3(Yoa^C%ZD`Rm2& z@F*8AjiGOCY}c`A1C)!G#?YO=Jeo(jcxenhe;pp>;=wOto_PEL(>J&e%XG)@us5w^ zFL4FtD-U$+`8=Tg&`J1S#-7F9!I|Z1PsTqRduJ$r?A5Qk$l zeM827zp8l<>t&m?JEP(2_8pzbgFCSHo=rV_O1XH5Ezt(=qflpUZ;GT6QJ|8x zZZ$mi)LM9^3y)Y5c&qc*#|FKq9$edk zSmn{L`)&62*4M{&KKR`4{LbTeLlfKkJ4(GMBgfuRi9Ncv1~`Wbhca>CkGXF54%sih zm;F4R_t37O?DuxO3&3>Gf86%aqD-4mrhA9%-%=(H;%K(JeH}KsPkVY3u)DxsLwVX* zrg^>-W?z9lh<<5fnI{3d*9e_~kILx@iiOE*E! zr|mue)=R0#vT%tJ7rq>A`)Y8t&6PQniId{fO7w^8qpOyOtYU1VT)Y&Yjt4Kj2%Gg$ zE?)9!`+eB;ktdIT;`FNhZ$!tq z9=_09+MMaaAF46xbQ2$H3XgK}VAD~y6^J>m2VtjOAIik(SI$D>grcYqW#S;BL=1g5 zIL%x8rF@i&hxtJ42bz8UKVv&_(C^61^Ej!6BNNm6r|0k!3ifLef%-f)QSu?)^XW~( zP9mREH}L_+qd^? z`y2MoA+d`x=D!*3U-}uGKl9%pi)%I7?9ZrYGJjj+edo|2@l!WG&tc$Cqh#^tU{t9$&n zDjdkiiO_}K;&i!T%k|2G4-Ed6#XMct_DR^mSEcLh-&hxVq~o_X<|}>h-)L(q$2~*F z@q6SmHf{#~A=u769pgCDJ^yhVJHxKWU@P|w@de7nNn@y$=?^=6?GNPxA$7k)b>E!q@=eDNzHP*G)?;%TSM2w}JBHMq zGI3C*Xs^r8IfAnUcw@#tabe|U%%e;kj1jpWpB*yK{4DFS;}GyM&%B6wd^YU)I`d3o zUFVKNu$vqYpX1%0Qa)?X=csSn1o|k-XL0B`d*7gSABpLn_qK`D25Vt6j!#ENqYWq% zCykS1h%uRS0y=|3nK=DguJggsLn?u1y72JL*vmMM3c8N#+@m2*e6(4Nu^%|!??c(5 z&|Vfsw65i(oV0ai|wzdrXN!UE`yKqmSz8lMQ;W2&%{{4c-Wu&9E{g^I1 zVpjOnKG+lU|MIc<NKOE#xCJx#&^lX4VQP1GnWy-`!G2(RL zcw05%7G>hVpQ119?WOIl`-4mq7QPhNKCzAagG>{4s>V{APqO^FuTzhG7hfVq+IjL`V-THg+E2P?5#_-iGo-1SIWe}o>OpMbdK51Acrz>;4{IobBNSqy>dvkCeIkDWhhe(+?$-gcp zj()Q(dMFbo`PV`G?i_mJuuIqnW#YiUB2IslIQ2wBtrO+q!PjCga&}eK6}&j;5;}?_@zF-nwy!&XKz-p+u5u?|x8E$Qt)tkjy+O*IwJBEgV)Df7*$tTTWu4{#e?q$?<9WX zt2}#i?T80}uo=q5OZzyx@mmze0p5~AlO97q2Zu6o;Oh}*_N~jh9-p1>)%6u+;=sRS zyj^{tarP{IeR^>o%}{hOU3mC**yjbuM;~hvccS^`12N*l$AkOkdg=-m)~7Rb{Pb?o zON_Y5*WdbVt{V*`+JiE2lCMvGE^`KdU!q(**m1PUS?Af8Kw2@<(}jnBZ_~PNH-6*U zKGuGMYmXf(z&l*{Qqtl12e535|4UuTQ+|j6UsQg#Z@7Mbwu-O}pFH;5q5PHsxylnZ z^Puv4`(xy}Z{D_e=FKfiS;<$v@ZE@QD}b5rm^;pEtzc&b1H1O7K`hfe-)-CAr_l!& z9g8*hAyhJzgXzMjae4jCmbcxf+7sJSrReL!>I;W5ao{gehmV}&Y6_NV zDieG^u+}#JrlW2C4clhY)njO>ScQ{O=T+T05pr`&Z+PQdoU=S{~y8r!K0 z?t}N3{tOADFWJE^bm%zu3hSd+=!0lK%Ef~ng#BD7 zyoj#N*hRT`{mQfVp{dVec->qIeUys_M+|*tcjve_Gv7ZpJMAl91ft+k?!3vZ@YArp zgXrgTt=|usCTyBFpFw|}v$-pV+xfX8ewaS;r%aq=uOFe^of8l2rnaL@9N260^Ln&_ zbLywC%U}`uh!Gcd8{D_W<#~T8Wz(0oAV%C|!*)0Koc3y?xS@|Sagq(MT4|iY{Y|Dj zzL(!GuzvVXhp&H!zP{al+l{@WwdkAgc%N$L7*~O&@z%`LG{VaQegIgic1W!2+di4> z-u9KhV}176;^O=www{;$sfW@Ql#7?_-hN~H&X_;+*I-6_P%d7wd;5*)JD9&X$v+d< zTo+L;9_&71fwjxsL-q&nX4{PC@7b7*-rcb`%5=|v+`eZMarpz3>+T`@gOrH_+YR5a zGEH~%)ileq)!v1U{4Y6{>$3J5i!#rD>s0a$`^|7#Yq|Csi!yOiEI*St?e!mJ;=m`O zY}QwyCuYjIA4`4U3lUH3_l4lZ`U+Jnc0;*zr8(t$9lZ9sj2Lm#obmu-1$D+-$WNyp1ui z|G9p7Fd*8Ra`C2X|9t2?^U=BZEOXICnK+o|McFRi7G*aG24mHZervw@M;&qPkBFVL z@5DwNuzBtujm10|_R}#BER)txwE1q-OJ%cn`K>W9($_jsE}e)8!F#Rn zy5C`-oIE>sAF*K_V)i2#dwUDbc4xZqhz-$pFFL;aeG|&WL7lSAe%t!W=3;im-2PgB z@k(Z+?Z3^o-_}Fy4xKiJeR~WCa1bFiohuy5T<5kP>?1e}iNhU{+J=;ggFcS7c*i+| z^EswFzPA}p7B;aHW7fA@cFr{A4V#GmF`N5+t|j!=KR#-m`jv9$ZO><-CeW|H-_pS} zVUusa?N|#9wXRGP7UOM{eG+y3eV>0+EYpPTRqWf2gWM&(X4QWu`-!n^+yf5q{GV-nMaZ|$EPZ?!eD7&{&| znbs-hzsGIOJ3ssUbS(2^XfYlW<9fFBlHFLIpYPD~dFt7`E%no-4lL6=-_7=2j%d#f z=>N}a4Fej|`Fl3gg-2h7k63>L-}&ta%EUpRh22=$f32hJzowXJ=Q$#Oi`~EGHvd&z zDdi?sl!-FWe~W#~GdR{}ezrP$mxgApG&Xb1X#f zU+&HId)5e0UD}Lt@zUIQ4cd&lx_Oj~2j7f(S-bsr76Z#TS9MY5oXK(Yee~xQ=M2Up zraQi8Zw2JO`KKLy^H13~llF#TtS?RH{xk>SBHK^k+el^GZ>24Wb$vVRmHH^3rT?Ga zzcl>lC#Dm>Df#2cg6GCf;F&Ib^2hfb-yCz9Mr`|c^WW>J`|rtjZ9W`*@e=y}_lB(X zDf9fd_0bCP8{ix0_us?X*2W)w0;0a$<4cz2cYBCeK4|yQZEf=WugML*P<>Dnfw)dHSRM!KgK1>%r z+3~f&S2Hdg%EW;k$GraHO6mCWF|6AT4#foE=*)TRMdL zgbmwyu=O9~>{!VIIwNkF&V^RoV49b2n|&uV%J-IIF+S-iMc6vig>Tj87dz%|mj5rZ zKI7YyFJJX^{BAMRx96_3>Z<)px$7C_cnY# zR@c4Kzr;9qN55Cwz|s$UZ05#C=wiC#xAs%}UU7VLd}5lgs7Lh0Zq(y&t1p-)Y?|}g z+~e@r>KQGj35zmEz7{(V+Z-;<&6y_bq3T<hD$p#UHE<-(23mm|iv=J19KL#Y60i{@#Gj z$#u#HtfOAUkUO2$zGo`ecg6zGbm0*Lql_yMo208T;}0I?;vo)(Z!J3y?brIfis{0q zG2HF|9JX_uEj-hOPqA;;ZKYg(@FL2?bm0;Eq8{ff-hO4l5C6@5ddkI1F=7p3rt1H6 z?_1S(nJzs1Bj!3MD;{yY`L-}+;=oUWbG33*`>KaBao{h(vG2O6Tmu}+#DU)g$Kv!b z4rSuNe}c0fdyK<4l!*i13C>F+IFyN#{O7|F9LmIj|Ad}{*sB~?Hp;|-?*zxbBR7mg z89Dh5+eVy)8^)nboHTbhJ%U4-IBD+i(FhJ@;-vNFE4L3X8)f3accKl(aHeipeJB$r z%^i-8;7}$Gd?)l=9>JkZoa8@~IEOc^Y?O(U{Kvk1H;hA>ILUuj;vC*E4rSsb|5+Hp zp-i0QKktm-P$o|DAB5(!(&@IAQXJ!#795JIJ6F9?2pGD!ObzYWZ;=DJo-5BFFM|S&+<=o zlsYk8c=T`JuL|!sLsGjlU3m0u;18e!tqt~1_h$3Em`oQw#l?%lKYVD(pR3J%OPM%` zi=ksZ#!}N^uMOggZ>a;*g-Rn|mU} zh>O@5^Os4CcRwB*%_T-$#K;)OuQ(TTb{P@xrdi#&??<_Kh?Ajn1ICvhkL|<(lWOF) z=>tgN664&SohgVocE-64YT-~OeTcD9&a)V2e(ZZ+v$MrVmZ~nw#e-i)IUm9pfO6WV z+3YMU=f87}qy3_e#IT%p?kTvh4deQ}jO{~=xXGV4U>u3^N^Q|cnaT=I%)>1feW5kK zXPRR-Z%<>}I>dx8`0pX}-PGHc%}=F_6q!)j>m?8PT@v*m@Yi(8~9D|^)KMvKid&N_DE-&GF^DYyTG3o-YJYnf6PKdsRPr6Pw{ON{M_<~4UeNK z3ZCi0r}*|t#W&9CGhO(8ZKE;F%ay-viI@DDF1(kMYvZHB?^h>8A23~b#J1=I`(}aV zzaP8mxxP#%KL0joamVq?i;aDFrVH=B$nv}@{8!XKQ68oX@BT;pO3cA6f5Te?1)k}` zCm&cycx#}*GhKM3XP-RT;gcsh9&g`-yd$nn!oNp8s}xLq0gR z-+9v3X|WnieMXr$X|C}){LJ3NMqHFJ_ti}ueRUK2YLoR< zV6Q>XO|AVArg^@btd9bF5Pfu0Yk!1k!lG}YKP{Ht6nk2T%urM6Oqn>T&KuC5nd9Rd z-UG>8V#H1Tavc65ZXBB_`Y00z{SsrTjp^ciW%=;r!2T`e;-xvhox?#p^k%1y&El!t z{Wx|~bWtWwug*8^tWAsan={Kt_fF3pvFm_^Pn`IOm(iY=2Kj|UnK&tCZooRp?4W&T zoav6=VZU!j|C%lSWryATCGBR?&fEodJ^HteWt!(ZIR#q??2C?tZ>M@PO<34KV6Qrs zA4U#eWSX#P9NY(c`OC7_sBOq};nCj_vn>u7-ainW%EENv(-^oGzW$g0AA4^CA4Qe@ z@!m!RR77M^+%PO6Duzy{)14?Hon8P%MK)1U6GDJsNH7Vj8!C>VD2N;GxZt3o;*N-l z%P8)+%!rB(qmJV?4vZTvqwjaB?y2gW=HB#}&U`-ay?^QDcIsQ_oV#yztIAo!jMq-D z@t-+y&+F@v$6TJ~dDo|X*f-6N%e5TxmczBhk<0upxO-k-k9_5_uo4;d1huc*`BtvW zvDcnv)LeE>tX5_)G(W0hX{a%Htn^qIV_e!EfUu&Vk7_bc3-hwimn z2l`RI&y$CKbo=3Qbnryd3yXWbtB3AGvYusjJ$M*AyR3)$X^S2#-Zvh5y4PzxXrCiG-}2DbSoBQ7&BLMfsj69(6P#wqi=Qi} z^`YK!xK`Npd4-VE$-Q3dL7iqjG^c4QTn&{|z3{l#Ydxs%tY?K?Pd&viU5|Uc)`PYn zq|>P{=0)2Nk6+mHb=Bv%xiVT8+KGW$*UD^kxhX#qFXEhxP5kHr{C%yiyw;2MgzMk{ z%%hqNBk3irBWi0K(%KGJR_jb_bJjaLu_vTz;%sLOBj(vI*K%lcczn@-dD#<~%R4s( z8)!PucQE`q;$EX=(f;t-$tR911=N4Az)xjg-n~xCqb=e#9?h33+fF}I=Jqp1>3djO zqdzD!v~@0X^cT_hj5wXAIWi+>;|n2Ek>}O=vmf>OS+sSotk#Kg%5C&7j!q}jsW^J& z+C8tYPwSf|psy+0&inn{^ZI&}Id0QwZs^3*e^kY@;W90g)<1=JaMMxt@9uf$`to2} zm?+)5(-?a@dj-3@XVH-5>h7Ena(>!=KT&88vS8?A=eRg+#cXpMt7oZ%U ze(~g7uI12Au&srT+~DobWnAXU&|HsYXinW7&jL{s?}pB|<1#IiHs32l=5*Kh`O?$O zJ+H4%TlaV_?Rsg$Wm*P(376r?=&#vEdS1Hc_4Vj0`1%db_1I6W4RGGO=k@idcYOVo z=!3gEPy*loYBXzoWx zM;IpCi=WIQo_eTM91VpE3urf(d)RH=r}_z7eZvck`R2vb-MkS_6%-^(A_>Qk-OfFV z*4XG+4M#s$^v}YMy8woFEk#R9!!Z)~%K7%o;T9$Ht+*%)J9>2{nJOtMD5R&i-NPQI zyVVAL-9q>jr=4uFd7!$bD{x^HPXnXi zIia-2<$JXj^_C9$?hD0bRw#?OXhS8bSUgx%=o*5o-Bw}XIWmM}79819_nYJ6l{vS3 zpBlxEc~tx~j3L&ueH^mDQ$k0|X>W$6wKnxPI&kjsz2h+%Veh_7Bi~b2{4T_zt(U z$)1h+{5U?#SUc5uy(gYg@IV<}n~*3hDomAPIO-gB`v(VB=t>eWgZ$Wy!q;uHgeQ01ZY&wT7b7k4tre=#-M0u zZ0j42C4!-3yeOOgr*~kfPUitSore@=6;~`W(St|6(P$!E6f8_-*@u6j=Ie63uP$4` zC(LzP_YdygX8-YyR5Df^E)2US?djV$KDULh%hIib_HuL=xi8 zVYj(L_10;-1y_^J$(C|NHvK0Vg5hW|7*FWRVz)CQuu$9K{%DzH&Ovs(XR4z`u}C69 zpEh+4yPa`?0ay#A<1EwLi!F49d^4f zsUf=GqqQ%xn`h~N_~CEob&C01a_aDPUlj?J#DY<02S8Ic_X^P3A00Qq(a&|3K7RW) zo#&rXLEJ4>siH)@I7)9VaSwZ(`vivRHfW`e^E%61WOPGSHC|>_S)Z?8#E)d3H5>hG zEK*n!N`6*4i#X)OAo=}u*d6NwJ_#frncc-b7UjW zGG23SxX%m}1!IxocxjenrQrd327r#WaP+gIrB0;T$sZ8It6(s0sjDA2f!-*X3>Owh zqs}%HQrATMf}Y*=xR&hB9cyl98rz+S!SBe*>WO4Gtcp{iU_mtH4oI7{yI9Hi&a$-Q zjqH|IPOPoNEAL&y#VQ;OrHY~{ZshFw`4=^8PXrFf{ElvXms#3z*RDIcOr{D8QkcBB z(oLo7*g%8M&t>rG=kO-;)3K9(l;fq>3sn?~6$J~5N*&Yo_@x5NblciR+x_g|rt*`v z@W&$YXmL2MbI)$$Dn+{KD1)P)>n(Hi%(lk+hPrNP3W^F!ilf1-Y>x?SYzKolXq-#7 zH(Sy*(>8YWOf7Ff!Sx3MsbD-F36^rfwa2}6;C9ElQoPs< zvBy2^#k~xHb&CJv=J8)++s<3CoEIhISq~l6Nl;XM}>+&VvQKsLEP^VHQu|#n^ z>ee!QoIg@SbUydh_E%ZfeQ3nwEHnDU-f%%El8R)tHu9?)t8IOTcv4(fS^5J#I&&w8 zzP%JGZ=|TiEynh^?Gs>o9Jke$_L=OtlSAJaMlKOdh_md6{-gTo_HwRnFV{5@KQ6n} zw>LC6@0Ux3qv66(DvZ==s*V-~ZaB!fOx@7cP0x0gF&V`VRnmEvc+Die0G~`26b6e* zW3HMe%4*lZAdLO!_(YeLGRwGkd-n3(=Uhit)K05ZrA1*h#YNeTCB9a@slecv3r9b< ztTDFy%a)WiBbd}hdqCvS6g&^Y0OUX-E8Ua(rs=h zwy{KEBwn1=n4&a5>*93qn$kAQ94Or`e!FW+9Nkzd9w|-Hqb1H^k8hX2w|ecaOxK~s zmi{%}t}M;51eWcJQ(4Y&_Xtp)(y^~j=Z=>9Q|Wd`;oc}mwG@-vNIa6|y4@>E+6<01 zj~UZ#>IaqCY`7>KEH0s!?BKAc?;PshGPO>i88G$^Q826dm|0Dn=DNPgF!uVYs&6(>MUJyvb!;Kg2r3!}IVn(dm+z`!imtQr8{ ziK}Jo;aTzeBJWK8fPodKokrgrtuCMKJTnBHwjtrdTT&28ll>NT= zXNIF#6~Q8TuYs& zF(I`tdh{7ANfw8SoTs{)O82#DlOBr<(e3D}ChYLc%&TK65iG>*W4_5`&*#t8DwJ%BM}j3o-P>X!}($ol|gmi~e4xHkN|0mZR+EE-Pf(N$CF*g5c( zZZmF2n??0#?rL+NPxjor^6f=Kg}4Eq$Z`yu7ub~VB%>DqI-H z(yrENw|#6t+8%V?Qv@tSg7xxm7#u8+}2s{K|1r>@fz=*=eM|;;<(YW?qj=wwG(+IH8Dt{~1f zX-t}8g()5h+2b@SFbMqz9cQ7PCtGtZb_*{jynCC zYy)_-tYY!f;(`!8%#Fhyr`3we1|2*O*le-mF8yNf8TVS5qk#fd91ItQ65P}^VgC|! zgPwQKMS?oz#Ik;sVISLlqmklNiQaW#kLzQ2r=xptT-P-(u3@wVg`q@=zLU{ZTHop2 zI~k_qy4up_=(svVpo+0QM;6$(} zi7ni2&9~bt2(;E~WuNK(V!dU2uzh>{6{b`&94y7gJ~z+oc3*VXeCf&oa8!<_S>~1* zcIj1@X}gySiV`KEL;>H{Xrc^90<Jy#b-I~r{zD=h;`Rm@v#yw^1#&gZu za8VQkM>hyfl-vCSGXC=|_pKV4aW zkTW;nLZA}3Ss5)!aq(*+{f7l;&pjRM5Lt?EN6Q*pqoj8BfB8Gby#U0+(P&B1+f-st z?=SJKL-*jebdasjYSczh+`Vx<+JICv9Co8^w|PQ<-s3{YWm;_@Wh*?v7fKdqH!tfL7^mlD-|A=Vmi{;6 zY94L|i-W~+tkXE5ZmL}=4)9!p^E7C=hmZYFo{)MPUa@k`2n>_hnMFx zTmGAHpg`B-D=v5qKlYIalLd)v){d8}>fK$V!}L73o2^ZidF#A$vm6_+RY5qMjN%rp zqs(5O-*%p9qzgH{JKFkwqs{H5cwu2Am`X-sZk+7lILLc`ncL1~|IIwZi@Vc$>#`n- zV=$WKJ*`k+ts6|m&&qAH?5)Xc%iQ%HuN_NLcw{AyQ>UOl9t)6AH zDIA*0I)2xi^SoXxij4vZ`h=@<*u&5-Kyzn0Cd1LsjsI0Yvi&gRH(oBS&sa1qEiOz3 zkyvCHhdqq1sf6BG(yfOZ#w{n9@9A@h{O4KtjGsgj$GNe+{6Wt=YqpAoN()oTlC0*@Lj$+FroH{}!~d(Xi2FF8SAUBV zrKmeu&Yimj<|57Mpm*+5nb>T(r;!l$ zj@l;dKd8p)Hk|g-k^RM%HBkS#Gis@^!-l>rhv`oUn%HP+~mv8U-X%i8hp3QxI;l%xuZ3iV@Q_Vn33W6xpVT!&`@=5@u9ShUFP5$)mm zE~EX~W|>p`p7aR?v0Rj-I-kw`vL7?TGdb7cDa7*|czm%??@YF*&y8xMZhv?!cYX8n z3!^7@{V+D6d>XxtClZMjW8*MyS8HPY@QmU;8bLjNnfBlGr<8%%>V(dq6gT&>XkU5; z_*s$xdc3m2vUZwLJ{)`WE+C9rcz<@NG!-t1@pQk5_(lWsX^@0t6&(Fs|KHm`wssU= z8#~iWdi^zcjNPNjU@S)3o0?M&3ak*}==S*^q#wSgp`Dv{v{#FgXSL;7 z&y28ed59MkC2(iO?d_Vf`Lyb&*EL&fn?cLm-nXfZxgSOGRve4)P!%@2IFYcYdw1_y zkba0L#dUI4an*MHC2TC(qtNljX6Uio-61ec&sVnLTC%&rGGF)O>(5mZmDQD#FoR0r zR%9(+!iu+2#j$dp<@)9t^|s#Mv#^b8zoTV+)3>kZ4(4DK78aF;O5*OM$({ynz3020 z(`i2~t2xuqVcv3|zhj18Plc@;g<0OaI3&;!@up*xZvQr96@PEeYEFS5p1_Sn^izaQ zm4hcT#=+|>>q&k-G#!r25nl*XypkyHRO8JYZrttpv(DSY#A||iS>?~~2^($j4#tDg zc!U=N?O}U1V|=VyENmqRTPjghfF}t`vq`s4Gs3pn^4vo6^0WeBD+=PSX^J~ud%At* zg^llPOtY-_H!o}xDNnHm9Z&M6HGA0pkrB3KEtYNtR2hn+krbYjbQc)yVY^)A>Gqo6 zaXLAx@rt{yh{mF_t`hIZ!G5GjsyG$aD?E0a>(wXPCXG?3kI2iaZNQ)i@2VYHKCyBn zdWK5u2agwEg*#HfOKDB?Ow4idLx4KRXvQpQ%SrwFPr-Mo}%xb(lJQ)g~ z?a>K(%pg@#RH%ph_I%wlu-Y}}-E-SwSuftcz0B5~)@?&kJnfLxdeGhhn)lGb>m8dd z?+nN`3}L*PvnW^+<6hXF4wtG~x}5Rz-FcS#_l7Xgnz7CZ+OQFd;;qGaW0)H^yZw^_ z%Os^^+SEAXV&^?mlqzNV-prP)(%P@a9M=%GL1TwwLN60H5!X(Em8ipX zOy;&Et9ElccJuvn{`P%p-0)04-uK0e=Jq__IY8fErsHkhwrt31o=p}x-D9D`XiT>( zO{M$M-hEZ7^G;q{p1t$S7};~~MxborMc^d`(O6bvw!1R+>vqd(9n-T{4}%G8NGUEZ z&gMSA70&ywC_U-h4-~&`S*;8Duif&eyTX3U!T@Qy?NDnmpTQG z$7vg~8sGZ+iX5An-9(|nig*m`hL|iL_O_x;V3Y2jw!k3S++ukjhi?;K zP@L@Mcp`-NRA>EOisJ&)^f+X7Yu8?$%?$B(>iOuvx9y$FRD*6?7H3uOXy}=?0F_Ea@QRAK+iNyu^ZtzcA!D=ZHyhi`j5=Oj z8^v2lBSmpHMoop|YNy|(Yk7RuEvx%7G8|Zg$0xC!{b%&OdFSceA{9^KH71E{pE4{6+CJMxr2zdC;M2^0x+50TnCNmHrV20XnauHfY$Rbx@k)!bh=L5xw5Bg2t z!NUK}Az7`3%>Y9ex?Q=2VEqhiHP}D{`yPzTnG8!CB(y25I{@@I=sW_9_q$4+KY}eY z$X$!^36~csw;T*b#yKRr8|)B$QnJ5bK0439PJ*#~1DlVz`=JK*FrJbA))1CE@m#vw zBDnpHzRW4B?;)Y@G00tnIRM{Wka2hdOb^{M%KYnw6FSma&@LlNC>IN!CfkHPrnzl_7)=ycq>lS)Z83=IEo*Iqe*Da|HZ zSgnQ4u&}c&Y@UT(0;XS6kP*LY!LBpJuMmZ$r-6+I+hAY^?5Wgu2DW!MrH1N)Dbu=Q zFQtYVIW75f!tOA)I^eN8gRzeprqG+u0yD zxVztG$*`OaHr$}|RWKUE&>`h^#yfvZao^9vf)*CHurXk!e3)Wk=YVk=DdX@N7?;oV zVHzdl_h9)>%o~rli1p6%(<6N>MywB*UM6ZZP9qit<9aLQ27>AB;~8?p!8q=ins^84 zoRH^-MY4%t92UuDf^k?RI|q!zBH3avR9)xbexClIuq@B>bxO9d_>KvWV zg7u(3aB$y4zscSwc}j7^ZQ}2DVpk zV9a7P-qUa@T=zot9y_ z7YxH%=aB4iut5g)GuTHI85~mXgT6{#?4k@d=^&-heK?1dn+L{YMahdsa^+yV8sb-Th?|e3R?5{{*fa|}!@}yo-Y~==-p>z%49hSJ8x5wT zml20CVBAJZof9oOYr#xy$V>}6*TOEcutgSjjfLF|#_?jGl9$qBg+*?ag{`*eeA*)S zqJ_O-VeeY(ePm%@TG+Q1_8%||(VRo3**=GwS&4<6U}4iO>b1n83f*okk z`5@RX2KJi!#UU@cZ!A8gLO6NoDXKQx6-2X88B16zX{gEVDB3X>k{$jV=^D| z!BEtkL$Y!(lfCo7f?AI2J^e}T(gR?+`SjW@W)E4|BNnzAjOUcx=CRH^Hj z*2!U_KPi6ig59ARx1-F?#o}4Qz@7!`VqoupooirYu#mugs0n$YB>M*JNPWFzA%GeKTL#8yCFSl1V=k9})+H7E3!BEtk zL&_Zz!+j^sx@w<1N~k5Tr}^5l`uH^F#)Lb7+kxZX-OzEr6} zqy&d#w}NpSBH3E7n_aOCxsx$L=lDsv+rT(}l05{*<&4LLWP;+i4s5lyC)q3%_%{vg zsHC4RQto)L14uaz$!4Vd@vdZxz_=brb_>|Su1eKS`{a?Cm%$e4bCR7j*iRS9P6y+B z;4wJsybz4rTgjGKtcQVZ0pq-payuR6*J;VRf^q$ktREP< z>g|SQ5?D_ITL8xGiqv^C*vSUDpTG_>uwF+i#rZ9D4g}-2K(gT$HXiIcgS}tCb}_KF z!~FR}cYO_cl<#2+E4Q%AEbMWx0&Pdy`wFZl8O9-52Mk_DyGZS?ee&q?3NWtkd2~`A z#HN6?(SPS@pFCpIz;@K<^0ZGLvFR4MGr?Nv>+`fv9?6|;Vdq+OUI=Ci%f%MC#TIro zm?@k~E$lilQ&?^WJ6OlLhxW;%xW5Q?4E?|%*&f4{`oKjQ>>IH42D!&a_;s4=D5;^# z-vr})m+W1zcG{j~e*@#XCE2fFT;C<@GSX~sA25@>UKY87Epj1?TnQN0BN@&qVEqko zzZPt=X1%me9;Ihsl!$fKCYP8-qW9?D`{b;gYo=L#(j=OZkdHW56111)cFdSsSJK( z(b;Z{U+<*OgDmVQunvZF84DIMu*<;u8Q2;yQ~CT7jQeRB&Q>QVm1oe|6U-!60>uddC?-*xy-Ed6fj=XkveYyGxez}z}hSKka7=M*g7zi z&KE3lZ&}!1E$mAR`vJ_g%-IhEppde*sT_JCzz>!Ukzr8!#a!37r=O~E$fOJZ!RzG!A$nL zSmg4+`YQM6seSSSa6`aW>T{BP3l=i4J{9J?Jrs=RVN&NXFrL3lRtd&)U&-cz?QICl zbr$vz*iHtyC%`%y*sEY24D5X{Q$BnQW-9YvSlCvuuG$`tL+MY-qc#)#v4&)OfpIt` zJJ7<4EG!PjWnStWVPWN9oYqoqipAb6i`;n@xkX@m8q(|zFfK1LEbG8p8RVV;yI4ah zH*AtWrj=|KSeqSOrIMX9#V-?*T?ocyNwP~V>?*Jy4RN^abblT$b*={E@+sL<7WO>Y zFoV5L)k-}^1r>+X`SMhASiS?}d4QDbgMk#UHA_|q#_fw_Bf$1>gOU-J$zY~3alXag zA}~|AUJAx-qzubTU>yu$*$CF(z}jL!%WDu)XK%3MwA_K(Cy$c99_(hF50Z5{!!Kvt z7qHykU^~+vI3(*0c7%&ESUDJ%B`G%4{IyESiov*!NjAvBhFI8e3ma=;WfnHs!lqf+EDM`!Ve>6)v4t(Quw@pu!opU8 z?WXhg5K$(cN@M*5do7I}D%b~LT+Z?Z`yLEUy>m!*5*C*#4eTi}?x*|fYsjN={Wcia z*PviOfpJ}tj9ya2{gGrlfOXNjB-;~AS9fo}2VF|%x`A<7mvW_GCVL66T@3b)v&bC} zW{TffFm69(Sjxdlw7mlDlSgs54y=H- zlSOVh7{^b_J!sMSc$&^45te7bqWYXYMLMLtp%%H( z7FG_{#Z{T1b2=Ee)6(AU7M-iW=IKUK%7y1BHOXM_dN3|$Qtn}}-UhjM!MOdDa+|@p zzDw5XOtaihVCxO`-T<3xV8@?jPR~jUn{8p2TG%ZX_OOM$2zH<$4qL#!H{{=^=lXq| zOwX-gT*oB)5$pzoy{nLze>bo>=lS;^q|PN^dm7~K1e>TUit?WbmxVoJVef%) z{flbduf|=wF0OPnfmMaJx z3ig_gLy5PG(v9EGU{iG+Yb=L*;g|aLL9#hur)!;uX`kc%cd!$+PRRx?^2bYu3%Oxn zoSu@61mk>=>@*8I-NI&qahge;=YnzDD%l-iJg%1P9gEJtf^l7za$Ohub9>2-0W-z@ zM6g|TI!d{TVEY)@c@~|QTG+KYPHjuhcM9E{ru$x74gNp>t4_eYWq z2WzA4NH)eIH`c;VvaoR$d*dx^vPI_7`AlXM?hwAGk+wDrT&V4NGKnp9hup=$(XfUpuGMp!ZahZ^8BG~SR_{{{{ z%fJ?cbuzG9!S*(=wP1M$wh8P20}EW`r*&LkLmuVdu3(&hl6AGn^#J2^k#hN9d1L^G zWXGoIOt_ag|58{^0^_hqHr^sv1IA&Ia%Y0&X*-f#pQbaZuOW}Z@<%WZi)8m%)gaw!p(&0riB$v(5leVb-a$_1|W%dTXdEUXt;o(`Xsi-U1HF<8XmI53Wb zWG8@eU6E`W7`KCx%>?5)jAZwLnZoio80UkOTMx!{TC#U7>*qe)PD|B%H09>sX=bxwSGGx-{y4q3$Kl zzjS$bu!nYVPfEErZ^BxhL1$o@QeV4b8TS4KcBMh?f?Lri8RSm6&Cesw54x08)q>q` zkjuN>U%QZTs0MrA5SGDr_|KV2x!525xszlw!MH3Pt;0kfnOOif$6#-VJN@=n>P&%g zxt8n%u-@8^WM_gMY+%d53N;(1eex)H8^PM?bCPWaJJi5-y~|$am6UrFjOSXCeFIizh{MSH z{4s-+n+n#}AlG1FXIj|#7Pi2`7F*agVBZ?TdC4lJ?$vFGj9U1e3aShmB z2DyvCIvChhU_9?QMqfi7>AVkYSA9;hwHCR*SmZvo$og|omSceF)r ztVOQQB6qGu?pll79bjz@X?+hE=by}n$HDTn+_BmxkMi&RG@X)t1h%KXUa}u8a&#kd zKZD$UU~LVoHyDo#q`iI?xk8KF;b4au>`e!2Z(!$vaa$n6avPW_UDjCG8(?9By&Ydv zv>n_zq`gUChZ@+GU_%Y;1F#MT_N9gW2*!0qhNaC*{#vtSds|q(g_VN!Gla7StgC@t zU|~xw>>dky#=_pQu&==OFod%eCTgZQ>}g^BEG%YWV=U}+3!4kp*ARylU_%US3mC8Y z%QDga6?3}uw6J0eI~L4TkIo0{VhHEeVBGc`r>`N8+QA#a+UawWEeG4l!0xrMN7L*L z*Yf0%y(iP`N%nl2PRU-ku#I4OWB`Yh+h&mqyy~Z!l93?^5R+u-y!D3&2eAyBv(iU{dGZV7nW1t_AC6U~hv(3~c8&%xn;tDGtYhwKwQI z*}^7)buh?Hx3CK=>~agc*~0Fzu*bo841K%~FL_k1-v%?K^;ck~@_ERcW}OKzQ@V_> zurjdDI(#ym^7!1{>lK`HMN6M_SkrFfL~!v~Kb!8Oy*z`kV~s z5{u63E$ns+y9dnFW<3nX{jChkS}-0%OZJw9eF0|5hYs)f>jhG0IhZM&RbZWTn(>+t z{YmM0CfFgGNu76qnabIHV4O!>hFRweV5U6!(W0}}M*n*@GAu*D*xqOzUba^TX0o>g z%#<$IftmW8hroIn(&ZhC&cA}0((E&^h(Txfcg^AK17_0MAIuca5f+^%S#(x_nZkK3 z7^lC?qp!iZK8z80^c@)IgJk~!I|<~=jp&BD5Yb{jAzByg?12d&dZ;RZK7P*u~ zuG}Iw*&=s=MebsY+;WTDN{ieJV0#LYXc90_)iAr5DO@%%xi=OQqklZ@5!TAfOQ@i}#U(1o~WUzho z^^(o7u*<=^X*n79JHdGVF4@CiTqY!257x_|^GmShnw_M5@+f|bKlRtyC3^sj<0sjx zV7qHwGAtj0wbkh<+28+R&ZDou@(eoLf9A`btgj)D%yb4jLZ6dtI9PuJI~R=8Q_3v? z<9Uu`k674yV7xXX*d(y-I*-QbFp)>6F8sn@1C;Cy zuzmFPl6_@iZNK!(i;Q14Fs_@D9SIiE_9UAQ#^YqkE&_YmAUEPG|GvGH+y9?_zam)# zjK><1#lf7!gO|a+_SZ2bTM5?P5YCstIvChSuuBZA;$MDSAnpADEMbs)35@3?Qtm?w z`#0Fm2A#ivRT$W5Tl{rlX>U4MTZ7zLV5W4r*dlj1*c^k-UAE#o4y{}$!*cjH<}!E& zSQ~@RnPA-vY!O&H1G@&yl%BU(g>np%a@w*DFhanD+faxwLBi|ndyT~9n@H?};K^9hOVF@r(y*nzss~w9WJYoyL`s;IL+9!|LYOtC5 zT$%RCBi8?C|9(yxozw@haxhc6Oa0~-d${ic)~VUeo_GnKP?uwDjxSA*SbU`78im(M8JJ_flFV5YE~2*!1+ zT+5S3dDP}tf2~BazF=%mvN#yGOJ$@?AEa|+np_zJ_{3@~Yyp_5?YSJRNb4%oK6#|` zd9Y#nT$%RCBi89RbKZ6XGqnYKTiCu9ojomby)CSdh4r=A%eSzwMP~%eRR0oSoVVje zdX56i)8`~>0OK+!*_mJm8RTwHldBN+?gryLlI$KZ?&BnT3XJ zNcIg_7XxdH(#CO@avi{`4RUk9LI$=HjN3Y?b2V7pAonxaKm#kmLnz!{OP%L}4K~O< z4`xcU*T8s;DRsVMk^3tcuL(%G&njlR170E(iry6uF2IICz$~^`aG06Q3Y!zh)4k>r@j(**g>~65Wu2_cLTNd`Sh4pF^ z@b;TlYTe{f@Jhh)=nou{oe0KdP_i;G9lZ>>a*Nz#Fm89H&N*NQxIxL#c{5mvfo-(t z`~r;IU1{%EFjM??#0?vh++JW@KBdkB!3G$@Spmj!1a-V^5 zU6FFzz(yM6j@~)oJp(S~rd!y}U|esd-1}fW){yM)7M;8867cThNx2A^DXotH<1vGj zI}(h`l4KQNJPwhp8m!ciX7_?|J0a!PgY`1VeF?^E0#a^#dw;w%Nz0Q*WoZi7f%@EJ z?UP6Baxm^6ssy_YEUM2*x%a?0?vi~BHpC!z$gX}qOcC}%VD0od$qoZ!dy>U1Y#3Oc zL1#4>*Q3)#SQda4>T{B<1^b*54~JyS@sV?u<9P&KN0)B|YpvxZ+te}O?IDnCFT7lX z%Zp@%V8h7(4#_S6<33fgYrx73VfmqxpDt3aOJ_g-rn+XGe@WFoU>uej!A=J|N1v1I zb1=?#$+o81lWZFp*IUVc0z1iIZ&Vk*%-4!=PE2Fd1e*oM^+?Ly43?*_KSRhp1$MH5 z?cFt?mb7-Elv}x1z}rhKSzzyg`h!8|MPQtsQf?90QwF(X_wmz3%9VlfT)R%olSlbJ z8;sjl$>xH!*Vjw7(8892wb63*+9!|f-DF|6gK^xY+)6O6?~=U;#$!IoJ_O@6aml^| zo3Fzs+1dO0{g`AIS=i-Z{A~{@7sRHSBMkPYf^l0e<<15B#voU>zgcb`*a-%?_rZD? z*e_t*cF3?y&I_nFC?j!5R?;)z-7AnR1;%AbvJqe}xhgYs?%OM%ZZfbnV1G8SMZNvL zSlW94jK@ooJ!4^STG&Tm9duY4v`-!-)fO;5C+$r*z@HaOb{&{0oOgk3)pn%Z^?d@0 z+jq&@9T-si>V{Xc-UkI#%%HOpjQcSucP^Nz9<@E#EY}0M_G zmM4$W`V%l7L&dg#zAt-KE^yU_%UY`xXY&Ce6;)K6wipg*7+J3=fk;lQXgdRt28;uz5(O7OZIS)pAV9~0><~bB>M;0vD&_5MG-#^bM-ak zQ8)*H_0i|%YM(q}WA|@!Hxh6>2s3Rf^oh}HUn%ggWMvpo(6V5*fI(f z4yp6_l7RYBkA)>0Fwk#zB|8>uv8yse=Z9b)8tkndFHu$>J$f40c&G&tbB zYe(vgfaMu%5nk7T=n@%&A)^T1v-=sfB;KYmhf9M~aRj_0!UC&m3DFiy{l^fk;@gK^u# zV@76gfc4hbOZFXDiGk%0_xlwoHxw*pkh>U+%lra;4S5uYC170UCA&6F?qVT#3s@y7 zz#&S=fSqDsu`|%G==79w4+2CDa$kUPJ1ynv>isnV$-V{~ zZO|ES2&lIVY>(*y@4K5)X9{e*L2d=u;Rg0G*a$=1i)JF<4RWi%cn&MW@*x=aIg9aL4R`+F+2IF~?tflHr_$M&en6+`(rB)UO8C_w0ar$PkuI z=LFQz2Dt;z_18mWSdIka^$^L%SlCoBZeK3dcFCjQ&9ShHz}oBUrQ8)3xn&l)l@_+z zqVrD{xi>6wA6n$Tu*m&jk=tReIXydqnbK@ui`+pLxgv{PsYUKsi`>Z;xk(ne28-NW zi`=Caxoa(QcUa^eu*f}Sk$c%9x6vZ^iA8R!MeaWqxt-55mzO=jO!c;xMXtX^Zh%E@ zh(&I+MXuZ;R|Cdts_8m`8J3k`+)qn(;01m^E!k)=Q~b)oczh=18o+oACfOn| z?)xRX+G6iku$Uo!AA|8cT2s1D zev!Z5Te9=PcwP7kp>qWomWG`}vJdC`>micuxxlZRlJx=WsqI`T>$*zlyZ~&3!QP+2I6bcxa$keh8stv7*td6$kedc}yg}~iG`Xch?rktrIQv}U zhx1w?cO+OBeNM8GV0Re8@?)CL>x9lu3$cb|kedm{X?DGkTWpd0E=}$RA=ly3fSP8o zcMcfm?Tte2axhbxeGJCoyh+IY0%nR|`DOn7m79g!T(FsjaQ**shBMD$l?U1vA+j1Gb-T3uHL!FAu1H8g!N|38-5Q ztko3(@BK?sX9TR1L2d|`v7G?p@^XuoCy#gW{unP^W+f@PY8{ty!KVVUVT=;4;I~{CqEqA;2$)j|+5Ufa_lWa|z z+;V*lc_jBX*g$6BdPe zjZ?BSzgYlT?PAyL!#r<%w1N1q`%D_SfwgimZ z2`P6w8280@X?gO<-gg$3y1^e4-7Vy*!7B7Q$zBH=O3HCa*6k+0eUWSm*bG-JLvAxz znSl+u+3&}s&gEbxxgD4JbyLa}gPG!YJs8(_Dfg~LZon=696`#R4YrFRe)GY2?7dQ7 zLmnmZ!(cu2ImzC!uphw=Hpun5)vqg3XMZs6JMPi)|qg>E5JA(BzppEo?YagU|f$R``*HKxWg>h(Zcq#u!AiuYGDZrJKn-hwXoAIY?g&x2*&v*)AI_8+%gNh z$HLZtaUEMN^8INGTW?{nTi9Q~cGh;Jz0F{|8`xGbo~u13!nyMw{dFm+^J1`)R<3|# z&)(_R_ccQ2`(XKou^c4 z*^6L2wvp@`FfP}U1@HHt4U}vym`UedVEuHwq}*S?OmS%afIsh$as^;{2A#))ne3en zHrpWgy+!9951Q>oz-AhB-UHU%z+MI$Y+#+R34;4@8TY-wOldY4%oO)}i`*?>ru=&u z%v6^C4aRjvhO^znemf}Hp?E>I<1>Lio+#f9q0#+b?Me!!{-7c-Hltf9X{Gaepi<*)d>8>gy$22*&mOIid3kuy*>K zWY>f7nt){YfN|NCY#kW)f0Atl<9<`JL)V&h4g%vgM9NJ8>tKk(EDQSsm?>Q@1#556 zc`ew^n*B-p}@LDxh}M11-t^@w7jFk!-JL{CU4* zeZaVmNp?8cv2IW@!m-Q-bnoD9bIWh9#p)>B_E z*)?Fj4eW8S{S0iQMdwczo!y@^>pUEc=MOTRV=Qv@U|e>k+!BkijEMi9xR0dcWP3a=k4q2v%&+ zIT?({C@<@4$fGo?2jf0KvN>QeeZ6FlgK_^L*$ZGh8RRyAjWV#_F9y7CW=Ng)fgNp- z`w5KmLCUpy$$thwvID?Oa)*L(UnS)RfN{Sf*%@H_8p3%g*dYeC8jRQSq|O(?b~ebp z1@?%6EqK{1cLmsRgWShp+!xER^mrwpt}@6y0(PZ=9rdcYyo|B1@nGc!ozH@C{~*Kp z4=`TSk?dEnI}AE+f6c%DF6FwsZceiaV5b;#J`HB7W9z|qj4AEC2i8ODd`0`@QN8^c zEI>bSNV#7&1k@B4Ww42Fn9F<(n5oR44fc*f=cqSvPuRe21mnI#hVy`D19QGaqcELGC=TlML*AFjM}01Xgd58~wIFCX!(}3(TbR0+yQ^_$HG!>G#Kam>q4#y zjK`Rg-44e6ie#(6c)TmwpTKyXPqGiePSatK?1*=KxeX$mV=Sx|jMuuP&d)uc z_paZkO4bRC+wwO>9`y#}GAQLP0OPhmvWvmWwJyoN1naN+fVYIbz2EouN=sG-#^WBz zCR^Avu-y$|IS%6`~Il#iKM5Gzk1ykRknl#8I3EXGXZFtoMj9>r-pA(H{u;- zH>+jp7VNdXP2G;C=kLJVq*kaq)m_+8wi0jdxfgE_S*7k*52y##L+W9Siyu|1)njT6 z-W0S}J)xe&6Bp~$(|E7Wv+6mliaf7gQ0wt#hLJ;3Fk72^_H%z83$F(8d5cEW2aaj+gcHAH1 z>efnKe}GbBuqf3T4O%e<9EEwf7B@elxaRL@ID=S7xatt4^3WI_*B$!6?}ywN)cJI` z5}g6L-49gi&K>YgOUS*9g|M}|DYXH%=0JW4!V`zR6s}u@Ft)-V<^kwjiLl;)1q5=p zVBoeBYFslOabq_KjUc;G2ul*_ zP}9bDKOi1IBR*##u8VN(4!DM02>CJ+=`auJ{WQYxHR3)Wc|q=Ph@{Qakq&K;bAoo{X z_XP4~3*vqf{6~=Ab0Ie$=Q|)izsF5PzDm~t=h#g~9)5r{*^F}63gy-0Zb3PkjP&^h z`MwYI`8KW@hx6&K8fi;z zXXG)vHHd%3VdD~&GscamtgbAtudE+;LT%mYRW*~w9a}lGp|+;Jc49;RQT4So<3`q1 zWSooF*377^YpATNAD1X^C?8cmzPi#omtRreEahZXD{HQ*(G6AARSi{$U81U@p{ll~ zyl(ahb>-8hRn|3E^~j3Jl~c>dC1*8M*3?6DeRCBKtExF;+);>leM8;!iiX-|htQ9_ zPE9(|>|lD?Tt9B?)aqkvC*&^U-4qyAdwOL}a}(2#`^bhmlZ+zSdRzov# zE+-|-R~)acZW+b8a1F1koi+QI%7$_`X_}iNZo7~hU49~rLA{vZ)Qg;?u9yGy=u#(D z&hq|lZtVRKyG>b6Lfg1qNK{TNpI%Kx*l80+RMyv4qknI1$TOO>!Id?Yb>%te+8PJn zuP4aU>6IvbGpZ&uKls#ICTCStPNN!_^R&pBX1{zSYoXROPC zU*VE7Dr*{Ib(5MM&WsY4tD>7W25o*p$_OPYT75%#O+&Ne@8^9f#_*AFvZex~hUQn? zj8OwuxXL=GZEtRE@W#3g5jMD(i;UV9lqdygE0z z%X;0Cs0X2FMckQsuDWu!uW^#7x!LNfiq+MXH@oTgMp(H?%Cw%Ow2D@_yc5lhbK^`( z*45S4QCUV6Z?0x4S|`+1p+x0Elanhs>)tZjhuj3z%a!_ZZU;m|cJE{^l7X`;H;GCu zd2V7(nN8)!8SmvTn=%HfJkV)wT5>x2y(FLUTfy9uXuHcec4j!7pnqHo4$x?N{`n-YNI4R!-K* zy(Dq(n4uVYXL6TF$6$RsC)w(!`_N(DqFwG*<9+qi|K%jaUY>b3I-CIk5;-T?moXkF zonBR)g9#~Bcy|PtvzksSd8v(VeC1-^oSC|Gw@25>=HIEzR8RTl3>9*ffs`ul9fX`U z)?Nj!AD66YKo5I#C2o359bZWUWVd5zZq;s_FnWg6=p;t_IVgsWR64f_hu2k2#hvpR zv<#J#8sw!({kSpMH-IH|?@V)3iSpJRE99&a`7KoXEv;Mx)E_6cL_y5xfoWa1xxvmX z9ely~t*asusQL6g=Jc@m#q-%vX>URUW1F>)6h zcLNF)ez$jWHVovbU*Zh*M@4RKAoMwD4ZJZvXL4@y)>)=#xw}lXSlHYEyE8PNt|lt$ zovkFz?@PV%RX+~>k-IWjUX{BpDQ#w%qp^i7$IVUI#$`8NKDDwsj#iM9`dFN(=W?9e zMaB{3GjknyB+dk{Q5uZNYx5`Yjnl_zKb$>MoF>hUg5P&~H>8`ZGBe12H=6rkA5&Fd zQCVGGUQ<~+y*?+i6H4Uawe=WKHGd~TS_RC_0!e1#rfTb^mQzvl8k5{-AXi6!FH&=D zczuey0-l@1@e8vb(44N(Q60gi7%Vk3H~x)#6g2*o7&@ij(NgNyfBpI|Y&UkE?Q{RZ zA9T>eEADX-9@^mFF8jZK|38@mSLPQ4#&^HwI4TcImd^TN$9bm?TiCWbe(IyI4L+wp zss1QWrw^@}SgZPD$7p4}>R(@1(SNeDo-n?;w&Ha6#KfxV%KHA;Og;gd$?JGC`Aof; zyvE;5J_T*yIH(vW&rSC>Y0vPsRhK+NSNCo2YlX)0T@uowqNv zKHLrt#iJm7GUn3ih$PlaH2*L?t>o zRPO1OEmNmG_0)ytJb_4i%O%YO@4=LoEU8%EsBFNdvX+a7Ul&?39u@A&YRg4qeEL02 zKW|#3U^O^IA(#Uv!KSoQL$YmNe zYUU|FP-UHmSNvi0|HNF28u5qEEm4*;lCYfiWw*GcO4}9SPA=OA8Ij8LCzErVFD){guBO+U zOyR~QhbiMKZlJe@CX93)79;CS~*XRoX>pSz|u;nf3Gq}h0axth96TU@4Yv< z*6lxMoJ-9uQc)UDuX0#4(iJ-+ik4_X$O!V1w!h{$=xzmUsW7`uM@wm^!D7xEr}Sxq zw|J7{M5ln~yyes7gWeuCYihOI_or=`&QT3bv*O?4;`<;T%wc+YI_t+()z`M9rL=CT zQa{~Qk@j>~juMc{7mt=}Cgr>oq&G(>3Te+}+s0F4JZjt5T--JfnU2~M*jpO9Z(_3VU*J#?T?>YQ$*5}<8Uq6_E!q@U^ z%9L&Y6GK&A?qMg~|HR@%-sI@j;vDt`UTmDl(J0?^L1}@gxmByq-Fuv)y5#C~N_7rX z#ntLe)pD+Nntr!mjuL?GQo3&rO~0#{!%%0I5GoqZGjANw3{+HUF`1)tQm)C9m^3U7(toI>uEo|Z5Gqn0qDo70>p5w!#3(i?*uX0xZeMV6UzuG9-|t_Opj;ucx2$hlH4xNd3o)A>9+ zmGKE&JGh~*efq<1KmGRlCwu-dbKp+j4EgnvUCz2Z7(D9NTX$MQPjAq17T)@gj~=Kl z_&NZ6aqTvIFtD0@Ve97zqC) zd~E<9a!?ELbp)tX_u`8MFrn^2fboF@wFX~$7z_VXTt5i@n+P{9bq+*Dt;AOy#>4M? zD8dZ?99(xK{1s3#8~)k&(!x>jzd-oLz#oo;!iOGI1-@1>1OA6lLSI9hjxQhJ!w9Me zltY#33gdm?ABez3;r|QpSmMw(6n+3oj)#98crpB~kn0bBEWUbC1pjk5N}DN2*VEv` zbMj~;zPwO_-|s-r(eR%`CLqbxSojCQUybxYQmZGBXi505KnbF#_6RC`Ee8kw?g4KM zz6ya;YWxBC(gggyAXEZ>55xx_>QI9bsTll6z$d|{JVX@L8iac!{Qk%UB&|v!|Br(| z9+9nrKM=;s;dg~V2!2}x{8ae6Ll{9;3t;Ck_z%Iz5%6z>o;>(hBT%Qn-wS`72!Cim zIbTpJM?4bvyB+*E{O@}!d@l&s?S(I$z@LqL84dp;oSy){0O>po{y&laNGf#!`~%^a zBi@vT7lR)IzZUX?;lGA_oC$v=;#&&;Gi2Ub@atOPYa8$%MZBiKKMC<30sjwBRt#)@Hf(79Q<9t&xQXv(lHEw0y6gu`0pYek>u(o*hSW;ZV1om@SjIuhQNOjnK}>t zU5I=w{Kt^b2$K2|*G+}r9`TtBzZTbB0Dnz8gc<&ypuZ0OaOBGX_=g}o_3(e*K{;O{ zi@=8})e6^5gHK27@(^;VsiO?nwN$FvL~TvcSDUE3;uuZ|9@#P4y6nQ zRh@-Wy#fBWsGWmaqZQi~zft1a;ruZ8-B26H!5@d(yf4lT*by}jm0E>shM>h+Mfy;Uwtz2;p0M{Ne)8N|EZ(Oq$ zVVaEJH{ka={0n{a+3!tdk*bSYdv7M#img>5Cy&2QtTIoYSY zUY&AnE=3+t*`a)=JfDE@P&p!-UqLnx{t8@!PfM$L;0ef5{`ZC-MA*VOKLoBL+{!`t z4PC=XKV<2fPyKMsFNn`(oS%oDeI3qI9IA26G`L|nUj{c8*KUB0jnJ)dJ^iLMp=Mgu4swZn%|j_rTo?cOTp;xclKAfO`<`A-IR(9)Wul zZZ+IvaBJWmhg%DW8ZXSiSB{sZ?b+;4C+TnWIng4+SEHQbJHZQ$C% zQQNW;+|F>jz_o|l6|Mu^Zg3spXw=dPj=ta41+FXH9&mfYb%WarZg04K;HX{N53W1h z{&0D4J>Yu6^@8gScK}=;xC7z(!W{&6Fx(+<{ooFT%ZKX^7lbQ-3&9n_h2e_eB5+Z- zVz?5x!{82w8vu6%+(5V^;ReCQ;7Z}*aMZRW;Zkse;fBBsg*yuFXt-f;$G{y6cO2Ys zxZ~kQz>S0(1veUQ4BQEDW8qGOI|=S&xN&f&z?}+r8eAD%Iox=-3b+Yym2eZ`Cc#aH ztAd*XcRE}(+*G(4xLUYraA&~P!PUbxz)gpn0XGwF7Tj#OIdEsfodtI`+&OUP!p(&{ z5AJ-p3*hF#T?qFFxQpQC!!3Zj8153dg>aX`T?V%ZZZX{Da7*B>fV&dzD!8lRu7O($ zcP-p?aM#1#0CywYO>j5EErYuS4*%nelQ<7|Gu$$`Ti|YmyAAGkxaDwn!2JBu* zcfs8aw-W9ixO?I5gIfi6KimUw55heJ_b}WeaF4=KTl5&*8o0;ds7-tV?n$_(;MT!C z4fhP(vvAbr{0Z)PxEJ84&3O^-CAgR2UV(cR?lrjA;i#W}1MW?@x8UA}`!n2M;NF4T z2!|%gnWdr2bw=@M7MK53QJ}kYW^Y~KqZ@N(mKcaTGd>z!(~JR4oipM^ z7w(Ky(dDQ-xE^pl;d;UKhC2YR58Q!pec=v*JNW-;?=G9DDz^XtbCnRef|N*?fHa6m zNtb}Mba!`mcXxMpcXxMpcXz{mw*TVJuxCH>et+leSv7MO$w@&YE-8NHK|2y>QI+@)TaRrX+&e1(3EC0rv)u(MQhs7mUgtK z10Cr^XS&dpZgi&yJ?TYn`p}nt^k)DA8N^_QFqB~oX9Ob|#c0MbmT`<{0uwpMc`k5~ zOI+p(SGmS@Zg7)Z+~y8o+_R2=a-DL?SX#h{{hy<7c81gP6o3HgSkcJmQmp zg#1Dx5|e~qNlG%3lY*3_A~k79OHj|HBgk{o^9LEoNG39qg+IwkHnNk0oa7=mdB{sX z@)P7tK}BDXLi|l(iV*xUNHL02f|3OLKub}YGL)qp<*7hLDp8p#RHYi#sX=yOIp#IHngQ3?dd>AI?r62tnz(58u zm>~>h7{eLCNJcT5F^pv#;I&HLPVF>)F6YHnEv4Y-JnU*}+bBv70^YWgq)Fz(Edim?IqJ7{@umNltN^Go0ld z=efW|E^(PFT;&?qxxr0tahp5bryTkH5;RtHV9|%tbek3B1h)mE`jml3%Bgp%s6N8wN;a~SgPi0dH+jfQ zKJxPy1t>@%f?BCCMJP%!ic^A;{6i^%-N$7pOF7C@fr?b3GF7NbHL6pCn$)5;b*M`{ z>eGOr4r@eXnh?}v%?P@EEoezATGNKMw4*&8=tw6z(}k{dqdPt5NiTZShraZqKLZ%Z zAO&aK$t-3whq=sSJ_}gLA{MiRr7UAP zD_F@YR>(8$u4%YhrR4$KL3)1u02IYSNIF-$+N$OG{7C?ae^YBgsT&vhXKa$wqc^kds{G zCJ%YZM}GdI00k+;-xQ_@MJYycN)YVx4*FiDC`}p4QjYReAn4~*qB2#eN;RregPPQ$ zHg%{=J?hhdhBTrvO=wCpn$v=ow4ya_XiGcV(}9k3qBC9SN;kUGgP!!FH+|?!Kl(F( zfed0WLm0|1hBJbZjAArn7|S@uGl7XrVlq>h$~2}kgPF`?HglNEJm#~2g)Cw*OIXS> zma~GDtYS55Sj#%rvw@9lVl!LV$~LyMgPrVRH+$I2KK65fgB;>8M>xtcj&p*OoZ>WR zILkTCbAgLo;xbpb$~CTYgPYvqHg~woJ?`^>hdkmjPk72Rp7Vm2yy7))c*{H9^MQ|i z;xk_e5z=>0NJ0^sFnmW?f<5Tr_%A;Yo(TL%L?RKHC`9EaqVY4)i9t+a5t}%~B_8of zKtg^Y5s68{uOuZI$qD*~DM>|Y(vX(lNXPG_=MOTFkxXPJ3xAT8Y-A?~ImtzC@{pH& z@3WO<{^qlwuU81SJW2-lZr_8Ol_iqVW=EaMo@1ST?x$xLA?)0oZ-W-^P}%waC`n9l+hvWUejVJXX4&I(qt ziq))PE$dj%1~#&Z&1_*S+t|(ycCw4z>|rna*v|nDa)`qm;V8#A&IwL(iqo9oEay1S z1uk-l%Ut0q*SO9NZgPv;+~F?wxX%L~@`%Sg;VI8}&I?}hir2j1E$?{G2R`zN&wL?7 zC~==}_?BSi6N=D;;XA_eJ>dxEA3qSD2>eJyA`zJ=L?xKMM|Y(vX(lNXPG_=MOTFkxXPJ3&G4JE7{0S4sw!<+~grI z`N&T&7b!qN3K7gb3R8rl1aq9?l%OQR%%T*fDMMMxQJxA^q!N{>LRG3!of_1n7PYBE zUFuPv1~jA*jcGztn$esVw4@cSX+vAu(Vh-;q!XR#LRY%cogVb07rp62U;5FX0Ssgi zgBik5hB2HGjARs}8N*n{F`fxbWD=8^!c?X)of*tz7PFbdT;?&K1uSF{i&?@_ma&`_ ztYj6dS;Jb^v7QZVWD}d&!dAAiogM6C7rWWRUiPt{103WKhdIJgj&Yn5oa7XzIm21b zah?lYUG8z82R!5vk9opVp7ER)yyO*cc+Feh@tzNS-nsX|q%QJospq!zWQLtW}op9VCf5shg= zQ<~A77PO=lt!YDB+R>g4bfgoV=|We!(VZUjq!+#ELtpyQp8*VH5Q7=QP=+y_5sYLM zqZz|k#xb4=Ok@(1nZi`2F`XIAWEQiT!(8Sup9L&r5sO*EQkJot6|7_xt69TZ*0G)q zY-AIg*}_(~v7H_4WEZ>H!(R5Wp937^5QjO!QI2t(6P)A}r#Zt}&T*a#T;vj$xx&}y z|L+Dih4K4g3tQR7c6P9nUF>ELd)dc+4seh|9OejLpRYIY^#;D)z}Fl2|G9zx0n*rY AeEb#x7kA=4(vuP5$**#c?*moxVyZ~th4xqj8X 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 diff --git a/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.xml b/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.xml index fb7e97da..4bd9def3 100644 --- a/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.xml +++ b/src/packages/Newtonsoft.Json.4.0.8/lib/net40/Newtonsoft.Json.xml @@ -29,25 +29,37 @@

The depth of the current token in the JSON document. + + + Gets the path of the current JSON token. + + Gets or sets the culture used when reading JSON. Defaults to . @@ -238,27 +270,39 @@ Reads the next JSON token from the stream as a . - A or a null reference if the next JSON token is null. + A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. @@ -674,9 +718,24 @@ Gets the state of the writer.
+ + + Gets the path of the writer. + + - Indicates how the output is formatted. + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling when writing JSON. @@ -1345,12 +1404,12 @@ - First attempt to use the public default constructor then fall back to single paramatized constructor. + First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - Allow Json.NET to use a non-public default constructor. + Json.NET will use a non-public default constructor before falling back to a paramatized constructor. @@ -1385,11 +1444,311 @@ true if this instance can convert the specified object type; otherwise, false. + + + Instructs the how to serialize the collection. + + + + + Instructs the how to serialize the object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets the collection's items converter. + + The collection's items converter. + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during Json serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + Instructs the to use the specified constructor when deserializing that object. + + + Contract details for a used by the . + + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets the method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non public. + + true if the default object creator is non-public; otherwise, false. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method called when an error is thrown during the serialization of the object. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + Represents a raw JSON string. @@ -2325,77 +2684,6 @@ Contract details for a used by the . - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether [default creator non public]. - - true if the default object creator is non-public; otherwise, false. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - Initializes a new instance of the class. @@ -2680,48 +2968,6 @@ Instructs the how to serialize the collection. - - - Instructs the how to serialize the object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets or sets a value that indicates whether to preserve object reference data. - - - true to keep object reference; otherwise, false. The default is false. - - Initializes a new instance of the class. @@ -2919,6 +3165,36 @@ The context. + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + Represents a reader that provides validation. @@ -2951,6 +3227,18 @@ A . + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + Reads the next JSON token from the stream as a . @@ -2982,6 +3270,11 @@ The depth of the current token in the JSON document. + + + Gets the path of the current JSON token. + + Gets the quotation mark character used to enclose the value of a string. @@ -3042,12 +3335,20 @@ - All members are serialized by default. Members can be excluded using the . + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. - Only members must be marked with the are serialized. + Only members must be marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with . @@ -3134,31 +3435,6 @@ The calling serializer. The object value. - - - Specifies whether a DateTime object represents a local time, a Coordinated Universal Time (UTC), or is not specified as either local time or UTC. - - - - - The time represented is local time. - - - - - The time represented is UTC. - - - - - The time represented is not specified as either local time or Coordinated Universal Time (UTC). - - - - - Preserves the DateTimeKind field of a date when a DateTime object is converted to a string and the string is then converted back to a DateTime object. - - Converts XML to and from JSON. @@ -3220,7 +3496,7 @@ - Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. @@ -3242,26 +3518,38 @@ Reads the next JSON token from the stream as a . - A or a null reference if the next JSON token is null. + A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. @@ -3681,6 +3969,12 @@ The line position indicating where the error occurred. + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + Represents a collection of . @@ -3726,11 +4020,20 @@ Represents JavaScript's NaN as a string. This field is read-only. - + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + - Converts the to its JSON string representation. + Converts the to its JSON string representation using the specified. The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. A JSON string representation of the . @@ -3740,6 +4043,14 @@ The value to convert. A JSON string representation of the . + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + Converts the to its JSON string representation. @@ -3915,6 +4226,17 @@ A collection converters used while serializing. A JSON string representation of the object. + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be is used. + + A JSON string representation of the object. + + Serializes the specified object to a JSON string using a collection of . @@ -3927,6 +4249,37 @@ A JSON string representation of the object. + + + Asynchronously serializes the specified object to a JSON string using a collection of . + + The object to serialize. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string using a collection of . + + The object to serialize. + Indicates how the output is formatted. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string using a collection of . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be is used. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + Deserializes the JSON to a .NET object. @@ -4016,6 +4369,53 @@ The deserialized object from the JSON string. + + + Asynchronously deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + Populates the object with values from the JSON string. @@ -4034,6 +4434,20 @@ If this is null, default serialization settings will be is used. + + + Asynchronously populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + + A task that represents the asynchronous populate operation. + + Serializes the XML node to a JSON string. @@ -4333,6 +4747,36 @@ The context. + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + Contains the LINQ to JSON extension methods. @@ -5130,26 +5574,38 @@ Reads the next JSON token from the stream as a . - A or a null reference if the next JSON token is null. + A or a null reference if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. Reads the next JSON token from the stream as a . - A . + A . This method will return null at the end of an array. @@ -5606,6 +6062,12 @@ The line position indicating where the error occurred. + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + Resolves from an id. @@ -5656,13 +6118,19 @@ - Gets the associated with the validation event. + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. - The JsonSchemaException associated with the validation event. + The path of the JSON location where the validation error occurred. - Gets the text description corresponding to the validation event. + Gets the text description corresponding to the validation error. The text description. @@ -5862,6 +6330,22 @@ true if serialized compiler generated members; otherwise, false. + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + Initializes a new instance of the class. @@ -5920,6 +6404,12 @@ The member that caused the error. + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + Gets or sets a value indicating whether this is handled. @@ -5937,6 +6427,12 @@ The underlying type for the contract. + + + Gets the of the collection items. + + The of the collection items. + Contract details for a used by the . @@ -5954,6 +6450,18 @@ The property name resolver. + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + Maps a JSON property to a .NET member or constructor parameter. @@ -6575,14 +7083,6 @@ The parametrized constructor. - - - Serializes the dynamic. - - The writer. - The value. - The contract. - Contract details for a used by the . @@ -6675,14 +7175,14 @@ Include the .NET type name when serializing into a JSON array structure. - + - Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Always include the .NET type name when serializing. - + - Always include the .NET type name when serializing. + Include the .NET type name when the type of the object being serialized is not the same as its declared type. @@ -6827,63 +7327,6 @@ Byte data. - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. @@ -7000,5 +7443,47 @@ The string. Null if the string was null, otherwise the string unchanged. + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + From ca6f66550de687fd3be3d668d210335c4a54918a Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 23 Aug 2012 11:22:56 -0400 Subject: [PATCH 16/26] Change pipeline, add debughtmltemplaterenderer, add tests --- src/Cassette.Hogan/HoganPipeline.cs | 41 +- src/Cassette.JQueryTmpl/JQueryTmplPipeline.cs | 5 +- .../KnockoutJQueryTmplPipeline.cs | 5 +- .../Configuration/DiskBackedBundleCache.cs | 643 ++++++++++-------- src/Cassette/AssetBase.cs | 7 +- src/Cassette/Cassette.csproj | 2 + .../BundleContainerFactoryBase.cs | 13 +- .../Configuration/CassetteSettings.cs | 2 +- .../Configuration/DiskBackedBundleCache.cs | 201 ++++-- src/Cassette/Configuration/FileHelper.cs | 157 ++--- src/Cassette/Configuration/IFileHelper.cs | 28 +- .../DebugHtmlTemplateBundleRenderer.cs | 41 ++ .../HtmlTemplates/HoganTmplPipeline.cs | 20 +- src/Cassette/HtmlTemplates/HtmlConstants.cs | 12 + .../HtmlTemplates/HtmlTemplatePipeline.cs | 5 +- .../RemoteHtmlTemplateBundleRenderer.cs | 4 +- 16 files changed, 664 insertions(+), 522 deletions(-) create mode 100644 src/Cassette/HtmlTemplates/DebugHtmlTemplateBundleRenderer.cs create mode 100644 src/Cassette/HtmlTemplates/HtmlConstants.cs diff --git a/src/Cassette.Hogan/HoganPipeline.cs b/src/Cassette.Hogan/HoganPipeline.cs index e750b566..4bd77094 100644 --- a/src/Cassette.Hogan/HoganPipeline.cs +++ b/src/Cassette.Hogan/HoganPipeline.cs @@ -1,28 +1,31 @@ -using System.Collections.Generic; -using Cassette.BundleProcessing; -using Cassette.Configuration; - -namespace Cassette.HtmlTemplates -{ - public class HoganPipeline : MutablePipeline +using System.Collections.Generic; +using Cassette.BundleProcessing; +using Cassette.Configuration; + +namespace Cassette.HtmlTemplates +{ + public class HoganPipeline : MutablePipeline { /// /// The name of the JavaScript variable to store compiled templates in. /// For example, the default is "JST", so a template will be registered as JST['my-template'] = ...;. /// - public string JavaScriptVariableName { get; set; } - - protected override IEnumerable> CreatePipeline(HtmlTemplateBundle bundle, CassetteSettings settings) - { - yield return new AssignHtmlTemplateRenderer( - new RemoteHtmlTemplateBundleRenderer(settings.UrlGenerator) - ); - yield return new AssignContentType("text/javascript"); - yield return new ParseHtmlTemplateReferences(); + public string JavaScriptVariableName { get; set; } + + protected override IEnumerable> CreatePipeline(HtmlTemplateBundle bundle, CassetteSettings settings) + { + yield return new AssignHtmlTemplateRenderer( + new RemoteHtmlTemplateBundleRenderer(settings.UrlGenerator) + ); + yield return new AssignContentType("text/javascript"); + yield return new ParseHtmlTemplateReferences(); yield return new CompileHogan(); yield return new RegisterTemplatesWithHogan(bundle, JavaScriptVariableName); yield return new AssignHash(); - yield return new ConcatenateAssets(); - } - } + if (!settings.IsDebuggingEnabled) + { + yield return new ConcatenateAssets(); + } + } + } } \ No newline at end of file diff --git a/src/Cassette.JQueryTmpl/JQueryTmplPipeline.cs b/src/Cassette.JQueryTmpl/JQueryTmplPipeline.cs index 6e314149..0ba94c63 100644 --- a/src/Cassette.JQueryTmpl/JQueryTmplPipeline.cs +++ b/src/Cassette.JQueryTmpl/JQueryTmplPipeline.cs @@ -16,7 +16,10 @@ protected override IEnumerable> CreatePipel yield return new CompileJQueryTmpl(); yield return new RegisterTemplatesWithJQueryTmpl(bundle); yield return new AssignHash(); - yield return new ConcatenateAssets(); + if (!settings.IsDebuggingEnabled) + { + yield return new ConcatenateAssets(); + } } } } \ No newline at end of file diff --git a/src/Cassette.KnockoutJQueryTmpl/KnockoutJQueryTmplPipeline.cs b/src/Cassette.KnockoutJQueryTmpl/KnockoutJQueryTmplPipeline.cs index 881b8134..b72a7273 100644 --- a/src/Cassette.KnockoutJQueryTmpl/KnockoutJQueryTmplPipeline.cs +++ b/src/Cassette.KnockoutJQueryTmpl/KnockoutJQueryTmplPipeline.cs @@ -16,7 +16,10 @@ protected override IEnumerable> CreatePipel yield return new CompileKnockoutJQueryTmpl(); yield return new RegisterTemplatesWithJQueryTmpl(bundle); yield return new AssignHash(); - yield return new ConcatenateAssets(); + if (!settings.IsDebuggingEnabled) + { + yield return new ConcatenateAssets(); + } } } } \ No newline at end of file diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs index 0726dbc4..7227135c 100644 --- a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs @@ -1,289 +1,354 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using Cassette.BundleProcessing; -using Cassette.IO; -using Moq; -using Should; -using Xunit; - - -namespace Cassette.Configuration -{ - public class DiskBackedBundleCache_Tests - { - - #region Setup and Helper Methods - - Mock fileHelper; - Mock> uncachedToCachedFiles; - IAsset fileAsset, concatenatedAsset; - TestableBundle fileBundle, concatenatedBundle, emptyBundle; - DiskBackedBundleCache diskBackedBundleCache; - List unprocessedAssetPaths; - MethodInfo AddToDiskMethodInfo, GetFromDiskMethodInfo; - - public DiskBackedBundleCache_Tests() - { - fileHelper = new Mock(); - uncachedToCachedFiles = new Mock>(MockBehavior.Strict); - diskBackedBundleCache = new DiskBackedBundleCache(); - unprocessedAssetPaths = new List(); - fileBundle = new TestableBundle("~/file"); - concatenatedBundle = new TestableBundle("~/concatenated"); - emptyBundle = new TestableBundle("~/empty"); - var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); - fileAsset = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", Type.Missing }), fileBundle); - fileBundle.Assets.Add(fileAsset); - concatenatedAsset = new ConcatenatedAsset(new List {fileAsset} ); - concatenatedBundle.Assets.Add(concatenatedAsset); - AddToDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("AddToDisk", BindingFlags.NonPublic | BindingFlags.Instance); - GetFromDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("GetFromDisk", BindingFlags.NonPublic | BindingFlags.Instance); - } - - void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle, - IEnumerable unprocessedAssetPaths) - { - AddToDiskMethodInfo.Invoke(diskBackedBundleCache, new object[] - { fileHelper, uncachedToCachedFiles, bundle, unprocessedAssetPaths }); - } - - bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) - { - return (bool) GetFromDiskMethodInfo.Invoke(diskBackedBundleCache, - new object[] { fileHelper, uncachedToCachedFiles, bundle }); - } - - #endregion - - #region AddBundle - - [Fact] - public void AddBundle_EmptyBundleCachedAndNotCached() - { - fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), - It.IsAny(), It.IsAny())) - .Throws(new Exception("Try to load asset that's not on bundle off disk")); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(true) - .Verifiable(); - unprocessedAssetPaths.Add("wasd"); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); - uncachedToCachedFiles.Verify(d => d.ContainsKey(unprocessedAssetPaths.First()), Times.Once()); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); - uncachedToCachedFiles.Verify(d => d.ContainsKey(unprocessedAssetPaths.First()), Times.Once()); - } - - [Fact] - public void AddBundle_ConcatenatedAsset() - { - fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), - It.IsAny(), It.IsAny())) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.ContainsKey(concatenatedBundle.Path)) - .Returns(false) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.Add(concatenatedBundle.Path, concatenatedBundle.Path)) - .Verifiable(); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle, unprocessedAssetPaths); - fileHelper.Verify(); - } - - [Fact] - public void AddBundle_FileAsset() - { - fileHelper.Setup(fh => fh.CreateFileOnDiskFromAsset(It.IsAny(), - It.IsAny(), It.IsAny())) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.ContainsKey(fileAsset.SourceFile.FullPath)) - .Returns(false) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.Add(fileAsset.SourceFile.FullPath, fileAsset.SourceFile.FullPath)) - .Verifiable(); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle, unprocessedAssetPaths); - fileHelper.Verify(); - } - - #endregion - - #region GetAssetPaths - - [Fact] - public void GetAssetPaths_EmptyConcatenatedFile() - { - diskBackedBundleCache.GetAssetPaths(emptyBundle).ShouldBeEmpty(); - diskBackedBundleCache.GetAssetPaths(fileBundle).ShouldContain(fileAsset.SourceFile.FullPath); - diskBackedBundleCache.GetAssetPaths(concatenatedBundle).ShouldBeEmpty(); - } - - #endregion - - #region GetBundle - - [Fact] - public void GetBundle_NotPresent() - { - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(false) - .Verifiable(); - diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle).ShouldBeNull(); - fileHelper.Verify(); - } - - [Fact] - public void GetBundle_PresentIfNoAssets() - { - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false) - .Verifiable(); - diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle).ShouldNotBeNull(); - fileHelper.Verify(); - } - - [Fact] - public void GetBundle_PresentWithFileBundle() - { - /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) - .Verifiable();*/ - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(true) - .Verifiable(); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Returns(DateTime.Today) - .Verifiable(); - fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(fileAsset.SourceFile.FullPath); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())) - .Verifiable(); - //File asset should have same file, but it should not point be the same one, as fileBundle.Assets should have been cleared - Path.GetFileName(diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle) - .Assets.First().SourceFile.FullPath).Trim().ShouldContain(Path.GetFileName(fileAsset.SourceFile.FullPath).Trim()); - fileBundle.Assets.First().ShouldNotBeSameAs(fileAsset); - - fileHelper.Verify(); - uncachedToCachedFiles.Verify(); - } - - [Fact] - public void GetBundle_FailWithConcatenatedBundle() - { - /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) - .Verifiable();*/ - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(true); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Returns(DateTime.Today); - fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns("test string"); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false); - uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); - Assert.Throws(() => diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); - } - - #endregion - - #region ContainsKey - /// Will not check if a bundle is present or not present as that is covered with GetBundle testing. - - [Fact] - public void ContainsKey_PresentInMemory() - { - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(true); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Returns(DateTime.Today); - fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(fileAsset.SourceFile.FullPath); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false); - uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); - - diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); - - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Throws(new Exception("Did not find bundle that should have been in memory.")); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Throws(new Exception("Did not find bundle that should have been in memory.")); - fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Throws(new Exception("Did not find bundle that should have been in memory.")); - - diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); - } - - [Fact] - public void ContainsKey_FailWithConcatenatedBundle() - { - /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) - .Verifiable();*/ - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(true); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Returns(DateTime.Today); - fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns("test string"); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false); - uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); - Assert.Throws(() => diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); - } - #endregion - - #region FixReferences - - [Fact] - public void FixReferences_FileAndEmptyBundles() - { - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(true); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle, unprocessedAssetPaths); - unprocessedAssetPaths.Add("wasd"); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(true); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); - diskBackedBundleCache.FixReferences(new List { fileBundle }); - diskBackedBundleCache.FixReferences(new List { emptyBundle }); - } - - #endregion - - #region AddToDisk - ///just checking unprocessedAssetPath as other code paths checked by AddBundle tests - - [Fact] - public void AddToDisk_UnprocessedAssetPaths() - { - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)))) - .Returns(false) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.Add(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)), - It.Is(s => s.Equals(emptyBundle.Path)))) - .Verifiable(); - unprocessedAssetPaths.Add(fileAsset.SourceFile.FullPath); - AddToDisk(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle, unprocessedAssetPaths); - uncachedToCachedFiles.Verify(); - uncachedToCachedFiles.Verify(d => d.Add(It.IsAny(), It.IsAny()), Times.Once()); - } - - #endregion - - #region GetFromDisk - ///Many code paths are checked by the GetBundle and ContainsKey test - - [Fact] - public void GetFromDisk_CheckProperRehydration() - { - - } - - #endregion - - } -} +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using Cassette.BundleProcessing; +using Cassette.IO; +using Moq; +using Should; +using Xunit; + + +namespace Cassette.Configuration +{ + public class DiskBackedBundleCache_Tests + { + + #region Setup and Helper Methods + + Mock fileHelper; + Mock> uncachedToCachedFiles; + IAsset fileAsset, concatenatedAsset; + TestableBundle fileBundle, concatenatedBundle, emptyBundle; + DiskBackedBundleCache diskBackedBundleCache; + List unprocessedAssetPaths; + MethodInfo AddToDiskMethodInfo, GetFromDiskMethodInfo; + + public DiskBackedBundleCache_Tests() + { + fileHelper = new Mock(MockBehavior.Strict); + fileHelper.Setup(fh => fh.PrepareCachingDirectory(It.IsAny(), It.IsAny())); + uncachedToCachedFiles = new Mock>(MockBehavior.Strict); + diskBackedBundleCache = new DiskBackedBundleCache(fileHelper.Object); + unprocessedAssetPaths = new List(); + fileBundle = new TestableBundle("~/file"); + concatenatedBundle = new TestableBundle("~/concatenated"); + emptyBundle = new TestableBundle("~/empty"); + var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); + fileAsset = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", Type.Missing }), fileBundle); + fileBundle.Assets.Add(fileAsset); + concatenatedAsset = new ConcatenatedAsset(new List {fileAsset} ); + concatenatedBundle.Assets.Add(concatenatedAsset); + AddToDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("AddToDisk", BindingFlags.NonPublic | BindingFlags.Instance); + GetFromDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("GetFromDisk", BindingFlags.NonPublic | BindingFlags.Instance); + } + + void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle, + IEnumerable unprocessedAssetPaths) + { + AddToDiskMethodInfo.Invoke(diskBackedBundleCache, new object[] + { fileHelper, uncachedToCachedFiles, bundle, unprocessedAssetPaths }); + } + + bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) + { + return (bool) GetFromDiskMethodInfo.Invoke(diskBackedBundleCache, + new object[] { fileHelper, uncachedToCachedFiles, bundle }); + } + + #endregion + + #region AddBundle + + [Fact] + public void AddBundle_EmptyBundleCachedAndNotCached() + { + fileHelper.Setup(fh => fh.Write(It.IsAny(), It.IsAny())) + .Throws(new Exception("tried to write an asset when none exists")); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(true) + .Verifiable(); + unprocessedAssetPaths.Add("wasd"); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); + uncachedToCachedFiles.Verify(d => d.ContainsKey(unprocessedAssetPaths.First()), Times.Once()); + } + + + public void AddBundle_ConcatenatedAsset() + { + fileHelper.Setup(fh => fh.Write(It.IsAny(), It.IsAny())) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.ContainsKey(concatenatedBundle.Path)) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(concatenatedBundle.Path, concatenatedBundle.Path)) + .Verifiable(); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle, unprocessedAssetPaths); + fileHelper.Verify(); + } + + [Fact] + public void AddBundle_FileAsset() + { + fileHelper.Setup(fh => fh.Write(It.IsAny(), It.IsAny())) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.ContainsKey(fileAsset.SourceFile.FullPath)) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(fileAsset.SourceFile.FullPath, fileAsset.SourceFile.FullPath)) + .Verifiable(); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle, unprocessedAssetPaths); + fileHelper.Verify(); + } + + #endregion + + #region GetAssetPaths + + [Fact] + public void GetAssetPaths_EmptyConcatenatedFile() + { + diskBackedBundleCache.GetAssetPaths(emptyBundle).ShouldBeEmpty(); + diskBackedBundleCache.GetAssetPaths(fileBundle).ShouldContain(fileAsset.SourceFile.FullPath); + //diskBackedBundleCache.GetAssetPaths(concatenatedBundle).ShouldBeEmpty(); + } + + #endregion + + #region GetBundle + + [Fact] + public void GetBundle_NotPresent() + { + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(false) + .Verifiable(); + diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle).ShouldBeNull(); + fileHelper.Verify(); + } + + [Fact] + public void GetBundle_PresentIfNoAssets() + { + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false) + .Verifiable(); + diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle).ShouldNotBeNull(); + fileHelper.Verify(); + } + + [Fact] + public void GetBundle_PresentWithFileBundle() + { + /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) + .Verifiable();*/ + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true) + .Verifiable(); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today) + .Verifiable(); + fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) + .Returns("[]"); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())) + .Verifiable(); + //File asset should have same file, but it should not point be the same one, as fileBundle.Assets should have been cleared + Path.GetFileName(diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle) + .Assets.First().SourceFile.FullPath).Trim().ShouldContain(Path.GetFileNameWithoutExtension(fileAsset.SourceFile.FullPath).Trim()); + fileBundle.Assets.First().ShouldNotBeSameAs(fileAsset); + fileHelper.Verify(); + uncachedToCachedFiles.Verify(); + } + + + public void GetBundle_FailWithConcatenatedBundle() + { + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) + .Returns("[]"); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + Assert.Throws(() => diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); + } + + #endregion + + #region ContainsKey + /// Will not check if a bundle is present or not present as that is covered with GetBundle testing. + + [Fact] + public void ContainsKey_PresentInMemory() + { + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) + .Returns("[]"); + diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); + + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Throws(new Exception("Did not find bundle that should have been in memory.")); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Throws(new Exception("Did not find bundle that should have been in memory.")); + /*fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Throws(new Exception("Did not find bundle that should have been in memory."));*/ + + diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); + } + + + public void ContainsKey_FailWithConcatenatedBundle() + { + /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) + .Verifiable();*/ + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) + .Returns("[]"); + /*fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns("test string");*/ + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + Assert.Throws(() => diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); + } + #endregion + + #region FixReferences + + [Fact] + public void FixReferences_FileAndEmptyBundles() + { + fileHelper.Setup(fh => fh.Write(It.IsAny(), It.IsAny())); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(true); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle, unprocessedAssetPaths); + unprocessedAssetPaths.Add("wasd"); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(true); + diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle, unprocessedAssetPaths); + var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); + var fileAssetChild = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", "~/file2" }), fileBundle); + fileAsset.AddReference(fileAssetChild.SourceFile.FullPath, 1); + fileBundle.Assets.Add(fileAssetChild); + var containsDict = new Dictionary(); + var originalPath = fileAsset.References.First().Path; + + containsDict.Add(fileAsset.References.First().Path, "good test result"); + diskBackedBundleCache.FixReferences(containsDict, new List { fileBundle }); + fileAsset.References.First().Path.ShouldEqual("good test result"); + + containsDict.Add("good test result", "bad test result"); + diskBackedBundleCache.FixReferences(containsDict, new List { fileBundle }); + fileAsset.References.First().Path.ShouldEqual("good test result"); + + fileAssetChild.AddReference("http://www.google.com", -1); + containsDict.Add("http://www.google.com", "bad test result"); + diskBackedBundleCache.FixReferences(containsDict, new List { fileBundle }); + fileAssetChild.References.First().Path.ShouldEqual("http://www.google.com"); + + //Just making sure it doesn't do anything with an empty bundle. + diskBackedBundleCache.FixReferences(containsDict, new List { emptyBundle }); + } + + #endregion + + #region AddToDisk + ///just checking unprocessedAssetPath as other code paths checked by AddBundle tests + + [Fact] + public void AddToDisk_UnprocessedAssetPaths() + { + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)))) + .Returns(false) + .Verifiable(); + uncachedToCachedFiles.Setup(d => d.Add(It.Is(s => s.Equals(fileAsset.SourceFile.FullPath)), + It.Is(s => s.Equals(emptyBundle.Path)))) + .Verifiable(); + unprocessedAssetPaths.Add(fileAsset.SourceFile.FullPath); + AddToDisk(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle, unprocessedAssetPaths); + uncachedToCachedFiles.Verify(); + uncachedToCachedFiles.Verify(d => d.Add(It.IsAny(), It.IsAny()), Times.Once()); + } + + #endregion + + #region CreateFileOnDiskFromAsset + ///Many code paths are checked by other tests + + [Fact] + public void CreateFileOnDiskFromAsset_CheckProperDehydration() + { + fileHelper.Setup(fh => fh.Write(It.IsAny(), "asset content")) + .Verifiable(); + fileHelper.Setup(fh => fh.Write(It.IsAny(), "[{\"AssetReferenceType\":1,\"LineNumber\":1,\"Path\":\"~/file2\"}]")) + .Verifiable(); + fileHelper.Setup(fh => fh.Write(It.IsAny(), "[]")) + .Verifiable(); + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); + unprocessedAssetPaths.Add("~/a"); + var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); + var fileAssetChild = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", "~/file2" }), fileBundle); + fileAsset.AddReference(fileAssetChild.SourceFile.FullPath, 1); + fileBundle.Assets.Add(fileAssetChild); + AddToDisk(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle, unprocessedAssetPaths); + fileBundle.Assets.First().References.First().Path.Equals(fileAssetChild.SourceFile.FullPath); + fileHelper.Verify(); + fileHelper.Verify(fh => fh.Write(It.IsAny(), "[{\"AssetReferenceType\":1,\"LineNumber\":1,\"Path\":\"~/file2\"}]"), Times.Once()); + fileHelper.Verify(fh => fh.Write(It.IsAny(), "[]"), Times.Once()); + fileHelper.Verify(fh => fh.Write(It.IsAny(), "asset content"), Times.Exactly(2)); + } + + #endregion + + #region GetAssetReferencesFromDisk + ///Many code paths are checked by the GetBundle and ContainsKey tests + + [Fact] + public void GetAssetReferencesFromDisk_CheckProperRehydration() + { + fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) + .Returns("[{\"AssetReferenceType\":1,\"LineNumber\":1,\"Path\":\"~/file2\"}]") + .Verifiable(); + fileHelper.Setup(fh => fh.Exists(It.IsAny())) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + uncachedToCachedFiles.Setup(fh => fh.ContainsKey(It.IsAny())) + .Returns(true); + var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); + var fileAssetChild = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", "~/file2" }), fileBundle); + fileAsset.AddReference(fileAssetChild.SourceFile.FullPath, 1); + fileBundle.Assets.Add(fileAssetChild); + GetFromDisk(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle); + fileBundle.Assets.First().References.First().Path.Equals(fileAssetChild.SourceFile.FullPath); + fileHelper.Verify(); + } + + #endregion + + } +} diff --git a/src/Cassette/AssetBase.cs b/src/Cassette/AssetBase.cs index 7b96738d..16995c83 100644 --- a/src/Cassette/AssetBase.cs +++ b/src/Cassette/AssetBase.cs @@ -9,7 +9,12 @@ namespace Cassette { public abstract class AssetBase : IAsset { - public byte[] postProcessingByteArray = null; + private byte[] postProcessingByteArray = null; + + public string postProcessingString + { + get { return Encoding.UTF8.GetString(postProcessingByteArray); } + } readonly List transformers = new List(); diff --git a/src/Cassette/Cassette.csproj b/src/Cassette/Cassette.csproj index 26e53791..1a791308 100644 --- a/src/Cassette/Cassette.csproj +++ b/src/Cassette/Cassette.csproj @@ -88,6 +88,8 @@ + + diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index a153074b..57faa09d 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -23,8 +23,8 @@ protected Bundle ProcessSingleBundle(IFileHelper fileHelper, Dictionary bundles) { ((ScriptBundle)bundles[i]).Renderer = new DebugScriptBundleHtmlRenderer(settings.UrlGenerator); } - else if (typeof(HtmlTemplateBundle).IsAssignableFrom(bundles[i].GetType()) && ((HtmlTemplateBundle)bundles[i]).Renderer == null) - { - ((HtmlTemplateBundle)bundles[i]).Renderer = new RemoteHtmlTemplateBundleRenderer(settings.UrlGenerator); + else if (typeof(HtmlTemplateBundle).IsAssignableFrom(bundles[i].GetType())) + { + ((HtmlTemplateBundle)bundles[i]).Renderer = new DebugHtmlTemplateBundleRenderer(settings.UrlGenerator); + bundles[i].ContentType = "text/javascript"; } } - CassetteSettings.bundles.FixReferences(bundles); + CassetteSettings.bundles.FixReferences(CassetteSettings.uncachedToCachedFiles, bundles); } Trace.Source.TraceInformation("Bundle processing completed."); } diff --git a/src/Cassette/Configuration/CassetteSettings.cs b/src/Cassette/Configuration/CassetteSettings.cs index 816d3c06..ec4a0020 100644 --- a/src/Cassette/Configuration/CassetteSettings.cs +++ b/src/Cassette/Configuration/CassetteSettings.cs @@ -27,7 +27,7 @@ public class CassetteSettings { typeof(HtmlTemplateBundle), new HtmlTemplatePipeline() }, }; - public static DiskBackedBundleCache bundles = new DiskBackedBundleCache(); + public static DiskBackedBundleCache bundles = new DiskBackedBundleCache(new FileHelper()); public static Dictionary uncachedToCachedFiles = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index b9c3bf51..d51c0c1b 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -1,43 +1,32 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using Cassette.BundleProcessing; +using System.Reflection; using Cassette.IO; -using Cassette.Manifests; -using Cassette.Scripts; -using Cassette.Stylesheets; -using Cassette.Utilities; +using Newtonsoft.Json; namespace Cassette.Configuration { public class DiskBackedBundleCache { - const string CACHE_DIRECTORY = @"C:\DiskCachedBundles\"; - IDictionary _bundles; + const string CacheDirectory = @"C:\DiskCachedBundles\"; + readonly IDictionary _bundles; + string lastModified; /// - /// Creates the directory if needed. + /// Creates the directory if needed and clears it every day. /// - public DiskBackedBundleCache() + public DiskBackedBundleCache(IFileHelper fileHelper) { - if (!Directory.Exists(CACHE_DIRECTORY)) - { - Directory.CreateDirectory(CACHE_DIRECTORY); - } + fileHelper.PrepareCachingDirectory(CacheDirectory, GetCachebleHash(GetAssemblyLastModifiedTime())); _bundles = new Dictionary(); } /// /// Adds it to the cache if not in there, will not overwrite already existing /// - /// A descendent of Bundle - /// - /// - public void AddBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, - Bundle value, IEnumerable unprocessedAssetPaths) + public void AddBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, + Bundle value, IEnumerable unprocessedAssetPaths) { if (!_bundles.ContainsKey(key)) { @@ -49,12 +38,8 @@ public void AddBundle(IFileHelper fileHelper, IDictionary uncach public IEnumerable GetAssetPaths(Bundle bundle) { var assetPaths = new List(); - foreach (var asset in bundle.Assets) + foreach (IAsset asset in bundle.Assets) { - if (asset is ConcatenatedAsset) - { - continue; - } assetPaths.Add(asset.SourceFile.FullPath); } return assetPaths; @@ -64,8 +49,8 @@ public IEnumerable GetAssetPaths(Bundle bundle) /// Assumes runs before processing, so no concatenated bundles. May throw if it receives /// a concatenated bundle. /// - public Bundle GetBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, - Bundle bundle) + public Bundle GetBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, + Bundle bundle) { if (!ContainsKey(fileHelper, uncachedToCachedFiles, key, bundle)) { @@ -78,14 +63,14 @@ public Bundle GetBundle(IFileHelper fileHelper, IDictionary unca /// Assumes runs before processing, so no concatenated bundles. May throw if it receives /// a concatenated bundle. /// - public bool ContainsKey(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, - Bundle bundle) + public bool ContainsKey(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, + Bundle bundle) { if (_bundles.ContainsKey(key)) { return true; } - var returnValue = GetFromDisk(fileHelper, uncachedToCachedFiles, bundle); + bool returnValue = GetFromDisk(fileHelper, uncachedToCachedFiles, bundle); if (returnValue) { _bundles.Add(key, bundle); @@ -97,36 +82,27 @@ public bool ContainsKey(IFileHelper fileHelper, IDictionary unca /// Scan all references in bundles and make sure that they match the assets /// that are actually loaded. /// - /// The bundles to scan. - public void FixReferences(IList bundles) + public void FixReferences(Dictionary uncachedToCachedFiles, IList bundles) { - foreach (var bundle in bundles) + foreach (Bundle bundle in bundles) { - if (!CassetteSettings.uncachedToCachedFiles.ContainsKey(bundle.Path)) + if (!uncachedToCachedFiles.ContainsKey(bundle.Path)) { - CassetteSettings.uncachedToCachedFiles.Add(bundle.Path, bundle.Path); + uncachedToCachedFiles.Add(bundle.Path, bundle.Path); } } - foreach (var bundle in bundles) + foreach (Bundle bundle in bundles) { - foreach (var asset in bundle.Assets) + foreach (IAsset asset in bundle.Assets) { - foreach (var reference in asset.References) + foreach (AssetReference reference in asset.References) { if (reference.Type == AssetReferenceType.SameBundle || reference.Type == AssetReferenceType.DifferentBundle) { - try + if (!uncachedToCachedFiles.ContainsValue(reference.Path)) { - if (!CassetteSettings.uncachedToCachedFiles.ContainsValue(reference.Path)) - { - reference.Path = CassetteSettings.uncachedToCachedFiles[reference.Path]; - } - } - catch (KeyNotFoundException) - { - throw new Exception(reference.Path + " " + reference.Type + " " + - reference.SourceAsset.SourceFile.FullPath); + reference.Path = uncachedToCachedFiles[reference.Path]; } } } @@ -134,30 +110,22 @@ public void FixReferences(IList bundles) } } - - /// /// Caches the given bundle on disk. Note: assumes this is done after processing /// - /// The key of the file - /// The cached bundle. - void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle, - IEnumerable unprocessedAssetPaths) + void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle, + IEnumerable unprocessedAssetPaths) { - foreach (var asset in bundle.Assets) + foreach (IAsset asset in bundle.Assets) { - var systemAbsoluteFilename = fileHelper.GetFileName(asset, bundle, CACHE_DIRECTORY); - fileHelper.CreateFileOnDiskFromAsset(bundle, asset, systemAbsoluteFilename); - if (asset.GetType() == typeof(ConcatenatedAsset) && !uncachedToCachedFiles.ContainsKey(bundle.Path)) - { - uncachedToCachedFiles.Add(bundle.Path, bundle.Path); - } - else if (asset.GetType() != typeof(ConcatenatedAsset) && !uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) + string systemAbsoluteFilename = GetFileName(asset, bundle, CacheDirectory); + CreateFileOnDiskFromAsset(fileHelper, bundle, asset, systemAbsoluteFilename); + if (!uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) { uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); } } - foreach (var assetPath in unprocessedAssetPaths) + foreach (string assetPath in unprocessedAssetPaths) { if (!uncachedToCachedFiles.ContainsKey(assetPath)) { @@ -166,21 +134,17 @@ void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCac } } - - /// /// Gets the given bundle from the disk. Should not take any concatenated assets as should run /// before the processing the generates those assets. /// - /// The bundles key, which is also the file name - /// The bundle that has been has been cached in a file. bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) { - var retValue = false; + bool retValue = false; var assetList = new List(); - foreach (var asset in bundle.Assets) + foreach (IAsset asset in bundle.Assets) { - var systemAbsoluteFilename = fileHelper.GetFileName(asset, bundle, CACHE_DIRECTORY); + string systemAbsoluteFilename = GetFileName(asset, bundle, CacheDirectory); if (!fileHelper.Exists(systemAbsoluteFilename)) { continue; @@ -194,17 +158,17 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), systemAbsoluteFilename); var fileAsset = new FileAsset(file, bundle); - fileHelper.GetAssetReferencesFromDisk(fileAsset, systemAbsoluteFilename); + GetAssetReferencesFromDisk(fileHelper, fileAsset, systemAbsoluteFilename); assetList.Add(fileAsset); if (!uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) { uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); } } - if (assetList.Count == bundle.Assets.Count) + if (bundle.Assets.Count == assetList.Count) { bundle.Assets.Clear(); - foreach (var asset in assetList) + foreach (IAsset asset in assetList) { bundle.Assets.Add(asset); } @@ -212,5 +176,92 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC } return retValue; } + + public void CreateFileOnDiskFromAsset(IFileHelper fileHelper, Bundle bundle, IAsset asset, + string systemAbsoluteFilename) + { + ((AssetBase)asset).PreparePostProcessingStream(); + //Handle possibility of concatenated assets + fileHelper.Write(systemAbsoluteFilename, ((AssetBase)asset).postProcessingString); + var refHolderList = new List(); + foreach (AssetReference assetReference in asset.References) + { + refHolderList.Add(new ReferenceHolder + { + Path = assetReference.Path, + LineNumber = assetReference.SourceLineNumber, + AssetReferenceType = assetReference.Type + }); + } + fileHelper.Write(systemAbsoluteFilename + "references", JsonConvert.SerializeObject(refHolderList)); + } + + public void GetAssetReferencesFromDisk(IFileHelper fileHelper, FileAsset fileAsset, + string systemAbsoluteFilename) + { + var refHolderList = JsonConvert.DeserializeObject> + (fileHelper.ReadAllText(systemAbsoluteFilename + "references")); + foreach (ReferenceHolder refHolder in refHolderList) + { + if (refHolder.AssetReferenceType == AssetReferenceType.RawFilename) + { + fileAsset.AddRawFileReference(refHolder.Path); + } + else + { + fileAsset.AddReference(refHolder.Path, refHolder.LineNumber); + } + } + } + + /// + /// Turns the bundleUrl into a string that is still a unique hash but + /// is also able to be used a file name. + /// + /// the original bundleUrl + /// the new, cachebale string + public string GetCachebleString(string bundleUrl) + { + return bundleUrl.Remove(0, bundleUrl.LastIndexOf('/') + 1); + } + + public string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory) + { + string assetExtension = Path.GetExtension(asset.SourceFile.FullPath); + return cacheDirectory + + (assetExtension.Length > 0 + ? GetCachebleString(asset.SourceFile.FullPath.Replace(assetExtension, "")) + : "") + + GetCachebleHash(Convert.ToBase64String(asset.Hash) + GetAssemblyLastModifiedTime()) + + assetExtension; + } + + string GetAssemblyLastModifiedTime() + { + if (lastModified != null) + { + return lastModified; + } + Assembly assembly = Assembly.GetExecutingAssembly(); + var fileInfo = new FileInfo(assembly.Location); + lastModified = fileInfo.LastWriteTime.ToString("ddMMMHHmmss"); + return lastModified; + } + + public string GetCachebleHash(string hash) + { + return hash.Replace("/", "1").Replace("+", "1").Replace("?", "1"); + } + + #region Nested type: ReferenceHolder + + class ReferenceHolder + { + public AssetReferenceType AssetReferenceType; + public int LineNumber; + public string Path; + } + + #endregion } -} +} \ No newline at end of file diff --git a/src/Cassette/Configuration/FileHelper.cs b/src/Cassette/Configuration/FileHelper.cs index 25e7683c..9d9bd281 100644 --- a/src/Cassette/Configuration/FileHelper.cs +++ b/src/Cassette/Configuration/FileHelper.cs @@ -1,105 +1,52 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using Cassette.BundleProcessing; -using Newtonsoft.Json; - -namespace Cassette.Configuration -{ - class FileHelper : IFileHelper - { - public void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string systemAbsoluteFilename) - { - using (var file = new FileStream(systemAbsoluteFilename, FileMode.Create)) - { - ((AssetBase)asset).PreparePostProcessingStream(); - var postProcessingByteArray = ((AssetBase)asset).postProcessingByteArray; - file.Write(postProcessingByteArray, 0, postProcessingByteArray.Length); - using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Create)) - { - var refHolderList = new List(); - foreach (var assetReference in asset.References) - { - refHolderList.Add(new ReferenceHolder - { - path = assetReference.Path, - lineNumber = assetReference.SourceLineNumber, - assetReferenceType = assetReference.Type - }); - } - var output = Encoding.Default.GetBytes(JsonConvert.SerializeObject(refHolderList)); - referencesForFile.Write(output, 0, output.Length); - } - } - } - - public void GetAssetReferencesFromDisk(FileAsset fileAsset, string systemAbsoluteFilename) - { - using (var referencesForFile = new FileStream(systemAbsoluteFilename + "references", FileMode.Open)) - { - var input = new byte[referencesForFile.Length]; - referencesForFile.Read(input, 0, input.Length); - var refHolderList = JsonConvert.DeserializeObject>(Encoding.Default.GetString(input)); - foreach (var refHolder in refHolderList) - { - if (refHolder.assetReferenceType == AssetReferenceType.RawFilename) - { - fileAsset.AddRawFileReference(refHolder.path); - } - else - { - fileAsset.AddReference(refHolder.path, refHolder.lineNumber); - } - } - } - } - - public bool Exists(string fileName) - { - return File.Exists(fileName); - } - - public DateTime GetLastAccessTime(string filename) - { - return File.GetLastAccessTime(filename); - } - - public void Delete(string fileName) - { - File.Delete(fileName); - } - - /// - /// Turns the bundleUrl into a string that is still a unique hash but - /// is also able to be used a file name. - /// - /// the original bundleUrl - /// the new, cachebale string - public string GetCachebleString(string bundleUrl) - { - return bundleUrl.Remove(0, bundleUrl.LastIndexOf('/') + 1); - } - - public string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory) - { - var assetPath = (asset.GetType() != typeof(ConcatenatedAsset)) - ? GetCachebleString(asset.SourceFile.FullPath) - : GetCachebleString(bundle.Path) + GetCachebleHash(bundle.Path); - return cacheDirectory + assetPath + GetCachebleHash(Convert.ToBase64String(asset.Hash)); - } - - public string GetCachebleHash(string hash) - { - return hash.Replace("/", "1").Replace("+", "1").Replace("?", "1"); - } - - private class ReferenceHolder - { - public string path; - public int lineNumber; - public AssetReferenceType assetReferenceType; - } - } -} +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cassette.BundleProcessing; +using Newtonsoft.Json; + +namespace Cassette.Configuration +{ + class FileHelper : IFileHelper + { + public void Write(string filename, string writeText) + { + File.WriteAllText(filename, writeText); + } + + public string ReadAllText(string filename) + { + return File.ReadAllText(filename); + } + + public bool Exists(string fileName) + { + return File.Exists(fileName); + } + + public DateTime GetLastAccessTime(string filename) + { + return File.GetLastAccessTime(filename); + } + + public void Delete(string fileName) + { + File.Delete(fileName); + } + + public void PrepareCachingDirectory(string cacheDirectory, string cacheVersion) + { + if (!Directory.Exists(cacheDirectory)) + { + Directory.CreateDirectory(cacheDirectory); + } + else if (Directory.GetLastWriteTime(cacheDirectory).Date < DateTime.Today.Date || + !File.Exists(cacheDirectory + cacheVersion)) + { + new DirectoryInfo(cacheDirectory).GetFiles().ToList().ForEach(f => f.Delete()); + File.Create(cacheDirectory + cacheVersion); + } + } + } +} diff --git a/src/Cassette/Configuration/IFileHelper.cs b/src/Cassette/Configuration/IFileHelper.cs index c6e62b24..f29c9977 100644 --- a/src/Cassette/Configuration/IFileHelper.cs +++ b/src/Cassette/Configuration/IFileHelper.cs @@ -1,16 +1,14 @@ -using System; - -namespace Cassette.Configuration -{ - public interface IFileHelper - { - void CreateFileOnDiskFromAsset(Bundle bundle, IAsset asset, string systemAbsoluteFilename); - void GetAssetReferencesFromDisk(FileAsset fileAsset, string systemAbsoluteFilename); - bool Exists(string fileName); - DateTime GetLastAccessTime(string filename); - void Delete(string fileName); - string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory); - string GetCachebleString(string bundleUrl); - string GetCachebleHash(string hash); - } +using System; + +namespace Cassette.Configuration +{ + public interface IFileHelper + { + void Write(string filename, string writeText); + string ReadAllText(string filename); + bool Exists(string fileName); + DateTime GetLastAccessTime(string filename); + void Delete(string fileName); + void PrepareCachingDirectory(string cacheDirectory, string cacheVersion); + } } \ No newline at end of file diff --git a/src/Cassette/HtmlTemplates/DebugHtmlTemplateBundleRenderer.cs b/src/Cassette/HtmlTemplates/DebugHtmlTemplateBundleRenderer.cs new file mode 100644 index 00000000..4cf750fb --- /dev/null +++ b/src/Cassette/HtmlTemplates/DebugHtmlTemplateBundleRenderer.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Cassette.HtmlTemplates +{ + internal class DebugHtmlTemplateBundleRenderer : IBundleHtmlRenderer + { + public DebugHtmlTemplateBundleRenderer(IUrlGenerator urlGenerator) + { + this.urlGenerator = urlGenerator; + } + + readonly IUrlGenerator urlGenerator; + + public string Render(HtmlTemplateBundle bundle) + { + var assetUrls = GetAssetUrls(bundle); + var createLink = GetCreateScriptFunc(bundle); + return string.Join( + Environment.NewLine, + assetUrls.Select(createLink).ToArray() + ); + } + + IEnumerable GetAssetUrls(HtmlTemplateBundle bundle) + { + return bundle.Assets.Select(urlGenerator.CreateAssetUrl); + } + + Func GetCreateScriptFunc(HtmlTemplateBundle bundle) + { + return url => string.Format( + HtmlConstants.RemoteHtml, + url, + bundle.HtmlAttributes.CombinedAttributes + ); + } + } +} diff --git a/src/Cassette/HtmlTemplates/HoganTmplPipeline.cs b/src/Cassette/HtmlTemplates/HoganTmplPipeline.cs index 2b328794..991aac44 100644 --- a/src/Cassette/HtmlTemplates/HoganTmplPipeline.cs +++ b/src/Cassette/HtmlTemplates/HoganTmplPipeline.cs @@ -4,20 +4,28 @@ namespace Cassette.HtmlTemplates { - public class HoganTmplPipeline : MutablePipeline + public class HandlebarsPipeline : MutablePipeline { + /// + /// The name of the JavaScript variable to store compiled templates in. + /// For example, the default is "JST", so a template will be registered as JST['my-template'] = ...;. + /// + public string JavaScriptVariableName { get; set; } + protected override IEnumerable> CreatePipeline(HtmlTemplateBundle bundle, CassetteSettings settings) { yield return new AssignHtmlTemplateRenderer( new RemoteHtmlTemplateBundleRenderer(settings.UrlGenerator) ); yield return new AssignContentType("text/javascript"); - if (bundle.IsFromCache) yield break; - yield return new ParseHtmlTemplateReferences(); - yield return new CompileHoganTmpl(); - yield return new RegisterTemplatesWithHoganTmpl(bundle); - yield return new ConcatenateAssets(); + yield return new CompileHandlebars(); + yield return new RegisterTemplatesWithHandlebars(bundle, JavaScriptVariableName); + yield return new AssignHash(); + if (!settings.IsDebuggingEnabled) + { + yield return new ConcatenateAssets(); + } } } } \ No newline at end of file diff --git a/src/Cassette/HtmlTemplates/HtmlConstants.cs b/src/Cassette/HtmlTemplates/HtmlConstants.cs new file mode 100644 index 00000000..9960bf4e --- /dev/null +++ b/src/Cassette/HtmlTemplates/HtmlConstants.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Cassette.HtmlTemplates +{ + class HtmlConstants + { + public const string RemoteHtml = ""; + } +} diff --git a/src/Cassette/HtmlTemplates/HtmlTemplatePipeline.cs b/src/Cassette/HtmlTemplates/HtmlTemplatePipeline.cs index f60c5cfd..0a71548f 100644 --- a/src/Cassette/HtmlTemplates/HtmlTemplatePipeline.cs +++ b/src/Cassette/HtmlTemplates/HtmlTemplatePipeline.cs @@ -12,7 +12,10 @@ protected override IEnumerable> CreatePipel yield return new ParseHtmlTemplateReferences(); yield return new WrapHtmlTemplatesInScriptElements(); yield return new AssignHash(); - yield return new ConcatenateAssets(); + if (!settings.IsDebuggingEnabled) + { + yield return new ConcatenateAssets(); + } } } } \ No newline at end of file diff --git a/src/Cassette/HtmlTemplates/RemoteHtmlTemplateBundleRenderer.cs b/src/Cassette/HtmlTemplates/RemoteHtmlTemplateBundleRenderer.cs index 55bc082d..af715c91 100644 --- a/src/Cassette/HtmlTemplates/RemoteHtmlTemplateBundleRenderer.cs +++ b/src/Cassette/HtmlTemplates/RemoteHtmlTemplateBundleRenderer.cs @@ -10,9 +10,9 @@ public RemoteHtmlTemplateBundleRenderer(IUrlGenerator urlGenerator) } public string Render(HtmlTemplateBundle bundle) - { + { return string.Format( - "", + HtmlConstants.RemoteHtml, urlGenerator.CreateBundleUrl(bundle), bundle.HtmlAttributes.CombinedAttributes ); From 5df4825de2dbd003f3769840ef9d41bccfd88ff1 Mon Sep 17 00:00:00 2001 From: David Durst Date: Fri, 17 Aug 2012 16:20:18 -0400 Subject: [PATCH 17/26] cleaned up tests --- .../Configuration/DiskBackedBundleCache.cs | 54 +------------------ 1 file changed, 2 insertions(+), 52 deletions(-) diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs index 7227135c..e0e3d365 100644 --- a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs @@ -53,9 +53,9 @@ void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCac { fileHelper, uncachedToCachedFiles, bundle, unprocessedAssetPaths }); } - bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) + void GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) { - return (bool) GetFromDiskMethodInfo.Invoke(diskBackedBundleCache, + GetFromDiskMethodInfo.Invoke(diskBackedBundleCache, new object[] { fileHelper, uncachedToCachedFiles, bundle }); } @@ -77,20 +77,6 @@ public void AddBundle_EmptyBundleCachedAndNotCached() uncachedToCachedFiles.Verify(d => d.ContainsKey(unprocessedAssetPaths.First()), Times.Once()); } - - public void AddBundle_ConcatenatedAsset() - { - fileHelper.Setup(fh => fh.Write(It.IsAny(), It.IsAny())) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.ContainsKey(concatenatedBundle.Path)) - .Returns(false) - .Verifiable(); - uncachedToCachedFiles.Setup(d => d.Add(concatenatedBundle.Path, concatenatedBundle.Path)) - .Verifiable(); - diskBackedBundleCache.AddBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle, unprocessedAssetPaths); - fileHelper.Verify(); - } - [Fact] public void AddBundle_FileAsset() { @@ -167,21 +153,6 @@ public void GetBundle_PresentWithFileBundle() uncachedToCachedFiles.Verify(); } - - public void GetBundle_FailWithConcatenatedBundle() - { - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(true); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Returns(DateTime.Today); - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false); - fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) - .Returns("[]"); - uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); - Assert.Throws(() => diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); - } - #endregion #region ContainsKey @@ -205,30 +176,9 @@ public void ContainsKey_PresentInMemory() .Throws(new Exception("Did not find bundle that should have been in memory.")); fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) .Throws(new Exception("Did not find bundle that should have been in memory.")); - /*fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Throws(new Exception("Did not find bundle that should have been in memory."));*/ - diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); } - - public void ContainsKey_FailWithConcatenatedBundle() - { - /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) - .Verifiable();*/ - fileHelper.Setup(fh => fh.Exists(It.IsAny())) - .Returns(true); - fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) - .Returns(DateTime.Today); - fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) - .Returns("[]"); - /*fileHelper.Setup(fh => fh.GetFileName(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns("test string");*/ - uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) - .Returns(false); - uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); - Assert.Throws(() => diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, concatenatedBundle.Path, concatenatedBundle)); - } #endregion #region FixReferences From 83548c9b256db743dc67b8b43e1a2b69eaf22e69 Mon Sep 17 00:00:00 2001 From: David Durst Date: Mon, 20 Aug 2012 11:25:28 -0400 Subject: [PATCH 18/26] changed some testing --- src/Cassette/Configuration/IFileHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cassette/Configuration/IFileHelper.cs b/src/Cassette/Configuration/IFileHelper.cs index f29c9977..a5040bb5 100644 --- a/src/Cassette/Configuration/IFileHelper.cs +++ b/src/Cassette/Configuration/IFileHelper.cs @@ -6,7 +6,7 @@ public interface IFileHelper { void Write(string filename, string writeText); string ReadAllText(string filename); - bool Exists(string fileName); + bool Exists(string fileName); DateTime GetLastAccessTime(string filename); void Delete(string fileName); void PrepareCachingDirectory(string cacheDirectory, string cacheVersion); From d46ac2c70089d6f9fde7e30725ee6380ca06cbd0 Mon Sep 17 00:00:00 2001 From: David Durst Date: Mon, 20 Aug 2012 15:21:44 -0400 Subject: [PATCH 19/26] fixed the files still rendering after being moved to bad places --- .../Configuration/DiskBackedBundleCache.cs | 29 +++++++++++++++++++ .../BundleContainerFactoryBase.cs | 3 +- .../Configuration/DiskBackedBundleCache.cs | 28 ++++++++++++------ 3 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs index e0e3d365..78a4b6d9 100644 --- a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs @@ -240,6 +240,35 @@ public void AddToDisk_UnprocessedAssetPaths() #endregion + #region GetFromDisk + + [Fact] + public void GetFromDisk_AllButOneAssetsFoundOnDisk() + { + var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); + var fileAsset2 = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), + new object[] { "asset content", "~/dont" }), fileBundle); + fileBundle.Assets.Add(fileAsset2); + + fileHelper.Setup(fh => fh.Exists(It.Is(s => s.Contains("\\pK35VRqYM2h2uRH9XIbkKnzqc8U")))) + .Returns(false); + fileHelper.Setup(fh => fh.Exists(It.Is(s => !s.Contains("\\pK35VRqYM2h2uRH9XIbkKnzqc8U")))) + .Returns(true); + fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) + .Returns(DateTime.Today); + fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) + .Returns("[]"); + + uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) + .Returns(false); + uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())) + .Throws(new Exception( + "Tried add a cached asset to the lookup dictionary when the bundle was not fully cached")); + GetFromDisk(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle); + } + + #endregion + #region CreateFileOnDiskFromAsset ///Many code paths are checked by other tests diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index 57faa09d..7a02ddaa 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Text; using Cassette.BundleProcessing; using Cassette.HtmlTemplates; using Cassette.Scripts; @@ -24,7 +25,7 @@ protected Bundle ProcessSingleBundle(IFileHelper fileHelper, Dictionary public DiskBackedBundleCache(IFileHelper fileHelper) { - fileHelper.PrepareCachingDirectory(CacheDirectory, GetCachebleHash(GetAssemblyLastModifiedTime())); + fileHelper.PrepareCachingDirectory(CacheDirectory, GetSafeString(GetAssemblyLastModifiedTime())); _bundles = new Dictionary(); } @@ -100,7 +100,7 @@ public void FixReferences(Dictionary uncachedToCachedFiles, ILis if (reference.Type == AssetReferenceType.SameBundle || reference.Type == AssetReferenceType.DifferentBundle) { - if (!uncachedToCachedFiles.ContainsValue(reference.Path)) + if (uncachedToCachedFiles.ContainsKey(reference.Path)) { reference.Path = uncachedToCachedFiles[reference.Path]; } @@ -125,7 +125,7 @@ void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCac uncachedToCachedFiles.Add(asset.SourceFile.FullPath, asset.SourceFile.FullPath); } } - foreach (string assetPath in unprocessedAssetPaths) + foreach (string assetPath in unprocessedAssetPaths) { if (!uncachedToCachedFiles.ContainsKey(assetPath)) { @@ -142,6 +142,7 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC { bool retValue = false; var assetList = new List(); + var assetSpecificLookup = new List>(); foreach (IAsset asset in bundle.Assets) { string systemAbsoluteFilename = GetFileName(asset, bundle, CacheDirectory); @@ -162,7 +163,7 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC assetList.Add(fileAsset); if (!uncachedToCachedFiles.ContainsKey(asset.SourceFile.FullPath)) { - uncachedToCachedFiles.Add(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath); + assetSpecificLookup.Add(new KeyValuePair(asset.SourceFile.FullPath, fileAsset.SourceFile.FullPath)); } } if (bundle.Assets.Count == assetList.Count) @@ -172,6 +173,10 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC { bundle.Assets.Add(asset); } + foreach (var uncachedToCachedPair in assetSpecificLookup) + { + uncachedToCachedFiles.Add(uncachedToCachedPair.Key, uncachedToCachedPair.Value); + } retValue = true; } return retValue; @@ -215,7 +220,7 @@ public void GetAssetReferencesFromDisk(IFileHelper fileHelper, FileAsset fileAss } /// - /// Turns the bundleUrl into a string that is still a unique hash but + /// Turns the bundleUrl into a string that is still a unique str but /// is also able to be used a file name. /// /// the original bundleUrl @@ -229,10 +234,11 @@ public string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory) { string assetExtension = Path.GetExtension(asset.SourceFile.FullPath); return cacheDirectory + + Path.GetFileNameWithoutExtension(asset.SourceFile.FullPath) + (assetExtension.Length > 0 - ? GetCachebleString(asset.SourceFile.FullPath.Replace(assetExtension, "")) + ? GetSafeString(asset.SourceFile.FullPath.Replace(assetExtension, "")) : "") - + GetCachebleHash(Convert.ToBase64String(asset.Hash) + GetAssemblyLastModifiedTime()) + + + GetSafeString(Convert.ToBase64String(asset.Hash) + GetAssemblyLastModifiedTime()) + assetExtension; } @@ -248,9 +254,13 @@ string GetAssemblyLastModifiedTime() return lastModified; } - public string GetCachebleHash(string hash) + public string GetSafeString(string str) { - return hash.Replace("/", "1").Replace("+", "1").Replace("?", "1"); + foreach (var c in Path.GetInvalidFileNameChars()) + { + str = str.Replace(c, '1'); + } + return str.Replace('_', '1').Replace('+', '1'); } #region Nested type: ReferenceHolder From ce179e11b267383d16e41b907a5a8639af96dc18 Mon Sep 17 00:00:00 2001 From: David Durst Date: Tue, 21 Aug 2012 10:05:33 -0400 Subject: [PATCH 20/26] fixed unit tests and made cached files in directories --- .../Configuration/DiskBackedBundleCache.cs | 37 +++++----- src/Cassette/Cassette.csproj | 3 - .../BundleContainerFactoryBase.cs | 12 ++-- .../Configuration/DiskBackedBundleCache.cs | 68 ++++++++----------- src/Cassette/Configuration/FileHelper.cs | 17 ++++- src/Cassette/Configuration/FileSearch.cs | 2 +- src/Cassette/Configuration/IFileHelper.cs | 3 + 7 files changed, 74 insertions(+), 68 deletions(-) diff --git a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs index 78a4b6d9..4843e63e 100644 --- a/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette.UnitTests/Configuration/DiskBackedBundleCache.cs @@ -26,11 +26,16 @@ public class DiskBackedBundleCache_Tests DiskBackedBundleCache diskBackedBundleCache; List unprocessedAssetPaths; MethodInfo AddToDiskMethodInfo, GetFromDiskMethodInfo; + Mock directory; public DiskBackedBundleCache_Tests() { + //The directory should never be called, always just passed into FileHelper which is mocked also, so strict + //with nothing setup + directory = new Mock(MockBehavior.Strict); fileHelper = new Mock(MockBehavior.Strict); fileHelper.Setup(fh => fh.PrepareCachingDirectory(It.IsAny(), It.IsAny())); + fileHelper.Setup(fh => fh.CreateDirectory(It.IsAny())); uncachedToCachedFiles = new Mock>(MockBehavior.Strict); diskBackedBundleCache = new DiskBackedBundleCache(fileHelper.Object); unprocessedAssetPaths = new List(); @@ -40,6 +45,9 @@ public DiskBackedBundleCache_Tests() var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance); fileAsset = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", Type.Missing }), fileBundle); fileBundle.Assets.Add(fileAsset); + var file = (IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", Type.Missing }); + fileHelper.Setup(fh => fh.GetFileSystemFile(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(file); concatenatedAsset = new ConcatenatedAsset(new List {fileAsset} ); concatenatedBundle.Assets.Add(concatenatedAsset); AddToDiskMethodInfo = typeof(DiskBackedBundleCache).GetMethod("AddToDisk", BindingFlags.NonPublic | BindingFlags.Instance); @@ -53,10 +61,10 @@ void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCac { fileHelper, uncachedToCachedFiles, bundle, unprocessedAssetPaths }); } - void GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) + void GetFromDisk(IFileHelper fileHelper, IDirectory directory, IDictionary uncachedToCachedFiles, Bundle bundle) { GetFromDiskMethodInfo.Invoke(diskBackedBundleCache, - new object[] { fileHelper, uncachedToCachedFiles, bundle }); + new object[] { fileHelper, directory, uncachedToCachedFiles, bundle }); } #endregion @@ -100,7 +108,6 @@ public void GetAssetPaths_EmptyConcatenatedFile() { diskBackedBundleCache.GetAssetPaths(emptyBundle).ShouldBeEmpty(); diskBackedBundleCache.GetAssetPaths(fileBundle).ShouldContain(fileAsset.SourceFile.FullPath); - //diskBackedBundleCache.GetAssetPaths(concatenatedBundle).ShouldBeEmpty(); } #endregion @@ -113,7 +120,7 @@ public void GetBundle_NotPresent() fileHelper.Setup(fh => fh.Exists(It.IsAny())) .Returns(false) .Verifiable(); - diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle).ShouldBeNull(); + diskBackedBundleCache.GetBundle(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle).ShouldBeNull(); fileHelper.Verify(); } @@ -123,15 +130,13 @@ public void GetBundle_PresentIfNoAssets() uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny())) .Returns(false) .Verifiable(); - diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle).ShouldNotBeNull(); + diskBackedBundleCache.GetBundle(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, emptyBundle.Path, emptyBundle).ShouldNotBeNull(); fileHelper.Verify(); } [Fact] public void GetBundle_PresentWithFileBundle() { - /*fileHelper.Setup(fh => fh.GetAssetReferencesFromDisk(It.IsAny(), It.IsAny())) - .Verifiable();*/ fileHelper.Setup(fh => fh.Exists(It.IsAny())) .Returns(true) .Verifiable(); @@ -146,7 +151,7 @@ public void GetBundle_PresentWithFileBundle() uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())) .Verifiable(); //File asset should have same file, but it should not point be the same one, as fileBundle.Assets should have been cleared - Path.GetFileName(diskBackedBundleCache.GetBundle(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle) + Path.GetFileName(diskBackedBundleCache.GetBundle(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle) .Assets.First().SourceFile.FullPath).Trim().ShouldContain(Path.GetFileNameWithoutExtension(fileAsset.SourceFile.FullPath).Trim()); fileBundle.Assets.First().ShouldNotBeSameAs(fileAsset); fileHelper.Verify(); @@ -170,13 +175,13 @@ public void ContainsKey_PresentInMemory() uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())); fileHelper.Setup(fh => fh.ReadAllText(It.IsAny())) .Returns("[]"); - diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); + diskBackedBundleCache.ContainsKey(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); fileHelper.Setup(fh => fh.Exists(It.IsAny())) .Throws(new Exception("Did not find bundle that should have been in memory.")); fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) .Throws(new Exception("Did not find bundle that should have been in memory.")); - diskBackedBundleCache.ContainsKey(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); + diskBackedBundleCache.ContainsKey(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, fileBundle.Path, fileBundle); } #endregion @@ -205,10 +210,6 @@ public void FixReferences_FileAndEmptyBundles() diskBackedBundleCache.FixReferences(containsDict, new List { fileBundle }); fileAsset.References.First().Path.ShouldEqual("good test result"); - containsDict.Add("good test result", "bad test result"); - diskBackedBundleCache.FixReferences(containsDict, new List { fileBundle }); - fileAsset.References.First().Path.ShouldEqual("good test result"); - fileAssetChild.AddReference("http://www.google.com", -1); containsDict.Add("http://www.google.com", "bad test result"); diskBackedBundleCache.FixReferences(containsDict, new List { fileBundle }); @@ -250,9 +251,9 @@ public void GetFromDisk_AllButOneAssetsFoundOnDisk() new object[] { "asset content", "~/dont" }), fileBundle); fileBundle.Assets.Add(fileAsset2); - fileHelper.Setup(fh => fh.Exists(It.Is(s => s.Contains("\\pK35VRqYM2h2uRH9XIbkKnzqc8U")))) + fileHelper.Setup(fh => fh.Exists(It.Is(s => s.Contains("dont")))) .Returns(false); - fileHelper.Setup(fh => fh.Exists(It.Is(s => !s.Contains("\\pK35VRqYM2h2uRH9XIbkKnzqc8U")))) + fileHelper.Setup(fh => fh.Exists(It.Is(s => !s.Contains("dont")))) .Returns(true); fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny())) .Returns(DateTime.Today); @@ -264,7 +265,7 @@ public void GetFromDisk_AllButOneAssetsFoundOnDisk() uncachedToCachedFiles.Setup(d => d.Add(It.IsAny(), It.IsAny())) .Throws(new Exception( "Tried add a cached asset to the lookup dictionary when the bundle was not fully cached")); - GetFromDisk(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle); + GetFromDisk(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, fileBundle); } #endregion @@ -322,7 +323,7 @@ public void GetAssetReferencesFromDisk_CheckProperRehydration() var fileAssetChild = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", "~/file2" }), fileBundle); fileAsset.AddReference(fileAssetChild.SourceFile.FullPath, 1); fileBundle.Assets.Add(fileAssetChild); - GetFromDisk(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle); + GetFromDisk(fileHelper.Object, directory.Object, uncachedToCachedFiles.Object, fileBundle); fileBundle.Assets.First().References.First().Path.Equals(fileAssetChild.SourceFile.FullPath); fileHelper.Verify(); } diff --git a/src/Cassette/Cassette.csproj b/src/Cassette/Cassette.csproj index 1a791308..c8ea9309 100644 --- a/src/Cassette/Cassette.csproj +++ b/src/Cassette/Cassette.csproj @@ -63,9 +63,6 @@ ..\packages\Newtonsoft.Json.4.0.8\lib\net35\Newtonsoft.Json.dll ..\packages\Newtonsoft.Json.4.0.8\lib\net40\Newtonsoft.Json.dll - - ..\packages\protobuf-net.dll - diff --git a/src/Cassette/Configuration/BundleContainerFactoryBase.cs b/src/Cassette/Configuration/BundleContainerFactoryBase.cs index 7a02ddaa..d092c92d 100644 --- a/src/Cassette/Configuration/BundleContainerFactoryBase.cs +++ b/src/Cassette/Configuration/BundleContainerFactoryBase.cs @@ -3,6 +3,7 @@ using System.Text; using Cassette.BundleProcessing; using Cassette.HtmlTemplates; +using Cassette.IO; using Cassette.Scripts; using Cassette.Stylesheets; @@ -20,15 +21,15 @@ protected BundleContainerFactoryBase(CassetteSettings settings) public abstract IBundleContainer CreateBundleContainer(); - protected Bundle ProcessSingleBundle(IFileHelper fileHelper, Dictionary uncachedToCachedFiles, - Bundle bundle, AssignHash hasher) + protected Bundle ProcessSingleBundle(IFileHelper fileHelper, IDirectory directory, + Dictionary uncachedToCachedFiles, Bundle bundle, AssignHash hasher) { Trace.Source.TraceInformation("Processing {0} {1}", bundle.GetType().Name, bundle.Path); hasher.Process(bundle, settings); var bundleKey = CassetteSettings.bundles.GetSafeString(Encoding.Default.GetString(bundle.Hash)); - if (CassetteSettings.bundles.ContainsKey(fileHelper, uncachedToCachedFiles, bundleKey, bundle)) + if (CassetteSettings.bundles.ContainsKey(fileHelper, directory, uncachedToCachedFiles, bundleKey, bundle)) { - bundle = CassetteSettings.bundles.GetBundle(fileHelper, uncachedToCachedFiles, bundleKey, bundle); + bundle = CassetteSettings.bundles.GetBundle(fileHelper, directory, uncachedToCachedFiles, bundleKey, bundle); } else { @@ -53,9 +54,10 @@ protected void ProcessAllBundles(IList bundles) { var hasher = new AssignHash(); var diskBacker = new FileHelper(); + var directory = new FileSystemDirectory(DiskBackedBundleCache.CacheDirectory); for (var i = 0; i < bundles.Count; i++) { - bundles[i] = ProcessSingleBundle(diskBacker, CassetteSettings.uncachedToCachedFiles, bundles[i], hasher); + bundles[i] = ProcessSingleBundle(diskBacker, directory, CassetteSettings.uncachedToCachedFiles, bundles[i], hasher); if (typeof(StylesheetBundle).IsAssignableFrom(bundles[i].GetType())) { ((StylesheetBundle)bundles[i]).Renderer = new DebugStylesheetHtmlRenderer(settings.UrlGenerator); diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index 3da16d6b..36b79a37 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -9,7 +9,7 @@ namespace Cassette.Configuration { public class DiskBackedBundleCache { - const string CacheDirectory = @"C:\DiskCachedBundles\"; + public const string CacheDirectory = @"C:\DiskCachedBundles\"; readonly IDictionary _bundles; string lastModified; @@ -49,10 +49,10 @@ public IEnumerable GetAssetPaths(Bundle bundle) /// Assumes runs before processing, so no concatenated bundles. May throw if it receives /// a concatenated bundle. /// - public Bundle GetBundle(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, - Bundle bundle) + public Bundle GetBundle(IFileHelper fileHelper, IDirectory directory, IDictionary uncachedToCachedFiles, + string key, Bundle bundle) { - if (!ContainsKey(fileHelper, uncachedToCachedFiles, key, bundle)) + if (!ContainsKey(fileHelper, directory, uncachedToCachedFiles, key, bundle)) { return null; } @@ -63,14 +63,14 @@ public Bundle GetBundle(IFileHelper fileHelper, IDictionary unca /// Assumes runs before processing, so no concatenated bundles. May throw if it receives /// a concatenated bundle. /// - public bool ContainsKey(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, string key, - Bundle bundle) + public bool ContainsKey(IFileHelper fileHelper, IDirectory directory, IDictionary uncachedToCachedFiles, + string key, Bundle bundle) { if (_bundles.ContainsKey(key)) { return true; } - bool returnValue = GetFromDisk(fileHelper, uncachedToCachedFiles, bundle); + bool returnValue = GetFromDisk(fileHelper, directory, uncachedToCachedFiles, bundle); if (returnValue) { _bundles.Add(key, bundle); @@ -84,22 +84,22 @@ public bool ContainsKey(IFileHelper fileHelper, IDictionary unca /// public void FixReferences(Dictionary uncachedToCachedFiles, IList bundles) { - foreach (Bundle bundle in bundles) + foreach (var bundle in bundles) { if (!uncachedToCachedFiles.ContainsKey(bundle.Path)) { uncachedToCachedFiles.Add(bundle.Path, bundle.Path); } } - foreach (Bundle bundle in bundles) + foreach (var bundle in bundles) { - foreach (IAsset asset in bundle.Assets) + foreach (var asset in bundle.Assets) { - foreach (AssetReference reference in asset.References) + foreach (var reference in asset.References) { if (reference.Type == AssetReferenceType.SameBundle || reference.Type == AssetReferenceType.DifferentBundle) - { + { if (uncachedToCachedFiles.ContainsKey(reference.Path)) { reference.Path = uncachedToCachedFiles[reference.Path]; @@ -138,9 +138,9 @@ void AddToDisk(IFileHelper fileHelper, IDictionary uncachedToCac /// Gets the given bundle from the disk. Should not take any concatenated assets as should run /// before the processing the generates those assets. /// - bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToCachedFiles, Bundle bundle) + bool GetFromDisk(IFileHelper fileHelper, IDirectory directory, IDictionary uncachedToCachedFiles, Bundle bundle) { - bool retValue = false; + bool isOnDisk = false; var assetList = new List(); var assetSpecificLookup = new List>(); foreach (IAsset asset in bundle.Assets) @@ -155,9 +155,7 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC fileHelper.Delete(systemAbsoluteFilename); continue; } - var file = new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), - new FileSystemDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), - systemAbsoluteFilename); + var file = fileHelper.GetFileSystemFile(directory, systemAbsoluteFilename, CacheDirectory); var fileAsset = new FileAsset(file, bundle); GetAssetReferencesFromDisk(fileHelper, fileAsset, systemAbsoluteFilename); assetList.Add(fileAsset); @@ -177,16 +175,16 @@ bool GetFromDisk(IFileHelper fileHelper, IDictionary uncachedToC { uncachedToCachedFiles.Add(uncachedToCachedPair.Key, uncachedToCachedPair.Value); } - retValue = true; + isOnDisk = true; } - return retValue; + return isOnDisk; } public void CreateFileOnDiskFromAsset(IFileHelper fileHelper, Bundle bundle, IAsset asset, string systemAbsoluteFilename) { ((AssetBase)asset).PreparePostProcessingStream(); - //Handle possibility of concatenated assets + fileHelper.CreateDirectory(Path.GetDirectoryName(systemAbsoluteFilename)); fileHelper.Write(systemAbsoluteFilename, ((AssetBase)asset).postProcessingString); var refHolderList = new List(); foreach (AssetReference assetReference in asset.References) @@ -219,27 +217,13 @@ public void GetAssetReferencesFromDisk(IFileHelper fileHelper, FileAsset fileAss } } - /// - /// Turns the bundleUrl into a string that is still a unique str but - /// is also able to be used a file name. - /// - /// the original bundleUrl - /// the new, cachebale string - public string GetCachebleString(string bundleUrl) - { - return bundleUrl.Remove(0, bundleUrl.LastIndexOf('/') + 1); - } - public string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory) { - string assetExtension = Path.GetExtension(asset.SourceFile.FullPath); + string sourcePath = asset.SourceFile.FullPath; return cacheDirectory - + Path.GetFileNameWithoutExtension(asset.SourceFile.FullPath) - + (assetExtension.Length > 0 - ? GetSafeString(asset.SourceFile.FullPath.Replace(assetExtension, "")) - : "") - + GetSafeString(Convert.ToBase64String(asset.Hash) + GetAssemblyLastModifiedTime()) + - assetExtension; + + sourcePath.Insert( + sourcePath.IndexOf(Path.GetExtension(asset.SourceFile.FullPath)), + GetSafeString(Convert.ToBase64String(asset.Hash) + GetAssemblyLastModifiedTime())); } string GetAssemblyLastModifiedTime() @@ -257,10 +241,14 @@ string GetAssemblyLastModifiedTime() public string GetSafeString(string str) { foreach (var c in Path.GetInvalidFileNameChars()) - { + { str = str.Replace(c, '1'); } - return str.Replace('_', '1').Replace('+', '1'); + //Removing _ as __ causes rest of url to be truncated by IIS + //removing + as that is considered a injection attack by IIS and ends + //any request + //~ don't add any information, so removing them too + return str.Replace('_', '1').Replace('+', '1').Replace('~', '1'); } #region Nested type: ReferenceHolder diff --git a/src/Cassette/Configuration/FileHelper.cs b/src/Cassette/Configuration/FileHelper.cs index 9d9bd281..517c862c 100644 --- a/src/Cassette/Configuration/FileHelper.cs +++ b/src/Cassette/Configuration/FileHelper.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using Cassette.BundleProcessing; +using Cassette.IO; using Newtonsoft.Json; namespace Cassette.Configuration @@ -20,11 +21,24 @@ public string ReadAllText(string filename) return File.ReadAllText(filename); } + public void CreateDirectory(string directory) + { + Directory.CreateDirectory(directory); + } + public bool Exists(string fileName) { return File.Exists(fileName); } + public IFile GetFileSystemFile(IDirectory directory, string systemAbsoluteFilename, + string cacheDirectory) + { + return new FileSystemFile(Path.GetFileName(systemAbsoluteFilename), + directory.GetDirectory(Path.GetDirectoryName(systemAbsoluteFilename)), + systemAbsoluteFilename); + } + public DateTime GetLastAccessTime(string filename) { return File.GetLastAccessTime(filename); @@ -44,7 +58,8 @@ public void PrepareCachingDirectory(string cacheDirectory, string cacheVersion) else if (Directory.GetLastWriteTime(cacheDirectory).Date < DateTime.Today.Date || !File.Exists(cacheDirectory + cacheVersion)) { - new DirectoryInfo(cacheDirectory).GetFiles().ToList().ForEach(f => f.Delete()); + new DirectoryInfo(cacheDirectory).GetFiles("*", SearchOption.AllDirectories) + .ToList().ForEach(f => f.Delete()); File.Create(cacheDirectory + cacheVersion); } } diff --git a/src/Cassette/Configuration/FileSearch.cs b/src/Cassette/Configuration/FileSearch.cs index b65a8ad2..9495ece5 100644 --- a/src/Cassette/Configuration/FileSearch.cs +++ b/src/Cassette/Configuration/FileSearch.cs @@ -66,4 +66,4 @@ static bool IsDescriptorFilename(IFile file) || file.FullPath.EndsWith("/module.txt", StringComparison.OrdinalIgnoreCase); } } -} +} diff --git a/src/Cassette/Configuration/IFileHelper.cs b/src/Cassette/Configuration/IFileHelper.cs index a5040bb5..73bddfb1 100644 --- a/src/Cassette/Configuration/IFileHelper.cs +++ b/src/Cassette/Configuration/IFileHelper.cs @@ -1,4 +1,5 @@ using System; +using Cassette.IO; namespace Cassette.Configuration { @@ -10,5 +11,7 @@ public interface IFileHelper DateTime GetLastAccessTime(string filename); void Delete(string fileName); void PrepareCachingDirectory(string cacheDirectory, string cacheVersion); + void CreateDirectory(string directory); + IFile GetFileSystemFile(IDirectory directory, string systemAbsoluteFilename, string cacheDirectory); } } \ No newline at end of file From 96e2079df450aad9646e08cbd704f5809696fd2b Mon Sep 17 00:00:00 2001 From: David Durst Date: Tue, 21 Aug 2012 13:38:36 -0400 Subject: [PATCH 21/26] added locking --- src/Cassette/Configuration/FileHelper.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Cassette/Configuration/FileHelper.cs b/src/Cassette/Configuration/FileHelper.cs index 517c862c..baa147bc 100644 --- a/src/Cassette/Configuration/FileHelper.cs +++ b/src/Cassette/Configuration/FileHelper.cs @@ -11,6 +11,8 @@ namespace Cassette.Configuration { class FileHelper : IFileHelper { + static readonly object locker = new object(); + public void Write(string filename, string writeText) { File.WriteAllText(filename, writeText); @@ -58,9 +60,12 @@ public void PrepareCachingDirectory(string cacheDirectory, string cacheVersion) else if (Directory.GetLastWriteTime(cacheDirectory).Date < DateTime.Today.Date || !File.Exists(cacheDirectory + cacheVersion)) { - new DirectoryInfo(cacheDirectory).GetFiles("*", SearchOption.AllDirectories) - .ToList().ForEach(f => f.Delete()); - File.Create(cacheDirectory + cacheVersion); + lock (locker) + { + new DirectoryInfo(cacheDirectory).GetFiles("*", SearchOption.AllDirectories) + .ToList().ForEach(f => f.Delete()); + File.Create(cacheDirectory + cacheVersion); + } } } } From 9d2825d28a9eac1f36c861592b52fdadc9757017 Mon Sep 17 00:00:00 2001 From: David Durst Date: Wed, 22 Aug 2012 19:17:12 -0400 Subject: [PATCH 22/26] here are the fixes --- src/Cassette/Configuration/DiskBackedBundleCache.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Cassette/Configuration/DiskBackedBundleCache.cs b/src/Cassette/Configuration/DiskBackedBundleCache.cs index 36b79a37..9fde97a5 100644 --- a/src/Cassette/Configuration/DiskBackedBundleCache.cs +++ b/src/Cassette/Configuration/DiskBackedBundleCache.cs @@ -157,7 +157,10 @@ bool GetFromDisk(IFileHelper fileHelper, IDirectory directory, IDictionary> (fileHelper.ReadAllText(systemAbsoluteFilename + "references")); foreach (ReferenceHolder refHolder in refHolderList) @@ -215,6 +222,7 @@ public void GetAssetReferencesFromDisk(IFileHelper fileHelper, FileAsset fileAss fileAsset.AddReference(refHolder.Path, refHolder.LineNumber); } } + return true; } public string GetFileName(IAsset asset, Bundle bundle, string cacheDirectory) From a9a29a797fc0989d15ea025c708b0b495d0dc2a9 Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 23 Aug 2012 12:36:46 -0400 Subject: [PATCH 23/26] ready for a pull --- src/Website/CassetteConfiguration.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Website/CassetteConfiguration.cs b/src/Website/CassetteConfiguration.cs index 836d3d83..163e9b1a 100644 --- a/src/Website/CassetteConfiguration.cs +++ b/src/Website/CassetteConfiguration.cs @@ -1,5 +1,5 @@ using Cassette; -using Cassette.Configuration; +using Cassette.Configuration; using Cassette.Scripts; using Cassette.Stylesheets; From 30b4cc711b31bb3d4061c07f8125d5c475743b7f Mon Sep 17 00:00:00 2001 From: David Durst Date: Thu, 23 Aug 2012 12:37:04 -0400 Subject: [PATCH 24/26] really ready for a pull --- .../handlebars-scripts/handlebars.i18n.js | 3 + .../handlebars-scripts/handlebars.runtime.js | 287 + src/Website/assets/handlebars-scripts/init.js | 31 + .../assets/handlebars-scripts/jquery.js | 9044 +++++++++++++++++ 4 files changed, 9365 insertions(+) create mode 100644 src/Website/assets/handlebars-scripts/handlebars.i18n.js create mode 100644 src/Website/assets/handlebars-scripts/handlebars.runtime.js create mode 100644 src/Website/assets/handlebars-scripts/init.js create mode 100644 src/Website/assets/handlebars-scripts/jquery.js diff --git a/src/Website/assets/handlebars-scripts/handlebars.i18n.js b/src/Website/assets/handlebars-scripts/handlebars.i18n.js new file mode 100644 index 00000000..50bcd28f --- /dev/null +++ b/src/Website/assets/handlebars-scripts/handlebars.i18n.js @@ -0,0 +1,3 @@ +//Handlebars.registerHelper('i18n', function(s, b, c){ +// return (i18n && typeof i18n.translate === 'function') ? i18n.translate(s) : s; +//}); \ No newline at end of file diff --git a/src/Website/assets/handlebars-scripts/handlebars.runtime.js b/src/Website/assets/handlebars-scripts/handlebars.runtime.js new file mode 100644 index 00000000..56cac55c --- /dev/null +++ b/src/Website/assets/handlebars-scripts/handlebars.runtime.js @@ -0,0 +1,287 @@ +/* + * Copyright 2011 Twitter, Inc. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +var Hogan = {}; + +(function (Hogan) { + Hogan.Template = function (codeObj, text, compiler, options) { + codeObj = codeObj || {}; + this.r = codeObj.code || this.r; + this.c = compiler; + this.options = options || {}; + this.text = text || ''; + this.partials = codeObj.partials || {}; + this.subs = codeObj.subs || {}; + this.ib(); + } + + Hogan.Template.prototype = { + // render: replaced by generated code. + r: function (context, partials, indent) { return ''; }, + + // variable escaping + v: hoganEscape, + + // triple stache + t: coerceToString, + + render: function render(context, partials, indent) { + return this.ri([context], partials || {}, indent); + }, + + // render internal -- a hook for overrides that catches partials too + ri: function (context, partials, indent) { + return this.r(context, partials, indent); + }, + + // ensurePartial + ep: function(symbol, partials) { + var partial = this.partials[symbol]; + + // check to see that if we've instantiated this partial before + var template = partials[partial.name]; + if (partial.instance && partial.base == template) { + return partial.instance; + } + + if (typeof template == 'string') { + if (!this.c) { + throw new Error("No compiler available."); + } + template = this.c.compile(template, this.options); + } + + if (!template) { + return null; + } + + // We use this to check whether the partials dictionary has changed + this.partials[symbol].base = template; + + if (partial.subs) { + template = createSpecializedPartial(template, partial.subs, +partial.partials); + } + + this.partials[symbol].instance = template; + return template; + }, + + // tries to find a partial in the curent scope and render it + rp: function(symbol, ctx, partials, indent) { + var partial = this.ep(symbol, partials); + if (!partial) { + return ''; + } + + return partial.ri(ctx, partials, indent); + }, + + // render a section + rs: function(ctx, partials, section) { + var tail = ctx[ctx.length - 1], + func, + offset, + arg; + + if (typeof tail == 'function') { + func = tail; + tail = ctx[ctx.length - 2]; + offset = this.buf.length; + } + + if (!isArray(tail)) { + section(ctx, partials, this); + } else { + for (var i = 0; i < tail.length; i++) { + ctx.push(tail[i]); + section(ctx, partials, this); + ctx.pop(); + } + } + + if (func) { + arg = this.buf.substr(offset); + this.buf = this.buf.substr(0, offset); + this.b(func(arg)); + } + }, + + // maybe start a section + s: function(val, ctx, partials, inverted) { + if (isArray(val) && val.length === 0) { + return false; + } + + var func; + if (typeof val == 'function') { + val = this.ms(val, ctx, partials); + if (typeof val == 'function') { + func = val; + } + } + + var pass = (val === '') || !!val; + + if (!inverted && pass && ctx) { + if (func) { + ctx.push(func); + } else { + ctx.push((typeof val == 'object') ? val : ctx[ctx.length - 1]); + } + } + + return pass; + }, + + // find values with dotted names + d: function(key, ctx, partials, returnFound) { + var names = key.split('.'), + val = this.f(names[0], ctx, partials, returnFound), + cx = null; + + if (key === '.' && isArray(ctx[ctx.length - 2])) { + return ctx[ctx.length - 1]; + } + + for (var i = 1; i < names.length; i++) { + if (val && typeof val == 'object' && val[names[i]] != null) { + cx = val; + val = val[names[i]]; + } else { + val = ''; + } + } + + if (returnFound && !val) { + return false; + } + + if (!returnFound && typeof val == 'function') { + ctx.push(cx); + val = this.mv(val, ctx, partials); + ctx.pop(); + } + + return val; + }, + + // find values with normal names + f: function(key, ctx, partials, returnFound) { + var val = false, + v = null, + found = false; + + for (var i = ctx.length - 1; i >= 0; i--) { + v = ctx[i]; + if (v && typeof v == 'object' && v[key] != null) { + val = v[key]; + found = true; + break; + } + } + + if (!found) { + return (returnFound) ? false : ""; + } + + if (!returnFound && typeof val == 'function') { + val = this.mv(val, ctx, partials); + } + + return val; + }, + + // template result buffering + b: function(s) { this.buf += s; }, + fl: function() { var r = this.buf; this.buf = ''; return r; }, + + // init the buffer + ib: function () { + this.buf = ''; + }, + + // method replace section + ms: function(func, ctx, partials) { + var cx = ctx[ctx.length - 1]; + return func.call(cx); + }, + + // method replace variable + mv: function(func, ctx, partials) { + var cx = ctx[ctx.length - 1]; + return func.call(cx); + }, + + sub: function(name, context, partials) { + var f = this.subs[name]; + if (f) { + f(context, partials, this); + } + } + + }; + + function createSpecializedPartial(instance, subs, partials) { + function PartialTemplate() {}; + PartialTemplate.prototype = instance; + function Substitutions() {}; + Substitutions.prototype = instance.subs; + var key; + var partial = new PartialTemplate(); + partial.subs = new Substitutions(); + partial.ib(); + + for (key in subs) { + partial.subs[key] = subs[key]; + } + + for (key in partials) { + partial.partials[key] = partials[key]; + } + + return partial; + } + + var rAmp = /&/g, + rLt = //g, + rApos =/\'/g, + rQuot = /\"/g, + hChars =/[&<>\"\']/; + + function coerceToString(val) { + return String((val === null || val === undefined) ? '' : val); + } + + function hoganEscape(str) { + str = coerceToString(str); + return hChars.test(str) ? + str + .replace(rAmp,'&') + .replace(rLt,'<') + .replace(rGt,'>') + .replace(rApos,''') + .replace(rQuot, '"') : + str; + } + + var isArray = Array.isArray || function(a) { + return Object.prototype.toString.call(a) === '[object Array]'; + }; + +})(typeof exports !== 'undefined' ? exports : Hogan); \ No newline at end of file diff --git a/src/Website/assets/handlebars-scripts/init.js b/src/Website/assets/handlebars-scripts/init.js new file mode 100644 index 00000000..26ae8d28 --- /dev/null +++ b/src/Website/assets/handlebars-scripts/init.js @@ -0,0 +1,31 @@ +var i18n = { + translate: function () { + return 'Bonjour'; + } +}; + +$(function(){ + + var i18n = { + translate: function (s) { + var obj = { + 'Name': 'Nom', + 'The': 'Le' + }; + return obj[s] || s; + } + }; + + console.log(JST['test'].render({ + author: { + first: 'Jean', + last: 'Luc' + }, + i18n: function() { + return function (s) { + return (i18n && typeof i18n.translate === 'function') ? i18n.translate(s) : s; + }; + } + })); + +}); \ No newline at end of file diff --git a/src/Website/assets/handlebars-scripts/jquery.js b/src/Website/assets/handlebars-scripts/jquery.js new file mode 100644 index 00000000..792e62f4 --- /dev/null +++ b/src/Website/assets/handlebars-scripts/jquery.js @@ -0,0 +1,9044 @@ +/*! + * jQuery JavaScript Library v1.6.3 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Wed Aug 31 10:35:15 2011 -0400 + */ +(function( window, undefined ) { + +// Use the correct document accordingly with window argument (sandbox) +var document = window.document, + navigator = window.navigator, + location = window.location; +var jQuery = (function() { + +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // A central reference to the root jQuery(document) + rootjQuery, + + // A simple way to check for HTML strings or ID strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Check for digits + rdigit = /\d/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + + // Matches dashed string for camelizing + rdashAlpha = /-([a-z]|[0-9])/ig, + rmsPrefix = /^-ms-/, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return ( letter + "" ).toUpperCase(); + }, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // The deferred used on DOM ready + readyList, + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = quickExpr.exec( selector ); + } + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.6.3", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return slice.call( this, 0 ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + (this.selector ? " " : "") + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.done( fn ); + + return this; + }, + + eq: function( i ) { + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + // Either a released hold or an DOMready/load event and not yet ready + if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } + } + }, + + bindReady: function() { + if ( readyList ) { + return; + } + + readyList = jQuery._Deferred(); + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNaN: function( obj ) { + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw msg; + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return (new Function( "return " + data ))(); + + } + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction( object ); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } + } + } + + return object; + }, + + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, + + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type( array ); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }, + + inArray: function( elem, array ) { + if ( !array ) { + return -1; + } + + if ( indexOf ) { + return indexOf.call( array, elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; + }, + + merge: function( first, second ) { + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, key, ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + if ( typeof context === "string" ) { + var tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + var args = slice.call( arguments, 2 ), + proxy = function() { + return fn.apply( context, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + + return proxy; + }, + + // Mutifunctional method to get and set values to a collection + // The value/s can optionally be executed if it's a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return (new Date()).getTime(); + }, + + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }, + + sub: function() { + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; + }, + + browser: {} +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} + +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} + +// IE doesn't match non-breaking spaces with \s +if ( rnotwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; + } + + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch(e) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} + +return jQuery; + +})(); + + +var // Promise methods + promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), + // Static reference to slice + sliceDeferred = [].slice; + +jQuery.extend({ + // Create a simple deferred (one callbacks list) + _Deferred: function() { + var // callbacks list + callbacks = [], + // stored [ context , args ] + fired, + // to avoid firing when already doing so + firing, + // flag to know if the deferred has been cancelled + cancelled, + // the deferred itself + deferred = { + + // done( f1, f2, ...) + done: function() { + if ( !cancelled ) { + var args = arguments, + i, + length, + elem, + type, + _fired; + if ( fired ) { + _fired = fired; + fired = 0; + } + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + deferred.done.apply( deferred, elem ); + } else if ( type === "function" ) { + callbacks.push( elem ); + } + } + if ( _fired ) { + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); + } + } + return this; + }, + + // resolve with given context and args + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { + // make sure args are available (#8421) + args = args || []; + firing = 1; + try { + while( callbacks[ 0 ] ) { + callbacks.shift().apply( context, args ); + } + } + finally { + fired = [ context, args ]; + firing = 0; + } + } + return this; + }, + + // resolve with this as context and given arguments + resolve: function() { + deferred.resolveWith( this, arguments ); + return this; + }, + + // Has this deferred been resolved? + isResolved: function() { + return !!( firing || fired ); + }, + + // Cancel + cancel: function() { + cancelled = 1; + callbacks = []; + return this; + } + }; + + return deferred; + }, + + // Full fledged deferred (two callbacks list) + Deferred: function( func ) { + var deferred = jQuery._Deferred(), + failDeferred = jQuery._Deferred(), + promise; + // Add errorDeferred methods, then and promise + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ); + return this; + }, + always: function() { + return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); + }, + fail: failDeferred.done, + rejectWith: failDeferred.resolveWith, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + pipe: function( fnDone, fnFail ) { + return jQuery.Deferred(function( newDefer ) { + jQuery.each( { + done: [ fnDone, "resolve" ], + fail: [ fnFail, "reject" ] + }, function( handler, data ) { + var fn = data[ 0 ], + action = data[ 1 ], + returned; + if ( jQuery.isFunction( fn ) ) { + deferred[ handler ](function() { + returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise().then( newDefer.resolve, newDefer.reject ); + } else { + newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); + } + }); + } else { + deferred[ handler ]( newDefer[ action ] ); + } + }); + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + if ( promise ) { + return promise; + } + promise = obj = {}; + } + var i = promiseMethods.length; + while( i-- ) { + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; + } + return obj; + } + }); + // Make sure only one callback list will be used + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); + // Unexpose cancel + delete deferred.cancel; + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + return deferred; + }, + + // Deferred helper + when: function( firstParam ) { + var args = arguments, + i = 0, + length = args.length, + count = length, + deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? + firstParam : + jQuery.Deferred(); + function resolveFunc( i ) { + return function( value ) { + args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; + if ( !( --count ) ) { + // Strange bug in FF4: + // Values changed onto the arguments object sometimes end up as undefined values + // outside the $.when method. Cloning the object into a fresh array solves the issue + deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); + } + }; + } + if ( length > 1 ) { + for( ; i < length; i++ ) { + if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { + args[ i ].promise().then( resolveFunc(i), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( deferred, args ); + } + } else if ( deferred !== firstParam ) { + deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); + } + return deferred.promise(); + } +}); + + + +jQuery.support = (function() { + + var div = document.createElement( "div" ), + documentElement = document.documentElement, + all, + a, + select, + opt, + input, + marginDiv, + support, + fragment, + body, + testElementParent, + testElement, + testElementStyle, + tds, + events, + eventName, + i, + isSupported; + + // Preliminary tests + div.setAttribute("className", "t"); + div.innerHTML = "
a"; + + + all = div.getElementsByTagName( "*" ); + a = div.getElementsByTagName( "a" )[ 0 ]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return {}; + } + + // First batch of supports tests + select = document.createElement( "select" ); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName( "input" )[ 0 ]; + + support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: ( div.firstChild.nodeType === 3 ), + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName( "tbody" ).length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName( "link" ).length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: ( input.value === "on" ), + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // Will be defined later + submitBubbles: true, + changeBubbles: true, + focusinBubbles: false, + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent( "onclick", function() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + support.noCloneEvent = false; + }); + div.cloneNode( true ).fireEvent( "onclick" ); + } + + // Check if a radio maintains it's value + // after being appended to the DOM + input = document.createElement("input"); + input.value = "t"; + input.setAttribute("type", "radio"); + support.radioValue = input.value === "t"; + + input.setAttribute("checked", "checked"); + div.appendChild( input ); + fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + div.innerHTML = ""; + + // Figure out if the W3C box model works as expected + div.style.width = div.style.paddingLeft = "1px"; + + body = document.getElementsByTagName( "body" )[ 0 ]; + // We use our own, invisible, body unless the body is already present + // in which case we use a div (#9239) + testElement = document.createElement( body ? "div" : "body" ); + testElementStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if ( body ) { + jQuery.extend( testElementStyle, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for ( i in testElementStyle ) { + testElement.style[ i ] = testElementStyle[ i ]; + } + testElement.appendChild( div ); + testElementParent = body || documentElement; + testElementParent.insertBefore( testElement, testElementParent.firstChild ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + support.boxModel = div.offsetWidth === 2; + + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); + } + + div.innerHTML = "
t
"; + tds = div.getElementsByTagName( "td" ); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + div.innerHTML = ""; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + if ( document.defaultView && document.defaultView.getComputedStyle ) { + marginDiv = document.createElement( "div" ); + marginDiv.style.width = "0"; + marginDiv.style.marginRight = "0"; + div.appendChild( marginDiv ); + support.reliableMarginRight = + ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; + } + + // Remove the body element we added + testElement.innerHTML = ""; + testElementParent.removeChild( testElement ); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( div.attachEvent ) { + for( i in { + submit: 1, + change: 1, + focusin: 1 + } ) { + eventName = "on" + i; + isSupported = ( eventName in div ); + if ( !isSupported ) { + div.setAttribute( eventName, "return;" ); + isSupported = ( typeof div[ eventName ] === "function" ); + } + support[ i + "Bubbles" ] = isSupported; + } + } + + // Null connected elements to avoid leaks in IE + testElement = fragment = select = opt = body = marginDiv = div = input = null; + + return support; +})(); + +// Keep track of boxModel +jQuery.boxModel = jQuery.support.boxModel; + + + + +var rbrace = /^(?:\{.*\}|\[.*\])$/, + rmultiDash = /([a-z])([A-Z])/g; + +jQuery.extend({ + cache: {}, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || (pvt && id && (cache[ id ] && !cache[ id ][ internalKey ]))) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; + } else { + id = jQuery.expando; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); + } else { + cache[ id ] = jQuery.extend(cache[ id ], name); + } + } + + thisCache = cache[ id ]; + + // Internal jQuery data is stored in a separate object inside the object's data + // cache in order to avoid key collisions between internal data and user-defined + // data + if ( pvt ) { + if ( !thisCache[ internalKey ] ) { + thisCache[ internalKey ] = {}; + } + + thisCache = thisCache[ internalKey ]; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should + // not attempt to inspect the internal events object using jQuery.data, as this + // internal data object is undocumented and subject to change. + if ( name === "events" && !thisCache[name] ) { + return thisCache[ internalKey ] && thisCache[ internalKey ].events; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, + + // Reference to internal data cache key + internalKey = jQuery.expando, + + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + if ( thisCache ) { + + // Support interoperable removal of hyphenated or camelcased keys + if ( !thisCache[ name ] ) { + name = jQuery.camelCase( name ); + } + + delete thisCache[ name ]; + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !isEmptyDataObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( pvt ) { + delete cache[ id ][ internalKey ]; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + var internalCache = cache[ id ][ internalKey ]; + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + // Ensure that `cache` is not a window object #10080 + if ( jQuery.support.deleteExpando || !cache.setInterval ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the entire user cache at once because it's faster than + // iterating through each key, but we need to continue to persist internal + // data if it existed + if ( internalCache ) { + cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + + cache[ id ][ internalKey ] = internalCache; + + // Otherwise, we need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + } else if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ jQuery.expando ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } else { + elem[ jQuery.expando ] = null; + } + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( this[0], name, data[ name ] ); + } + } + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + !jQuery.isNaN( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON +// property to be considered empty objects; this property always exists in +// order to make sure JSON.stringify does not expose internal metadata +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + + + + +function handleQueueMarkDefer( elem, type, src ) { + var deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + defer = jQuery.data( elem, deferDataKey, undefined, true ); + if ( defer && + ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && + ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { + // Give room for hard-coded callbacks to fire first + // and eventually mark/queue something else on the element + setTimeout( function() { + if ( !jQuery.data( elem, queueDataKey, undefined, true ) && + !jQuery.data( elem, markDataKey, undefined, true ) ) { + jQuery.removeData( elem, deferDataKey, true ); + defer.resolve(); + } + }, 0 ); + } +} + +jQuery.extend({ + + _mark: function( elem, type ) { + if ( elem ) { + type = (type || "fx") + "mark"; + jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); + } + }, + + _unmark: function( force, elem, type ) { + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); + if ( count ) { + jQuery.data( elem, key, count, true ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } + } + }, + + queue: function( elem, type, data ) { + if ( elem ) { + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type, undefined, true ); + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data), true ); + } else { + q.push( data ); + } + } + return q || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(), + defer; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); + } + + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue", true ); + handleQueueMarkDefer( elem, type, "queue" ); + } + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function() { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, object ) { + if ( typeof type !== "string" ) { + object = type; + type = undefined; + } + type = type || "fx"; + var defer = jQuery.Deferred(), + elements = this, + i = elements.length, + count = 1, + deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + tmp; + function resolve() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + } + while( i-- ) { + if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && + jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { + count++; + tmp.done( resolve ); + } + } + resolve(); + return defer.promise(); + } +}); + + + + +var rclass = /[\n\t\r]/g, + rspace = /\s+/, + rreturn = /\r/g, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + nodeHook, boolHook; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.attr ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.prop ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classNames, i, l, elem, + setClass, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call(this, j, this.className) ); + }); + } + + if ( value && typeof value === "string" ) { + classNames = value.split( rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className && classNames.length === 1 ) { + elem.className = value; + + } else { + setClass = " " + elem.className + " "; + + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { + setClass += classNames[ c ] + " "; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classNames, i, l, elem, className, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call(this, j, this.className) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + classNames = (value || "").split( rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + className = (" " + elem.className + " ").replace( rclass, " " ); + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[ c ] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var hooks, ret, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return undefined; + } + + var isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var self = jQuery(this), val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, + index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true + }, + + attrFix: { + // Always normalize to ensure hook usage + tabindex: "tabIndex" + }, + + attr: function( elem, name, value, pass ) { + var nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( !("getAttribute" in elem) ) { + return jQuery.prop( elem, name, value ); + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Normalize the name if needed + if ( notxml ) { + name = jQuery.attrFix[ name ] || name; + + hooks = jQuery.attrHooks[ name ]; + + if ( !hooks ) { + // Use boolHook for boolean attributes + if ( rboolean.test( name ) ) { + hooks = boolHook; + + // Use nodeHook if available( IE6/7 ) + } else if ( nodeHook ) { + hooks = nodeHook; + } + } + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return undefined; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, name ) { + var propName; + if ( elem.nodeType === 1 ) { + name = jQuery.attrFix[ name ] || name; + + jQuery.attr( elem, name, "" ); + elem.removeAttribute( name ); + + // Set corresponding property to false for boolean attributes + if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { + elem[ propName ] = false; + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to it's default in case type is set after value + // This is for element creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }, + // Use the value property for back compat + // Use the nodeHook for button elements in IE6/7 (#1954) + value: { + get: function( elem, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.get( elem, name ); + } + return name in elem ? + elem.value : + null; + }, + set: function( elem, value, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.set( elem, value, name ); + } + // Does not return so that setAttribute is also used + elem.value = value; + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return (elem[ name ] = value); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Add the tabindex propHook to attrHooks for back-compat +jQuery.attrHooks.tabIndex = jQuery.propHooks.tabIndex; + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + // Align boolean attributes with corresponding properties + // Fall back to attribute presence where some booleans are not supported + var attrNode; + return jQuery.prop( elem, name ) === true || ( attrNode = elem.getAttributeNode( name ) ) && attrNode.nodeValue !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + var propName; + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + // value is true since we know at this point it's type boolean and not false + // Set boolean attributes to the same name and set the DOM property + propName = jQuery.propFix[ name ] || name; + if ( propName in elem ) { + // Only set the IDL specifically if it already exists on the element + elem[ propName ] = true; + } + + elem.setAttribute( name, name.toLowerCase() ); + } + return name; + } +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !jQuery.support.getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret; + ret = elem.getAttributeNode( name ); + // Return undefined if nodeValue is empty string + return ret && ret.nodeValue !== "" ? + ret.nodeValue : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + ret = document.createAttribute( name ); + elem.setAttributeNode( ret ); + } + return (ret.nodeValue = value + ""); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret === null ? undefined : ret; + } + }); + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Normalize to lowercase since IE uppercases css property names + return elem.style.cssText.toLowerCase() || undefined; + }, + set: function( elem, value ) { + return (elem.style.cssText = "" + value); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); + } + } + }); +}); + + + + +var rnamespaces = /\.(.*)$/, + rformElems = /^(?:textarea|input|select)$/i, + rperiod = /\./g, + rspaces = / /g, + rescape = /[^\w\s.|`]/g, + fcleanup = function( nm ) { + return nm.replace(rescape, "\\$&"); + }; + +/* + * A number of helper functions used for managing events. + * Many of the ideas behind this code originated from + * Dean Edwards' addEvent library. + */ +jQuery.event = { + + // Bind an event to an element + // Original by Dean Edwards + add: function( elem, types, handler, data ) { + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; + } + + var handleObjIn, handleObj; + + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + } + + // Make sure that the function being executed has a unique ID + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure + var elemData = jQuery._data( elem ); + + // If no elemData is found then we must be trying to bind to one of the + // banned noData elements + if ( !elemData ) { + return; + } + + var events = elemData.events, + eventHandle = elemData.handle; + + if ( !events ) { + elemData.events = events = {}; + } + + if ( !eventHandle ) { + elemData.handle = eventHandle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.handle.apply( eventHandle.elem, arguments ) : + undefined; + }; + } + + // Add elem as a property of the handle function + // This is to prevent a memory leak with non-native events in IE. + eventHandle.elem = elem; + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = types.split(" "); + + var type, i = 0, namespaces; + + while ( (type = types[ i++ ]) ) { + handleObj = handleObjIn ? + jQuery.extend({}, handleObjIn) : + { handler: handler, data: data }; + + // Namespaced event handlers + if ( type.indexOf(".") > -1 ) { + namespaces = type.split("."); + type = namespaces.shift(); + handleObj.namespace = namespaces.slice(0).sort().join("."); + + } else { + namespaces = []; + handleObj.namespace = ""; + } + + handleObj.type = type; + if ( !handleObj.guid ) { + handleObj.guid = handler.guid; + } + + // Get the current list of functions bound to this event + var handlers = events[ type ], + special = jQuery.event.special[ type ] || {}; + + // Init the event handler queue + if ( !handlers ) { + handlers = events[ type ] = []; + + // Check for a special event handler + // Only use addEventListener/attachEvent if the special + // events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add the function to the element's handler list + handlers.push( handleObj ); + + // Keep track of which events have been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, pos ) { + // don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } + + var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ), + events = elemData && elemData.events; + + if ( !elemData || !events ) { + return; + } + + // types is actually an event object here + if ( types && types.type ) { + handler = types.handler; + types = types.type; + } + + // Unbind all events for the element + if ( !types || typeof types === "string" && types.charAt(0) === "." ) { + types = types || ""; + + for ( type in events ) { + jQuery.event.remove( elem, type + types ); + } + + return; + } + + // Handle multiple events separated by a space + // jQuery(...).unbind("mouseover mouseout", fn); + types = types.split(" "); + + while ( (type = types[ i++ ]) ) { + origType = type; + handleObj = null; + all = type.indexOf(".") < 0; + namespaces = []; + + if ( !all ) { + // Namespaced event handlers + namespaces = type.split("."); + type = namespaces.shift(); + + namespace = new RegExp("(^|\\.)" + + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + eventType = events[ type ]; + + if ( !eventType ) { + continue; + } + + if ( !handler ) { + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( all || namespace.test( handleObj.namespace ) ) { + jQuery.event.remove( elem, origType, handleObj.handler, j ); + eventType.splice( j--, 1 ); + } + } + + continue; + } + + special = jQuery.event.special[ type ] || {}; + + for ( j = pos || 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( handler.guid === handleObj.guid ) { + // remove the given handler for the given type + if ( all || namespace.test( handleObj.namespace ) ) { + if ( pos == null ) { + eventType.splice( j--, 1 ); + } + + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + + if ( pos != null ) { + break; + } + } + } + + // remove generic event handler if no more handlers exist + if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + ret = null; + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + var handle = elemData.handle; + if ( handle ) { + handle.elem = null; + } + + delete elemData.events; + delete elemData.handle; + + if ( jQuery.isEmptyObject( elemData ) ) { + jQuery.removeData( elem, undefined, true ); + } + } + }, + + // Events that are safe to short-circuit if no handlers are attached. + // Native DOM events should not be added, they may have inline handlers. + customEvent: { + "getData": true, + "setData": true, + "changeData": true + }, + + trigger: function( event, data, elem, onlyHandlers ) { + // Event object or event type + var type = event.type || event, + namespaces = [], + exclusive; + + if ( type.indexOf("!") >= 0 ) { + // Exclusive events trigger only for the exact event (no namespaces) + type = type.slice(0, -1); + exclusive = true; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + + if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { + // No jQuery handlers for this event type, and it can't have inline handlers + return; + } + + // Caller can pass in an Event, Object, or just an event type string + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + new jQuery.Event( type, event ) : + // Just the event type (string) + new jQuery.Event( type ); + + event.type = type; + event.exclusive = exclusive; + event.namespace = namespaces.join("."); + event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); + + // triggerHandler() and global events don't bubble or run the default action + if ( onlyHandlers || !elem ) { + event.preventDefault(); + event.stopPropagation(); + } + + // Handle a global trigger + if ( !elem ) { + // TODO: Stop taunting the data cache; remove global events and always attach to document + jQuery.each( jQuery.cache, function() { + // internalKey variable is just used to make it easier to find + // and potentially change this stuff later; currently it just + // points to jQuery.expando + var internalKey = jQuery.expando, + internalCache = this[ internalKey ]; + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { + jQuery.event.trigger( event, data, internalCache.handle.elem ); + } + }); + return; + } + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // Clean up the event in case it is being reused + event.result = undefined; + event.target = elem; + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data != null ? jQuery.makeArray( data ) : []; + data.unshift( event ); + + var cur = elem, + // IE doesn't like method names with a colon (#3533, #8272) + ontype = type.indexOf(":") < 0 ? "on" + type : ""; + + // Fire event on the current element, then bubble up the DOM tree + do { + var handle = jQuery._data( cur, "handle" ); + + event.currentTarget = cur; + if ( handle ) { + handle.apply( cur, data ); + } + + // Trigger an inline bound script + if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { + event.result = false; + event.preventDefault(); + } + + // Bubble up to document, then to window + cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; + } while ( cur && !event.isPropagationStopped() ); + + // If nobody prevented the default action, do it now + if ( !event.isDefaultPrevented() ) { + var old, + special = jQuery.event.special[ type ] || {}; + + if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction)() check here because IE6/7 fails that test. + // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. + try { + if ( ontype && elem[ type ] ) { + // Don't re-trigger an onFOO event when we call its FOO() method + old = elem[ ontype ]; + + if ( old ) { + elem[ ontype ] = null; + } + + jQuery.event.triggered = type; + elem[ type ](); + } + } catch ( ieError ) {} + + if ( old ) { + elem[ ontype ] = old; + } + + jQuery.event.triggered = undefined; + } + } + + return event.result; + }, + + handle: function( event ) { + event = jQuery.event.fix( event || window.event ); + // Snapshot the handlers list since a called handler may add/remove events. + var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), + run_all = !event.exclusive && !event.namespace, + args = Array.prototype.slice.call( arguments, 0 ); + + // Use the fix-ed Event rather than the (read-only) native event + args[0] = event; + event.currentTarget = this; + + for ( var j = 0, l = handlers.length; j < l; j++ ) { + var handleObj = handlers[ j ]; + + // Triggered event must 1) be non-exclusive and have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event. + if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handleObj.handler; + event.data = handleObj.data; + event.handleObj = handleObj; + + var ret = handleObj.handler.apply( this, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + return event.result; + }, + + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // store a copy of the original event object + // and "clone" to set read-only properties + var originalEvent = event; + event = jQuery.Event( originalEvent ); + + for ( var i = this.props.length, prop; i; ) { + prop = this.props[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary + if ( !event.target ) { + // Fixes #1925 where srcElement might not be defined either + event.target = event.srcElement || document; + } + + // check if target is a textnode (safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && event.fromElement ) { + event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; + } + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && event.clientX != null ) { + var eventDocument = event.target.ownerDocument || document, + doc = eventDocument.documentElement, + body = eventDocument.body; + + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add which for key events + if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { + event.which = event.charCode != null ? event.charCode : event.keyCode; + } + + // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) + if ( !event.metaKey && event.ctrlKey ) { + event.metaKey = event.ctrlKey; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && event.button !== undefined ) { + event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + } + + return event; + }, + + // Deprecated, use jQuery.guid instead + guid: 1E8, + + // Deprecated, use jQuery.proxy instead + proxy: jQuery.proxy, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady, + teardown: jQuery.noop + }, + + live: { + add: function( handleObj ) { + jQuery.event.add( this, + liveConvert( handleObj.origType, handleObj.selector ), + jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); + }, + + remove: function( handleObj ) { + jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); + } + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Checks if an event happened on an element within another element +// Used in jQuery.event.special.mouseenter and mouseleave handlers +var withinElement = function( event ) { + + // Check if mouse(over|out) are still within the same parent element + var related = event.relatedTarget, + inside = false, + eventType = event.type; + + event.type = event.data; + + if ( related !== this ) { + + if ( related ) { + inside = jQuery.contains( this, related ); + } + + if ( !inside ) { + + jQuery.event.handle.apply( this, arguments ); + + event.type = eventType; + } + } +}, + +// In case of event delegation, we only need to rename the event.type, +// liveHandler will take care of the rest. +delegate = function( event ) { + event.type = event.data; + jQuery.event.handle.apply( this, arguments ); +}; + +// Create mouseenter and mouseleave events +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + setup: function( data ) { + jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); + }, + teardown: function( data ) { + jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + } + }; +}); + +// submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function( data, namespaces ) { + if ( !jQuery.nodeName( this, "form" ) ) { + jQuery.event.add(this, "click.specialSubmit", function( e ) { + var elem = e.target, + type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; + + if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + trigger( "submit", this, arguments ); + } + }); + + jQuery.event.add(this, "keypress.specialSubmit", function( e ) { + var elem = e.target, + type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; + + if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + trigger( "submit", this, arguments ); + } + }); + + } else { + return false; + } + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialSubmit" ); + } + }; + +} + +// change delegation, happens here so we have bind. +if ( !jQuery.support.changeBubbles ) { + + var changeFilters, + + getVal = function( elem ) { + var type = jQuery.nodeName( elem, "input" ) ? elem.type : "", + val = elem.value; + + if ( type === "radio" || type === "checkbox" ) { + val = elem.checked; + + } else if ( type === "select-multiple" ) { + val = elem.selectedIndex > -1 ? + jQuery.map( elem.options, function( elem ) { + return elem.selected; + }).join("-") : + ""; + + } else if ( jQuery.nodeName( elem, "select" ) ) { + val = elem.selectedIndex; + } + + return val; + }, + + testChange = function testChange( e ) { + var elem = e.target, data, val; + + if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { + return; + } + + data = jQuery._data( elem, "_change_data" ); + val = getVal(elem); + + // the current data will be also retrieved by beforeactivate + if ( e.type !== "focusout" || elem.type !== "radio" ) { + jQuery._data( elem, "_change_data", val ); + } + + if ( data === undefined || val === data ) { + return; + } + + if ( data != null || val ) { + e.type = "change"; + e.liveFired = undefined; + jQuery.event.trigger( e, arguments[1], elem ); + } + }; + + jQuery.event.special.change = { + filters: { + focusout: testChange, + + beforedeactivate: testChange, + + click: function( e ) { + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; + + if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { + testChange.call( this, e ); + } + }, + + // Change has to be called before submit + // Keydown will be called before keypress, which is used in submit-event delegation + keydown: function( e ) { + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; + + if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || + (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || + type === "select-multiple" ) { + testChange.call( this, e ); + } + }, + + // Beforeactivate happens also before the previous element is blurred + // with this event you can't trigger a change event, but you can store + // information + beforeactivate: function( e ) { + var elem = e.target; + jQuery._data( elem, "_change_data", getVal(elem) ); + } + }, + + setup: function( data, namespaces ) { + if ( this.type === "file" ) { + return false; + } + + for ( var type in changeFilters ) { + jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); + } + + return rformElems.test( this.nodeName ); + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialChange" ); + + return rformElems.test( this.nodeName ); + } + }; + + changeFilters = jQuery.event.special.change.filters; + + // Handle when the input is .focus()'d + changeFilters.focus = changeFilters.beforeactivate; +} + +function trigger( type, elem, args ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + // Don't pass args or remember liveFired; they apply to the donor event. + var event = jQuery.extend( {}, args[ 0 ] ); + event.type = type; + event.originalEvent = {}; + event.liveFired = undefined; + jQuery.event.handle.call( elem, event ); + if ( event.isDefaultPrevented() ) { + args[ 0 ].preventDefault(); + } +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + + function handler( donor ) { + // Donor event is always a native one; fix it and switch its type. + // Let focusin/out handler cancel the donor focus/blur event. + var e = jQuery.event.fix( donor ); + e.type = fix; + e.originalEvent = {}; + jQuery.event.trigger( e, null, e.target ); + if ( e.isDefaultPrevented() ) { + donor.preventDefault(); + } + } + }); +} + +jQuery.each(["bind", "one"], function( i, name ) { + jQuery.fn[ name ] = function( type, data, fn ) { + var handler; + + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( arguments.length === 2 || data === false ) { + fn = data; + data = undefined; + } + + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +}); + +jQuery.fn.extend({ + unbind: function( type, fn ) { + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.remove( this[i], type, fn ); + } + } + + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.live( types, data, fn, selector ); + }, + + undelegate: function( selector, types, fn ) { + if ( arguments.length === 0 ) { + return this.unbind( "live" ); + + } else { + return this.die( types, null, fn, selector ); + } + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + + triggerHandler: function( type, data ) { + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +var liveMap = { + focus: "focusin", + blur: "focusout", + mouseenter: "mouseover", + mouseleave: "mouseout" +}; + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( liveMap[ type ] ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +}); + +function liveHandler( event ) { + var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, + elems = [], + selectors = [], + events = jQuery._data( this, "events" ); + + // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) + if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { + return; + } + + if ( event.namespace ) { + namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.liveFired = this; + + var live = events.live.slice(0); + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { + selectors.push( handleObj.selector ); + + } else { + live.splice( j--, 1 ); + } + } + + match = jQuery( event.target ).closest( selectors, event.currentTarget ); + + for ( i = 0, l = match.length; i < l; i++ ) { + close = match[i]; + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { + elem = close.elem; + related = null; + + // Those two events require additional checking + if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { + event.type = handleObj.preType; + related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + + // Make sure not to accidentally match a child element with the same selector + if ( related && jQuery.contains( elem, related ) ) { + related = elem; + } + } + + if ( !related || related !== elem ) { + elems.push({ elem: elem, handleObj: handleObj, level: close.level }); + } + } + } + } + + for ( i = 0, l = elems.length; i < l; i++ ) { + match = elems[i]; + + if ( maxLevel && match.level > maxLevel ) { + break; + } + + event.currentTarget = match.elem; + event.data = match.handleObj.data; + event.handleObj = match.handleObj; + + ret = match.handleObj.origHandler.apply( match.elem, arguments ); + + if ( ret === false || event.isPropagationStopped() ) { + maxLevel = match.level; + + if ( ret === false ) { + stop = false; + } + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + + return stop; +} + +function liveConvert( type, selector ) { + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); +} + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } +}); + + + +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){ + +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + done = 0, + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true, + rBackslash = /\\/g, + rNonWord = /\W/; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + baseHasDuplicate = false; + return 0; +}); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + + var origContext = context; + + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], + soFar = selector; + + // Reset the position of the chunker regexp (start from head) + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; + + parts.push( m[1] ); + + if ( m[2] ) { + extra = m[3]; + break; + } + } + } while ( m ); + + if ( parts.length > 1 && origPOS.exec( selector ) ) { + + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { + set = posProcess( parts[0] + parts[1], context ); + + } else { + set = Expr.relative[ parts[0] ] ? + [ context ] : + Sizzle( parts.shift(), context ); + + while ( parts.length ) { + selector = parts.shift(); + + if ( Expr.relative[ selector ] ) { + selector += parts.shift(); + } + + set = posProcess( selector, set ); + } + } + + } else { + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; + } + + if ( context ) { + ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; + + if ( parts.length > 0 ) { + checkSet = makeArray( set ); + + } else { + prune = false; + } + + while ( parts.length ) { + cur = parts.pop(); + pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } + + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + + } else { + checkSet = parts = []; + } + } + + if ( !checkSet ) { + checkSet = set; + } + + if ( !checkSet ) { + Sizzle.error( cur || selector ); + } + + if ( toString.call(checkSet) === "[object Array]" ) { + if ( !prune ) { + results.push.apply( results, checkSet ); + + } else if ( context && context.nodeType === 1 ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { + results.push( set[i] ); + } + } + + } else { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && checkSet[i].nodeType === 1 ) { + results.push( set[i] ); + } + } + } + + } else { + makeArray( checkSet, results ); + } + + if ( extra ) { + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } + + return results; +}; + +Sizzle.uniqueSort = function( results ) { + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); +}; + +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set; + + if ( !expr ) { + return []; + } + + for ( var i = 0, l = Expr.order.length; i < l; i++ ) { + var match, + type = Expr.order[i]; + + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + var left = match[1]; + match.splice( 1, 1 ); + + if ( left.substr( left.length - 1 ) !== "\\" ) { + match[1] = (match[1] || "").replace( rBackslash, "" ); + set = Expr.find[ type ]( match, context, isXML ); + + if ( set != null ) { + expr = expr.replace( Expr.match[ type ], "" ); + break; + } + } + } + } + + if ( !set ) { + set = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( "*" ) : + []; + } + + return { set: set, expr: expr }; +}; + +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + + while ( expr && set.length ) { + for ( var type in Expr.filter ) { + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + var found, item, + filter = Expr.filter[ type ], + left = match[1]; + + anyFound = false; + + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { + result = []; + } + + if ( Expr.preFilter[ type ] ) { + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + + if ( !match ) { + anyFound = found = true; + + } else if ( match === true ) { + continue; + } + } + + if ( match ) { + for ( var i = 0; (item = curLoop[i]) != null; i++ ) { + if ( item ) { + found = filter( item, match, i, curLoop ); + var pass = not ^ !!found; + + if ( inplace && found != null ) { + if ( pass ) { + anyFound = true; + + } else { + curLoop[i] = false; + } + + } else if ( pass ) { + result.push( item ); + anyFound = true; + } + } + } + } + + if ( found !== undefined ) { + if ( !inplace ) { + curLoop = result; + } + + expr = expr.replace( Expr.match[ type ], "" ); + + if ( !anyFound ) { + return []; + } + + break; + } + } + } + + // Improper expression + if ( expr === old ) { + if ( anyFound == null ) { + Sizzle.error( expr ); + + } else { + break; + } + } + + old = expr; + } + + return curLoop; +}; + +Sizzle.error = function( msg ) { + throw "Syntax error, unrecognized expression: " + msg; +}; + +var Expr = Sizzle.selectors = { + order: [ "ID", "NAME", "TAG" ], + + match: { + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + }, + + leftMatch: {}, + + attrMap: { + "class": "className", + "for": "htmlFor" + }, + + attrHandle: { + href: function( elem ) { + return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); + } + }, + + relative: { + "+": function(checkSet, part){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !rNonWord.test( part ), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag ) { + part = part.toLowerCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? + elem || false : + elem === part; + } + } + + if ( isPartStrNotTag ) { + Sizzle.filter( part, checkSet, true ); + } + }, + + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + var parent = elem.parentNode; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; + } + } + + } else { + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + checkSet[i] = isPartStr ? + elem.parentNode : + elem.parentNode === part; + } + } + + if ( isPartStr ) { + Sizzle.filter( part, checkSet, true ); + } + } + }, + + "": function(checkSet, part, isXML){ + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + }, + + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); + } + }, + + find: { + ID: function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }, + + NAME: function( match, context ) { + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], + results = context.getElementsByName( match[1] ); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; + } + }, + + TAG: function( match, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( match[1] ); + } + } + }, + preFilter: { + CLASS: function( match, curLoop, inplace, result, not, isXML ) { + match = " " + match[1].replace( rBackslash, "" ) + " "; + + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { + if ( elem ) { + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { + result.push( elem ); + } + + } else if ( inplace ) { + curLoop[i] = false; + } + } + } + + return false; + }, + + ID: function( match ) { + return match[1].replace( rBackslash, "" ); + }, + + TAG: function( match, curLoop ) { + return match[1].replace( rBackslash, "" ).toLowerCase(); + }, + + CHILD: function( match ) { + if ( match[1] === "nth" ) { + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + match[2] = match[2].replace(/^\+|\s*/g, ''); + + // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' + var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || + !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + + // calculate the numbers (first)n+(last) including if they are negative + match[2] = (test[1] + (test[2] || 1)) - 0; + match[3] = test[3] - 0; + } + else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + // TODO: Move to normal caching system + match[0] = done++; + + return match; + }, + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { + var name = match[1] = match[1].replace( rBackslash, "" ); + + if ( !isXML && Expr.attrMap[name] ) { + match[1] = Expr.attrMap[name]; + } + + // Handle if an un-quoted value was used + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + + if ( match[2] === "~=" ) { + match[4] = " " + match[4] + " "; + } + + return match; + }, + + PSEUDO: function( match, curLoop, inplace, result, not ) { + if ( match[1] === "not" ) { + // If we're dealing with a complex expression, or a simple one + if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { + match[3] = Sizzle(match[3], null, null, curLoop); + + } else { + var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + + if ( !inplace ) { + result.push.apply( result, ret ); + } + + return false; + } + + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { + return true; + } + + return match; + }, + + POS: function( match ) { + match.unshift( true ); + + return match; + } + }, + + filters: { + enabled: function( elem ) { + return elem.disabled === false && elem.type !== "hidden"; + }, + + disabled: function( elem ) { + return elem.disabled === true; + }, + + checked: function( elem ) { + return elem.checked === true; + }, + + selected: function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + parent: function( elem ) { + return !!elem.firstChild; + }, + + empty: function( elem ) { + return !elem.firstChild; + }, + + has: function( elem, i, match ) { + return !!Sizzle( match[3], elem ).length; + }, + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); + }, + + text: function( elem ) { + var attr = elem.getAttribute( "type" ), type = elem.type; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); + }, + + radio: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; + }, + + checkbox: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; + }, + + file: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; + }, + + password: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; + }, + + submit: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "submit" === elem.type; + }, + + image: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; + }, + + reset: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "reset" === elem.type; + }, + + button: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && "button" === elem.type || name === "button"; + }, + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); + }, + + focus: function( elem ) { + return elem === elem.ownerDocument.activeElement; + } + }, + setFilters: { + first: function( elem, i ) { + return i === 0; + }, + + last: function( elem, i, match, array ) { + return i === array.length - 1; + }, + + even: function( elem, i ) { + return i % 2 === 0; + }, + + odd: function( elem, i ) { + return i % 2 === 1; + }, + + lt: function( elem, i, match ) { + return i < match[3] - 0; + }, + + gt: function( elem, i, match ) { + return i > match[3] - 0; + }, + + nth: function( elem, i, match ) { + return match[3] - 0 === i; + }, + + eq: function( elem, i, match ) { + return match[3] - 0 === i; + } + }, + filter: { + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + + } else if ( name === "contains" ) { + return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + + } else if ( name === "not" ) { + var not = match[3]; + + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { + return false; + } + } + + return true; + + } else { + Sizzle.error( name ); + } + }, + + CHILD: function( elem, match ) { + var type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + + case "nth": + var first = match[2], + last = match[3]; + + if ( first === 1 && last === 0 ) { + return true; + } + + var doneName = match[0], + parent = elem.parentNode; + + if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { + var count = 0; + + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + + parent.sizcache = doneName; + } + + var diff = elem.nodeIndex - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + } + }, + + ID: function( elem, match ) { + return elem.nodeType === 1 && elem.getAttribute("id") === match; + }, + + TAG: function( elem, match ) { + return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; + }, + + CLASS: function( elem, match ) { + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; + }, + + ATTR: function( elem, match ) { + var name = match[1], + result = Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + + return result == null ? + type === "!=" : + type === "=" ? + value === check : + type === "*=" ? + value.indexOf(check) >= 0 : + type === "~=" ? + (" " + value + " ").indexOf(check) >= 0 : + !check ? + value && result !== false : + type === "!=" ? + value !== check : + type === "^=" ? + value.indexOf(check) === 0 : + type === "$=" ? + value.substr(value.length - check.length) === check : + type === "|=" ? + value === check || value.substr(0, check.length + 1) === check + "-" : + false; + }, + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + } + } + } +}; + +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; + +for ( var type in Expr.match ) { + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); +} + +var makeArray = function( array, results ) { + array = Array.prototype.slice.call( array, 0 ); + + if ( results ) { + results.push.apply( results, array ); + return results; + } + + return array; +}; + +// Perform a simple check to determine if the browser is capable of +// converting a NodeList to an array using builtin methods. +// Also verifies that the returned array holds DOM nodes +// (which is not the case in the Blackberry browser) +try { + Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + +// Provide a fallback method if it does not work +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; + + if ( toString.call(array) === "[object Array]" ) { + Array.prototype.push.apply( ret, array ); + + } else { + if ( typeof array.length === "number" ) { + for ( var l = array.length; i < l; i++ ) { + ret.push( array[i] ); + } + + } else { + for ( ; array[i]; i++ ) { + ret.push( array[i] ); + } + } + } + + return ret; + }; +} + +var sortOrder, siblingCheck; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + return a.compareDocumentPosition ? -1 : 1; + } + + return a.compareDocumentPosition(b) & 4 ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // If the nodes are siblings (or identical) we can do a quick check + if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Utility function for retreiving the text value of an array of DOM nodes +Sizzle.getText = function( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += Sizzle.getText( elem.childNodes ); + } + } + + return ret; +}; + +// Check to see if the browser returns elements by name when +// querying by getElementById (and provide a workaround) +(function(){ + // We're going to inject a fake input element with a specified name + var form = document.createElement("div"), + id = "script" + (new Date()).getTime(), + root = document.documentElement; + + form.innerHTML = "
"; + + // Inject it into the root element, check its status, and remove it quickly + root.insertBefore( form, root.firstChild ); + + // The workaround has to do additional checks after a getElementById + // Which slows things down for other browsers (hence the branching) + if ( document.getElementById( id ) ) { + Expr.find.ID = function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; + } + }; + + Expr.filter.ID = function( elem, match ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + + return elem.nodeType === 1 && node && node.nodeValue === match; + }; + } + + root.removeChild( form ); + + // release memory in IE + root = form = null; +})(); + +(function(){ + // Check to see if the browser returns only elements + // when doing getElementsByTagName("*") + + // Create a fake element + var div = document.createElement("div"); + div.appendChild( document.createComment("") ); + + // Make sure no comments are found + if ( div.getElementsByTagName("*").length > 0 ) { + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); + + // Filter out possible comments + if ( match[1] === "*" ) { + var tmp = []; + + for ( var i = 0; results[i]; i++ ) { + if ( results[i].nodeType === 1 ) { + tmp.push( results[i] ); + } + } + + results = tmp; + } + + return results; + }; + } + + // Check to see if an attribute returns normalized href attributes + div.innerHTML = ""; + + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); + }; + } + + // release memory in IE + div = null; +})(); + +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + + div.innerHTML = "

"; + + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } + + Sizzle = function( query, context, extra, seed ) { + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; + + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; + } + + // release memory in IE + div = null; + })(); +} + +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; + + if ( matches ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9 fails this) + var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + var ret = matches.call( node, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || !disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9, so check for that + node.document && node.document.nodeType !== 11 ) { + return ret; + } + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + +(function(){ + var div = document.createElement("div"); + + div.innerHTML = "
"; + + // Opera can't find a second classname (in 9.6) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) { + return; + } + + Expr.order.splice(1, 0, "CLASS"); + Expr.find.CLASS = function( match, context, isXML ) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } + }; + + // release memory in IE + div = null; +})(); + +function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 && !isXML ){ + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( elem.nodeName.toLowerCase() === cur ) { + match = elem; + break; + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 ) { + if ( !isXML ) { + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( typeof cur !== "string" ) { + if ( elem === cur ) { + match = true; + break; + } + + } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { + match = elem; + break; + } + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; + +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +var posProcess = function( selector, context ) { + var match, + tmpSet = [], + later = "", + root = context.nodeType ? [context] : context; + + // Position selectors must be done after the filter + // And so must :not(positional) so we move all PSEUDOs to the end + while ( (match = Expr.match.PSEUDO.exec( selector )) ) { + later += match[0]; + selector = selector.replace( Expr.match.PSEUDO, "" ); + } + + selector = Expr.relative[selector] ? selector + "*" : selector; + + for ( var i = 0, l = root.length; i < l; i++ ) { + Sizzle( selector, root[i], tmpSet ); + } + + return Sizzle.filter( later, tmpSet ); +}; + +// EXPOSE +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})(); + + +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var self = this, + i, l; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + var ret = this.pushStack( "", "find", selector ), + length, n, r; + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && ( typeof selector === "string" ? + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + + // Array + if ( jQuery.isArray( selectors ) ) { + var match, selector, + matches = {}, + level = 1; + + if ( cur && selectors.length ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; + + if ( !matches[ selector ] ) { + matches[ selector ] = POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[ selector ]; + + if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { + ret.push({ selector: selector, elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + } + + return ret; + } + + // String + var pos = POS.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); +} + + + + +var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rtagName = /<([\w:]+)/, + rtbody = /", "" ], + legend: [ 1, "
", "
" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + col: [ 2, "", "
" ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE can't serialize and