|  | @@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
 | 
	
		
			
				|  |  |    (typeof window !== 'undefined' ? window : this).PDFJS = {};
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -PDFJS.version = '1.0.1002';
 | 
	
		
			
				|  |  | -PDFJS.build = 'f4fa7aa';
 | 
	
		
			
				|  |  | +PDFJS.version = '1.0.1004';
 | 
	
		
			
				|  |  | +PDFJS.build = 'c918cc5';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (function pdfjsWrapper() {
 | 
	
		
			
				|  |  |    // Use strict in our context only - users might not want it
 | 
	
	
		
			
				|  | @@ -41988,6 +41988,230 @@ var JpxImage = (function JpxImageClosure() {
 | 
	
		
			
				|  |  |        throw new Error('JPX Error: Out of packets');
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  function ResolutionPositionComponentLayerIterator(context) {
 | 
	
		
			
				|  |  | +    var siz = context.SIZ;
 | 
	
		
			
				|  |  | +    var tileIndex = context.currentTile.index;
 | 
	
		
			
				|  |  | +    var tile = context.tiles[tileIndex];
 | 
	
		
			
				|  |  | +    var layersCount = tile.codingStyleDefaultParameters.layersCount;
 | 
	
		
			
				|  |  | +    var componentsCount = siz.Csiz;
 | 
	
		
			
				|  |  | +    var l, r, c, p;
 | 
	
		
			
				|  |  | +    var maxDecompositionLevelsCount = 0;
 | 
	
		
			
				|  |  | +    for (c = 0; c < componentsCount; c++) {
 | 
	
		
			
				|  |  | +      var component = tile.components[c];
 | 
	
		
			
				|  |  | +      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,
 | 
	
		
			
				|  |  | +        component.codingStyleParameters.decompositionLevelsCount);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    var maxNumPrecinctsInLevel = new Int32Array(
 | 
	
		
			
				|  |  | +      maxDecompositionLevelsCount + 1);
 | 
	
		
			
				|  |  | +    for (r = 0; r <= maxDecompositionLevelsCount; ++r) {
 | 
	
		
			
				|  |  | +      var maxNumPrecincts = 0;
 | 
	
		
			
				|  |  | +      for (c = 0; c < componentsCount; ++c) {
 | 
	
		
			
				|  |  | +        var resolutions = tile.components[c].resolutions;
 | 
	
		
			
				|  |  | +        if (r < resolutions.length) {
 | 
	
		
			
				|  |  | +          maxNumPrecincts = Math.max(maxNumPrecincts,
 | 
	
		
			
				|  |  | +            resolutions[r].precinctParameters.numprecincts);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      maxNumPrecinctsInLevel[r] = maxNumPrecincts;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    l = 0;
 | 
	
		
			
				|  |  | +    r = 0;
 | 
	
		
			
				|  |  | +    c = 0;
 | 
	
		
			
				|  |  | +    p = 0;
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    this.nextPacket = function JpxImage_nextPacket() {
 | 
	
		
			
				|  |  | +      // Section B.12.1.3 Resolution-position-component-layer
 | 
	
		
			
				|  |  | +      for (; r <= maxDecompositionLevelsCount; r++) {
 | 
	
		
			
				|  |  | +        for (; p < maxNumPrecinctsInLevel[r]; p++) {
 | 
	
		
			
				|  |  | +          for (; c < componentsCount; c++) {
 | 
	
		
			
				|  |  | +            var component = tile.components[c];
 | 
	
		
			
				|  |  | +            if (r > component.codingStyleParameters.decompositionLevelsCount) {
 | 
	
		
			
				|  |  | +              continue;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            var resolution = component.resolutions[r];
 | 
	
		
			
				|  |  | +            var numprecincts = resolution.precinctParameters.numprecincts;
 | 
	
		
			
				|  |  | +            if (p >= numprecincts) {
 | 
	
		
			
				|  |  | +              continue;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            for (; l < layersCount;) {
 | 
	
		
			
				|  |  | +              var packet = createPacket(resolution, p, l);
 | 
	
		
			
				|  |  | +              l++;
 | 
	
		
			
				|  |  | +              return packet;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            l = 0;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          c = 0;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        p = 0;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      throw new Error('JPX Error: Out of packets');
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  function PositionComponentResolutionLayerIterator(context) {
 | 
	
		
			
				|  |  | +    var siz = context.SIZ;
 | 
	
		
			
				|  |  | +    var tileIndex = context.currentTile.index;
 | 
	
		
			
				|  |  | +    var tile = context.tiles[tileIndex];
 | 
	
		
			
				|  |  | +    var layersCount = tile.codingStyleDefaultParameters.layersCount;
 | 
	
		
			
				|  |  | +    var componentsCount = siz.Csiz;
 | 
	
		
			
				|  |  | +    var precinctsSizes = getPrecinctSizesInImageScale(tile);
 | 
	
		
			
				|  |  | +    var precinctsIterationSizes = precinctsSizes;
 | 
	
		
			
				|  |  | +    var l = 0, r = 0, c = 0, px = 0, py = 0;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    this.nextPacket = function JpxImage_nextPacket() {
 | 
	
		
			
				|  |  | +      // Section B.12.1.4 Position-component-resolution-layer
 | 
	
		
			
				|  |  | +      for (; py < precinctsIterationSizes.maxNumHigh; py++) {
 | 
	
		
			
				|  |  | +        for (; px < precinctsIterationSizes.maxNumWide; px++) {
 | 
	
		
			
				|  |  | +          for (; c < componentsCount; c++) {
 | 
	
		
			
				|  |  | +            var component = tile.components[c];
 | 
	
		
			
				|  |  | +            var decompositionLevelsCount =
 | 
	
		
			
				|  |  | +              component.codingStyleParameters.decompositionLevelsCount;
 | 
	
		
			
				|  |  | +            for (; r <= decompositionLevelsCount; r++) {
 | 
	
		
			
				|  |  | +              var resolution = component.resolutions[r];
 | 
	
		
			
				|  |  | +              var sizeInImageScale =
 | 
	
		
			
				|  |  | +                precinctsSizes.components[c].resolutions[r];
 | 
	
		
			
				|  |  | +              var k = getPrecinctIndexIfExist(
 | 
	
		
			
				|  |  | +                px,
 | 
	
		
			
				|  |  | +                py,
 | 
	
		
			
				|  |  | +                sizeInImageScale,
 | 
	
		
			
				|  |  | +                precinctsIterationSizes,
 | 
	
		
			
				|  |  | +                resolution);
 | 
	
		
			
				|  |  | +              if (k === null) {
 | 
	
		
			
				|  |  | +                continue;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              for (; l < layersCount;) {
 | 
	
		
			
				|  |  | +                var packet = createPacket(resolution, k, l);
 | 
	
		
			
				|  |  | +                l++;
 | 
	
		
			
				|  |  | +                return packet;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              l = 0;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            r = 0;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          c = 0;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        px = 0;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      throw new Error('JPX Error: Out of packets');
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  function ComponentPositionResolutionLayerIterator(context) {
 | 
	
		
			
				|  |  | +    var siz = context.SIZ;
 | 
	
		
			
				|  |  | +    var tileIndex = context.currentTile.index;
 | 
	
		
			
				|  |  | +    var tile = context.tiles[tileIndex];
 | 
	
		
			
				|  |  | +    var layersCount = tile.codingStyleDefaultParameters.layersCount;
 | 
	
		
			
				|  |  | +    var componentsCount = siz.Csiz;
 | 
	
		
			
				|  |  | +    var precinctsSizes = getPrecinctSizesInImageScale(tile);
 | 
	
		
			
				|  |  | +    var l = 0, r = 0, c = 0, px = 0, py = 0;
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    this.nextPacket = function JpxImage_nextPacket() {
 | 
	
		
			
				|  |  | +      // Section B.12.1.5 Component-position-resolution-layer
 | 
	
		
			
				|  |  | +      for (; c < componentsCount; ++c) {
 | 
	
		
			
				|  |  | +        var component = tile.components[c];
 | 
	
		
			
				|  |  | +        var precinctsIterationSizes = precinctsSizes.components[c];
 | 
	
		
			
				|  |  | +        var decompositionLevelsCount =
 | 
	
		
			
				|  |  | +          component.codingStyleParameters.decompositionLevelsCount;
 | 
	
		
			
				|  |  | +        for (; py < precinctsIterationSizes.maxNumHigh; py++) {
 | 
	
		
			
				|  |  | +          for (; px < precinctsIterationSizes.maxNumWide; px++) {
 | 
	
		
			
				|  |  | +            for (; r <= decompositionLevelsCount; r++) {
 | 
	
		
			
				|  |  | +              var resolution = component.resolutions[r];
 | 
	
		
			
				|  |  | +              var sizeInImageScale = precinctsIterationSizes.resolutions[r];
 | 
	
		
			
				|  |  | +              var k = getPrecinctIndexIfExist(
 | 
	
		
			
				|  |  | +                px,
 | 
	
		
			
				|  |  | +                py,
 | 
	
		
			
				|  |  | +                sizeInImageScale,
 | 
	
		
			
				|  |  | +                precinctsIterationSizes,
 | 
	
		
			
				|  |  | +                resolution);
 | 
	
		
			
				|  |  | +              if (k === null) {
 | 
	
		
			
				|  |  | +                continue;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              for (; l < layersCount;) {
 | 
	
		
			
				|  |  | +                var packet = createPacket(resolution, k, l);
 | 
	
		
			
				|  |  | +                l++;
 | 
	
		
			
				|  |  | +                return packet;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              l = 0;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            r = 0;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          px = 0;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        py = 0;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      throw new Error('JPX Error: Out of packets');
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  function getPrecinctIndexIfExist(
 | 
	
		
			
				|  |  | +    pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {
 | 
	
		
			
				|  |  | +    var posX = pxIndex * precinctIterationSizes.minWidth;
 | 
	
		
			
				|  |  | +    var posY = pyIndex * precinctIterationSizes.minHeight;
 | 
	
		
			
				|  |  | +    if (posX % sizeInImageScale.width !== 0 ||
 | 
	
		
			
				|  |  | +        posY % sizeInImageScale.height !== 0) {
 | 
	
		
			
				|  |  | +      return null;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    var startPrecinctRowIndex =
 | 
	
		
			
				|  |  | +      (posY / sizeInImageScale.width) *
 | 
	
		
			
				|  |  | +      resolution.precinctParameters.numprecinctswide;
 | 
	
		
			
				|  |  | +    return (posX / sizeInImageScale.height) + startPrecinctRowIndex;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  function getPrecinctSizesInImageScale(tile) {
 | 
	
		
			
				|  |  | +    var componentsCount = tile.components.length;
 | 
	
		
			
				|  |  | +    var minWidth = Number.MAX_VALUE;
 | 
	
		
			
				|  |  | +    var minHeight = Number.MAX_VALUE;
 | 
	
		
			
				|  |  | +    var maxNumWide = 0;
 | 
	
		
			
				|  |  | +    var maxNumHigh = 0;
 | 
	
		
			
				|  |  | +    var sizePerComponent = new Array(componentsCount);
 | 
	
		
			
				|  |  | +    for (var c = 0; c < componentsCount; c++) {
 | 
	
		
			
				|  |  | +      var component = tile.components[c];
 | 
	
		
			
				|  |  | +      var decompositionLevelsCount =
 | 
	
		
			
				|  |  | +        component.codingStyleParameters.decompositionLevelsCount;
 | 
	
		
			
				|  |  | +      var sizePerResolution = new Array(decompositionLevelsCount + 1);
 | 
	
		
			
				|  |  | +      var minWidthCurrentComponent = Number.MAX_VALUE;
 | 
	
		
			
				|  |  | +      var minHeightCurrentComponent = Number.MAX_VALUE;
 | 
	
		
			
				|  |  | +      var maxNumWideCurrentComponent = 0;
 | 
	
		
			
				|  |  | +      var maxNumHighCurrentComponent = 0;
 | 
	
		
			
				|  |  | +      var scale = 1;
 | 
	
		
			
				|  |  | +      for (var r = decompositionLevelsCount; r >= 0; --r) {
 | 
	
		
			
				|  |  | +        var resolution = component.resolutions[r];
 | 
	
		
			
				|  |  | +        var widthCurrentResolution =
 | 
	
		
			
				|  |  | +          scale * resolution.precinctParameters.precinctWidth;
 | 
	
		
			
				|  |  | +        var heightCurrentResolution =
 | 
	
		
			
				|  |  | +          scale * resolution.precinctParameters.precinctHeight;
 | 
	
		
			
				|  |  | +        minWidthCurrentComponent = Math.min(
 | 
	
		
			
				|  |  | +          minWidthCurrentComponent,
 | 
	
		
			
				|  |  | +          widthCurrentResolution);
 | 
	
		
			
				|  |  | +        minHeightCurrentComponent = Math.min(
 | 
	
		
			
				|  |  | +          minHeightCurrentComponent,
 | 
	
		
			
				|  |  | +          heightCurrentResolution);
 | 
	
		
			
				|  |  | +        maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent,
 | 
	
		
			
				|  |  | +          resolution.precinctParameters.numprecinctswide);
 | 
	
		
			
				|  |  | +        maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent,
 | 
	
		
			
				|  |  | +          resolution.precinctParameters.numprecinctshigh);
 | 
	
		
			
				|  |  | +        sizePerResolution[r] = {
 | 
	
		
			
				|  |  | +          width: widthCurrentResolution,
 | 
	
		
			
				|  |  | +          height: heightCurrentResolution
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        scale <<= 1;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      minWidth = Math.min(minWidth, minWidthCurrentComponent);
 | 
	
		
			
				|  |  | +      minHeight = Math.min(minHeight, minHeightCurrentComponent);
 | 
	
		
			
				|  |  | +      maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);
 | 
	
		
			
				|  |  | +      maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);
 | 
	
		
			
				|  |  | +      sizePerComponent[c] = {
 | 
	
		
			
				|  |  | +        resolutions: sizePerResolution,
 | 
	
		
			
				|  |  | +        minWidth: minWidthCurrentComponent,
 | 
	
		
			
				|  |  | +        minHeight: minHeightCurrentComponent,
 | 
	
		
			
				|  |  | +        maxNumWide: maxNumWideCurrentComponent,
 | 
	
		
			
				|  |  | +        maxNumHigh: maxNumHighCurrentComponent
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      components: sizePerComponent,
 | 
	
		
			
				|  |  | +      minWidth: minWidth,
 | 
	
		
			
				|  |  | +      minHeight: minHeight,
 | 
	
		
			
				|  |  | +      maxNumWide: maxNumWide,
 | 
	
		
			
				|  |  | +      maxNumHigh: maxNumHigh
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    function buildPackets(context) {
 | 
	
		
			
				|  |  |      var siz = context.SIZ;
 | 
	
		
			
				|  |  |      var tileIndex = context.currentTile.index;
 | 
	
	
		
			
				|  | @@ -42080,6 +42304,18 @@ var JpxImage = (function JpxImageClosure() {
 | 
	
		
			
				|  |  |          tile.packetsIterator =
 | 
	
		
			
				|  |  |            new ResolutionLayerComponentPositionIterator(context);
 | 
	
		
			
				|  |  |          break;
 | 
	
		
			
				|  |  | +      case 2:
 | 
	
		
			
				|  |  | +        tile.packetsIterator =
 | 
	
		
			
				|  |  | +          new ResolutionPositionComponentLayerIterator(context);
 | 
	
		
			
				|  |  | +        break;
 | 
	
		
			
				|  |  | +      case 3:
 | 
	
		
			
				|  |  | +        tile.packetsIterator =
 | 
	
		
			
				|  |  | +          new PositionComponentResolutionLayerIterator(context);
 | 
	
		
			
				|  |  | +        break;
 | 
	
		
			
				|  |  | +      case 4:
 | 
	
		
			
				|  |  | +        tile.packetsIterator =
 | 
	
		
			
				|  |  | +          new ComponentPositionResolutionLayerIterator(context);
 | 
	
		
			
				|  |  | +        break;
 | 
	
		
			
				|  |  |        default:
 | 
	
		
			
				|  |  |          throw new Error('JPX Error: Unsupported progression order ' +
 | 
	
		
			
				|  |  |                          progressionOrder);
 |