Tests for the NSS version string in the first parameter being less
        recent than the second (a < b). Tag order is RTM > RC > BETA > *.
        Works with hg tags like "NSS_3_7_9_RTM" and version strings reported by
        nsINSSVersion, like "3.18 Basic ECC Beta" (mixed, too).
        :param version_a: a NSS version string
        :param version_b: another NSS version string
        :return: bool (a < b)

def first_older_than_second(version_a, version_b):
        """
        Tests for the NSS version string in the first parameter being less
        recent than the second (a < b). Tag order is RTM > RC > BETA > *.
        Works with hg tags like "NSS_3_7_9_RTM" and version strings reported by
        nsINSSVersion, like "3.18 Basic ECC Beta" (mixed, too).
        :param version_a: a NSS version string
        :param version_b: another NSS version string
        :return: bool (a < b)
        """

        a = nssversion.to_ints(version_a)
        b = nssversion.to_ints(version_b)

        # must be of equal length
        assert len(a) == len(b)

        # Compare each version component, bail out on difference
        for i in xrange(len(a)):
            if b[i] < a[i]:
                return False
            if b[i] > a[i]:
                return True
        return False